Loading ttcn/AtsSccas/AtsSccas_Steps.ttcn +24 −0 Original line number Diff line number Diff line Loading @@ -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 ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +113 −2 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 { Loading Loading
ttcn/AtsSccas/AtsSccas_Steps.ttcn +24 −0 Original line number Diff line number Diff line Loading @@ -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
ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +113 −2 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 { Loading