Skip to content
Snippets Groups Projects
Commit 1272237e authored by Yann Garcia's avatar Yann Garcia
Browse files

Finalyze TD_VoLTE_ECO_INT_INI_01_01

parent bfb7459b
No related branches found
No related tags found
1 merge request!6Update master branch for closing TTF T010
......@@ -9,15 +9,15 @@ module AtsImsIot_Emergency {
// LibCommon
// LibSip
// LibIms
import from LibIms_UpperTester { type ImsUserInfo };
import from LibIms_UpperTester all;
// LibIot
import from LibIot_TestInterface { type IotEquipmentUser };
import from LibIot_TestConfiguration { function f_cf_create_IotEquipmentUser };
import from LibIot_PIXITS { modulepar PX_EUT_A, PX_EUT_B, PX_EUT_C };
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 { function f_getImUser };
import from AtsImsIot_Functions all;
// ImsIot
import from AtsImsIot_TestConfiguration all;
import from AtsImsIot_TestSystem all;
......@@ -26,6 +26,8 @@ module AtsImsIot_Emergency {
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_IC all;
import from AtsImsIot_TP_behavior_CX all;
import from AtsImsIot_TP_behavior_GX all;
......@@ -115,7 +117,7 @@ module AtsImsIot_Emergency {
f_cf_adapter_down ( );
}else{
//log...
setverdict (inconc,"At least one required monitor interface SHALL be selected! Check PIXITs")
setverdict (inconc,"At least one required monitor interface SHALL be selected! Check PIXITs");
}
} // End of testcase TD_VoLTE_ECO_INT_REG_01
......@@ -171,7 +173,7 @@ module AtsImsIot_Emergency {
f_cf_adapter_down ( );
}else{
//log...
setverdict (inconc,"At least one required monitor interface SHALL be selected! Check PIXITs")
setverdict (inconc,"At least one required monitor interface SHALL be selected! Check PIXITs");
}
} // End of testcase TD_VoLTE_ECO_INT_REG_02
......@@ -182,15 +184,262 @@ module AtsImsIot_Emergency {
*/
group EmergencySessionEmergencyBearerOperations {
} // End of group EmergencySessionEmergencyBearerOperations
/**
* @see ETSI TS 103 795-2 Clause 5.4 Emergency Deregistration
*/
group EmergencyNetworkDetachment {
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 {
......@@ -201,6 +450,17 @@ module AtsImsIot_Emergency {
} // 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
......
This diff is collapsed.
This diff is collapsed.
......@@ -891,4 +891,261 @@ module AtsImsIot_Templates_MW {
} // End of group g_icscf
group g_ecscf {
template (present) INVITE_Request mw_TP_MW_ECSCF_INVITE_01(
template (present) SipUrl p_invite_uri := ?,
template (present) From p_from := ?,
template (present) To p_to := ?
) modifies mw_INVITE_Request_Base := {
requestLine := {
method := INVITE_E,
requestUri := p_invite_uri, // @TODO
sipVersion := c_sipNameVersion
},
msgHeader := {
fromField := p_from,
toField := p_to
}
} // End of template mw_TP_MW_ECSCF_INVITE_01
template (present) INVITE_Request mw_TP_MW_ECSCF_INVITE_02( // TODO To be enforced
template (present) SipUrl p_invite_uri := ?,
template (present) From p_from := ?,
template (present) To p_to := ?
) modifies mw_TP_MW_ECSCF_INVITE_01 := {
} // End of template mw_TP_MW_ECSCF_INVITE_02
template (present) INVITE_Request mw_TP_MW_ECSCF_RE_INVITE_01( // TODO To be enforced
template (present) SipUrl p_invite_uri := ?,
template (present) From p_from := ?,
template (present) To p_to := ?
) modifies mw_TP_MW_ECSCF_INVITE_01 := {
} // End of template mw_TP_MW_ECSCF_RE_INVITE_01
template (present) INVITE_Request mw_TP_MW_ECSCF_RE_INVITE_02( // TODO To be enforced
template (present) SipUrl p_invite_uri := ?,
template (present) From p_from := ?,
template (present) To p_to := ?
) modifies mw_TP_MW_ECSCF_INVITE_01 := {
} // End of template mw_TP_MW_ECSCF_RE_INVITE_02
template (present) Response mw_TP_MW_ECSCF_100Trying_01(
template (present) CSeq p_cSeq := ?,
template (present) From p_from := ?,
template (present) To p_to := ?
) modifies mw_100Trying_Base := {
msgHeader := {
cSeq := p_cSeq,
fromField := p_from,
toField := p_to
}
} // End of template mw_TP_MW_ECSCF_100Trying_01
template (present) Response mw_TP_MW_ECSCF_100Trying_02(
template (present) CSeq p_cSeq := ?,
template (present) From p_from := ?,
template (present) To p_to := ?
) modifies mw_TP_MW_ECSCF_100Trying_01 := {
} // End of template mw_TP_MW_ECSCF_100Trying_02
template (present) Response mw_TP_MW_ECSCF_180Ringing_01(
template (present) CSeq p_cSeq := ?,
template (present) From p_from := ?,
template (present) To p_to := ?
) modifies mw_180Ringing_Base := {
msgHeader := {
cSeq := p_cSeq,
fromField := p_from,
toField := p_to
}
} // End of template mw_TP_MW_ECSCF_180Ringing_01
template (present) Response mw_TP_MW_ECSCF_180Ringing_02(
template (present) CSeq p_cSeq := ?,
template (present) From p_from := ?,
template (present) To p_to := ?
) modifies mw_TP_MW_ECSCF_180Ringing_01 := {
} // End of template mw_TP_MW_ECSCF_180Ringing_02
template (present) Response mw_TP_MW_ECSCF_183SessionProgress_01(
template (present) CSeq p_cSeq := ?,
template (present) From p_from := ?,
template (present) To p_to := ?
) modifies mw_183SessionProgress_Base := {
msgHeader := {
cSeq := p_cSeq,
fromField := p_from,
toField := p_to
}
} // End of template mw_TP_MW_ECSCF_183SessionProgress_01
template (present) Response mw_TP_MW_ECSCF_183SessionProgress_02(
template (present) CSeq p_cSeq := ?,
template (present) From p_from := ?,
template (present) To p_to := ?
) modifies mw_TP_MW_ECSCF_183SessionProgress_01 := {
} // End of template mw_TP_MW_ECSCF_183SessionProgress_02
template (present) ACK_Request mw_TP_MW_ECSCF_ACK_01( // 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_ACK_Request_Base := {
requestLine := {
method := ACK_E,
requestUri := p_ack_uri, // @TODO
sipVersion := c_sipNameVersion
},
msgHeader := {
callId := p_callId,
fromField := p_from,
toField := p_to,
route := {
fieldName := ROUTE_E,
routeBody := {
*,
?,
*
}
}
}
} // End of template mw_TP_MW_ECSCF_ACK_01
template (present) ACK_Request mw_TP_MW_ECSCF_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_ECSCF_ACK_01 := {
msgHeader := {
route := omit
}
} // End of template mw_TP_MW_ECSCF_ACK_02
}
group g_ibcf {
/**
* @desc INVITE Request checking TP_MW_IBCF_INVITE_01
*/
template(present) INVITE_Request mdw_TP_MW_IBCF_INVITE_01 (template (present) SipUrl p_ECSCF_SIP_URI := ?,
template (present) From p_from := ?,
template (present) To p_to := ?)
modifies mw_INVITE_Request_Base := {
msgHeader := {
fromField := p_from,
toField := p_to,
route := ({
fieldName := ROUTE_E,
routeBody := {
*,
complement(mw_routeBody(p_ECSCF_SIP_URI)),
*
}
}, omit),
recordRoute := {
fieldName := RECORD_ROUTE_E,
routeBody := {mw_routeBody(p_ECSCF_SIP_URI), *}
},
pChargingVector := {
fieldName := P_CHARGING_VECTOR_E,
chargeParams := {
*,
// {id := "icid-value", paramValue := ?},
*,
{id := "orig-ioi", paramValue := ?},
*,
// complement({id := "term-ioi", paramValue := ?}),
*,
complement({id := "access-network-charging-info", paramValue := ?}),
*
}
},
pAccessNetworkInfo := omit
}
}
template (present) Response mw_TP_MW_IBCF_100Trying_01(
template (present) CSeq p_cSeq := ?,
template (present) From p_from := ?,
template (present) To p_to := ?
) modifies mw_100Trying_Base := {
msgHeader := {
cSeq := p_cSeq,
fromField := p_from,
toField := p_to
}
} // End of template mw_TP_MW_IBCF_100Trying_01
template (present) Response mw_TP_MW_IBCF_180Ringing_01(
template (present) CSeq p_cSeq := ?,
template (present) From p_from := ?,
template (present) To p_to := ?
) modifies mw_180Ringing_Base := {
msgHeader := {
cSeq := p_cSeq,
fromField := p_from,
toField := p_to
}
} // End of template mw_TP_MW_IBCF_180Ringing_01
template (present) Response mw_TP_MW_IBCF_183SessionProgress_01(
template (present) CSeq p_cSeq := ?,
template (present) From p_from := ?,
template (present) To p_to := ?
) modifies mw_183SessionProgress_Base := {
msgHeader := {
cSeq := p_cSeq,
fromField := p_from,
toField := p_to
}
} // End of template mw_TP_MW_IBCF_183SessionProgress_01
template (present) ACK_Request mw_TP_MW_IBCF_ACK_01( // 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_ACK_Request_Base := {
requestLine := {
method := ACK_E,
requestUri := p_ack_uri, // @TODO
sipVersion := c_sipNameVersion
},
msgHeader := {
callId := p_callId,
fromField := p_from,
toField := p_to,
route := {
fieldName := ROUTE_E,
routeBody := {
*,
?,
*
}
}
}
} // 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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment