This diff is collapsed.
......@@ -75,32 +75,32 @@ module AtsImsIot_TP_behavior_MW_EB {
* }
* }
*/
function f_mtc_check_TP_MW_IBCF_INVITE_01(
in SipInterfaceMonitor p_monitorCompRef,
in boolean p_checkMessage := false
) runs on ImsTestCoordinator {
if (isvalue(p_monitorCompRef)) {
var charstring v_EUT_A_Addr := f_GetEUTScscfAddress_1();//f_GetEUTScscfAddress(PX_EUT_A);
p_monitorCompRef.start(
f_Iot_Sip_receive(
{
mw_SipRequest(
mdw_TP_MW_IBCF_INVITE_01(
(
mw_SipUrl_Host(v_EUT_A_Addr) //f_GetEUTScscfIpAddress(PX_EUT_A)
)
))
},
{ mw_SipRequest(mw_INVITE_Request_Base) },
{0, omit},
"TP_MW_IBCF_INVITE_01 - Request",
false,
p_checkMessage
)
);
p_monitorCompRef.done;
}
} // End of function f_mtc_check_TP_MW_IBCF_INVITE_01
function f_mtc_check_TP_MW_IBCF_INVITE_01(
in SipInterfaceMonitor p_monitorCompRef,
in boolean p_checkMessage := false
) runs on ImsTestCoordinator {
if (isvalue(p_monitorCompRef)) {
var charstring v_EUT_A_Addr := f_GetEUTScscfAddress_1();//f_GetEUTScscfAddress(PX_EUT_A);
p_monitorCompRef.start(
f_Iot_Sip_receive(
{
mw_SipRequest(
mdw_TP_MW_IBCF_INVITE_01(
(
mw_SipUrl_Host(v_EUT_A_Addr) //f_GetEUTScscfIpAddress(PX_EUT_A)
)
))
},
{ mw_SipRequest(mw_INVITE_Request_Base) },
{0, omit},
"TP_MW_IBCF_INVITE_01 - Request",
false,
p_checkMessage
)
);
p_monitorCompRef.done;
}
} // End of function f_mtc_check_TP_MW_IBCF_INVITE_01
} // End of group imsInvite
......@@ -358,8 +358,74 @@ module AtsImsIot_TP_behavior_MW_EB {
}
} // End of function f_mtc_check_TP_MW_IBCF_200OK_01
} // End of group ims200Ok
/**
* @desc Verify that the E-CSCF successfully processes a 200 (Ok) provisional response on initial INVITE (Terminating Leg).
* Initial conditions with {
* the UE_A entity isAttachedTo the EPC_A and
* the UE_B entity isAttachedTo the EPC_B and
* the UE_A entity isRegisteredTo the IMS_A and
* the UE_B entity isRegisteredTo the IMS_B
* }
*
* Expected behaviour
* ensure that {
* when {
* the IMS_E_CSCF_A entity receives a 200_Ok containing
* From indicating value PX_UE_B_SIP_URI,
* To indicating value PX_UE_A_SIP_URI,
* CallId indicating value PX_UE_B_CALLID,
* Via indicating value PX_UE_B_VIA,
* Route indicating value PX_UE_B_SERVICE_ROUTE,
* PChargingVector,
* PChargingFunctionAddresses,
* PPreferredIdentity
* ;
* from the UE_B entity
* }
* then {
* the IMS_E_CSCF_A entity sends a 200_Ok containing
* From indicating value PX_UE_B_SIP_URI,
* To indicating value PX_UE_A_SIP_URI,
* CallId indicating value PX_UE_B_CALLID,
* Via indicating value PX_UE_B_VIA,
* Route indicating value PX_UE_B_SERVICE_ROUTE,
* not PChargingVector,
* not PChargingFunctionAddresses,
* not PPreferredIdentity
* ;
* from the IMS_P_CSCF_B entity
* }
* }
*/
function f_mtc_check_TP_MW_IBCF_200OK_02(
in SipInterfaceMonitor p_monitorCompRef,
in boolean p_checkMessage := false,
in SipMessage p_sip
) runs on ImsTestCoordinator {
if (isvalue(p_monitorCompRef)) {
// Check the 200 OK
p_monitorCompRef.start(
f_Iot_Sip_receive(
{ mw_SipResponse(mw_200OK(
p_sip.request.msgHeader.cSeq,
p_sip.request.msgHeader.callId,
p_sip.request.msgHeader.fromField,
p_sip.request.msgHeader.toField
))
},
{ mw_SipResponse(mw_200OK_Base) },
{ 0, omit },
"TP_MW_IBCF_200OK_02",
false,
p_checkMessage
)
);
p_monitorCompRef.done;
}
} // End of function f_mtc_check_TP_MW_IBCF_200OK_02
} // End of group ims200Ok
group imsAck {
/**
......@@ -425,4 +491,148 @@ module AtsImsIot_TP_behavior_MW_EB {
} // End of group imsAck
group imsBye {
/**
* @desc Verify that the E-CSCF successfully processes a BYE (Terminating Leg).
* Initial conditions with {
* the UE_A entity isAttachedTo the EPC_A and
* the UE_B entity isAttachedTo the EPC_B and
* the UE_A entity isRegisteredTo the IMS_A and
* the UE_B entity isRegisteredTo the IMS_B and
* the UE_A entity previouslyEstablishedCallWith the UE_B
* }
*
* Expected behaviour
* ensure that {
* when {
* the IMS_E_CSCF_A entity receives a BYE containing
* From indicating value PX_UE_B_SIP_URI,
* To indicating value PX_UE_A_SIP_URI,
* CallId indicating value PX_UE_B_CALLID,
* Via indicating value PX_UE_B_VIA,
* Route indicating value PX_UE_B_SERVICE_ROUTE
* ;
* from the IMS_P_CSCF_A entity
* }
* then {
* the IMS_E_CSCF_A entity sends a BYE containing
* From indicating value PX_UE_B_SIP_URI,
* To indicating value PX_UE_A_SIP_URI,
* CallId indicating value PX_UE_B_CALLID,
* Via indicating value PX_UE_B_VIA,
* Route indicating value PX_UE_B_SERVICE_ROUTE
* ;
* from the IMS_IBCF_A entity
* }
* }
*/
function f_mtc_check_TP_MW_IBCF_BYE_01(
in SipInterfaceMonitor p_monitorCompRef,
in boolean p_checkMessage := false,
inout SipMessage p_sip
) runs on ImsTestCoordinator {
if (isvalue(p_monitorCompRef)) {
// Check the BYE
p_monitorCompRef.start(
f_Iot_Sip_receive(
{ mw_SipRequest(mw_TP_MW_IBCF_BYE_01(
p_sip.request.msgHeader.callId,
-, // New CSeq,
-, // FIXME To be set
{
fieldName := FROM_E,
addressField := p_sip.request.msgHeader.toField.addressField,
fromParams := *
}, //p_sip.request.msgHeader.fromField,
{
fieldName := TO_E,
addressField := p_sip.request.msgHeader.fromField.addressField,
toParams := *
} //p_sip.request.msgHeader.toField
))
},
{ mw_SipRequest(mw_BYE_Request_Base) },
{ 0, omit },
"TP_MW_IBCF_BYE_01 - Request",
true,
p_checkMessage
)
);
p_monitorCompRef.done;
// Retrieve messge
f_getSipMsgFromMonitor(p_monitorCompRef, p_sip);
}
} // End of function f_mtc_check_TP_MW_IBCF_BYE_01
} // End of group imsBye
group ims200OkBye {
/**
* @desc Verify that the E-CSCF successfully processes a 200 (OK) BYE (Originating Leg).
* Initial conditions with {
* the UE_A entity isAttachedTo the EPC_A and
* the UE_B entity isAttachedTo the EPC_B and
* the UE_A entity isRegisteredTo the IMS_A and
* the UE_B entity isRegisteredTo the IMS_B
* }
*
* Expected behaviour
* ensure that {
* when {
* the IMS_E_CSCF_A entity sends a 200_Ok containing
* From indicating value PX_UE_A_SIP_URI,
* To indicating value PX_UE_B_SIP_URI,
* CallId indicating value PX_UE_A_CALLID,
* Via indicating value PX_UE_A_VIA,
* Route indicating value PX_UE_A_SERVICE_ROUTE,
* not PChargingVector,
* not PChargingFunctionAddresses,
* not PPreferredIdentity
* to the IMS_IBCF_A entity
* }
* then {
* the IMS_E_CSCF_A entity sends a 200_Ok containing
* From indicating value PX_UE_A_SIP_URI,
* To indicating value PX_UE_B_SIP_URI,
* CallId indicating value PX_UE_A_CALLID,
* Via indicating value PX_UE_A_VIA,
* Route indicating value PX_UE_A_SERVICE_ROUTE,
* not PChargingVector,
* not PChargingFunctionAddresses,
* not PPreferredIdentity
* to the IMS_P_CSCF_A entity
* }
* }
*/
function f_mtc_check_TP_MW_IBCF_200OK_BYE_01(
in SipInterfaceMonitor p_monitorCompRef,
in boolean p_checkMessage := false,
in SipMessage p_sip
) runs on ImsTestCoordinator {
if (isvalue(p_monitorCompRef)) {
// Check the 200 OK BYE
p_monitorCompRef.start(
f_Iot_Sip_receive(
{ mw_SipResponse(mw_200OK(
p_sip.request.msgHeader.cSeq,
p_sip.request.msgHeader.callId,
p_sip.request.msgHeader.fromField,
p_sip.request.msgHeader.toField
))
},
{ mw_SipResponse(mw_200OK_Base) },
{ 0, omit },
"TP_MW_IBCF_200OK_BYE_01",
false,
p_checkMessage
)
);
p_monitorCompRef.done;
}
} // End of function f_mtc_check_TP_MW_IBCF_200OK_BYE_01
} // End of group ims200OkBye
} // End of module AtsImsIot_TP_behavior_MW_EB
\ No newline at end of file
......@@ -430,4 +430,142 @@ module AtsImsIot_TP_behavior_MW_EC {
} // End of group imsAck
group imsBye {
/**
* @desc Verify that the P-CSCF successfully processes a BYE (Originating Leg).
* Initial conditions with {
* the UE_A entity isAttachedTo the EPC_A and
* the UE_B entity isAttachedTo the EPC_B and
* the UE_A entity isRegisteredTo the IMS_A and
* the UE_B entity isRegisteredTo the IMS_B and
* the UE_A entity previouslyEstablishedCallWith the UE_B
* }
*
* Expected behaviour
* ensure that {
* when {
* the IMS_P_CSCF_A entity receives a BYE containing
* From indicating value PX_UE_A_SIP_URI,
* To indicating value PX_UE_B_SIP_URI,
* CallId indicating value PX_UE_A_CALLID,
* Via indicating value PX_UE_A_VIA,
* Route indicating value PX_UE_A_SERVICE_ROUTE
* ;
* from the UE_A entity
* }
* then {
* the IMS_P_CSCF_A entity sends a BYE containing
* From indicating value PX_UE_A_SIP_URI,
* To indicating value PX_UE_B_SIP_URI,
* CallId indicating value PX_UE_A_CALLID,
* Via indicating value PX_UE_A_VIA,
* Route indicating value PX_UE_A_SERVICE_ROUTE
* ;
* from the IMS_E_CSCF_A entity
* }
* }
*/
function f_mtc_check_TP_MW_ECSCF_BYE_01(
in SipInterfaceMonitor p_monitorCompRef,
in boolean p_checkMessage := false,
inout SipMessage p_sip
) runs on ImsTestCoordinator {
if (isvalue(p_monitorCompRef)) {
// Check the BYE
p_monitorCompRef.start(
f_Iot_Sip_receive(
{ mw_SipRequest(mw_TP_MW_ECSCF_BYE_01(
p_sip.request.msgHeader.callId,
-, // New CSeq
-, // FIXME To be set
p_sip.request.msgHeader.fromField,
p_sip.request.msgHeader.toField
))
},
{ mw_SipRequest(mw_BYE_Request_Base) },
{ 0, omit },
"TP_MW_ECSCF_BYE_01 - Request",
true,
p_checkMessage
)
);
p_monitorCompRef.done;
// Retrieve messge
f_getSipMsgFromMonitor(p_monitorCompRef, p_sip);
}
} // End of function f_mtc_check_TP_MW_ECSCF_BYE_01
} // End of group imsBye
group ims200OkBye {
/**
* @desc Verify that the P-CSCF successfully processes a 200 (OK) BYE (Originating Leg).
* Initial conditions with {
* the UE_A entity isAttachedTo the EPC_A and
* the UE_B entity isAttachedTo the EPC_B and
* the UE_A entity isRegisteredTo the IMS_A and
* the UE_B entity isRegisteredTo the IMS_B
* }
*
* Expected behaviour
* ensure that {
* when {
* the IMS_P_CSCF_A entity sends a 200_Ok containing
* From indicating value PX_UE_A_SIP_URI,
* To indicating value PX_UE_B_SIP_URI,
* CallId indicating value PX_UE_A_CALLID,
* Via indicating value PX_UE_A_VIA,
* Route indicating value PX_UE_A_SERVICE_ROUTE,
* not PChargingVector,
* not PChargingFunctionAddresses,
* not PPreferredIdentity
* ;
* to the IMS_E_CSCF_A entity
* }
* then {
* the IMS_P_CSCF_A entity sends a 200_Ok containing
* From indicating value PX_UE_A_SIP_URI,
* To indicating value PX_UE_B_SIP_URI,
* CallId indicating value PX_UE_A_CALLID,
* Via indicating value PX_UE_A_VIA,
* Route indicating value PX_UE_A_SERVICE_ROUTE,
* not PChargingVector,
* not PChargingFunctionAddresses,
* not PPreferredIdentity
* ;
* to the UE_A entity
* }
* }
*/
function f_mtc_check_TP_MW_ECSCF_200OK_BYE_01(
in SipInterfaceMonitor p_monitorCompRef,
in boolean p_checkMessage := false,
in SipMessage p_sip
) runs on ImsTestCoordinator {
if (isvalue(p_monitorCompRef)) {
// Check the 200 OK BYE
p_monitorCompRef.start(
f_Iot_Sip_receive(
{ mw_SipResponse(mw_200OK(
p_sip.request.msgHeader.cSeq,
p_sip.request.msgHeader.callId,
p_sip.request.msgHeader.fromField,
p_sip.request.msgHeader.toField
))
},
{ mw_SipResponse(mw_200OK_Base) },
{ 0, omit },
"TP_MW_ECSCF_200OK_BYE_01",
false,
p_checkMessage
)
);
p_monitorCompRef.done;
}
} // End of function f_mtc_check_TP_MW_ECSCF_200OK_BYE_01
} // End of group ims200OkBye
} // End of module AtsImsIot_TP_behavior_MW_EC
\ No newline at end of file
......@@ -1027,6 +1027,33 @@ module AtsImsIot_Templates_MW {
}
} // End of template mw_TP_MW_ECSCF_ACK_02
template (present) BYE_Request mw_TP_MW_ECSCF_BYE_01( // TODO To be enforced
template (present) CallId p_callId := ?,
template (present) CSeq p_cSeq := ?,
template (present) SipUrl p_bye_uri := ?,
template (present) From p_from := ?,
template (present) To p_to := ?
) modifies mw_BYE_Request_Base := {
requestLine := {
method := BYE_E,
requestUri := p_bye_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_PCSCF_BYE_01
}
group g_ibcf {
......@@ -1134,6 +1161,33 @@ module AtsImsIot_Templates_MW {
}
} // End of template mw_TP_MW_IBCF_ACK_01
template (present) BYE_Request mw_TP_MW_IBCF_BYE_01( // TODO To be enforced
template (present) CallId p_callId := ?,
template (present) CSeq p_cSeq := ?,
template (present) SipUrl p_bye_uri := ?,
template (present) From p_from := ?,
template (present) To p_to := ?
) modifies mw_BYE_Request_Base := {
requestLine := {
method := BYE_E,
requestUri := p_bye_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_BYE_01
}
} // End of module AtsImsIot_Templates_MW
\ No newline at end of file
......@@ -52,6 +52,7 @@ module AtsImsIot_TestConfiguration {
const charstring c_trigger_B := "User B";
//* eut trigger name User A
const charstring c_userUE_A := "User A";
const charstring c_userUE_A_emergency := "User A Emergency";
const charstring c_userUE_A2 := "User A2";
//* eut trigger name User B
const charstring c_userUE_B := "User B";
......
......@@ -256,11 +256,18 @@ module LibIot_PIXITS {
*/
modulepar integer PX_EUT_A := 0;
/**
*
* @desc Selects product based on index in PX_PRODCUTS vendor list for EUT_A
*
*/
modulepar integer PX_EUT_A_EMERGENCY := 1;
/**
*
* @desc Selects product based on index in PX_PRODCUTS vendor list for EUT_B
*/
modulepar integer PX_EUT_B := 1;
modulepar integer PX_EUT_B := 2;
/**
*
......@@ -278,7 +285,7 @@ module LibIot_PIXITS {
*
* @desc Selects product based on index in PX_PRODCUTS vendor list for EUT_B_B2
*/
modulepar integer PX_EUT_B_B2 := 2;
modulepar integer PX_EUT_B_B2 := 3;
/**
......@@ -286,7 +293,7 @@ module LibIot_PIXITS {
* @desc Selects product based on index in PX_PRODCUTS vendor list for PSAP
*
*/
modulepar integer PX_PSAP := 3;
modulepar integer PX_PSAP := 12;
/**
*
......