Loading ttcn/AtsImsIot/AtsImsIot_Emergency.ttcn +6 −8 Original line number Diff line number Diff line Loading @@ -411,7 +411,7 @@ module AtsImsIot_Emergency { f_mtc_check_TP_MW_IBCF_100Trying_01(vc_vxlte_monitor_components.mwBE, -, v_sip); f_mtc_check_TP_MM_PSAP_INVITE_01(vc_vxlte_monitor_components.mwB_PSAP, true); // Event 12 f_mtc_check_TP_MM_PSAP_100Trying_01(vc_vxlte_monitor_components.mwBE, -, v_sip); f_mtc_check_TP_MM_PSAP_100Trying_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip); // 183 Session Progress f_mtc_check_TP_MM_PSAP_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip); // Event 13 Loading @@ -430,8 +430,8 @@ module AtsImsIot_Emergency { f_mtc_check_TP_GX_PGW_RAA_02(vc_vxlte_monitor_components.gx); // Event 18 f_mtc_check_TP_RX_PCRF_AAA_02(vc_vxlte_monitor_components.rx); // Event 19 f_mtc_check_TP_MM_PSAP_1XXRESP_01(vc_vxlte_monitor_components.mwB_PSAP); // 180 Ringing – Event 22 // FIXME f_mtc_check_TP_MW_IBCF_180RINGING_01(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 23 f_mtc_check_TP_MM_PSAP_180RINGING_01(vc_vxlte_monitor_components.mwB_PSAP); // 180 Ringing – Event 22 f_mtc_check_TP_MW_IBCF_180RINGING_01(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 23 f_mtc_check_TP_MW_ECSCF_180RINGING_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 24 f_mtc_check_TP_GM_PCSCF_180RINGING_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 25 Loading @@ -444,16 +444,14 @@ module AtsImsIot_Emergency { f_mtc_userCheckPeerIsRinging(v_ueA); f_mtc_userAnswerCall(v_psap); //f_mtc_check_TP_IC_IBCF_2XXRESP_01(vc_vxlte_monitor_components.mwB_PSAP, true); // 200 OK – Event 26 //f_mtc_check_TP_IC_IBCF_2XXRESP_02(vc_vxlte_monitor_components.mwB_PSAP, true); // 200 OK – Event 25 f_mtc_check_TP_MM_PSAP_2XXRESP_03(vc_vxlte_monitor_components.mwB_PSAP); // 200 OK – Event 26 // FIXME f_mtc_check_TP_???_2XXRESP_03(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 27 f_mtc_check_TP_MM_PSAP_200OK_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip); // 200 OK Event 26 f_mtc_check_TP_MW_IBCF_200OK(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 27 f_mtc_check_TP_MW_ECSCF_200OK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 28 f_mtc_check_TP_GM_PCSCF_200OK_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 29 f_mtc_check_TP_GM_PCSCF_ACK_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 30 f_mtc_check_TP_MW_ECSCF_ACK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 31 // FIXME f_mtc_check_TP_???_ACK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 32 f_mtc_check_TP_MW_IBCF_ACK_01(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 32 f_mtc_check_TP_MM_PSAP_ACK_01(vc_vxlte_monitor_components.mwB_PSAP); // ACK – Event 33 f_mtc_userCheckCallEstablished(v_ueA); // Event 34 Loading ttcn/AtsImsIot/AtsImsIot_TP_behavior_MM.ttcn +338 −6 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ module AtsImsIot_TP_behavior_MM { group imsInvite { /** * @desc Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg).. * @desc Verify that the IBCF successfully processes an initial INVITE (Originating Leg).. * Initial conditions with { * the UE_A entity isAttachedTo the EPC_A and * the PSAP entity isAttachedTo the EPC_B and Loading @@ -43,7 +43,7 @@ module AtsImsIot_TP_behavior_MM { * Expected behaviour * ensure that { * when { * the PSAP entity receives an INVITE containing * the IMS_IBCF_A entity receives an INVITE containing * From indicating value PX_UE_A_SIP_URI, * To indicating value PX_PSAP_SIP_URI, * CallId indicating value PX_UE_A_CALLID, Loading @@ -55,11 +55,22 @@ module AtsImsIot_TP_behavior_MM { * Version indicating value "0" * ; * ;; * from the IMS_EBCF_A entity * from the IMS_E_CSCF_A entity * } * then { * the PSAP entity sends an 100_Trying * to the IMS_IBCF_A entity * the IMS_IBCF_A entity sends an INVITE containing * From indicating value PX_UE_A_SIP_URI, * To indicating value PX_PSAP_SIP_URI, * CallId indicating value PX_UE_A_CALLID, * Via indicating value PX_UE_A_VIA, * Route indicating value PX_UE_A_SERVICE_ROUTE, * PAccessNetworkInfo, * MessageBody containing * SDP containing * Version indicating value "0" * ; * ;; * to the PSAP entity * } * } */ Loading Loading @@ -97,4 +108,325 @@ module AtsImsIot_TP_behavior_MM { } // End of group imsInvite } // end module AtsImsIot_TP_behavior_MM No newline at end of file group ims100Trying { /** * @desc Verify that the IBCF successfully processes a 100 (Trying) provisional response on initial INVITE (Originating Leg). * Initial conditions with { * the UE_A entity isAttachedTo the EPC_A and * the PSAP entity isAttachedTo the EPC_B and * the UE_A entity isRegisteredTo the IMS_A and * the PSAP entity isRegisteredTo the IMS_B * } * * Expected behaviour * ensure that { * when { * the IMS_IBCF_A entity receives a 100_Trying * from the PSAP entity * } * then { * the IMS_IBCF_A entity sends a 100_Trying * to the IMS_E_CSCF_A entity * } * } */ function f_mtc_check_TP_MW_IBSCF_100Trying_01( in SipInterfaceMonitor p_monitorCompRef, in boolean p_checkMessage := false, in SipMessage p_sip ) runs on ImsTestCoordinator { if (isvalue(p_monitorCompRef)) { // Check the 100 TRYING p_monitorCompRef.start( f_Iot_Sip_receive( { mw_SipResponse(mw_TP_MW_IBCF_100Trying_01( p_sip.request.msgHeader.cSeq, p_sip.request.msgHeader.fromField, p_sip.request.msgHeader.toField )) }, { mw_SipResponse(mw_100Trying_Base) }, { 0, omit }, "TP_MW_IBCF_100Trying_01", false, p_checkMessage ) ); p_monitorCompRef.done; } } // End of function f_mtc_check_TP_MW_IBSCF_100Trying_01 } // End of group ims100Trying group ims180Ringing { /** * @desc Verify that the IBCF successfully processes a 180 (Ringing) provisional response on initial INVITE (Originating Leg). * Initial conditions with { * the UE_A entity isAttachedTo the EPC_A and * the PSAP entity isAttachedTo the EPC_B and * the UE_A entity isRegisteredTo the IMS_A and * the PSAP entity isRegisteredTo the IMS_B * } * * Expected behaviour * ensure that { * when { * the IMS_IBCF_A entity receives a 180_Ringing containing * From indicating value PX_PSAP_SIP_URI, * To indicating value PX_UE_A_SIP_URI, * CallId indicating value PX_PSAP_CALLID, * Via indicating value PX_PSAP_VIA, * Route indicating value PX_PSAP_SERVICE_ROUTE * ; * from the PSAP entity * } * then { * the IMS_IBCF_A entity sends a 180_Ringing containing * From indicating value PX_PSAP_SIP_URI, * To indicating value PX_UE_A_SIP_URI, * CallId indicating value PX_PSAP_CALLID, * Via indicating value PX_PSAP_VIA, * Route indicating value PX_PSAP_SERVICE_ROUTE * ; * to the IMS_E_CSCF_A entity * } * } */ function f_mtc_check_TP_MM_PSAP_180RINGING_01( in SipInterfaceMonitor p_monitorCompRef, in boolean p_checkMessage := false, in SipMessage p_sip ) runs on ImsTestCoordinator { if (isvalue(p_monitorCompRef)) { // Check the 180 RINGING p_monitorCompRef.start( f_Iot_Sip_receive( { mw_SipResponse(mw_TP_MM_PSAP_180Ringing_01( p_sip.request.msgHeader.cSeq, p_sip.request.msgHeader.fromField, mw_To_NameAddr_TelUrl( -, p_sip.request.msgHeader.toField.addressField.addrSpecUnion.components.tel.subscriber ))) }, { mw_SipResponse(mw_180Ringing_Base) }, { 0, omit }, "TP_MM_PSAP_180RINGING_01", false, p_checkMessage ) ); p_monitorCompRef.done; } } // End of function f_mtc_check_TP_MM_PSAP_180RINGING_01 } // End of group ims180Ringing group ims183SessionProgress { /** * @desc Verify that the IBCF successfully processes a 183 (Ringing) provisional response on initial INVITE (Originating Leg). * Initial conditions with { * the UE_A entity isAttachedTo the EPC_A and * the PSAP entity isAttachedTo the EPC_B and * the UE_A entity isRegisteredTo the IMS_A and * the PSAP entity isRegisteredTo the IMS_B * } * * Expected behaviour * ensure that { * when { * the IMS_IBCF_A entity receives a 183_SessionProgress containing * From indicating value PX_SAP_URI, * To indicating value PX_UE_A_SIP_URI, * CallId indicating value PX_SAP_CALLID, * Via indicating value PX_PSAP_VIA, * Route indicating value PX_PSAP_SERVICE_ROUTE * ; * from the PSAP entity * } * then { * the IMS_IBCF_A entity sends a 183_SessionProgress containing * From indicating value PX_PSAP_SIP_URI, * To indicating value PX_UE_A_SIP_URI, * CallId indicating value PX_PSAP_CALLID, * Via indicating value PX_PSAP_VIA, * Route indicating value PX_PSAP_SERVICE_ROUTE * ; * to the IMS_E_CSCF_A entity * } * } */ function f_mtc_check_TP_MM_PSAP_183SESSION_PROGRESS_01( in SipInterfaceMonitor p_monitorCompRef, in boolean p_checkMessage := false, in SipMessage p_sip ) runs on ImsTestCoordinator { if (isvalue(p_monitorCompRef)) { // Check the 183 SESSION_PROGRESS p_monitorCompRef.start( f_Iot_Sip_receive( { mw_SipResponse(mw_TP_MM_PSAP_183SessionProgress_01( p_sip.request.msgHeader.cSeq, p_sip.request.msgHeader.fromField, p_sip.request.msgHeader.toField )) }, { mw_SipResponse(mw_183SessionProgress_Base) }, { 0, omit }, "TP_MM_PSAP_183SESSION_PROGRESS_01", false, p_checkMessage ) ); p_monitorCompRef.done; } } // End of function f_mtc_check_TP_MM_PSAP_183SESSION_PROGRESS_01 } // End of group ims183SessionProgress group ims200Ok { /** * @desc Verify that the IBCF successfully processes a 200 (OK) provisional response on initial INVITE (Originating Leg). * Initial conditions with { * the UE_A entity isAttachedTo the EPC_A and * the PSAP entity isAttachedTo the EPC_B and * the UE_A entity isRegisteredTo the IMS_A and * the PSAP entity isRegisteredTo the IMS_B * } * * Expected behaviour * ensure that { * when { * the IMS_IBCF_A entity receives a 200_Ok containing * From indicating value PX_PSAP_SIP_URI, * To indicating value PX_UE_A_SIP_URI, * CallId indicating value PX_PSAP_CALLID, * Via indicating value PX_PSAP_VIA, * Route indicating value PX_PSAP_SERVICE_ROUTE, * not PChargingVector, * not PChargingFunctionAddresses, * not PPreferredIdentity * ; * from the PSAP entity * } * then { * the IMS_IBCF_A entity sends a 200_Ok containing * From indicating value PX_PSAP_SIP_URI, * To indicating value PX_UE_A_SIP_URI, * CallId indicating value PX_PSAP_CALLID, * Via indicating value PX_PSAP_VIA, * Route indicating value PX_PSAP_SERVICE_ROUTE, * PChargingVector, * PChargingFunctionAddresses, * PPreferredIdentity * ; * to the IMS_E_CSCF_A entity * } * } */ function f_mtc_check_TP_MM_PSAP_200OK_01( in SipInterfaceMonitor p_monitorCompRef, in boolean p_checkMessage := false, in SipMessage p_sip ) runs on ImsTestCoordinator { if (isvalue(p_monitorCompRef)) { var ImsUserInfo v_userInfoB := f_getSipUserId(PX_EUT_B); // Check the 200 OK p_monitorCompRef.start( f_Iot_Sip_receive( { mw_SipResponse(mw_200OK( p_sip.request.msgHeader.cSeq, p_sip.request.msgHeader.callId, p_sip.request.msgHeader.fromField, ( mw_To_NameAddr_TelUrl({quotedString:=f_getSipUserId(PX_EUT_B).publicId}), mw_To_AddrUnion_TelUrl(f_getTelUserId(PX_EUT_B).publicId), p_sip.request.msgHeader.toField ) )) }, { mw_SipResponse(mw_200OK_Base) }, { 0, omit }, "TP_MM_PSAP_200OK_01", false, p_checkMessage ) ); p_monitorCompRef.done; } } // End of function f_mtc_check_TP_MM_PSAP_200OK_01 } // End of group ims200Ok group imsAck { /** * @desc Verify that the IBCF successfully processes a ACK provisional response on initial INVITE (Originating Leg). * Initial conditions with { * the UE_A entity isAttachedTo the EPC_A and * the PSAP entity isAttachedTo the EPC_B and * the UE_A entity isRegisteredTo the IMS_A and * the PSAP entity isRegisteredTo the IMS_B * } * * Expected behaviour * ensure that { * when { * the IMS_IBCF_A entity receives an ACK containing * From indicating value PX_UE_A_SIP_URI, * To indicating value PX_PSAP_SIP_URI, * CallId indicating value PX_UE_A_CALLID, * Via indicating value PX_UE_A_VIA, * Route indicating value PX_UE_A_SERVICE_ROUTE * ; * from the IMS_E_CSCF_A entity * } * then { * the IMS_IBCF_A entity sends an ACK containing * From indicating value PX_UE_A_SIP_URI, * To indicating value PX_PSAP_SIP_URI, * CallId indicating value PX_UE_A_CALLID, * Via indicating value PX_UE_A_VIA, * Route indicating value PX_UE_A_SERVICE_ROUTE * ; * from the PSAP entity * } * } */ function f_mtc_check_TP_MM_PSAP_ACK_01( in SipInterfaceMonitor p_monitorCompRef, in boolean p_checkMessage := false, in SipMessage p_sip ) runs on ImsTestCoordinator { if (isvalue(p_monitorCompRef)) { // Check the ACK p_monitorCompRef.start( f_Iot_Sip_receive( { mw_SipRequest(mw_TP_MM_PSAP_ACK_01( p_sip.request.msgHeader.callId, p_sip.request.msgHeader.cSeq, -, // FIXME To be set p_sip.request.msgHeader.fromField, p_sip.request.msgHeader.toField )) }, { mw_SipRequest(mw_ACK_Request_Base) }, { 0, omit }, "TP_MM_PSAP_ACK_01 - Request", false, p_checkMessage ) ); p_monitorCompRef.done; } } // End of function f_mtc_check_TP_MM_PSAP_ACK_01 } // End of group imsAck } // End of module AtsImsIot_TP_behavior_MM No newline at end of file ttcn/AtsImsIot/AtsImsIot_TP_behavior_MW_EB.ttcn +1 −1 Original line number Diff line number Diff line Loading @@ -297,7 +297,7 @@ module AtsImsIot_TP_behavior_MW_EB { * Expected behaviour * ensure that { * when { * the IMS_EP_CSCF_A entity receives a 200_Ok containing * the IMS_E_CSCF_A entity receives a 200_Ok containing * From indicating value PX_PSAP_SIP_URI, * To indicating value PX_UE_A_SIP_URI, * CallId indicating value PX_PSAP_CALLID, Loading ttcn/AtsImsIot/AtsImsIot_Templates_MM.ttcn +103 −0 File changed.Preview size limit exceeded, changes collapsed. Show changes ttcn/AtsImsIot/AtsImsIot_Templates_MW.ttcn +0 −12 Original line number Diff line number Diff line Loading @@ -1134,18 +1134,6 @@ module AtsImsIot_Templates_MW { } } // End of template mw_TP_MW_IBCF_ACK_01 template (present) ACK_Request mw_TP_MW_IBCF_ACK_02( // TODO To be enforced template (present) CallId p_callId := ?, template (present) CSeq p_cSeq := ?, template (present) SipUrl p_ack_uri := ?, template (present) From p_from := ?, template (present) To p_to := ? ) modifies mw_TP_MW_IBCF_ACK_01 := { msgHeader := { route := omit } } // End of template mw_TP_MW_IBCF_ACK_02 } } // End of module AtsImsIot_Templates_MW No newline at end of file Loading
ttcn/AtsImsIot/AtsImsIot_Emergency.ttcn +6 −8 Original line number Diff line number Diff line Loading @@ -411,7 +411,7 @@ module AtsImsIot_Emergency { f_mtc_check_TP_MW_IBCF_100Trying_01(vc_vxlte_monitor_components.mwBE, -, v_sip); f_mtc_check_TP_MM_PSAP_INVITE_01(vc_vxlte_monitor_components.mwB_PSAP, true); // Event 12 f_mtc_check_TP_MM_PSAP_100Trying_01(vc_vxlte_monitor_components.mwBE, -, v_sip); f_mtc_check_TP_MM_PSAP_100Trying_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip); // 183 Session Progress f_mtc_check_TP_MM_PSAP_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip); // Event 13 Loading @@ -430,8 +430,8 @@ module AtsImsIot_Emergency { f_mtc_check_TP_GX_PGW_RAA_02(vc_vxlte_monitor_components.gx); // Event 18 f_mtc_check_TP_RX_PCRF_AAA_02(vc_vxlte_monitor_components.rx); // Event 19 f_mtc_check_TP_MM_PSAP_1XXRESP_01(vc_vxlte_monitor_components.mwB_PSAP); // 180 Ringing – Event 22 // FIXME f_mtc_check_TP_MW_IBCF_180RINGING_01(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 23 f_mtc_check_TP_MM_PSAP_180RINGING_01(vc_vxlte_monitor_components.mwB_PSAP); // 180 Ringing – Event 22 f_mtc_check_TP_MW_IBCF_180RINGING_01(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 23 f_mtc_check_TP_MW_ECSCF_180RINGING_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 24 f_mtc_check_TP_GM_PCSCF_180RINGING_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 25 Loading @@ -444,16 +444,14 @@ module AtsImsIot_Emergency { f_mtc_userCheckPeerIsRinging(v_ueA); f_mtc_userAnswerCall(v_psap); //f_mtc_check_TP_IC_IBCF_2XXRESP_01(vc_vxlte_monitor_components.mwB_PSAP, true); // 200 OK – Event 26 //f_mtc_check_TP_IC_IBCF_2XXRESP_02(vc_vxlte_monitor_components.mwB_PSAP, true); // 200 OK – Event 25 f_mtc_check_TP_MM_PSAP_2XXRESP_03(vc_vxlte_monitor_components.mwB_PSAP); // 200 OK – Event 26 // FIXME f_mtc_check_TP_???_2XXRESP_03(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 27 f_mtc_check_TP_MM_PSAP_200OK_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip); // 200 OK Event 26 f_mtc_check_TP_MW_IBCF_200OK(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 27 f_mtc_check_TP_MW_ECSCF_200OK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 28 f_mtc_check_TP_GM_PCSCF_200OK_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 29 f_mtc_check_TP_GM_PCSCF_ACK_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 30 f_mtc_check_TP_MW_ECSCF_ACK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 31 // FIXME f_mtc_check_TP_???_ACK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 32 f_mtc_check_TP_MW_IBCF_ACK_01(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 32 f_mtc_check_TP_MM_PSAP_ACK_01(vc_vxlte_monitor_components.mwB_PSAP); // ACK – Event 33 f_mtc_userCheckCallEstablished(v_ueA); // Event 34 Loading
ttcn/AtsImsIot/AtsImsIot_TP_behavior_MM.ttcn +338 −6 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ module AtsImsIot_TP_behavior_MM { group imsInvite { /** * @desc Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg).. * @desc Verify that the IBCF successfully processes an initial INVITE (Originating Leg).. * Initial conditions with { * the UE_A entity isAttachedTo the EPC_A and * the PSAP entity isAttachedTo the EPC_B and Loading @@ -43,7 +43,7 @@ module AtsImsIot_TP_behavior_MM { * Expected behaviour * ensure that { * when { * the PSAP entity receives an INVITE containing * the IMS_IBCF_A entity receives an INVITE containing * From indicating value PX_UE_A_SIP_URI, * To indicating value PX_PSAP_SIP_URI, * CallId indicating value PX_UE_A_CALLID, Loading @@ -55,11 +55,22 @@ module AtsImsIot_TP_behavior_MM { * Version indicating value "0" * ; * ;; * from the IMS_EBCF_A entity * from the IMS_E_CSCF_A entity * } * then { * the PSAP entity sends an 100_Trying * to the IMS_IBCF_A entity * the IMS_IBCF_A entity sends an INVITE containing * From indicating value PX_UE_A_SIP_URI, * To indicating value PX_PSAP_SIP_URI, * CallId indicating value PX_UE_A_CALLID, * Via indicating value PX_UE_A_VIA, * Route indicating value PX_UE_A_SERVICE_ROUTE, * PAccessNetworkInfo, * MessageBody containing * SDP containing * Version indicating value "0" * ; * ;; * to the PSAP entity * } * } */ Loading Loading @@ -97,4 +108,325 @@ module AtsImsIot_TP_behavior_MM { } // End of group imsInvite } // end module AtsImsIot_TP_behavior_MM No newline at end of file group ims100Trying { /** * @desc Verify that the IBCF successfully processes a 100 (Trying) provisional response on initial INVITE (Originating Leg). * Initial conditions with { * the UE_A entity isAttachedTo the EPC_A and * the PSAP entity isAttachedTo the EPC_B and * the UE_A entity isRegisteredTo the IMS_A and * the PSAP entity isRegisteredTo the IMS_B * } * * Expected behaviour * ensure that { * when { * the IMS_IBCF_A entity receives a 100_Trying * from the PSAP entity * } * then { * the IMS_IBCF_A entity sends a 100_Trying * to the IMS_E_CSCF_A entity * } * } */ function f_mtc_check_TP_MW_IBSCF_100Trying_01( in SipInterfaceMonitor p_monitorCompRef, in boolean p_checkMessage := false, in SipMessage p_sip ) runs on ImsTestCoordinator { if (isvalue(p_monitorCompRef)) { // Check the 100 TRYING p_monitorCompRef.start( f_Iot_Sip_receive( { mw_SipResponse(mw_TP_MW_IBCF_100Trying_01( p_sip.request.msgHeader.cSeq, p_sip.request.msgHeader.fromField, p_sip.request.msgHeader.toField )) }, { mw_SipResponse(mw_100Trying_Base) }, { 0, omit }, "TP_MW_IBCF_100Trying_01", false, p_checkMessage ) ); p_monitorCompRef.done; } } // End of function f_mtc_check_TP_MW_IBSCF_100Trying_01 } // End of group ims100Trying group ims180Ringing { /** * @desc Verify that the IBCF successfully processes a 180 (Ringing) provisional response on initial INVITE (Originating Leg). * Initial conditions with { * the UE_A entity isAttachedTo the EPC_A and * the PSAP entity isAttachedTo the EPC_B and * the UE_A entity isRegisteredTo the IMS_A and * the PSAP entity isRegisteredTo the IMS_B * } * * Expected behaviour * ensure that { * when { * the IMS_IBCF_A entity receives a 180_Ringing containing * From indicating value PX_PSAP_SIP_URI, * To indicating value PX_UE_A_SIP_URI, * CallId indicating value PX_PSAP_CALLID, * Via indicating value PX_PSAP_VIA, * Route indicating value PX_PSAP_SERVICE_ROUTE * ; * from the PSAP entity * } * then { * the IMS_IBCF_A entity sends a 180_Ringing containing * From indicating value PX_PSAP_SIP_URI, * To indicating value PX_UE_A_SIP_URI, * CallId indicating value PX_PSAP_CALLID, * Via indicating value PX_PSAP_VIA, * Route indicating value PX_PSAP_SERVICE_ROUTE * ; * to the IMS_E_CSCF_A entity * } * } */ function f_mtc_check_TP_MM_PSAP_180RINGING_01( in SipInterfaceMonitor p_monitorCompRef, in boolean p_checkMessage := false, in SipMessage p_sip ) runs on ImsTestCoordinator { if (isvalue(p_monitorCompRef)) { // Check the 180 RINGING p_monitorCompRef.start( f_Iot_Sip_receive( { mw_SipResponse(mw_TP_MM_PSAP_180Ringing_01( p_sip.request.msgHeader.cSeq, p_sip.request.msgHeader.fromField, mw_To_NameAddr_TelUrl( -, p_sip.request.msgHeader.toField.addressField.addrSpecUnion.components.tel.subscriber ))) }, { mw_SipResponse(mw_180Ringing_Base) }, { 0, omit }, "TP_MM_PSAP_180RINGING_01", false, p_checkMessage ) ); p_monitorCompRef.done; } } // End of function f_mtc_check_TP_MM_PSAP_180RINGING_01 } // End of group ims180Ringing group ims183SessionProgress { /** * @desc Verify that the IBCF successfully processes a 183 (Ringing) provisional response on initial INVITE (Originating Leg). * Initial conditions with { * the UE_A entity isAttachedTo the EPC_A and * the PSAP entity isAttachedTo the EPC_B and * the UE_A entity isRegisteredTo the IMS_A and * the PSAP entity isRegisteredTo the IMS_B * } * * Expected behaviour * ensure that { * when { * the IMS_IBCF_A entity receives a 183_SessionProgress containing * From indicating value PX_SAP_URI, * To indicating value PX_UE_A_SIP_URI, * CallId indicating value PX_SAP_CALLID, * Via indicating value PX_PSAP_VIA, * Route indicating value PX_PSAP_SERVICE_ROUTE * ; * from the PSAP entity * } * then { * the IMS_IBCF_A entity sends a 183_SessionProgress containing * From indicating value PX_PSAP_SIP_URI, * To indicating value PX_UE_A_SIP_URI, * CallId indicating value PX_PSAP_CALLID, * Via indicating value PX_PSAP_VIA, * Route indicating value PX_PSAP_SERVICE_ROUTE * ; * to the IMS_E_CSCF_A entity * } * } */ function f_mtc_check_TP_MM_PSAP_183SESSION_PROGRESS_01( in SipInterfaceMonitor p_monitorCompRef, in boolean p_checkMessage := false, in SipMessage p_sip ) runs on ImsTestCoordinator { if (isvalue(p_monitorCompRef)) { // Check the 183 SESSION_PROGRESS p_monitorCompRef.start( f_Iot_Sip_receive( { mw_SipResponse(mw_TP_MM_PSAP_183SessionProgress_01( p_sip.request.msgHeader.cSeq, p_sip.request.msgHeader.fromField, p_sip.request.msgHeader.toField )) }, { mw_SipResponse(mw_183SessionProgress_Base) }, { 0, omit }, "TP_MM_PSAP_183SESSION_PROGRESS_01", false, p_checkMessage ) ); p_monitorCompRef.done; } } // End of function f_mtc_check_TP_MM_PSAP_183SESSION_PROGRESS_01 } // End of group ims183SessionProgress group ims200Ok { /** * @desc Verify that the IBCF successfully processes a 200 (OK) provisional response on initial INVITE (Originating Leg). * Initial conditions with { * the UE_A entity isAttachedTo the EPC_A and * the PSAP entity isAttachedTo the EPC_B and * the UE_A entity isRegisteredTo the IMS_A and * the PSAP entity isRegisteredTo the IMS_B * } * * Expected behaviour * ensure that { * when { * the IMS_IBCF_A entity receives a 200_Ok containing * From indicating value PX_PSAP_SIP_URI, * To indicating value PX_UE_A_SIP_URI, * CallId indicating value PX_PSAP_CALLID, * Via indicating value PX_PSAP_VIA, * Route indicating value PX_PSAP_SERVICE_ROUTE, * not PChargingVector, * not PChargingFunctionAddresses, * not PPreferredIdentity * ; * from the PSAP entity * } * then { * the IMS_IBCF_A entity sends a 200_Ok containing * From indicating value PX_PSAP_SIP_URI, * To indicating value PX_UE_A_SIP_URI, * CallId indicating value PX_PSAP_CALLID, * Via indicating value PX_PSAP_VIA, * Route indicating value PX_PSAP_SERVICE_ROUTE, * PChargingVector, * PChargingFunctionAddresses, * PPreferredIdentity * ; * to the IMS_E_CSCF_A entity * } * } */ function f_mtc_check_TP_MM_PSAP_200OK_01( in SipInterfaceMonitor p_monitorCompRef, in boolean p_checkMessage := false, in SipMessage p_sip ) runs on ImsTestCoordinator { if (isvalue(p_monitorCompRef)) { var ImsUserInfo v_userInfoB := f_getSipUserId(PX_EUT_B); // Check the 200 OK p_monitorCompRef.start( f_Iot_Sip_receive( { mw_SipResponse(mw_200OK( p_sip.request.msgHeader.cSeq, p_sip.request.msgHeader.callId, p_sip.request.msgHeader.fromField, ( mw_To_NameAddr_TelUrl({quotedString:=f_getSipUserId(PX_EUT_B).publicId}), mw_To_AddrUnion_TelUrl(f_getTelUserId(PX_EUT_B).publicId), p_sip.request.msgHeader.toField ) )) }, { mw_SipResponse(mw_200OK_Base) }, { 0, omit }, "TP_MM_PSAP_200OK_01", false, p_checkMessage ) ); p_monitorCompRef.done; } } // End of function f_mtc_check_TP_MM_PSAP_200OK_01 } // End of group ims200Ok group imsAck { /** * @desc Verify that the IBCF successfully processes a ACK provisional response on initial INVITE (Originating Leg). * Initial conditions with { * the UE_A entity isAttachedTo the EPC_A and * the PSAP entity isAttachedTo the EPC_B and * the UE_A entity isRegisteredTo the IMS_A and * the PSAP entity isRegisteredTo the IMS_B * } * * Expected behaviour * ensure that { * when { * the IMS_IBCF_A entity receives an ACK containing * From indicating value PX_UE_A_SIP_URI, * To indicating value PX_PSAP_SIP_URI, * CallId indicating value PX_UE_A_CALLID, * Via indicating value PX_UE_A_VIA, * Route indicating value PX_UE_A_SERVICE_ROUTE * ; * from the IMS_E_CSCF_A entity * } * then { * the IMS_IBCF_A entity sends an ACK containing * From indicating value PX_UE_A_SIP_URI, * To indicating value PX_PSAP_SIP_URI, * CallId indicating value PX_UE_A_CALLID, * Via indicating value PX_UE_A_VIA, * Route indicating value PX_UE_A_SERVICE_ROUTE * ; * from the PSAP entity * } * } */ function f_mtc_check_TP_MM_PSAP_ACK_01( in SipInterfaceMonitor p_monitorCompRef, in boolean p_checkMessage := false, in SipMessage p_sip ) runs on ImsTestCoordinator { if (isvalue(p_monitorCompRef)) { // Check the ACK p_monitorCompRef.start( f_Iot_Sip_receive( { mw_SipRequest(mw_TP_MM_PSAP_ACK_01( p_sip.request.msgHeader.callId, p_sip.request.msgHeader.cSeq, -, // FIXME To be set p_sip.request.msgHeader.fromField, p_sip.request.msgHeader.toField )) }, { mw_SipRequest(mw_ACK_Request_Base) }, { 0, omit }, "TP_MM_PSAP_ACK_01 - Request", false, p_checkMessage ) ); p_monitorCompRef.done; } } // End of function f_mtc_check_TP_MM_PSAP_ACK_01 } // End of group imsAck } // End of module AtsImsIot_TP_behavior_MM No newline at end of file
ttcn/AtsImsIot/AtsImsIot_TP_behavior_MW_EB.ttcn +1 −1 Original line number Diff line number Diff line Loading @@ -297,7 +297,7 @@ module AtsImsIot_TP_behavior_MW_EB { * Expected behaviour * ensure that { * when { * the IMS_EP_CSCF_A entity receives a 200_Ok containing * the IMS_E_CSCF_A entity receives a 200_Ok containing * From indicating value PX_PSAP_SIP_URI, * To indicating value PX_UE_A_SIP_URI, * CallId indicating value PX_PSAP_CALLID, Loading
ttcn/AtsImsIot/AtsImsIot_Templates_MM.ttcn +103 −0 File changed.Preview size limit exceeded, changes collapsed. Show changes
ttcn/AtsImsIot/AtsImsIot_Templates_MW.ttcn +0 −12 Original line number Diff line number Diff line Loading @@ -1134,18 +1134,6 @@ module AtsImsIot_Templates_MW { } } // End of template mw_TP_MW_IBCF_ACK_01 template (present) ACK_Request mw_TP_MW_IBCF_ACK_02( // TODO To be enforced template (present) CallId p_callId := ?, template (present) CSeq p_cSeq := ?, template (present) SipUrl p_ack_uri := ?, template (present) From p_from := ?, template (present) To p_to := ? ) modifies mw_TP_MW_IBCF_ACK_01 := { msgHeader := { route := omit } } // End of template mw_TP_MW_IBCF_ACK_02 } } // End of module AtsImsIot_Templates_MW No newline at end of file