Loading AtsImsIot/AtsImsIot_Behavior.ttcn +241 −5 Original line number Diff line number Diff line Loading @@ -1909,7 +1909,7 @@ group checksTC_IMS_SS_0007 { f_imsIot_receive( {}, { mw_SipRequest(mdw_TP_IMS_5097_05f_mw(*, mw_SipUrl_Host(v_EUT_A_Addr))), mw_SipRequest(mdw_TP_IMS_5097_05_f_mw(*, mw_SipUrl_Host(v_EUT_A_Addr))), mw_SipRequest(mw_MESSAGE_Request_Base(*)) }, {0, omit}, Loading @@ -1923,7 +1923,7 @@ group checksTC_IMS_SS_0007 { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5097_05p_mw(*, mw_SipUrl_Host(v_EUT_A_Addr)))}, {mw_SipRequest(mdw_TP_IMS_5097_05_p_mw(*, mw_SipUrl_Host(v_EUT_A_Addr)))}, {mw_SipRequest(mw_MESSAGE_Request_Base(*))}, {0, omit}, "TP_IMS_5097_05", Loading Loading @@ -2155,8 +2155,244 @@ group checksTC_IMS_SS_0007 { } /** * @desc Starts monitor component behavior for TP_IMS_5108_02 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5108_02_gm( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_MESSAGE_Request_Base(*))}, {}, {0, omit}, "TP_IMS_5108_02", false, p_checkMessage ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior for TP_IMS_5108_02 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5108_02_mw( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { var template SipUrl v_SCSCF_IMS_B := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_B)); var SemicolonParam_List p_paramList; var GenericParam p_param; var SipMessage v_sip; p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5108_02a_mw(*))}, {mw_SipRequest(mw_MESSAGE_Request_Base(*))}, {0, omit}, "TP_IMS_5108_02", true, true ) ); p_monitorCompRef.done; f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); p_paramList := v_sip.request.msgHeader.pChargingVector.chargeParams; for(var integer i := 0; i < lengthof(p_paramList); i:= i+1) { if(p_paramList[i].id == "icid-value") { p_param := p_paramList[i]; } } p_monitorCompRef.start( f_imsIot_receive( {}, { mw_SipRequest(mdw_TP_IMS_5108_02b_f_mw(*)), mw_SipRequest(mw_MESSAGE_Request_Base(*)) }, {0, omit}, "TP_IMS_5108_02", false, true ) ); p_monitorCompRef.done; p_monitorCompRef.start( f_imsIot_receive( {}, { mw_SipRequest(mdw_TP_IMS_5108_02b_p_mw(*, v_SCSCF_IMS_B, p_param)), mw_SipRequest(mw_MESSAGE_Request_Base(*)) }, {0, omit}, "TP_IMS_5108_02", false, false ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior for TP_IMS_5050_01 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5050_01_gm( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_MESSAGE_Request_Base(*))}, {}, {0, omit}, "TP_IMS_5050_01", false, p_checkMessage ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior for TP_IMS_5050_01 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5050_01_mw( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { var template SipUrl v_PCSCF_IMS_B := mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_B)); var template SipUrl v_UE_A := mw_SipUrl_Host(f_GetEUTPublicId(PX_EUT_A)); p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5050_01_mw(*, v_PCSCF_IMS_B, v_UE_A))}, {mw_SipRequest(mw_MESSAGE_Request_Base(*))}, {0, omit}, "TP_IMS_5050_01", false, p_checkMessage ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior for TP_IMS_5050_01 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5114_02_gm( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_MESSAGE_Request_Base(*))}, {}, {0, omit}, "TP_IMS_5114_02", false, false ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior for TP_IMS_5050_01 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5114_02_mw( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_MESSAGE_Request_Base(*))}, {}, {0, omit}, "TP_IMS_5114_02", false, false ) ); p_monitorCompRef.done; p_monitorCompRef.start( f_imsIot_receive( {mw_SipResponse(mdw_4XX_Base)}, {}, {0, omit}, "TP_IMS_5114_02", false, false ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior for TP_IMS_5108_06 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5108_06_gm( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_MESSAGE_Request_Base(*))}, {}, {0, omit}, "TP_IMS_5108_06", false, false ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior for TP_IMS_5108_06 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5108_06_mw( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_MESSAGE_Request_Base(*))}, {}, {0, omit}, "TP_IMS_5108_06", false, false ) ); p_monitorCompRef.done; p_monitorCompRef.start( f_imsIot_receive( {mw_SipResponse(mw_404NotFound_Base)}, {}, {0, omit}, "TP_IMS_5114_02", false, false ) ); p_monitorCompRef.done; } } } // end group }// end module No newline at end of file AtsImsIot/AtsImsIot_Functions.ttcn +20 −0 Original line number Diff line number Diff line Loading @@ -317,6 +317,26 @@ module AtsImsIot_Functions { p_userCompRef.done; if(f_getE2EVerdict() == pass) { v_success := true; } return v_success; } /** * * @desc Starts user component behaviour for checking message receipt from test coordinator * @param p_userCompRef Reference ot IMS UE user component * @param p_content Content of meessage to be received */ function f_mtc_userCheckMessageNotDelivered(EquipmentUser p_userCompRef) runs on TestCoordinator return boolean { var boolean v_success := false; p_userCompRef.start(f_userCheckMessageNotDelivered()); p_userCompRef.done; if(f_getE2EVerdict() == pass) { v_success := true; } Loading AtsImsIot/AtsImsIot_Templates.ttcn +104 −2 Original line number Diff line number Diff line Loading @@ -337,6 +337,7 @@ module AtsImsIot_Templates { } } /** * @desc INVITE Request checking TP_IMS_5097_02 */ Loading Loading @@ -597,7 +598,7 @@ module AtsImsIot_Templates { } } template MESSAGE_Request mdw_TP_IMS_5097_05p_mw( template MESSAGE_Request mdw_TP_IMS_5097_05_p_mw( template CallId p_callId, template SipUrl p_SCSCF_SIP_URI ) modifies mw_MESSAGE_Request_Base := { Loading @@ -621,7 +622,7 @@ module AtsImsIot_Templates { } } template MESSAGE_Request mdw_TP_IMS_5097_05f_mw( template MESSAGE_Request mdw_TP_IMS_5097_05_f_mw( template CallId p_callId, template SipUrl p_SCSCF_SIP_URI ) modifies mw_MESSAGE_Request_Base := { Loading Loading @@ -677,6 +678,62 @@ module AtsImsIot_Templates { } } template Request mdw_TP_IMS_5108_02a_mw( template CallId p_callId ) modifies mw_MESSAGE_Request_Base := { msgHeader := { pChargingVector := { fieldName := P_CHARGING_VECTOR_E, chargeParams := { {id := "icid-value", paramValue := ?}, * } } } } template Request mdw_TP_IMS_5108_02b_p_mw( template CallId p_callId, template SipUrl p_SCSCF_Uri, template GenericParam p_param ) modifies mw_MESSAGE_Request_Base := { msgHeader := { route := omit, // TODO TP is not clear please double check recordRoute := { fieldName := RECORD_ROUTE_E, routeBody := {{ nameAddr := { displayName := *, addrSpec := p_SCSCF_Uri }, rrParam := * }} }, pChargingVector := { fieldName := P_CHARGING_VECTOR_E, chargeParams := { p_param, * } } } } template Request mdw_TP_IMS_5108_02b_f_mw( template CallId p_callId ) modifies mw_MESSAGE_Request_Base := { msgHeader := { pChargingVector := { fieldName := P_CHARGING_VECTOR_E, chargeParams := { {id := "orig-ioi", paramValue := ?}, {id := "term-ioi", paramValue := ?}, * } } } } template Response mw_TP_IMS_5117_02_mw modifies mdw_2XX_Base := { msgHeader := { pChargingVector := { Loading Loading @@ -715,6 +772,36 @@ module AtsImsIot_Templates { } } template Request mdw_TP_IMS_5050_01_mw( template CallId p_callId, template SipUrl p_PCSCF_URI, template SipUrl p_UE_A_URI ) modifies mw_MESSAGE_Request_Base := { msgHeader := { route := { fieldName := ROUTE_E, routeBody := { { nameAddr := { displayName := *, addrSpec := complement(p_PCSCF_URI) }, rrParam := * },* } }, pPreferredID := omit, pAssertedID := mw_PAssertedID(mw_PAssertedIDValue(p_UE_A_URI)), pChargingVector := { fieldName := P_CHARGING_VECTOR_E, chargeParams := { {id := "icid-value", paramValue := ?}, * } } } } template Response mdw_2XX_Base modifies m_Response_Dummy := { statusLine := {c_sipNameVersion, (200..299), *}, msgHeader := ?, Loading Loading @@ -750,6 +837,14 @@ module AtsImsIot_Templates { messageBody := omit, payload := omit } template Response mdw_4XX_Base modifies m_Response_Dummy := { statusLine := {c_sipNameVersion, (400..499), *}, msgHeader := ?, messageBody := omit, payload := omit } template Response mw_403Forbidden_Base modifies m_Response_Dummy := { statusLine := c_statusLine403, Loading @@ -757,6 +852,13 @@ module AtsImsIot_Templates { messageBody := omit, payload := omit } template Response mw_404NotFound_Base modifies m_Response_Dummy := { statusLine := c_statusLine404, msgHeader := ?, messageBody := omit, payload := omit } template REGISTER_Request mdw_TP_IMS_5088_01_gm modifies mw_REGISTER_Request_Base := { msgHeader := { Loading AtsImsIot/AtsImsIot_TestCases_MESS.ttcn +129 −1 Original line number Diff line number Diff line Loading @@ -179,7 +179,7 @@ module AtsImsIot_TestCases_MESS { /** * @desc * IMS netwirk handles messaging with DNS/ENUM lookup procedure correctly * IMS network handles messaging with DNS/ENUM lookup procedure correctly * (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.3) */ testcase TC_IMS_MESS_0004() runs on ImsTestCoordinator system IotSystemInterface { Loading Loading @@ -225,4 +225,132 @@ module AtsImsIot_TestCases_MESS { f_cf_monitor_down(v_gmB); f_cf_monitor_down(v_mw); } /** * @desc * IMS network handles messaging while roaming correctly. * (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.4) */ testcase TC_IMS_MESS_0005() runs on ImsTestCoordinator system IotSystemInterface { // create components var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A); var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B); var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A); var ImsInterfaceMonitor v_gmB := f_cf_create_monitor(c_gm_B); var ImsInterfaceMonitor v_mw := f_cf_create_monitor(c_mw); // map/connect component ports f_cf_user_up(v_ueA); f_cf_user_up(v_ueB); f_cf_monitor_up(v_gmA); f_cf_monitor_up(v_gmB); f_cf_monitor_up(v_mw); // preamble f_PR_user_home_registration(v_ueA, f_getAnyValidUser(PX_EUT_A)); f_PR_user_roaming_registration(v_ueB, f_getAnyValidUser(PX_EUT_B)); // test body f_mtc_userSendMessage(v_ueA, "test"); f_mtc_check_TP_IMS_5050_01_gm(v_gmA, false); // TODO must be checked f_mtc_check_TP_IMS_5050_01_mw(v_mw, true); f_mtc_check_TP_IMS_5108_02_mw(v_mw); // TODO must be checked f_mtc_userCheckMessageReceipt(v_ueB); f_mtc_check_TP_IMS_5118_01_gm(v_gmB, false); f_mtc_check_TP_IMS_5118_01_mw(v_mw, false); // postabmle f_PO_user_home_deregistration(v_ueA); f_PO_user_roaming_deregistration(v_ueB); //unmap/disconnet component ports f_cf_user_down(v_ueA); f_cf_user_down(v_ueB); f_cf_monitor_down(v_gmA); f_cf_monitor_down(v_gmB); f_cf_monitor_down(v_mw); } /** * @desc * IMS network handles messaging correctly when receiving user is nit registered. * (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.5) */ testcase TC_IMS_MESS_0006() runs on ImsTestCoordinator system IotSystemInterface { // create components var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A); var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A); var ImsInterfaceMonitor v_mw := f_cf_create_monitor(c_mw); // map/connect component ports f_cf_user_up(v_ueA); f_cf_monitor_up(v_gmA); f_cf_monitor_up(v_mw); // preamble f_PR_user_home_registration(v_ueA, f_getAnyValidUser(PX_EUT_A)); // test body f_mtc_userSendMessage(v_ueA, "test"); f_mtc_check_TP_IMS_5114_02_gm(v_gmA); f_mtc_check_TP_IMS_5114_02_mw(v_mw); f_mtc_userCheckMessageNotDelivered(v_ueA); // postabmle f_PO_user_home_deregistration(v_ueA); //unmap/disconnet component ports f_cf_user_down(v_ueA); f_cf_monitor_down(v_gmA); f_cf_monitor_down(v_mw); } /** * @desc * IMS network handles messaging correctly when receiving user is nit registered. * (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.6) */ testcase TC_IMS_MESS_0007() runs on ImsTestCoordinator system IotSystemInterface { // create components var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A); var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B); var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A); var ImsInterfaceMonitor v_mw := f_cf_create_monitor(c_mw); // map/connect component ports f_cf_user_up(v_ueA); f_cf_user_up(v_ueB); f_cf_monitor_up(v_gmA); f_cf_monitor_up(v_mw); // preamble f_PR_user_home_registration(v_ueA, f_getAnyValidUser(PX_EUT_A)); f_PR_user_home_registration(v_ueB, f_getAnyValidUser(PX_EUT_B)); // test body f_mtc_userSendMessage(v_ueA, "test"); f_mtc_check_TP_IMS_5108_06_gm(v_gmA); f_mtc_check_TP_IMS_5108_06_mw(v_mw); f_mtc_userCheckMessageNotDelivered(v_ueA); // postabmle f_PO_user_home_deregistration(v_ueA); f_PO_user_home_deregistration(v_ueB); //unmap/disconnet component ports f_cf_user_down(v_ueA); f_cf_user_down(v_ueB); f_cf_monitor_down(v_gmA); f_cf_monitor_down(v_mw); } } No newline at end of file LibIms_ConfigAndTrigger/LibIms_UpperTester.ttcn +14 −2 Original line number Diff line number Diff line Loading @@ -44,6 +44,12 @@ module LibIms_UpperTester { * @desc Command to check if UE has receipt of a message */ const EquipmentCommand c_UE_CHECK_MESSAGE_RECEIPT := "UE_CHECK_MESSAGE_RECEIPT"; /** * @desc Command to check if UE is informed about that the message request could not be delivered. */ const EquipmentCommand c_UE_CHECK_MESSAGE_NOT_DELIVERED := "UE_CHECK_MESSAGE_NOT_DELIVERED"; } } Loading Loading @@ -97,7 +103,13 @@ module LibIms_UpperTester { f_sendEquipmentCmd(valueof(m_EQ_Request(c_UE_CHECK_MESSAGE_RECEIPT, {}))); } /** * * @desc Trigger checking the receipt of instant message at UE */ function f_userCheckMessageNotDelivered() runs on EquipmentUser { f_sendEquipmentCmd(valueof(m_EQ_Request(c_UE_CHECK_MESSAGE_NOT_DELIVERED, {}))); } } } Loading Loading
AtsImsIot/AtsImsIot_Behavior.ttcn +241 −5 Original line number Diff line number Diff line Loading @@ -1909,7 +1909,7 @@ group checksTC_IMS_SS_0007 { f_imsIot_receive( {}, { mw_SipRequest(mdw_TP_IMS_5097_05f_mw(*, mw_SipUrl_Host(v_EUT_A_Addr))), mw_SipRequest(mdw_TP_IMS_5097_05_f_mw(*, mw_SipUrl_Host(v_EUT_A_Addr))), mw_SipRequest(mw_MESSAGE_Request_Base(*)) }, {0, omit}, Loading @@ -1923,7 +1923,7 @@ group checksTC_IMS_SS_0007 { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5097_05p_mw(*, mw_SipUrl_Host(v_EUT_A_Addr)))}, {mw_SipRequest(mdw_TP_IMS_5097_05_p_mw(*, mw_SipUrl_Host(v_EUT_A_Addr)))}, {mw_SipRequest(mw_MESSAGE_Request_Base(*))}, {0, omit}, "TP_IMS_5097_05", Loading Loading @@ -2155,8 +2155,244 @@ group checksTC_IMS_SS_0007 { } /** * @desc Starts monitor component behavior for TP_IMS_5108_02 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5108_02_gm( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_MESSAGE_Request_Base(*))}, {}, {0, omit}, "TP_IMS_5108_02", false, p_checkMessage ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior for TP_IMS_5108_02 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5108_02_mw( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { var template SipUrl v_SCSCF_IMS_B := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_B)); var SemicolonParam_List p_paramList; var GenericParam p_param; var SipMessage v_sip; p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5108_02a_mw(*))}, {mw_SipRequest(mw_MESSAGE_Request_Base(*))}, {0, omit}, "TP_IMS_5108_02", true, true ) ); p_monitorCompRef.done; f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); p_paramList := v_sip.request.msgHeader.pChargingVector.chargeParams; for(var integer i := 0; i < lengthof(p_paramList); i:= i+1) { if(p_paramList[i].id == "icid-value") { p_param := p_paramList[i]; } } p_monitorCompRef.start( f_imsIot_receive( {}, { mw_SipRequest(mdw_TP_IMS_5108_02b_f_mw(*)), mw_SipRequest(mw_MESSAGE_Request_Base(*)) }, {0, omit}, "TP_IMS_5108_02", false, true ) ); p_monitorCompRef.done; p_monitorCompRef.start( f_imsIot_receive( {}, { mw_SipRequest(mdw_TP_IMS_5108_02b_p_mw(*, v_SCSCF_IMS_B, p_param)), mw_SipRequest(mw_MESSAGE_Request_Base(*)) }, {0, omit}, "TP_IMS_5108_02", false, false ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior for TP_IMS_5050_01 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5050_01_gm( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_MESSAGE_Request_Base(*))}, {}, {0, omit}, "TP_IMS_5050_01", false, p_checkMessage ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior for TP_IMS_5050_01 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5050_01_mw( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { var template SipUrl v_PCSCF_IMS_B := mw_SipUrl_Host(f_GetEUTPcscfAddress(PX_EUT_B)); var template SipUrl v_UE_A := mw_SipUrl_Host(f_GetEUTPublicId(PX_EUT_A)); p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5050_01_mw(*, v_PCSCF_IMS_B, v_UE_A))}, {mw_SipRequest(mw_MESSAGE_Request_Base(*))}, {0, omit}, "TP_IMS_5050_01", false, p_checkMessage ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior for TP_IMS_5050_01 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5114_02_gm( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_MESSAGE_Request_Base(*))}, {}, {0, omit}, "TP_IMS_5114_02", false, false ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior for TP_IMS_5050_01 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5114_02_mw( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_MESSAGE_Request_Base(*))}, {}, {0, omit}, "TP_IMS_5114_02", false, false ) ); p_monitorCompRef.done; p_monitorCompRef.start( f_imsIot_receive( {mw_SipResponse(mdw_4XX_Base)}, {}, {0, omit}, "TP_IMS_5114_02", false, false ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior for TP_IMS_5108_06 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5108_06_gm( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_MESSAGE_Request_Base(*))}, {}, {0, omit}, "TP_IMS_5108_06", false, false ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior for TP_IMS_5108_06 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5108_06_mw( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_MESSAGE_Request_Base(*))}, {}, {0, omit}, "TP_IMS_5108_06", false, false ) ); p_monitorCompRef.done; p_monitorCompRef.start( f_imsIot_receive( {mw_SipResponse(mw_404NotFound_Base)}, {}, {0, omit}, "TP_IMS_5114_02", false, false ) ); p_monitorCompRef.done; } } } // end group }// end module No newline at end of file
AtsImsIot/AtsImsIot_Functions.ttcn +20 −0 Original line number Diff line number Diff line Loading @@ -317,6 +317,26 @@ module AtsImsIot_Functions { p_userCompRef.done; if(f_getE2EVerdict() == pass) { v_success := true; } return v_success; } /** * * @desc Starts user component behaviour for checking message receipt from test coordinator * @param p_userCompRef Reference ot IMS UE user component * @param p_content Content of meessage to be received */ function f_mtc_userCheckMessageNotDelivered(EquipmentUser p_userCompRef) runs on TestCoordinator return boolean { var boolean v_success := false; p_userCompRef.start(f_userCheckMessageNotDelivered()); p_userCompRef.done; if(f_getE2EVerdict() == pass) { v_success := true; } Loading
AtsImsIot/AtsImsIot_Templates.ttcn +104 −2 Original line number Diff line number Diff line Loading @@ -337,6 +337,7 @@ module AtsImsIot_Templates { } } /** * @desc INVITE Request checking TP_IMS_5097_02 */ Loading Loading @@ -597,7 +598,7 @@ module AtsImsIot_Templates { } } template MESSAGE_Request mdw_TP_IMS_5097_05p_mw( template MESSAGE_Request mdw_TP_IMS_5097_05_p_mw( template CallId p_callId, template SipUrl p_SCSCF_SIP_URI ) modifies mw_MESSAGE_Request_Base := { Loading @@ -621,7 +622,7 @@ module AtsImsIot_Templates { } } template MESSAGE_Request mdw_TP_IMS_5097_05f_mw( template MESSAGE_Request mdw_TP_IMS_5097_05_f_mw( template CallId p_callId, template SipUrl p_SCSCF_SIP_URI ) modifies mw_MESSAGE_Request_Base := { Loading Loading @@ -677,6 +678,62 @@ module AtsImsIot_Templates { } } template Request mdw_TP_IMS_5108_02a_mw( template CallId p_callId ) modifies mw_MESSAGE_Request_Base := { msgHeader := { pChargingVector := { fieldName := P_CHARGING_VECTOR_E, chargeParams := { {id := "icid-value", paramValue := ?}, * } } } } template Request mdw_TP_IMS_5108_02b_p_mw( template CallId p_callId, template SipUrl p_SCSCF_Uri, template GenericParam p_param ) modifies mw_MESSAGE_Request_Base := { msgHeader := { route := omit, // TODO TP is not clear please double check recordRoute := { fieldName := RECORD_ROUTE_E, routeBody := {{ nameAddr := { displayName := *, addrSpec := p_SCSCF_Uri }, rrParam := * }} }, pChargingVector := { fieldName := P_CHARGING_VECTOR_E, chargeParams := { p_param, * } } } } template Request mdw_TP_IMS_5108_02b_f_mw( template CallId p_callId ) modifies mw_MESSAGE_Request_Base := { msgHeader := { pChargingVector := { fieldName := P_CHARGING_VECTOR_E, chargeParams := { {id := "orig-ioi", paramValue := ?}, {id := "term-ioi", paramValue := ?}, * } } } } template Response mw_TP_IMS_5117_02_mw modifies mdw_2XX_Base := { msgHeader := { pChargingVector := { Loading Loading @@ -715,6 +772,36 @@ module AtsImsIot_Templates { } } template Request mdw_TP_IMS_5050_01_mw( template CallId p_callId, template SipUrl p_PCSCF_URI, template SipUrl p_UE_A_URI ) modifies mw_MESSAGE_Request_Base := { msgHeader := { route := { fieldName := ROUTE_E, routeBody := { { nameAddr := { displayName := *, addrSpec := complement(p_PCSCF_URI) }, rrParam := * },* } }, pPreferredID := omit, pAssertedID := mw_PAssertedID(mw_PAssertedIDValue(p_UE_A_URI)), pChargingVector := { fieldName := P_CHARGING_VECTOR_E, chargeParams := { {id := "icid-value", paramValue := ?}, * } } } } template Response mdw_2XX_Base modifies m_Response_Dummy := { statusLine := {c_sipNameVersion, (200..299), *}, msgHeader := ?, Loading Loading @@ -750,6 +837,14 @@ module AtsImsIot_Templates { messageBody := omit, payload := omit } template Response mdw_4XX_Base modifies m_Response_Dummy := { statusLine := {c_sipNameVersion, (400..499), *}, msgHeader := ?, messageBody := omit, payload := omit } template Response mw_403Forbidden_Base modifies m_Response_Dummy := { statusLine := c_statusLine403, Loading @@ -757,6 +852,13 @@ module AtsImsIot_Templates { messageBody := omit, payload := omit } template Response mw_404NotFound_Base modifies m_Response_Dummy := { statusLine := c_statusLine404, msgHeader := ?, messageBody := omit, payload := omit } template REGISTER_Request mdw_TP_IMS_5088_01_gm modifies mw_REGISTER_Request_Base := { msgHeader := { Loading
AtsImsIot/AtsImsIot_TestCases_MESS.ttcn +129 −1 Original line number Diff line number Diff line Loading @@ -179,7 +179,7 @@ module AtsImsIot_TestCases_MESS { /** * @desc * IMS netwirk handles messaging with DNS/ENUM lookup procedure correctly * IMS network handles messaging with DNS/ENUM lookup procedure correctly * (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.3) */ testcase TC_IMS_MESS_0004() runs on ImsTestCoordinator system IotSystemInterface { Loading Loading @@ -225,4 +225,132 @@ module AtsImsIot_TestCases_MESS { f_cf_monitor_down(v_gmB); f_cf_monitor_down(v_mw); } /** * @desc * IMS network handles messaging while roaming correctly. * (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.4) */ testcase TC_IMS_MESS_0005() runs on ImsTestCoordinator system IotSystemInterface { // create components var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A); var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B); var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A); var ImsInterfaceMonitor v_gmB := f_cf_create_monitor(c_gm_B); var ImsInterfaceMonitor v_mw := f_cf_create_monitor(c_mw); // map/connect component ports f_cf_user_up(v_ueA); f_cf_user_up(v_ueB); f_cf_monitor_up(v_gmA); f_cf_monitor_up(v_gmB); f_cf_monitor_up(v_mw); // preamble f_PR_user_home_registration(v_ueA, f_getAnyValidUser(PX_EUT_A)); f_PR_user_roaming_registration(v_ueB, f_getAnyValidUser(PX_EUT_B)); // test body f_mtc_userSendMessage(v_ueA, "test"); f_mtc_check_TP_IMS_5050_01_gm(v_gmA, false); // TODO must be checked f_mtc_check_TP_IMS_5050_01_mw(v_mw, true); f_mtc_check_TP_IMS_5108_02_mw(v_mw); // TODO must be checked f_mtc_userCheckMessageReceipt(v_ueB); f_mtc_check_TP_IMS_5118_01_gm(v_gmB, false); f_mtc_check_TP_IMS_5118_01_mw(v_mw, false); // postabmle f_PO_user_home_deregistration(v_ueA); f_PO_user_roaming_deregistration(v_ueB); //unmap/disconnet component ports f_cf_user_down(v_ueA); f_cf_user_down(v_ueB); f_cf_monitor_down(v_gmA); f_cf_monitor_down(v_gmB); f_cf_monitor_down(v_mw); } /** * @desc * IMS network handles messaging correctly when receiving user is nit registered. * (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.5) */ testcase TC_IMS_MESS_0006() runs on ImsTestCoordinator system IotSystemInterface { // create components var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A); var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A); var ImsInterfaceMonitor v_mw := f_cf_create_monitor(c_mw); // map/connect component ports f_cf_user_up(v_ueA); f_cf_monitor_up(v_gmA); f_cf_monitor_up(v_mw); // preamble f_PR_user_home_registration(v_ueA, f_getAnyValidUser(PX_EUT_A)); // test body f_mtc_userSendMessage(v_ueA, "test"); f_mtc_check_TP_IMS_5114_02_gm(v_gmA); f_mtc_check_TP_IMS_5114_02_mw(v_mw); f_mtc_userCheckMessageNotDelivered(v_ueA); // postabmle f_PO_user_home_deregistration(v_ueA); //unmap/disconnet component ports f_cf_user_down(v_ueA); f_cf_monitor_down(v_gmA); f_cf_monitor_down(v_mw); } /** * @desc * IMS network handles messaging correctly when receiving user is nit registered. * (ETSI TS 186 011-2 V2.3.1 cause 4.5.4.6) */ testcase TC_IMS_MESS_0007() runs on ImsTestCoordinator system IotSystemInterface { // create components var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A); var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B); var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A); var ImsInterfaceMonitor v_mw := f_cf_create_monitor(c_mw); // map/connect component ports f_cf_user_up(v_ueA); f_cf_user_up(v_ueB); f_cf_monitor_up(v_gmA); f_cf_monitor_up(v_mw); // preamble f_PR_user_home_registration(v_ueA, f_getAnyValidUser(PX_EUT_A)); f_PR_user_home_registration(v_ueB, f_getAnyValidUser(PX_EUT_B)); // test body f_mtc_userSendMessage(v_ueA, "test"); f_mtc_check_TP_IMS_5108_06_gm(v_gmA); f_mtc_check_TP_IMS_5108_06_mw(v_mw); f_mtc_userCheckMessageNotDelivered(v_ueA); // postabmle f_PO_user_home_deregistration(v_ueA); f_PO_user_home_deregistration(v_ueB); //unmap/disconnet component ports f_cf_user_down(v_ueA); f_cf_user_down(v_ueB); f_cf_monitor_down(v_gmA); f_cf_monitor_down(v_mw); } } No newline at end of file
LibIms_ConfigAndTrigger/LibIms_UpperTester.ttcn +14 −2 Original line number Diff line number Diff line Loading @@ -44,6 +44,12 @@ module LibIms_UpperTester { * @desc Command to check if UE has receipt of a message */ const EquipmentCommand c_UE_CHECK_MESSAGE_RECEIPT := "UE_CHECK_MESSAGE_RECEIPT"; /** * @desc Command to check if UE is informed about that the message request could not be delivered. */ const EquipmentCommand c_UE_CHECK_MESSAGE_NOT_DELIVERED := "UE_CHECK_MESSAGE_NOT_DELIVERED"; } } Loading Loading @@ -97,7 +103,13 @@ module LibIms_UpperTester { f_sendEquipmentCmd(valueof(m_EQ_Request(c_UE_CHECK_MESSAGE_RECEIPT, {}))); } /** * * @desc Trigger checking the receipt of instant message at UE */ function f_userCheckMessageNotDelivered() runs on EquipmentUser { f_sendEquipmentCmd(valueof(m_EQ_Request(c_UE_CHECK_MESSAGE_NOT_DELIVERED, {}))); } } } Loading