/** * @author TTF 010 * @version $Id: $ * @desc This module provides ATS specific test case definitions for IMS Emergency calls. * @see ETSI TS 103 795-2 */ module AtsImsIot_Emergency { // LibCommon // LibSip // LibIms import from LibIms_UpperTester all; // LibIot import from LibIot_TestInterface all; import from LibIot_TestConfiguration all; import from LibIot_PIXITS all; import from LibIot_VxLTE_PIXITS all; import from LibIot_VxLTE_Functions all; // LibImsIot import from AtsImsIot_Functions all; // ImsIot import from AtsImsIot_TestConfiguration all; import from AtsImsIot_TestSystem all; import from AtsImsIot_Functions all; import from AtsImsIot_TP_behavior_GM all; import from AtsImsIot_TP_behavior_MW_PS all; import from AtsImsIot_TP_behavior_MW_SI all; import from AtsImsIot_TP_behavior_MW_IS all; import from AtsImsIot_TP_behavior_MW_EC all; import from AtsImsIot_TP_behavior_MW_EB all; import from AtsImsIot_TP_behavior_MM all; import from AtsImsIot_TP_behavior_IC all; import from AtsImsIot_TP_behavior_CX all; import from AtsImsIot_TP_behavior_GX all; import from AtsImsIot_TP_behavior_ISC all; import from AtsImsIot_TP_behavior_S6A all; import from AtsImsIot_TP_behavior_S9 all; import from AtsImsIot_TP_behavior_SH all; import from AtsImsIot_TP_behavior_RX all; /** * @see ETSI TS 103 795-2 Clause 5 Test Descriptions (Interoperability at HPLMN) */ group Interoperability { /** * @see ETSI TS 103 795-2 Clause 5.1 Network Attachment */ group NetworkAttachment { group UENetworkAttachmentWithUSIM { /** * @desc Emergency Network Attachment and Establishment of the Emergency Bearer with USIM. * On successful emergency attachment, the UE/IVS should discover the P-CSCF IP address. * The EPC will create the Emergency Bearers which will allow communication only between the UE and the P-CSCF * and allowed forwarding towards E-CSCF * @see TS 124 229 [2], clause 9.2.1 and L.2.2.6; TS 129 212 [7], clauses 4.5.15 and 4a.5.12; * TS 129 272 [8], clause 5.2.1.1 (MME shall proceed even if Update Location fails) * */ testcase TC_VoLTE_ECO_INT_ATT_01 ( ) runs on ImsTestCoordinator system IotSystemInterface { var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser ( c_userUE_A ); var ImsUserInfo v_userInfoA := f_getImUser ( PX_EUT_A ); f_setVxLteMonIterfacesAvailability(); //Check required monitor interfaces due to TD if (f_checkVxLteRequiredMonitorInterface({PX_DIAMETER_GX_INTERFACENAME,PX_DIAMETER_S6A_INTERFACENAME})){ f_cf_createVxLteMonitor(); // map/connect component ports f_cf_adapter_up ( ); f_cf_user_up ( v_ueA ); f_cf_VxLteMonitor_Up(); // preamble f_mtc_userRadioEnabled ( v_ueA, true, true ); // UA-A trigger an initial network_attachment by enabling radio interface of its mobile // test body // Check that user A starts initial network attachment f_mtc_check_TP_S6A_MME_ULR_01 ( vc_vxlte_monitor_components.s6a, true ); // Check (ULR – Event 2) f_mtc_check_TP_S6A_HSS_ULA_01 ( vc_vxlte_monitor_components.s6a); // Check (ULA – Event 3) f_mtc_check_TP_GX_PCRF_CCA_01 ( vc_vxlte_monitor_components.gx); // Check (CCR, CCA – Events 4, 5) // postamble f_mtc_userRadioEnabled ( v_ueA, false, true ); //unmap/disconnect component ports f_cf_user_down ( v_ueA ); f_cf_VxLteMonitor_Down(); f_cf_adapter_down ( ); }else{ //log... setverdict (inconc,"At least one required monitor interface SHALL be selected! Check PIXITs") } } // End of TC TC_VxLTE_INT_ATT_01 } // End of group UENetworkAttachmentWithUSIM group UENetworkAttachmentWithoutUSIM { } // End of group UENetworkAttachmentWithoutUSIM } // End of group NetworkAttachment /** * @see ETSI TS 103 795-2 Clause 5.2 IMS Emergency Registration */ group EmergencyRegistration { /** * @desc To perform emergency registration via the established emergency bearer. Note that some UEs perform emergency registration automatically on attachment - in which case this test becomes merged with the previous ones. * @see ETSI TS 103 795-2 Clause 5.2.1 IMS Emergency Registration - Successful */ testcase TD_VoLTE_ECO_INT_REG_01() runs on ImsTestCoordinator system IotSystemInterface { var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser ( c_userUE_A ); var ImsUserInfo v_userInfoA := f_getSipUserId ( PX_EUT_A ); f_setVxLteMonIterfacesAvailability(); //Check required monitor interfaces due to TD if (f_checkVxLteRequiredMonitorInterface({PX_SIP_GMA_INTERFACENAME, PX_SIP_MW_PI_INTERFACENAME, PX_SIP_MW_IS_INTERFACENAME, PX_DIAMETER_CX_SH_INTERFACENAME, PX_DIAMETER_CX_IH_INTERFACENAME, PX_DIAMETER_RX_INTERFACENAME, PX_DIAMETER_GX_INTERFACENAME})) { f_cf_createVxLteMonitor(); // map/connect component ports f_cf_adapter_up ( ); f_cf_user_up ( v_ueA ); f_cf_VxLteMonitor_Up(); // preamble f_mtc_userRadioEnabled ( v_ueA, true, true ); // UA-A trigger an initial network_attachment by enabling radio interface of its mobile // Test body f_mtc_check_TP_GM_PCSCF_REGISTER_01(vc_vxlte_monitor_components.gmA); // Events 1, 12 f_mtc_check_TP_MW_PCSCF_REGISTER_01(vc_vxlte_monitor_components.mwPI); // Event 4, 11 f_mtc_check_TP_MW_ICSCF_REGISTER_01(vc_vxlte_monitor_components.mwIS, true); // Event 7, 10 f_mtc_check_TP_CX_HSS_UAA_01(f_getCxInterface(PX_DIAMETER_CX_SINGLE_INTERFACE));// Event 5, 6 f_mtc_check_TP_CX_HSS_MAA_01(vc_vxlte_monitor_components.cxSH);// Event 8, 9 f_mtc_check_TP_GM_PCSCF_REGISTER_02(vc_vxlte_monitor_components.gmA); // Events 13, 22 f_mtc_check_TP_MW_PCSCF_REGISTER_02(vc_vxlte_monitor_components.mwPI); // Events 14, 21 f_mtc_check_TP_MW_ICSCF_REGISTER_02(vc_vxlte_monitor_components.mwIS, true); // Event 17, 20 f_mtc_check_TP_CX_HSS_UAA_02(f_getCxInterface(PX_DIAMETER_CX_SINGLE_INTERFACE));// Event 15, 16 f_mtc_check_TP_CX_HSS_SAA_01(vc_vxlte_monitor_components.cxSH);// Event 18, 19 // postamble f_PO_user_home_deregistration ( v_ueA ); f_mtc_userRadioEnabled ( v_ueA, false, true ); //unmap/disconnet component ports f_cf_user_down ( v_ueA ); f_cf_VxLteMonitor_Down(); f_cf_adapter_down ( ); }else{ //log... setverdict (inconc,"At least one required monitor interface SHALL be selected! Check PIXITs"); } } // End of testcase TD_VoLTE_ECO_INT_REG_01 /** * @desc To attempt initial emergency registration via the established emergency bearer. In this case, the emergency registration is not successful due to not accepted UE credentials. Emergency call can be established without emergency registration. * @see ETSI TS 103 795-2 Clause 5.2.2 IMS Emergency Registration - Unsuccessful */ testcase TD_VoLTE_ECO_INT_REG_02() runs on ImsTestCoordinator system IotSystemInterface { var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser ( c_userUE_A ); var ImsUserInfo v_userInfoA := f_getSipUserId ( PX_EUT_A ); f_setVxLteMonIterfacesAvailability(); //Check required monitor interfaces due to TD if (f_checkVxLteRequiredMonitorInterface({PX_SIP_GMA_INTERFACENAME, PX_SIP_MW_PI_INTERFACENAME, PX_SIP_MW_IS_INTERFACENAME, PX_DIAMETER_CX_SH_INTERFACENAME, PX_DIAMETER_CX_IH_INTERFACENAME, PX_DIAMETER_RX_INTERFACENAME, PX_DIAMETER_GX_INTERFACENAME})) { f_cf_createVxLteMonitor(); // map/connect component ports f_cf_adapter_up ( ); f_cf_user_up ( v_ueA ); f_cf_VxLteMonitor_Up(); // preamble f_mtc_userRadioEnabled ( v_ueA, true, true ); // UA-A trigger an initial network_attachment by enabling radio interface of its mobile // Test body f_mtc_check_TP_GM_PCSCF_REGISTER_01(vc_vxlte_monitor_components.gmA); // Events 1, 12 f_mtc_check_TP_MW_PCSCF_REGISTER_01(vc_vxlte_monitor_components.mwPI); // Event 4, 11 f_mtc_check_TP_MW_ICSCF_REGISTER_01(vc_vxlte_monitor_components.mwIS, true); // Event 7, 10 f_mtc_check_TP_CX_HSS_UAA_01(f_getCxInterface(PX_DIAMETER_CX_SINGLE_INTERFACE));// Event 5, 6 f_mtc_check_TP_CX_HSS_MAA_01(vc_vxlte_monitor_components.cxSH);// Event 8, 9 f_mtc_check_TP_GM_PCSCF_REGISTER_04(vc_vxlte_monitor_components.gmA); // Events 13, 22 f_mtc_check_TP_MW_PCSCF_REGISTER_04(vc_vxlte_monitor_components.mwPI); // Events 14, 21 f_mtc_check_TP_MW_ICSCF_REGISTER_04(vc_vxlte_monitor_components.mwIS, true); // Event 17, 20 f_mtc_check_TP_CX_HSS_SAA_01(vc_vxlte_monitor_components.cxSH);// Event 18, 19 // postamble f_PO_user_home_deregistration ( v_ueA ); f_mtc_userRadioEnabled ( v_ueA, false, true ); //unmap/disconnet component ports f_cf_user_down ( v_ueA ); f_cf_VxLteMonitor_Down(); f_cf_adapter_down ( ); }else{ //log... setverdict (inconc,"At least one required monitor interface SHALL be selected! Check PIXITs"); } } // End of testcase TD_VoLTE_ECO_INT_REG_02 } // End of group EmergencyRegistration /** * @see ETSI TS 103 795-2 Clause 5.3 Emergency Session and Emergency Bearer Operations */ group EmergencySessionEmergencyBearerOperations { group EmergencySessionEstablishment { /** * @desc To demonstrate the establishment of dedicated bearers at the originating EPC due to SIP emergency session establishment. * On successful emergency call setup with UE-A attached to EPC A, the P-CSCF should derive from the SDP offer and answer, descriptions of the Service Data Flow * @see ETSI TS 103 795-2 Clause 5.3.1.2 UE calling PSAP with emergency registration * @remark This is option1: IBCF is connect to another network and the interface between the IBCF and the PSAP is the Ic interface */ testcase TD_VoLTE_ECO_INT_INI_01_01 ( ) runs on ImsTestCoordinator system IotSystemInterface { var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser ( c_userUE_A ); var IotEquipmentUser v_psap := f_cf_create_IotEquipmentUser ( c_psap ); f_setVxLteMonIterfacesAvailability(); //Check required monitor interfaces due to TD if (f_checkVxLteRequiredMonitorInterface({PX_SIP_GMA_INTERFACENAME, PX_DIAMETER_GX_INTERFACENAME, PX_DIAMETER_RX_INTERFACENAME, PX_SIP_MW_PE_INTERFACENAME, PX_SIP_EB_INTERFACENAME, // E-CSCF -> IBCF PX_SIP_IC_INTERFACENAME // IBCF -> IMS_B -> PSAP })) { var SipMessage v_sip; f_cf_createVxLteMonitor(); // map/connect component ports f_cf_adapter_up ( ); f_cf_user_up ( v_ueA ); f_cf_user_up ( v_psap ); f_cf_VxLteMonitor_Up(); // Preamble // f_mtc_userRegistration(v_ueA, v_userInfoA); // f_mtc_userRegistration(v_psap, v_userInfoB); f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_01_01(); // Test body //f_mtc_userInitiateCall (v_ueA, v_userTelInfoB); f_mtc_check_TP_GM_PCSCF_INVITE_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 1 f_mtc_check_TP_GM_PCSCF_100Trying_01(vc_vxlte_monitor_components.gmA, -, v_sip); //Rx/Gx exchange after INVITE (SDP) was received at P-CSCF f_mtc_check_TP_RX_PCSCF_AAR_03(vc_vxlte_monitor_components.rx);// Event 2 f_mtc_check_TP_GX_PCRF_RAR_01(vc_vxlte_monitor_components.gx, true); // Event 3 f_mtc_check_TP_GX_PGW_RAA_02(vc_vxlte_monitor_components.gx); // Event 4 f_mtc_check_TP_RX_PCRF_AAA_02(vc_vxlte_monitor_components.rx); // Event 5 f_mtc_check_TP_RX_PCSCF_RAA_01(vc_vxlte_monitor_components.rx);// Events 7,8 //f_mtc_check_TP_GX_PCRF_CCA_01(vc_vxlte_monitor_components.gx); // Events 6,9 f_mtc_check_TP_MW_ECSCF_INVITE_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 10 f_mtc_check_TP_MW_ECSCF_100Trying_01(vc_vxlte_monitor_components.mwPE, -, v_sip); f_mtc_check_TP_MW_IBCF_INVITE_01(vc_vxlte_monitor_components.mw??, -, v_sip); // Event 11 f_mtc_check_TP_MW_IBCF_100Trying_01(vc_vxlte_monitor_components.mw??, -, v_sip); f_mtc_check_TP_IC_IBCF_INVITE_01(vc_vxlte_monitor_components.ic, true); // INVITE Event 12 (NOTE: comment out if ISC simulated by Ic) f_mtc_check_TP_IC_IBCF_INVITE_02(vc_vxlte_monitor_components.ic, true); // INVITE Event 12 (NOTE: comment out if ISC simulated by Ic) f_mtc_check_TP_IC_IBCF_INVITE_03(vc_vxlte_monitor_components.ic); // INVITE ENUM Event 8 f_mtc_check_TP_IC_IBCF_183RESP_01(vc_vxlte_monitor_components.ic,-); // 183 Event 13 // 183 Session Progress f_mtc_check_TP_MW_IBCF_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwPS, -, v_sip); // Event 14 f_mtc_check_TP_MW_ECSCF_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 15 f_mtc_check_TP_GM_PCSCF_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 20 //Rx/Gx exchange after 183(SDP) was received at P-CSCF f_mtc_check_TP_RX_PCSCF_AAR_04(vc_vxlte_monitor_components.rx);// Event 16 f_mtc_check_TP_GX_PCRF_RAR_01(vc_vxlte_monitor_components.gx, true); // Event 17 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_IC_IBCF_180RINGING_01(vc_vxlte_monitor_components.ic, true); // 180 Ringing – Event 22 f_mtc_check_TP_MW_IBCF_180RINGING_01(vc_vxlte_monitor_components.mwPS, -, 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 f_mtc_userCheckRinging(v_psap); f_mtc_userCheckPeerIsRinging(v_ueA); f_mtc_userAnswerCall(v_psap); f_mtc_check_TP_IC_IBCF_2XXRESP_01(vc_vxlte_monitor_components.ic, true); // 200 OK – Event 26 f_mtc_check_TP_IC_IBCF_2XXRESP_02(vc_vxlte_monitor_components.ic, true); // 200 OK – Event 26 f_mtc_check_TP_IC_IBCF_2XXRESP_03(vc_vxlte_monitor_components.ic); // 200 OK – Event 26 f_mtc_check_TP_MW_IBCF_200OK_01(vc_vxlte_monitor_components.mwPS, -, 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.mwPS, -, v_sip); // Event 31 f_mtc_check_TP_MW_IBSCF_ACK_01(vc_vxlte_monitor_components.mwPS, -, v_sip); // Event 32 f_mtc_check_TP_IC_IBCF_ACK_01(vc_vxlte_monitor_components.ic); // ACK – Event 33 f_mtc_userCheckCallEstablished(v_ueA); // Event 34 f_mtc_userCheckCallEstablished(v_psap); // Event 34 // Postamble f_mtc_EndCall(v_ueA); f_PO_user_home_deregistration(v_ueA); f_PO_user_home_deregistration(v_psap); //f_cf_int_call_down(v_config); //unmap/disconnect component ports f_cf_user_down ( v_psap ); f_cf_user_down ( v_ueA ); f_cf_VxLteMonitor_Down(); }else{ //log... setverdict (inconc,"At least one required monitor interface SHALL be selected! Check PIXITs") } f_cf_adapter_down ( ); } // End of TC TD_VoLTE_ECO_INT_INI_01_01 group f_TD_VoLTE_ECO_INT_INI_01_01 { function f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_01_01() runs on ImsTestCoordinator { log("If the test case fails, please check the preconditions"); } // End of function f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_01_01 } // End of f_TD_VoLTE_ECO_INT_INI_01_01 /** * @desc To demonstrate the establishment of dedicated bearers at the originating EPC due to SIP emergency session establishment. * On successful emergency call setup with UE-A attached to EPC A, the P-CSCF should derive from the SDP offer and answer, descriptions of the Service Data Flow * @see ETSI TS 103 795-2 Clause 5.3.1.2 UE calling PSAP with emergency registration * @remark This is option2: IBCF is connected to the PSAP, the interface IBCF and the PSAP is the Mm interface */ testcase TD_VoLTE_ECO_INT_INI_01_02() runs on ImsTestCoordinator system IotSystemInterface { var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser ( c_userUE_A ); var IotEquipmentUser v_psap := f_cf_create_IotEquipmentUser ( c_psap ); f_setVxLteMonIterfacesAvailability(); //Check required monitor interfaces due to TD if (f_checkVxLteRequiredMonitorInterface({PX_SIP_GMA_INTERFACENAME, PX_DIAMETER_GX_INTERFACENAME, PX_DIAMETER_RX_INTERFACENAME, PX_SIP_MW_PE_INTERFACENAME, PX_SIP_EB_INTERFACENAME, // E-CSCF -> IBCF PX_SIP_MM_PSAP_INTERFACENAME // IBCF -> PSAP })) { var SipMessage v_sip; f_cf_createVxLteMonitor(); // map/connect component ports f_cf_adapter_up ( ); f_cf_user_up ( v_ueA ); f_cf_user_up ( v_psap ); f_cf_VxLteMonitor_Up(); // Preamble f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_01(); // Test body //f_mtc_userInitiateCall (v_ueA, v_userTelInfoB); f_mtc_check_TP_GM_PCSCF_INVITE_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 1 f_mtc_check_TP_GM_PCSCF_100Trying_01(vc_vxlte_monitor_components.gmA, -, v_sip); //Rx/Gx exchange after INVITE (SDP) was received at P-CSCF f_mtc_check_TP_RX_PCSCF_AAR_03(vc_vxlte_monitor_components.rx);// Event 2 f_mtc_check_TP_GX_PCRF_RAR_01(vc_vxlte_monitor_components.gx, true); // Event 3 f_mtc_check_TP_GX_PGW_RAA_02(vc_vxlte_monitor_components.gx); // Event 4 f_mtc_check_TP_RX_PCRF_AAA_02(vc_vxlte_monitor_components.rx); // Event 5 f_mtc_check_TP_RX_PCSCF_RAA_01(vc_vxlte_monitor_components.rx);// Events 7,8 f_mtc_check_TP_GX_PCRF_CCA_01(vc_vxlte_monitor_components.gx); // Events 6,9 f_mtc_check_TP_MW_ECSCF_INVITE_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 10 f_mtc_check_TP_MW_ECSCF_100Trying_01(vc_vxlte_monitor_components.mwPE, -, v_sip); f_mtc_check_TP_MW_IBCF_INVITE_01(vc_vxlte_monitor_components.mw??, -, v_sip); // Event 11 f_mtc_check_TP_MW_IBCF_100Trying_01(vc_vxlte_monitor_components.mw??, -, v_sip); f_mtc_check_TP_MM_PSAP_INVITE_01(vc_vxlte_monitor_components.mwB_PSAP, true); // INVITE Event 12 // 183 Session Progress f_mtc_check_TP_MM_PSAP_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip); // Event 13 f_mtc_check_TP_MW_ECSCF_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 14 f_mtc_check_TP_MW_PCSCF_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwPS, -, v_sip); // Event 15 f_mtc_check_TP_GM_PCSCF_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 20 // PRACK after 183 Session Progress: require field is present // FIXME Add check of requires SIP message header to check PRACK //f_mtc_check_TP_MW_PCSCF_PRACK_01(vc_vxlte_monitor_components.mwPS, -, v_sip); // Event 15 //f_mtc_check_TP_GM_PCSCF_PRACK_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 20 //Rx/Gx exchange after 183(SDP) was received at P-CSCF f_mtc_check_TP_RX_PCSCF_AAR_04(vc_vxlte_monitor_components.rx);// Event 16 f_mtc_check_TP_GX_PCRF_RAR_01(vc_vxlte_monitor_components.gx, true); // Event 17 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.ic); // 180 Ringing – Event 22 // FIXME f_mtc_check_TP_???_180RINGING_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 23 f_mtc_check_TP_MW_ECSCF_180RINGING_01(vc_vxlte_monitor_components.mwPS, -, v_sip); // Event 24 f_mtc_check_TP_GM_PCSCF_180RINGING_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 25 // PRACK after 180 Session Progress: require field is present // FIXME Add check of requires SIP message header to check PRACK // f_mtc_check_TP_MW_PCSCF_PRACK_01(vc_vxlte_monitor_components.mwPS, -, v_sip); // Event 15 // f_mtc_check_TP_GM_PCSCF_PRACK_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 20 f_mtc_userCheckRinging(v_psap); f_mtc_userCheckPeerIsRinging(v_ueA); f_mtc_userAnswerCall(v_psap); //f_mtc_check_TP_IC_IBCF_2XXRESP_01(vc_vxlte_monitor_components.ic, true); // 200 OK – Event 26 //f_mtc_check_TP_IC_IBCF_2XXRESP_02(vc_vxlte_monitor_components.ic, true); // 200 OK – Event 25 f_mtc_check_TP_MM_PSAP_2XXRESP_03(vc_vxlte_monitor_components.ic); // 200 OK – Event 26 // FIXME f_mtc_check_TP_???_2XXRESP_03(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 27 f_mtc_check_TP_MW_ECSCF_200OK_01(vc_vxlte_monitor_components.mwPS, -, 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.mwPS, -, v_sip); // Event 31 // FIXME f_mtc_check_TP_???_ACK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 32 f_mtc_check_TP_MM_PSAP_ACK_01(vc_vxlte_monitor_components.ic); // ACK – Event 33 f_mtc_userCheckCallEstablished(v_ueA); // Event 34 f_mtc_userCheckCallEstablished(v_psap); // Event 34 // Postamble f_mtc_EndCall(v_ueA); f_PO_user_home_deregistration(v_ueA); f_PO_user_home_deregistration(v_psap); //f_cf_int_call_down(v_config); //unmap/disconnect component ports f_cf_user_down ( v_psap ); f_cf_user_down ( v_ueA ); f_cf_VxLteMonitor_Down(); }else{ //log... setverdict (inconc,"At least one required monitor interface SHALL be selected! Check PIXITs") } f_cf_adapter_down ( ); } // End of TC TD_VoLTE_ECO_INT_INI_01_02 group f_TD_VoLTE_ECO_INT_INI_01_02 { function f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_01() runs on ImsTestCoordinator { log("If the test case fails, please check the preconditions"); // TODO Add real code to check pre-conditions } // End of function f_TD_VoLTE_ECO_INT_INI_01_02 } // End of f_TD_VoLTE_ECO_INT_INI_01 } // End of group EmergencySessionEstablishment group EmergencySessionRelease { } // End of group EmergencySessionRelease group EmergencySessionAbortOrReject { } // End of group EmergencySessionAbortOrReject } // End of group EmergencySessionEmergencyBearerOperations /** * @see ETSI TS 103 795-2 Clause 5.4 Emergency Deregistration */ group EmergencyNetworkDetachment { group EmergencySessionDetachment { } // End of group EmergencySessionDetachment } // End of group EmergencyNetworkDetachment } // End of group Interoperability /** * @see ETSI TS 103 795-2 Clause 6 Test Descriptions (Roaming) */ group Roaming { /** * @see ETSI TS 103 795-2 6.1 Network Attachment */ group NetworkAttachment { } // End of group NetworkAttachment /** * @see ETSI TS 103 795-2 Clause 6.2 IMS Emergency Registration in a visited network */ group IMSEmergencyRegistration { } // End of group IMSEmergencyRegistration } // End of group Roaming } // End of module AtsImsIot_Emergency