Commit f0a82e1d authored by Steffen Ludtke's avatar Steffen Ludtke
Browse files

Merge branch 'TTF016' of https://forge.etsi.org/rep/int/vxlte/sccas-con into TTF016

parents 15420c66 6785d536
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -430,6 +430,30 @@ module AtsSccas_Steps {

            vc_via_REG := vc_via;
        } // end function setHeaders_REGISTER_AS
        
        /**
         * @desc Sets Invite header fields (IMS addresses) extension of general settings from LibSip basic function
         * @param p_cSeq_s The current cSeq
         * @param p_to_user The selected user's SIP URL
         */
        function f_setHeaders_INVITE_AS(
            inout CSeq p_cSeq_s,
            in SipUrl p_to_user,
            in SipUrl p_from_user
        ) runs on ImsComponent  {
            vc_to := f_initToHeader(p_to_user); // init of vc_to using userProfile identifier
            vc_from := f_initFromHeader(p_from_user, f_getRndTag()); // init of vc_from using userProfile identifier
            vc_requestUri := p_to_user; // Request URI of Invite is identical with To header
            if (vc_boo_route) {
                vc_route := m_route_interface(vc_interfaceprofile);
            }
            if (vc_boo_recordRoute) {
                vc_recordRoute := m_recordRoute_currIpAddr(vc_userprofile);
            }

            LibSip_Steps.f_setHeadersINVITE(p_cSeq_s);
        } // end f_setHeadersINVITE_AS

    } // End of group SetHeaders

} // End of module AtsSccas_Steps
+113 −2
Original line number Diff line number Diff line
@@ -418,10 +418,12 @@ module AtsSccas_TCFunctions {
                // Local variables
                var CSeq v_cSeq_s := p_cSeq_s;

                // Preambule
                // Preamble
                //TODO review and add/correct suitable profiles
                f_init_userprofile(c_userProfile_UE1atSUThome);
                f_initSipUrl(c_serviceProfile_EMERGENCY);
                f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1);
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

                // Message
@@ -738,6 +740,115 @@ module AtsSccas_TCFunctions {
    } // End of group Group_6A_4
     
    group Group_7_3 {
        group TP_Distinction_of_requests_sent_to_the_SCCAS {
        
	        /**
	         * @desc Verify that the SCCAS first receives SIP INVITE request from UE/SCSC
	         * @param   p_cSeq_s Random CSeq INVITE number
	         */
			function TP_ISC_SCCAS_ORI_INV_01(in CSeq p_cSeq_s)
			runs on ImsComponent {
				// Local variables
				var CSeq v_cSeq_s := p_cSeq_s;
				var template(value) REGISTER_Request m_register3ptyUe;
				var template(value) RequestUnion m_req;
				var template(value) Response m_ResponseReg_3ptyUe;

				// Preamble
				f_init_userprofile(c_userProfile_PCSCFwithHomeUE);
				f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1);
				f_initSipUrl(c_userProfile_PCSCFwithHomeUE);

				//Registration
				f_setHeaders_REGISTER(v_cSeq_s);//UE REGISTER
				m_register3ptyUe :=  m_register_ue_srvcc(
													vc_requestUri, 
													vc_callId, 
													vc_cSeq, 
													vc_from, 
													vc_to, 
													vc_via_REG, 
													vc_contact, 
													m_add_Authorization_digest(
																				vc_authorization, 
																				{c_Integrity_protected_no}
																				), 
													PX_IMS_SUT_SCSCF_IPADDR, // TODO To be refined during validation
													PX_IMS_SUT_SCSCF_PORT, // TODO To be refined during validation
													"600000",
													omit,
													omit,
													omit
													);
				m_req:= {Register:=valueof(m_register3ptyUe)};

				m_ResponseReg_3ptyUe :=  m_Response_2xxonREGISTER_IMS(
																c_statusLine200,
																vc_callId,
																p_cSeq_s,
																vc_from,
																vc_to,
																vc_via_REG,
																vc_contact,
																m_SipUrl_currDomain(vc_userprofile),
																vc_from.addressField.nameAddr.addrSpec
																);
				
				f_init_userprofile(c_userProfile_SCSCFwithHomeUE);
				f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_AS); //AS as SCCAS
				f_initSipUrl(c_userProfile_SCSCFwithHomeUE);

				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync preambleDone

				f_setHeaders_REGISTER_AS(v_cSeq_s);//AS INTERFACE REGISTER				
			    f_sendRegistrationAndAwait200Ok(
										        v_cSeq_s,
											    m_REGISTER_Request_AS(
												    vc_requestUri, 
												    vc_callId, 
												    vc_cSeq, 
												        vc_from, 
												    vc_to, 
												    vc_via_REG, 
												    vc_contact, 
												    -,
												    "600000",
												    m_contentType("multipart/mixed",{m_contentTypeBoundary(c_boundary)}) ,
												    m_MBody_MIME_SipReqResp(c_boundary,m_req,m_ResponseReg_3ptyUe)
							                     ),
				                                 mw_Response_2xxonREGISTER_AS(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)
											 );
			    
			    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
			
				f_IncCSeq(v_cSeq_s);
				/*LibIms_Steps.*/f_setHeaders_INVITE_AS(v_cSeq_s, f_initSipUrl(c_userProfile_PCSCFwithHomeUE), f_initSipUrl(c_userProfile_SCSCFwithHomeUE));
				f_SendINVITE(
							 m_sccas_invite(
											vc_requestUri,
											vc_callId, 
											p_cSeq_s, 
											vc_from, vc_to, vc_via_REG, 
											vc_contact,
											-, -, -,
											m_MBody_SDP(vc_sdp_local)
											));
				tc_ack.start;
				alt {
					[] SIPP.receive(mw_sccas_Response_2xxonINVITE(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) {
						tc_ack.stop;
						log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***");
						f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync
					}
					[] tc_ack.timeout {
						f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync 
					}
				}			

			
			}  //End of function TP_ISC_SCCAS_ORI_INV_01
        
        }  //End of group TP_Distinction_of_requests_sent_to_the_SCCAS
    } // End of group Group_7_3
     
    group Group_8_3 {