Loading CW/CW_TC_Functions.ttcn +96 −0 Original line number Diff line number Diff line Loading @@ -505,6 +505,102 @@ module CW_TC_Functions { /** * * @desc test case function f_Sip_CW_U01_009_PCSCF PCSCF component * @param p_cSeq_s actual cseq number * @verdict */ function f_Sip_CW_U01_009_PCSCF(in CSeq p_cSeq_s) runs on ImsComponent { var CallId vc_callId_UE2, vc_callId_UE3; var CSeq vc_cSeq_UE2, vc_cSeq_UE3; var SipUrl vc_requestUri_UE2; var From vc_from_UE2; var To vc_to_UE2; var Via vc_via_UE2; // Request-Uri refers to home network (SUT) f_IMS_preamble_woRegistration(c_userProfile_PCSCFwithHomeUE, p_cSeq_s); // LibSip f_awaitingRegistration_IMS_gm(p_cSeq_s); // Call1 esthablishment // INVITE to UE2@SUThome vc_xml_local := valueof(m_XmlBody_CW(m_CW({}))); // communication_waiting_indication LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_UE2atSUThome); 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, omit, omit, m_MBody_MIMESdpXml(vc_sdp_local, vc_xml_local))); f_awaitingResponse(mw_Response_Base(c_statusLine180, vc_callId, vc_cSeq)); 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)); vc_callId_UE2 := vc_callId; vc_cSeq_UE2 := vc_cSeq; vc_requestUri_UE2 := vc_requestUri; vc_from_UE2 := vc_from; vc_to_UE2 := vc_to; vc_via_UE2 := vc_via; f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Testbody // INVITE to UE3@SUThome vc_xml_local := valueof(m_XmlBody_CW(m_CW({}))); // communication_waiting_indication LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_UE3atSUThome); vc_callId_UE3 := vc_callId; vc_cSeq_UE3 := vc_cSeq; 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, omit, omit, m_MBody_MIMESdpXml(vc_sdp_local, vc_xml_local))); f_awaitingResponse(mw_Response_Base(c_statusLine180, vc_callId, vc_cSeq)); // ACTION: AWAIT BYE for CALL1 // switch to CAll1 vc_callId := vc_callId_UE2; vc_cSeq := vc_cSeq_UE2; vc_requestUri := vc_requestUri_UE2; vc_from := vc_from_UE2; vc_to := vc_to_UE2; vc_via := vc_via_UE2; LibIms_Steps.f_setHeadersCANCEL(vc_cSeq,c_userProfile_UE2atSUThome); f_SendCANCEL(m_CANCEL_Request_IMS( vc_requestUri, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, vc_route )); // receive 200 OK f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq)); f_awaitingResponse(mw_Response_Base(c_statusLine487, vc_callId, vc_cSeq)); f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via)); // AWAIT 200OK for CALL2 // switch to CAll2 vc_callId := vc_callId_UE3; vc_cSeq := vc_cSeq_UE3; 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)); // POSTAMBLE for CALL2: await 200 (initial invite), termination f_SendBYE(m_BYE_Request_Base( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via)); f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // deregistration of UE f_IMS_postamble_awaitDeRegistration(); } // end f_Sip_CW_U01_009_PCSCF /** * * @desc test case function f_Sip_CW_U01_010_PCSCF PCSCF component * @param p_cSeq_s actual cseq number * @verdict Loading Loading
CW/CW_TC_Functions.ttcn +96 −0 Original line number Diff line number Diff line Loading @@ -505,6 +505,102 @@ module CW_TC_Functions { /** * * @desc test case function f_Sip_CW_U01_009_PCSCF PCSCF component * @param p_cSeq_s actual cseq number * @verdict */ function f_Sip_CW_U01_009_PCSCF(in CSeq p_cSeq_s) runs on ImsComponent { var CallId vc_callId_UE2, vc_callId_UE3; var CSeq vc_cSeq_UE2, vc_cSeq_UE3; var SipUrl vc_requestUri_UE2; var From vc_from_UE2; var To vc_to_UE2; var Via vc_via_UE2; // Request-Uri refers to home network (SUT) f_IMS_preamble_woRegistration(c_userProfile_PCSCFwithHomeUE, p_cSeq_s); // LibSip f_awaitingRegistration_IMS_gm(p_cSeq_s); // Call1 esthablishment // INVITE to UE2@SUThome vc_xml_local := valueof(m_XmlBody_CW(m_CW({}))); // communication_waiting_indication LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_UE2atSUThome); 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, omit, omit, m_MBody_MIMESdpXml(vc_sdp_local, vc_xml_local))); f_awaitingResponse(mw_Response_Base(c_statusLine180, vc_callId, vc_cSeq)); 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)); vc_callId_UE2 := vc_callId; vc_cSeq_UE2 := vc_cSeq; vc_requestUri_UE2 := vc_requestUri; vc_from_UE2 := vc_from; vc_to_UE2 := vc_to; vc_via_UE2 := vc_via; f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Testbody // INVITE to UE3@SUThome vc_xml_local := valueof(m_XmlBody_CW(m_CW({}))); // communication_waiting_indication LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_UE3atSUThome); vc_callId_UE3 := vc_callId; vc_cSeq_UE3 := vc_cSeq; 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, omit, omit, m_MBody_MIMESdpXml(vc_sdp_local, vc_xml_local))); f_awaitingResponse(mw_Response_Base(c_statusLine180, vc_callId, vc_cSeq)); // ACTION: AWAIT BYE for CALL1 // switch to CAll1 vc_callId := vc_callId_UE2; vc_cSeq := vc_cSeq_UE2; vc_requestUri := vc_requestUri_UE2; vc_from := vc_from_UE2; vc_to := vc_to_UE2; vc_via := vc_via_UE2; LibIms_Steps.f_setHeadersCANCEL(vc_cSeq,c_userProfile_UE2atSUThome); f_SendCANCEL(m_CANCEL_Request_IMS( vc_requestUri, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, vc_route )); // receive 200 OK f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq)); f_awaitingResponse(mw_Response_Base(c_statusLine487, vc_callId, vc_cSeq)); f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via)); // AWAIT 200OK for CALL2 // switch to CAll2 vc_callId := vc_callId_UE3; vc_cSeq := vc_cSeq_UE3; 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)); // POSTAMBLE for CALL2: await 200 (initial invite), termination f_SendBYE(m_BYE_Request_Base( vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via)); f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId, vc_cSeq)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // deregistration of UE f_IMS_postamble_awaitDeRegistration(); } // end f_Sip_CW_U01_009_PCSCF /** * * @desc test case function f_Sip_CW_U01_010_PCSCF PCSCF component * @param p_cSeq_s actual cseq number * @verdict Loading