......@@ -38,7 +38,6 @@ module AtsImsIot_Emergency {
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)
*/
......@@ -286,8 +285,8 @@ module AtsImsIot_Emergency {
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_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)
......@@ -295,7 +294,7 @@ module AtsImsIot_Emergency {
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_IBCF_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwBE, -, 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
......@@ -306,7 +305,7 @@ module AtsImsIot_Emergency {
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_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
......@@ -318,13 +317,13 @@ module AtsImsIot_Emergency {
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_IBCF_200OK_01(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.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_MW_ECSCF_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
f_mtc_userCheckCallEstablished(v_ueA); // Event 34
......@@ -393,7 +392,7 @@ module AtsImsIot_Emergency {
//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_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
......@@ -408,20 +407,21 @@ module AtsImsIot_Emergency {
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_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_PSAP_INVITE_01(vc_vxlte_monitor_components.mwB_PSAP, true); // INVITE Event 12
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);
// 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_MW_IBCF_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwBE, -, 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
// 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_MW_ECSCF_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
......@@ -430,31 +430,31 @@ 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.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_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_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
// 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_MW_ECSCF_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_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
//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_MW_ECSCF_200OK_01(vc_vxlte_monitor_components.mwPS, -, v_sip); // Event 28
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_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_MM_PSAP_ACK_01(vc_vxlte_monitor_components.ic); // ACK – Event 33
f_mtc_check_TP_MM_PSAP_ACK_01(vc_vxlte_monitor_components.mwB_PSAP); // ACK – Event 33
f_mtc_userCheckCallEstablished(v_ueA); // Event 34
f_mtc_userCheckCallEstablished(v_psap); // Event 34
......
......@@ -5,7 +5,7 @@
*/
module AtsImsIot_TP_behavior_MM {
// LibIms
// LibIms
import from LibIms_Templates all;
import from LibIms_UpperTester all;
// LibIot
......@@ -24,10 +24,77 @@ module AtsImsIot_TP_behavior_MM {
import from LibMsrp_Templates all;
// AtsImsIot
import from AtsImsIot_TestSystem all;
import from AtsImsIot_Templates_MW all;
import from AtsImsIot_Templates all;
import from AtsImsIot_Templates_GM all;
import from AtsImsIot_TypesAndValues all;
import from AtsImsIot_Functions all;
group imsInvite {
/**
* @desc Verify that the P-CSCF 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
* the UE_A entity isRegisteredTo the IMS_A and
* the PSAP entity isRegisteredTo the IMS_B
* }
*
* Expected behaviour
* ensure that {
* when {
* the PSAP 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,
* Via indicating value PX_UE_A_VIA,
* Route indicating value PX_UE_A_SERVICE_ROUTE,
* PAccessNetworkInfo,
* MessageBody containing
* SDP containing
* Version indicating value "0"
* ;
* ;;
* from the IMS_EBCF_A entity
* }
* then {
* the PSAP entity sends an 100_Trying
* to the IMS_IBCF_A entity
* }
* }
*/
function f_mtc_check_TP_MM_PSAP_INVITE_01(
in SipInterfaceMonitor p_monitorCompRef,
in boolean p_checkMessage := false,
out SipMessage p_sip
) runs on ImsTestCoordinator {
if (isvalue(p_monitorCompRef)) {
var ImsUserInfo v_userInfoA := f_getTelUserId(PX_EUT_A);
var ImsUserInfo v_userInfoB := f_getTelUserId(PX_PSAP);
// Check the INVITE
p_monitorCompRef.start(
f_Iot_Sip_receive(
{ mw_SipRequest(mw_TP_MM_PSAP_INVITE_01(
-, // FIXME Set expected value
mw_From_AddrUnion_TelUrl(-), // v_userInfoA.publicId
mw_To_AddrUnion_TelUrl(-) // v_userInfoB.publicId
))
},
{ mw_SipRequest(mw_INVITE_Request_Base) },
{0, omit},
"TP_MM_PSAP_INVITE_01 - Request",
true,
p_checkMessage
)
);
p_monitorCompRef.done;
// Retrieve messge
f_getSipMsgFromMonitor(p_monitorCompRef, p_sip);
log("##### p_sip: ", p_sip);
}
} // End of function f_mtc_check_TP_MM_PSAP_INVITE_01
} // End of group imsInvite
} // end module AtsImsIot_TP_behavior_MM
\ No newline at end of file
/*
* @author STF 574
* @version $Id$
* @desc This module provides TP related templates used at MM interface
*/
module AtsImsIot_Templates_MM {
// LibCommon
//import from LibCommon_BasicTypesAndValues all;
//import from LibCommon_VerdictControl all;
// libSip
import from LibSip_SIPTypesAndValues all;
import from LibSip_Templates all;
import from LibSip_Common all;
// LibIms
import from LibIms_Templates all;
//import from LibMsrp_TypesAndValues all;
// LibIot
//import from LibIot_TypesAndValues all;
import from LibIot_PIXITS all;
// AtsImsIot
//import from AtsImsIot_TypesAndValues all;
import from AtsImsIot_PIXITS all;
import from AtsImsIot_Templates all;
} // End of module AtsImsIot_Templates_MM