Loading AtsCommon/SS_Ims_TCFunctions.ttcn +97 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,103 @@ module SS_Ims_TCFunctions { group TermUserE{ function f_Sip_TIP_U01_001_PCSCF(in CSeq p_cSeq_s) runs on ImsComponent { var template Response v_Response; // Request-Uri refers to home network (SUT) // UE1 registers its public sip-url in home network (SUT) // UE contact is in home network (SUT) // UE authorizaton data is in home network (SUT) f_IMS_preamble_woRegistration(c_userProfile_PCSCFwithHomeUE, p_cSeq_s); // LibSip f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Testbody // INVITE to UE1@IMS LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_UE1atSUThome); f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, m_Supported_fromChange, omit, m_MBody_SDP(vc_sdp_local))); select (PX_TC_VA){ // PIXIT for TC VARIANT - awaiting 18x or 200 case (1) { // 180 Ringing // add check if right Supported: fromChange is present v_Response := mw_Response_Supported(c_statusLine180, vc_callId, vc_cSeq, m_Supported_fromChange); f_awaitingResponse(v_Response); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); f_awaitingResponse(mw_Response_Base(c_statusLine200,vc_callId, vc_cSeq)); f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via)); } case (2) { // 183 Session in Progress // add check if right Supported: fromChange is present v_Response := mw_Response_Supported(c_statusLine180, vc_callId, vc_cSeq, m_Supported_fromChange); f_awaitingResponse(v_Response); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq)); f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via)); } case else { // 200 OK // add check if right PAssertedID is present v_Response := mw_Response_Supported(c_statusLine180, vc_callId, vc_cSeq, m_Supported_fromChange); f_awaitingResponse(v_Response); f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via)); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); } } f_check_Conversation(); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //Send BYE and awaiting response f_terminateCall_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To); f_SIP_postamble_UE1_withoutRegistration(); }// end f_Sip_TIP_U01_001_PCSCF function f_Sip_TIP_U01_002_PCSCF(in CSeq p_cSeq_s) runs on ImsComponent { var template Response v_Response; // Request-Uri refers to home network (SUT) // UE1 registers its public sip-url in home network (SUT) // UE contact is in home network (SUT) // UE authorizaton data is in home network (SUT) f_IMS_preamble_woRegistration(c_userProfile_PCSCFwithHomeUE, p_cSeq_s); // LibSip f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Testbody // INVITE to UE1@IMS LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_UE2atSUThome); vc_requestUri := f_initSipUrl(c_userProfile_UE1atSUThome); // Request URI of Invite is diffent than To header f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, m_Supported_fromChange, omit, m_MBody_SDP(vc_sdp_local))); // 180 Ringing and 200 OK // add check if right PAssertedID is present v_Response := mw_Response_Supported(c_statusLine180, vc_callId, vc_cSeq, m_Supported_fromChange); f_awaitingResponse(v_Response); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); v_Response := mw_Response_Supported(c_statusLine200, vc_callId, vc_cSeq, m_Supported_fromChange); f_awaitingResponse(v_Response); f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via)); // the UPDATE should come from whoever the INVITE was to, now we axpect the UPDATE from him in the transaction f_awaitingUPDATE(mw_UPDATE_Request_fromChange(mw_From(vc_requestUri))); f_check_Conversation(); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //Send BYE and awaiting response f_terminateCall_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To); f_SIP_postamble_UE1_withoutRegistration(); }// end f_Sip_TIP_U01_002_PCSCF function f_Sip_TIP_U01_003_PCSCF(in CSeq p_cSeq_s) runs on ImsComponent { var template Response v_Response; Loading Loading
AtsCommon/SS_Ims_TCFunctions.ttcn +97 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,103 @@ module SS_Ims_TCFunctions { group TermUserE{ function f_Sip_TIP_U01_001_PCSCF(in CSeq p_cSeq_s) runs on ImsComponent { var template Response v_Response; // Request-Uri refers to home network (SUT) // UE1 registers its public sip-url in home network (SUT) // UE contact is in home network (SUT) // UE authorizaton data is in home network (SUT) f_IMS_preamble_woRegistration(c_userProfile_PCSCFwithHomeUE, p_cSeq_s); // LibSip f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Testbody // INVITE to UE1@IMS LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_UE1atSUThome); f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, m_Supported_fromChange, omit, m_MBody_SDP(vc_sdp_local))); select (PX_TC_VA){ // PIXIT for TC VARIANT - awaiting 18x or 200 case (1) { // 180 Ringing // add check if right Supported: fromChange is present v_Response := mw_Response_Supported(c_statusLine180, vc_callId, vc_cSeq, m_Supported_fromChange); f_awaitingResponse(v_Response); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); f_awaitingResponse(mw_Response_Base(c_statusLine200,vc_callId, vc_cSeq)); f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via)); } case (2) { // 183 Session in Progress // add check if right Supported: fromChange is present v_Response := mw_Response_Supported(c_statusLine180, vc_callId, vc_cSeq, m_Supported_fromChange); f_awaitingResponse(v_Response); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq)); f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via)); } case else { // 200 OK // add check if right PAssertedID is present v_Response := mw_Response_Supported(c_statusLine180, vc_callId, vc_cSeq, m_Supported_fromChange); f_awaitingResponse(v_Response); f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via)); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); } } f_check_Conversation(); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //Send BYE and awaiting response f_terminateCall_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To); f_SIP_postamble_UE1_withoutRegistration(); }// end f_Sip_TIP_U01_001_PCSCF function f_Sip_TIP_U01_002_PCSCF(in CSeq p_cSeq_s) runs on ImsComponent { var template Response v_Response; // Request-Uri refers to home network (SUT) // UE1 registers its public sip-url in home network (SUT) // UE contact is in home network (SUT) // UE authorizaton data is in home network (SUT) f_IMS_preamble_woRegistration(c_userProfile_PCSCFwithHomeUE, p_cSeq_s); // LibSip f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Testbody // INVITE to UE1@IMS LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_UE2atSUThome); vc_requestUri := f_initSipUrl(c_userProfile_UE1atSUThome); // Request URI of Invite is diffent than To header f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, m_Supported_fromChange, omit, m_MBody_SDP(vc_sdp_local))); // 180 Ringing and 200 OK // add check if right PAssertedID is present v_Response := mw_Response_Supported(c_statusLine180, vc_callId, vc_cSeq, m_Supported_fromChange); f_awaitingResponse(v_Response); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); v_Response := mw_Response_Supported(c_statusLine200, vc_callId, vc_cSeq, m_Supported_fromChange); f_awaitingResponse(v_Response); f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via)); // the UPDATE should come from whoever the INVITE was to, now we axpect the UPDATE from him in the transaction f_awaitingUPDATE(mw_UPDATE_Request_fromChange(mw_From(vc_requestUri))); f_check_Conversation(); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //Send BYE and awaiting response f_terminateCall_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To); f_SIP_postamble_UE1_withoutRegistration(); }// end f_Sip_TIP_U01_002_PCSCF function f_Sip_TIP_U01_003_PCSCF(in CSeq p_cSeq_s) runs on ImsComponent { var template Response v_Response; Loading