Loading AtsImsIot/AtsImsIot_Behavior.ttcn +118 −0 Original line number Diff line number Diff line Loading @@ -2696,5 +2696,123 @@ group checksTC_IMS_SS_0007 { } } group callChecks { /** * @desc Starts monitor component behavior for TP_IMS_5106_01 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5106_01_gm( ImsInterfaceMonitor p_monitorCompRef, integer p_skipCount ) runs on ImsTestCoordinator { var template SkipType v_skip := {0, omit}; if(p_skipCount > 0) { v_skip := {1, mw_SipRequest(mw_INVITE_Request_Base)}; } p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_INVITE_Request_Base)}, {}, v_skip, "TP_IMS_5106_01", false, false ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior for TP_IMS_5106_01 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5106_01_mw( ImsInterfaceMonitor p_monitorCompRef, integer p_skipCount ) runs on ImsTestCoordinator { var template SipUrl v_SCSCF_A_Uri := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_A)); var template SkipType v_skip := {0, omit}; if(p_skipCount > 0) { v_skip := {1, mw_SipRequest(mw_INVITE_Request_Base)}; } p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5106_01_mw(v_SCSCF_A_Uri))}, {mw_SipRequest(mw_INVITE_Request_Base)}, v_skip, "TP_IMS_5106_01", false, false ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior for TP_IMS_5121_02 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5121_02_gm( ImsInterfaceMonitor p_monitorCompRef, integer p_skipCount ) runs on ImsTestCoordinator { var template SkipType v_skip := {0, omit}; if(p_skipCount > 0) { v_skip := {1, mw_SipResponse(mdw_2XX_Base)}; } p_monitorCompRef.start( f_imsIot_receive( {mw_SipResponse(mdw_2XX_Base)}, {}, v_skip, "TP_IMS_5121_02", false, false ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior for TP_IMS_5121_02 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5121_02_mw( ImsInterfaceMonitor p_monitorCompRef, integer p_skipCount ) runs on ImsTestCoordinator { var template SipUrl v_SCSCF_A_Uri := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_A)); var template SkipType v_skip := {0, omit}; if(p_skipCount > 0) { v_skip := {1, mw_SipResponse(mdw_2XX_Base)}; } p_monitorCompRef.start( f_imsIot_receive( {mw_SipResponse(mw_TP_IMS_5121_02_mw)}, {mw_SipResponse(mdw_2XX_Base)}, v_skip, "TP_IMS_5121_02", false, false ) ); p_monitorCompRef.done; } } } // end group }// end module No newline at end of file AtsImsIot/AtsImsIot_Templates.ttcn +42 −0 Original line number Diff line number Diff line Loading @@ -734,6 +734,18 @@ module AtsImsIot_Templates { } } template Response mw_TP_IMS_5121_02_mw modifies mdw_2XX_Base := { msgHeader := { pChargingVector := { fieldName := P_CHARGING_VECTOR_E, chargeParams := { complement({id := "access-network-charging-info", paramValue := ?}), * } } } } template Response mw_TP_IMS_5117_02_mw modifies mdw_2XX_Base := { msgHeader := { pChargingVector := { Loading Loading @@ -936,6 +948,36 @@ module AtsImsIot_Templates { messageBody := ? // TODO } /** * @desc INVITE Request checking TP_IMS_5106_01 */ template INVITE_Request mdw_TP_IMS_5106_01_mw( template SipUrl p_SCSCF_URI ) modifies mw_INVITE_Request_Base := { msgHeader := { route := { fieldName := ROUTE_E, routeBody := { complement(mw_routeBody(p_SCSCF_URI)), * } }, recordRoute := { fieldName := RECORD_ROUTE_E, routeBody := { mw_routeBody(p_SCSCF_URI), * } }, pAccessNetworkInfo := omit, pChargingVector := mw_PChargingVector({ {id := "icid-value", paramValue := *}, * }) } } }//end group group HeaderTemplates { Loading AtsImsIot/AtsImsIot_TestCases_CALL.ttcn +92 −0 Original line number Diff line number Diff line Loading @@ -448,4 +448,96 @@ module AtsImsIot_TestCases_CALL { f_cf_int_call_down(v_config); } //end testcase TC_IMS_CALL_0006 /** * @desc Subsequent target refresh request (INVITE) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.4 */ testcase TC_IMS_CALL_0017() runs on ImsTestCoordinator system IotSystemInterface { // create components var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A); var ImsInterfaceMonitor v_mw := f_cf_create_monitor(c_mw); var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A); var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B); // vaiables var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A); var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B); var CF_INT_CALL v_config := {v_gmA, v_mw, omit}; // map/connect component ports f_cf_user_up(v_ueA); f_cf_user_up(v_ueB); // configuration f_cf_int_call_up(v_config); // preamble f_PR_user_home_registration(v_ueA,v_userInfoA); f_PR_user_home_registration(v_ueB,v_userInfoB); // test body // Test Sequence 1 ---------------------> f_mtc_userTriggerInitiateCall (v_ueA, v_userInfoB); // Test Sequence 2 ---------------------> f_mtc_userCheckRinging(v_ueB); // Test Sequence 3 ---------------------> f_mtc_userCheckPeerIsRinging(v_ueA); // Test Sequence 4 ---------------------> f_mtc_userTriggerAnswerCall(v_ueB); // Test Sequence 5 ---------------------> f_mtc_userCheckCallEstablished(v_ueA); // Test Sequence 6 ---------------------> f_mtc_userCheckCallEstablished(v_ueB); // Test Sequence 7 ---------------------> f_mtc_userTriggerHold(v_ueA); // check 1 f_mtc_check_TP_IMS_5106_01_gm(v_gmA,1); f_mtc_check_TP_IMS_5106_01_mw(v_mw,1); // Test Sequence 8 ---------------------> f_mtc_userCheckUserOnHold(v_ueB); // check 2 f_mtc_check_TP_IMS_5121_02_gm(v_gmA,1); f_mtc_check_TP_IMS_5121_02_mw(v_mw,1); // Test Sequence 9 ---------------------> f_mtc_userCheckUserOnHold(v_ueA); // Test Sequence 10 --------------------> f_mtc_userTriggerResume(v_ueA); // check 1 f_mtc_check_TP_IMS_5106_01_gm(v_gmA,0); f_mtc_check_TP_IMS_5106_01_mw(v_mw,0); // Test Sequence 11 --------------------> f_mtc_userCheckCallResumed(v_ueB); // check 2 f_mtc_check_TP_IMS_5121_02_gm(v_gmA,1); f_mtc_check_TP_IMS_5121_02_mw(v_mw,1); // Test Sequence 12 --------------------> f_mtc_userCheckCallResumed(v_ueA); // Test Sequence 13 --------------------> f_mtc_triggerEndCall(v_ueA); // Test Sequence 14 --------------------> f_mtc_userCheckCallEnded(v_ueB ); // Test Sequence 15 --------------------> f_mtc_userCheckCallEnded(v_ueA); // postamble 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_int_call_down(v_config); } } No newline at end of file Loading
AtsImsIot/AtsImsIot_Behavior.ttcn +118 −0 Original line number Diff line number Diff line Loading @@ -2696,5 +2696,123 @@ group checksTC_IMS_SS_0007 { } } group callChecks { /** * @desc Starts monitor component behavior for TP_IMS_5106_01 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5106_01_gm( ImsInterfaceMonitor p_monitorCompRef, integer p_skipCount ) runs on ImsTestCoordinator { var template SkipType v_skip := {0, omit}; if(p_skipCount > 0) { v_skip := {1, mw_SipRequest(mw_INVITE_Request_Base)}; } p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_INVITE_Request_Base)}, {}, v_skip, "TP_IMS_5106_01", false, false ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior for TP_IMS_5106_01 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5106_01_mw( ImsInterfaceMonitor p_monitorCompRef, integer p_skipCount ) runs on ImsTestCoordinator { var template SipUrl v_SCSCF_A_Uri := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_A)); var template SkipType v_skip := {0, omit}; if(p_skipCount > 0) { v_skip := {1, mw_SipRequest(mw_INVITE_Request_Base)}; } p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5106_01_mw(v_SCSCF_A_Uri))}, {mw_SipRequest(mw_INVITE_Request_Base)}, v_skip, "TP_IMS_5106_01", false, false ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior for TP_IMS_5121_02 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5121_02_gm( ImsInterfaceMonitor p_monitorCompRef, integer p_skipCount ) runs on ImsTestCoordinator { var template SkipType v_skip := {0, omit}; if(p_skipCount > 0) { v_skip := {1, mw_SipResponse(mdw_2XX_Base)}; } p_monitorCompRef.start( f_imsIot_receive( {mw_SipResponse(mdw_2XX_Base)}, {}, v_skip, "TP_IMS_5121_02", false, false ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior for TP_IMS_5121_02 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5121_02_mw( ImsInterfaceMonitor p_monitorCompRef, integer p_skipCount ) runs on ImsTestCoordinator { var template SipUrl v_SCSCF_A_Uri := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_A)); var template SkipType v_skip := {0, omit}; if(p_skipCount > 0) { v_skip := {1, mw_SipResponse(mdw_2XX_Base)}; } p_monitorCompRef.start( f_imsIot_receive( {mw_SipResponse(mw_TP_IMS_5121_02_mw)}, {mw_SipResponse(mdw_2XX_Base)}, v_skip, "TP_IMS_5121_02", false, false ) ); p_monitorCompRef.done; } } } // end group }// end module No newline at end of file
AtsImsIot/AtsImsIot_Templates.ttcn +42 −0 Original line number Diff line number Diff line Loading @@ -734,6 +734,18 @@ module AtsImsIot_Templates { } } template Response mw_TP_IMS_5121_02_mw modifies mdw_2XX_Base := { msgHeader := { pChargingVector := { fieldName := P_CHARGING_VECTOR_E, chargeParams := { complement({id := "access-network-charging-info", paramValue := ?}), * } } } } template Response mw_TP_IMS_5117_02_mw modifies mdw_2XX_Base := { msgHeader := { pChargingVector := { Loading Loading @@ -936,6 +948,36 @@ module AtsImsIot_Templates { messageBody := ? // TODO } /** * @desc INVITE Request checking TP_IMS_5106_01 */ template INVITE_Request mdw_TP_IMS_5106_01_mw( template SipUrl p_SCSCF_URI ) modifies mw_INVITE_Request_Base := { msgHeader := { route := { fieldName := ROUTE_E, routeBody := { complement(mw_routeBody(p_SCSCF_URI)), * } }, recordRoute := { fieldName := RECORD_ROUTE_E, routeBody := { mw_routeBody(p_SCSCF_URI), * } }, pAccessNetworkInfo := omit, pChargingVector := mw_PChargingVector({ {id := "icid-value", paramValue := *}, * }) } } }//end group group HeaderTemplates { Loading
AtsImsIot/AtsImsIot_TestCases_CALL.ttcn +92 −0 Original line number Diff line number Diff line Loading @@ -448,4 +448,96 @@ module AtsImsIot_TestCases_CALL { f_cf_int_call_down(v_config); } //end testcase TC_IMS_CALL_0006 /** * @desc Subsequent target refresh request (INVITE) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.4 */ testcase TC_IMS_CALL_0017() runs on ImsTestCoordinator system IotSystemInterface { // create components var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A); var ImsInterfaceMonitor v_mw := f_cf_create_monitor(c_mw); var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A); var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B); // vaiables var IotEquipmentUser v_ueA := f_cf_create_IotEquipmentUser(c_userUE_A); var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B); var CF_INT_CALL v_config := {v_gmA, v_mw, omit}; // map/connect component ports f_cf_user_up(v_ueA); f_cf_user_up(v_ueB); // configuration f_cf_int_call_up(v_config); // preamble f_PR_user_home_registration(v_ueA,v_userInfoA); f_PR_user_home_registration(v_ueB,v_userInfoB); // test body // Test Sequence 1 ---------------------> f_mtc_userTriggerInitiateCall (v_ueA, v_userInfoB); // Test Sequence 2 ---------------------> f_mtc_userCheckRinging(v_ueB); // Test Sequence 3 ---------------------> f_mtc_userCheckPeerIsRinging(v_ueA); // Test Sequence 4 ---------------------> f_mtc_userTriggerAnswerCall(v_ueB); // Test Sequence 5 ---------------------> f_mtc_userCheckCallEstablished(v_ueA); // Test Sequence 6 ---------------------> f_mtc_userCheckCallEstablished(v_ueB); // Test Sequence 7 ---------------------> f_mtc_userTriggerHold(v_ueA); // check 1 f_mtc_check_TP_IMS_5106_01_gm(v_gmA,1); f_mtc_check_TP_IMS_5106_01_mw(v_mw,1); // Test Sequence 8 ---------------------> f_mtc_userCheckUserOnHold(v_ueB); // check 2 f_mtc_check_TP_IMS_5121_02_gm(v_gmA,1); f_mtc_check_TP_IMS_5121_02_mw(v_mw,1); // Test Sequence 9 ---------------------> f_mtc_userCheckUserOnHold(v_ueA); // Test Sequence 10 --------------------> f_mtc_userTriggerResume(v_ueA); // check 1 f_mtc_check_TP_IMS_5106_01_gm(v_gmA,0); f_mtc_check_TP_IMS_5106_01_mw(v_mw,0); // Test Sequence 11 --------------------> f_mtc_userCheckCallResumed(v_ueB); // check 2 f_mtc_check_TP_IMS_5121_02_gm(v_gmA,1); f_mtc_check_TP_IMS_5121_02_mw(v_mw,1); // Test Sequence 12 --------------------> f_mtc_userCheckCallResumed(v_ueA); // Test Sequence 13 --------------------> f_mtc_triggerEndCall(v_ueA); // Test Sequence 14 --------------------> f_mtc_userCheckCallEnded(v_ueB ); // Test Sequence 15 --------------------> f_mtc_userCheckCallEnded(v_ueA); // postamble 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_int_call_down(v_config); } } No newline at end of file