Newer
Older
/**
* @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 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
// 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_ECO_ULA_01 ( vc_vxlte_monitor_components.s6a); // Check (ULA – Event 3)
f_mtc_check_TP_GX_PCRF_ECO_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 group UENetworkAttachmentWithUSIM
group UENetworkAttachmentWithoutUSIM {
/**
* @desc Emergency Network Attachment and Establishment of the Emergency Bearer without 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_EMC_INT_ATT_02 ( ) 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_ECO_ULA_01 ( vc_vxlte_monitor_components.s6a); // Check (ULA – Event 3)
f_mtc_check_TP_GX_PCRF_EMC_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_VoLTE_ECO_INT_ATT_02
} // 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_emergency );
var ImsUserInfo v_userInfoA := f_getSipUserId ( PX_EUT_A_EMERGENCY );
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_ECO_REGISTER_01(vc_vxlte_monitor_components.gmA); // Events 1, 12
f_mtc_check_TP_MW_PCSCF_ECO_REGISTER_01(vc_vxlte_monitor_components.mwPI); // Event 4, 11
f_mtc_check_TP_MW_ICSCF_ECO_REGISTER_01(vc_vxlte_monitor_components.mwIS, true); // Event 7, 10
f_mtc_check_TP_CX_HSS_ECO_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_ECO_REGISTER_02(vc_vxlte_monitor_components.gmA); // Events 13, 22
f_mtc_check_TP_MW_PCSCF_ECO_REGISTER_02(vc_vxlte_monitor_components.mwPI); // Events 14, 21
f_mtc_check_TP_MW_ICSCF_ECO_REGISTER_02(vc_vxlte_monitor_components.mwIS, true); // Event 17, 20
f_mtc_check_TP_CX_HSS_ECO_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_emergency );
var ImsUserInfo v_userInfoA := f_getSipUserId ( PX_EUT_A_EMERGENCY );
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_ECO_REGISTER_01(vc_vxlte_monitor_components.gmA); // Events 1, 12
f_mtc_check_TP_MW_PCSCF_ECO_REGISTER_01(vc_vxlte_monitor_components.mwPI); // Event 4, 11
f_mtc_check_TP_MW_ICSCF_ECO_REGISTER_01(vc_vxlte_monitor_components.mwIS, true); // Event 7, 10
f_mtc_check_TP_CX_HSS_ECO_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_ECO_REGISTER_03(vc_vxlte_monitor_components.gmA); // Events 13, 22
f_mtc_check_TP_MW_PCSCF_ECO_REGISTER_03(vc_vxlte_monitor_components.mwPI); // Events 14, 21
f_mtc_check_TP_MW_ICSCF_REGISTER_03(vc_vxlte_monitor_components.mwIS, true); // Event 17, 20
f_mtc_check_TP_CX_HSS_ECO_ECO_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_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 within an emergency registration.
* PSAP is located in the IM CN subsystem of IMS A.
* @see ETSI TS 103 795-2 Clause 5.3.1.2 UE calling PSAP with emergency registration
*/
testcase TD_VoLTE_ECO_INT_INI_01() runs on ImsTestCoordinator system IotSystemInterface {
var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser ( c_userUE_A_emergency );
var IotEquipmentUser v_psap := f_cf_create_IotEquipmentUser ( c_psap );
var ImsUserInfo v_userInfoA := f_getImUser ( PX_EUT_A_EMERGENCY );
var ImsUserInfo v_infoPsap := f_getImUser ( PX_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_MM_PSAP_INTERFACENAME // E-CSCCF -> 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);
if (PX_PSAP_REGISTERED) {
f_mtc_userRegistration(v_psap, v_infoPsap);
} else {
// TODO Check OPTIONS from PSAP to E-CSCF
}
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_ECO_INVITE_02(vc_vxlte_monitor_components.gmA, -, v_sip); // INVITE 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_PCSCF_ECO_INVITE_02(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 10
f_mtc_check_TP_MW_PCSCF_ECO_100Trying_01(vc_vxlte_monitor_components.mwPE, -, v_sip);
f_mtc_check_TP_MM_ECSCF_ECO_INVITE_01(vc_vxlte_monitor_components.mwB_PSAP, true); // Event 11
f_mtc_check_TP_MM_ECSCF_ECO_100Trying_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip);
f_mtc_check_TP_MM_ECSCF_ECO_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip); // 183 In Progress Event 12
f_mtc_check_TP_MW_PCSCF_ECO_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 13
f_mtc_check_TP_GM_PCSCF_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 18
//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 14
f_mtc_check_TP_GX_PCRF_RAR_01(vc_vxlte_monitor_components.gx, true); // Event 15
f_mtc_check_TP_GX_PGW_RAA_02(vc_vxlte_monitor_components.gx); // Event 16
f_mtc_check_TP_RX_PCRF_AAA_02(vc_vxlte_monitor_components.rx); // Event 17
f_mtc_check_TP_MM_ECSCF_ECO_180RINGING_01(vc_vxlte_monitor_components.mwB_PSAP); // 180 Ringing – Event 20
f_mtc_check_TP_MW_PCSCF_ECO_180RINGING_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 21
f_mtc_check_TP_GM_PCSCF_180RINGING_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 22
f_mtc_userCheckRinging(v_psap); // Event 19
f_mtc_userCheckPeerIsRinging(v_ueA); // Event 19
f_mtc_userAnswerCall(v_psap); // Event 26
f_mtc_check_TP_MM_ECSCF_ECO_200OK_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip); // 200 OK Event 23
f_mtc_check_TP_MW_PCSCF_ECO_200OK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 24
f_mtc_check_TP_GM_PCSCF_200OK_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 25
f_mtc_check_TP_GM_PCSCF_ACK_01(vc_vxlte_monitor_components.gmA, -, v_sip); // ACK Event 26
f_mtc_check_TP_MW_PCSCF_ECO_ACK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 27
f_mtc_check_TP_MM_ECSCF_ECO_ACK_01(vc_vxlte_monitor_components.mwB_PSAP); // ACK – Event 28
f_mtc_userCheckCallEstablished(v_ueA); // Event 29
f_mtc_userCheckCallEstablished(v_psap); // Event 29
// 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
group f_TD_VoLTE_ECO_INT_INI_01 {
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_mtc_check_precond_TD_VoLTE_ECO_INT_INI_01
} // End of group f_TD_VoLTE_ECO_INT_INI_01
* @desc To demonstrate the establishment of dedicated bearers at the originating EPC due to SIP emergency session establishment within an emergency registration.
* PSAP is located in the IM CN subsystem of IMS A.
* @see ETSI TS 103 795-2 Clause 5.3.1.3 UE calling PSAP with non-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_02() runs on ImsTestCoordinator system IotSystemInterface {
var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser ( c_userUE_A_emergency );
var IotEquipmentUser v_psap := f_cf_create_IotEquipmentUser ( c_psap );
var ImsUserInfo v_userInfoA := f_getImUser ( PX_EUT_A_EMERGENCY );
var ImsUserInfo v_infoPsap := f_getImUser ( PX_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_MM_PSAP_INTERFACENAME // E-CSCCF -> 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);
if (PX_PSAP_REGISTERED) {
f_mtc_userRegistration(v_psap, v_infoPsap);
} else {
// TODO Check OPTIONS from PSAP to E-CSCF
}
f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_02();
// Test body
//f_mtc_userInitiateCall (v_ueA, v_userTelInfoB);
f_mtc_check_TP_GM_PCSCF_INVITE_01(vc_vxlte_monitor_components.gmA, -, v_sip); // INVITE 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_PCSCF_ECO_INVITE_02(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 10
f_mtc_check_TP_MW_PCSCF_ECO_100Trying_01(vc_vxlte_monitor_components.mwPE, -, v_sip);
f_mtc_check_TP_MM_ECSCF_ECO_INVITE_01(vc_vxlte_monitor_components.mwB_PSAP, true); // Event 11
f_mtc_check_TP_MM_ECSCF_ECO_100Trying_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip);
// 183 Session Progress
f_mtc_check_TP_MM_ECSCF_ECO_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip); // 183 In Progress Event 12
f_mtc_check_TP_MW_PCSCF_ECO_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 13
f_mtc_check_TP_GM_PCSCF_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 18
//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 14
f_mtc_check_TP_GX_PCRF_RAR_01(vc_vxlte_monitor_components.gx, true); // Event 15
f_mtc_check_TP_GX_PGW_RAA_02(vc_vxlte_monitor_components.gx); // Event 16
f_mtc_check_TP_RX_PCRF_AAA_02(vc_vxlte_monitor_components.rx); // Event 17
f_mtc_check_TP_MM_ECSCF_ECO_180RINGING_01(vc_vxlte_monitor_components.mwB_PSAP); // 180 Ringing – Event 22
f_mtc_check_TP_MW_PCSCF_ECO_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); // Event 19
f_mtc_userCheckPeerIsRinging(v_ueA); // Event 19
f_mtc_userAnswerCall(v_psap); // Event 26
f_mtc_check_TP_MM_ECSCF_ECO_200OK_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip); // 200 OK Event 23
f_mtc_check_TP_MW_PCSCF_ECO_200OK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 24
f_mtc_check_TP_GM_PCSCF_200OK_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 25
f_mtc_check_TP_GM_PCSCF_ACK_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 26
f_mtc_check_TP_MW_PCSCF_ECO_ACK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 27
f_mtc_check_TP_MM_ECSCF_ECO_ACK_01(vc_vxlte_monitor_components.mwB_PSAP); // ACK – Event 28
f_mtc_userCheckCallEstablished(v_ueA); // Event 29
f_mtc_userCheckCallEstablished(v_psap); // Event 29
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
// 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_02
group f_TD_VoLTE_ECO_INT_INI_02 {
function f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_02() 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_mtc_check_precond_TD_VoLTE_ECO_INT_INI_02
} // End of group f_TD_VoLTE_ECO_INT_INI_02
/**
* @desc To demonstrate the establishment of emergency bearers at the originating EPC due to SIP emergency session establishment without any registration.
* PSAP is located in the IM CN subsystem of IMS A.
* @see ETSI TS 103 795-2 Clause 5.3.1.4 UE calling PSAP without any registration
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
*/
testcase TD_VoLTE_ECO_INT_INI_03() 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 );
var ImsUserInfo v_infoPsap := f_getImUser ( PX_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
// No registration for user A
f_mtc_userRegistration(v_psap, v_infoPsap);
f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_03();
// Test body
//f_mtc_userInitiateCall (v_ueA, v_userTelInfoB);
f_mtc_check_TP_GM_PCSCF_INVITE_01(vc_vxlte_monitor_components.gmA, -, v_sip); // INVITE 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_PCSCF_ECO_INVITE_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 10
f_mtc_check_TP_MW_PCSCF_ECO_100Trying_01(vc_vxlte_monitor_components.mwPE, -, v_sip);
f_mtc_check_TP_MW_IBCF_INVITE_01(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 11
f_mtc_check_TP_MW_IBCF_100Trying_01(vc_vxlte_monitor_components.mwBE, -, v_sip);
f_mtc_check_TP_MM_ECSCF_ECO_INVITE_01(vc_vxlte_monitor_components.mwB_PSAP, true); // Event 12
f_mtc_check_TP_MM_ECSCF_ECO_100Trying_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip);
// 183 Session Progress
f_mtc_check_TP_MM_ECSCF_ECO_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip); // Event 13
f_mtc_check_TP_MW_IBCF_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 14
f_mtc_check_TP_MW_PCSCF_ECO_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
// 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_ECO_PRACK_01(vc_vxlte_monitor_components.mwPE, -, 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_ECSCF_ECO_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_PCSCF_ECO_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
// 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_ECO_PRACK_01(vc_vxlte_monitor_components.mwPE, -, 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_MM_ECSCF_ECO_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_PCSCF_ECO_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_PCSCF_ECO_ACK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 31
f_mtc_check_TP_MW_IBCF_ACK_01(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 32
f_mtc_check_TP_MM_ECSCF_ECO_ACK_01(vc_vxlte_monitor_components.mwB_PSAP); // ACK – Event 33
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
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_03
group f_TD_VoLTE_ECO_INT_INI_03 {
function f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_03() 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_mtc_check_precond_TD_VoLTE_ECO_INT_INI_03
} // End of group f_TD_VoLTE_ECO_INT_INI_03
/**
* @desc To demonstrate the establishment of dedicated bearers at the originating EPC due to SIP emergency session establishment within an emergency registration.
* PSAP is located in the IM CN subsystem of IMS A. The PSAP URI is delivered by the LRF
* @see ETSI TS 103 795-2 Clause 5.3.1.5 UE calling PSAP in same network, LRF derived PSAP URI
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
* @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_04() runs on ImsTestCoordinator system IotSystemInterface {
var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser ( c_userUE_A_emergency );
var IotEquipmentUser v_psap := f_cf_create_IotEquipmentUser ( c_psap );
var ImsUserInfo v_userInfoA := f_getImUser ( PX_EUT_A_EMERGENCY );
var ImsUserInfo v_infoPsap := f_getImUser ( PX_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
PX_SIP_ML_LRF_INTERFACENAME // E-CSCF -> LRF: mlE_LTF
}))
{
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_infoPsap);
f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_04();
// Test body
//f_mtc_userInitiateCall (v_ueA, v_userTelInfoB);
// TODO
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_04
group f_TD_VoLTE_ECO_INT_INI_04 {
function f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_04() 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_mtc_check_precond_TD_VoLTE_ECO_INT_INI_04
} // End of group f_TD_VoLTE_ECO_INT_INI_04
/**
* @desc To demonstrate the establishment of dedicated bearers at the originating EPC due to SIP emergency session establishment within an emergency registration.
* PSAP is located in the IM CN subsystem of another network connected via IBCF.
* @see ETSI TS 103 795-2 Clause 5.3.1.6 UE calling PSAP in other network via IBCF
testcase TD_VoLTE_ECO_INT_INI_05 ( ) runs on ImsTestCoordinator system IotSystemInterface {
var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser ( c_userUE_A_emergency );
var IotEquipmentUser v_psap := f_cf_create_IotEquipmentUser ( c_psap );
var ImsUserInfo v_userInfoA := f_getImUser ( PX_EUT_A_EMERGENCY );
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);
// PSAP is not known from the IMS A
f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_05();
// 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_PCSCF_ECO_INVITE_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 10
f_mtc_check_TP_MW_PCSCF_ECO_100Trying_01(vc_vxlte_monitor_components.mwPE, -, v_sip);
f_mtc_check_TP_MW_IBCF_INVITE_01(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 11
f_mtc_check_TP_MW_IBCF_100Trying_01(vc_vxlte_monitor_components.mwBE, -, 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.mwBE, -, v_sip); // Event 14
f_mtc_check_TP_MW_PCSCF_ECO_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.mwBE, -, v_sip); // Event 23
f_mtc_check_TP_MW_PCSCF_ECO_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.mwBE, -, v_sip); // Event 27
f_mtc_check_TP_MW_PCSCF_ECO_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_PCSCF_ECO_ACK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 31
f_mtc_check_TP_MW_IBSCF_ACK_01(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 32
f_mtc_check_TP_IC_IBCF_ACK_01(vc_vxlte_monitor_components.ic); // ACK – Event 33
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
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_05
group f_TD_VoLTE_ECO_INT_INI_05 {
function f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_05() 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_05
} // End of f_TD_VoLTE_ECO_INT_INI_05
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
* @desc To demonstrate the establishment of dedicated bearers at the originating EPC due to SIP emergency session establishment within an emergency registration.
* PSAP is located in the IM CN subsystem of another network vonnected via IBCF. The PSAP URI is delivered by the LRF.
* @see ETSI TS 103 795-2 Clause 5.3.1.7 UE calling PSAP in other network via IBCF, LRF derived PSAP URI
* @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_06() runs on ImsTestCoordinator system IotSystemInterface {
var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser ( c_userUE_A_emergency );
var IotEquipmentUser v_psap := f_cf_create_IotEquipmentUser ( c_psap );
var ImsUserInfo v_userInfoA := f_getImUser ( PX_EUT_A_EMERGENCY );
var ImsUserInfo v_infoPsap := f_getImUser ( PX_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
PX_SIP_ML_LRF_INTERFACENAME // E-CSCF -> LRF: mlE_LTF
}))
{
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_infoPsap);
f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_06();
// Test body
//f_mtc_userInitiateCall (v_ueA, v_userTelInfoB);
// TODO
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_06
group f_TD_VoLTE_ECO_INT_INI_06 {
function f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_06() 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_mtc_check_precond_TD_VoLTE_ECO_INT_INI_06
} // End of group f_TD_VoLTE_ECO_INT_INI_06
/**
* @desc To demonstrate the establishment of dedicated bearers at the originating EPC due to SIP emergency session establishment within an emergency registration.
* PSAP is located in the PSTN connected via BGCF.
* @see ETSI TS 103 795-2 Clause 5.3.1.8 UE calling PSAP in PSTN via BGCF
*/
testcase TD_VoLTE_ECO_INT_INI_07() runs on ImsTestCoordinator system IotSystemInterface {
var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser ( c_userUE_A_emergency );
var IotEquipmentUser v_psap := f_cf_create_IotEquipmentUser ( c_psap );
var ImsUserInfo v_userInfoA := f_getImUser ( PX_EUT_A_EMERGENCY );
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 -> BGCF
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
}))
{
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);
// PSAP is not known from the IMS A
f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_07();
// Test body
// TODO
// 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_07
group f_TD_VoLTE_ECO_INT_INI_07 {
function f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_07() 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_mtc_check_precond_TD_VoLTE_ECO_INT_INI_07
} // End of group f_TD_VoLTE_ECO_INT_INI_07
/**
* @desc To demonstrate the establishment of dedicated bearers at the originating EPC due to SIP emergency session establishment within an emergency registration.
* PSAP is located in the PSTN connected via BGCF. The PSAP URI is delivered by the LRF
* @see ETSI TS 103 795-2 Clause 5.3.1.9 UE calling PSAP in PSTN via BGCF, LRF derived PSAP URI
*/
testcase TD_VoLTE_ECO_INT_INI_08() runs on ImsTestCoordinator system IotSystemInterface {
var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser ( c_userUE_A_emergency );
var IotEquipmentUser v_psap := f_cf_create_IotEquipmentUser ( c_psap );
var ImsUserInfo v_userInfoA := f_getImUser ( PX_EUT_A_EMERGENCY );
var ImsUserInfo v_infoPsap := f_getImUser ( PX_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 -> BGCF
PX_SIP_ML_LRF_INTERFACENAME // E-CSCF -> LRF: mlE_LTF
}))
{
var SipMessage v_sip;
f_cf_createVxLteMonitor();