Loading AtsImsIot/AtsImsIot_Behavior.ttcn +25 −0 Original line number Diff line number Diff line Loading @@ -3270,6 +3270,8 @@ group checksTC_IMS_SS_0007 { ImsInterfaceMonitor p_monitorCompRef, integer p_skipCount ) runs on ImsTestCoordinator { // TODO TP must be checked, currently only 2XX is checked var template SkipType v_skip := {0, omit}; if(p_skipCount > 0) { Loading Loading @@ -3317,6 +3319,29 @@ group checksTC_IMS_SS_0007 { ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior for TP_IMS_5074_01 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5074_01_mw( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { var template SipUrl v_UE_A_Uri := f_getUeIpAddress(PX_EUT_A); p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5074_01_mw(*,v_UE_A_Uri))}, {mw_SipRequest(mw_BYE_Request_Base(*))}, {0, omit}, "TP_IMS_5074_01", false, false ) ); p_monitorCompRef.done; } } } // end group Loading AtsImsIot/AtsImsIot_Functions.ttcn +58 −1 Original line number Diff line number Diff line Loading @@ -5,6 +5,8 @@ */ module AtsImsIot_Functions { import from LibSip_SIPTypesAndValues {type SipUrl;} import from AtsImsIot_TestSystem {type ImsTestCoordinator;} import from LibIot_PIXITS {modulepar PX_MAX_MSG_WAIT, PX_PRODUCTS;} Loading @@ -14,7 +16,9 @@ module AtsImsIot_Functions { import from LibIms_UpperTester all; import from LibIot_TestInterface {type InterfaceMonitor, TestCoordinator, EquipmentUser;} import from LibIot_TestInterface { type InterfaceMonitor, TestCoordinator, EquipmentUser; } import from LibIot_Functions {function f_getE2EVerdict;} Loading Loading @@ -129,6 +133,35 @@ module AtsImsIot_Functions { return v_status; } /** * @desc Trigger UE given by p_ueRef to remove a media stream * @param p_userCompRef Reference to IMS UE user component * @return * true in case of successfull execution of the trigger command * otherwise false */ function f_mtc_userRemoveMediaStream(EquipmentUser p_ueRef) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc Trigger UE given by p_ueRef to check the remove of a media stream * @param p_userCompRef Reference to IMS UE user component * @return * true in case of successfull execution of the trigger command * otherwise false */ function f_mtc_userCheckRemoveMediaStream(EquipmentUser p_ueRef) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc Trigger UE given by p_ueRef to add a new media stream * @param p_userCompRef Reference to IMS UE user component Loading Loading @@ -157,6 +190,21 @@ module AtsImsIot_Functions { return v_status; } /** * @desc Trigger UE given by p_ueRef to loose conectifity * @param p_userCompRef Reference to IMS UE user component * @return * true in case of successfull execution of the trigger command * otherwise false */ function f_mtc_userLooseConnection(EquipmentUser p_ueRef) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc Trigger UE given by p_ueRef to enter HOLD state * @param p_userCompRef Reference to IMS UE user component Loading Loading @@ -708,6 +756,15 @@ module AtsImsIot_Functions { return v_uePublicId.publicId; } /** * @desc Get the UE URI containing the IP address of referenced EUT */ function f_getUeIpAddress(integer p_ProductIdx) return SipUrl { // TODO return "TODO"; } /** * @desc Get the Public Id of referenced EUT */ Loading AtsImsIot/AtsImsIot_Templates.ttcn +26 −1 Original line number Diff line number Diff line Loading @@ -1142,9 +1142,34 @@ module AtsImsIot_Templates { } } /** * @desc VYE Request checking TP_IMS_5074_01 */ template BYE_Request mdw_TP_IMS_5074_01_mw( template CallId p_callId, template SipUrl p_UE_URI // must be the IP address ) modifies mw_BYE_Request_Base := { requestLine := { requestUri := p_UE_URI }, msgHeader := { toField := ?, fromField := ?, cSeq := ?, route := ?, reason := { fieldName := REASON_E, reasonValues := { token := "503 Service Unavailable", reasonParams := * } } } } /** * @desc INVITE Request checking TP_IMS_5106_01 * @desc UPDATE Request checking TP_IMS_5106_02 */ template UPDATE_Request mdw_TP_IMS_5106_02_mw( template CallId p_callId, Loading AtsImsIot/AtsImsIot_TestCases_CALL.ttcn +331 −0 Original line number Diff line number Diff line Loading @@ -986,4 +986,335 @@ group Limit { f_cf_int_call_down(v_config); } /** * @desc Hold/resume media streams (reINVITE) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.8 */ testcase TC_IMS_CALL_0021() 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 ImsInterfaceMonitor v_gmB := f_cf_create_monitor(c_gm_A); var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A); var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B); // variables 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, v_gmB}; // 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_userAddNewMediaStream(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 ---------------------> // optional // Test Sequence 9 ---------------------> // optional // Test Sequence 10 --------------------> f_mtc_userCheckNewMediaStream(v_ueB); // Test Sequence 11 --------------------> f_mtc_userCheckNewMediaStream(v_ueA); // check 2 f_mtc_check_TP_IMS_5121_02_gm(v_gmB,1); f_mtc_check_TP_IMS_5121_02_mw(v_mw,1); // Test Sequence 12 --------------------> f_mtc_userTriggerHold(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 13 --------------------> f_mtc_userCheckUserOnHold(v_ueA); // Test Sequence 14 --------------------> f_mtc_userCheckUserOnHold(v_ueB); // check 2 f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0); f_mtc_check_TP_IMS_5121_02_mw(v_mw,0); // Test Sequence 15 --------------------> 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 16 --------------------> f_mtc_userCheckCallResumed(v_ueB); // check 2 f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0); f_mtc_check_TP_IMS_5121_02_mw(v_mw,0); // Test Sequence 17 --------------------> f_mtc_userCheckCallResumed(v_ueA); // Test Sequence 18 --------------------> f_mtc_userRemoveMediaStream(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 19 --------------------> f_mtc_userCheckRemoveMediaStream(v_ueB); // check 2 f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0); f_mtc_check_TP_IMS_5121_02_mw(v_mw,0); // Test Sequence 20 --------------------> // optional // Test Sequence 21 --------------------> f_mtc_triggerEndCall(v_ueB); // Test Sequence 22 --------------------> f_mtc_userCheckCallEnded(v_ueA ); // Test Sequence 23 --------------------> f_mtc_userCheckCallEnded(v_ueB ); // 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); } /** * @desc Hold/resume media streams (UPDATE) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.9 */ testcase TC_IMS_CALL_0022() 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 ImsInterfaceMonitor v_gmB := f_cf_create_monitor(c_gm_A); var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A); var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B); // variables 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, v_gmB}; // 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_userAddNewMediaStream(v_ueA); // check 1 f_mtc_check_TP_IMS_5106_02_gm(v_gmA); f_mtc_check_TP_IMS_5106_02_mw(v_mw); // Test Sequence 8 ---------------------> // optional // Test Sequence 9 ---------------------> // optional // Test Sequence 10 --------------------> f_mtc_userCheckNewMediaStream(v_ueB); // Test Sequence 11 --------------------> f_mtc_userCheckNewMediaStream(v_ueA); // check 2 f_mtc_check_TP_IMS_5121_02_gm(v_gmB,1); f_mtc_check_TP_IMS_5121_02_mw(v_mw,1); // Test Sequence 12 --------------------> f_mtc_userTriggerHold(v_ueA); // check 1 f_mtc_check_TP_IMS_5106_02_gm(v_gmA); f_mtc_check_TP_IMS_5106_02_mw(v_mw); // Test Sequence 13 --------------------> f_mtc_userCheckUserOnHold(v_ueA); // Test Sequence 14 --------------------> f_mtc_userCheckUserOnHold(v_ueB); // check 2 f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0); f_mtc_check_TP_IMS_5121_02_mw(v_mw,0); // Test Sequence 15 --------------------> f_mtc_userTriggerResume(v_ueA); // check 1 f_mtc_check_TP_IMS_5106_02_gm(v_gmA); f_mtc_check_TP_IMS_5106_02_mw(v_mw); // Test Sequence 16 --------------------> f_mtc_userCheckCallResumed(v_ueB); // check 2 f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0); f_mtc_check_TP_IMS_5121_02_mw(v_mw,0); // Test Sequence 17 --------------------> f_mtc_userCheckCallResumed(v_ueA); // Test Sequence 18 --------------------> f_mtc_userRemoveMediaStream(v_ueA); // check 1 f_mtc_check_TP_IMS_5106_02_gm(v_gmA); f_mtc_check_TP_IMS_5106_02_mw(v_mw); // Test Sequence 19 --------------------> f_mtc_userCheckRemoveMediaStream(v_ueB); // check 2 f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0); f_mtc_check_TP_IMS_5121_02_mw(v_mw,0); // Test Sequence 20 --------------------> // optional // Test Sequence 21 --------------------> f_mtc_triggerEndCall(v_ueB); // Test Sequence 22 --------------------> f_mtc_userCheckCallEnded(v_ueA ); // Test Sequence 23 --------------------> f_mtc_userCheckCallEnded(v_ueB ); // 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); } /** * @desc Subsequent target refresh request (INVITE) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.4 */ testcase TC_IMS_CALL_0023() 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); // variables 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}; // 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_userLooseConnection(v_ueB); // check 1 f_mtc_check_TP_IMS_5074_01_mw(v_mw); // Test Sequence 8 ---------------------> 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 +25 −0 Original line number Diff line number Diff line Loading @@ -3270,6 +3270,8 @@ group checksTC_IMS_SS_0007 { ImsInterfaceMonitor p_monitorCompRef, integer p_skipCount ) runs on ImsTestCoordinator { // TODO TP must be checked, currently only 2XX is checked var template SkipType v_skip := {0, omit}; if(p_skipCount > 0) { Loading Loading @@ -3317,6 +3319,29 @@ group checksTC_IMS_SS_0007 { ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior for TP_IMS_5074_01 * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5074_01_mw( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { var template SipUrl v_UE_A_Uri := f_getUeIpAddress(PX_EUT_A); p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5074_01_mw(*,v_UE_A_Uri))}, {mw_SipRequest(mw_BYE_Request_Base(*))}, {0, omit}, "TP_IMS_5074_01", false, false ) ); p_monitorCompRef.done; } } } // end group Loading
AtsImsIot/AtsImsIot_Functions.ttcn +58 −1 Original line number Diff line number Diff line Loading @@ -5,6 +5,8 @@ */ module AtsImsIot_Functions { import from LibSip_SIPTypesAndValues {type SipUrl;} import from AtsImsIot_TestSystem {type ImsTestCoordinator;} import from LibIot_PIXITS {modulepar PX_MAX_MSG_WAIT, PX_PRODUCTS;} Loading @@ -14,7 +16,9 @@ module AtsImsIot_Functions { import from LibIms_UpperTester all; import from LibIot_TestInterface {type InterfaceMonitor, TestCoordinator, EquipmentUser;} import from LibIot_TestInterface { type InterfaceMonitor, TestCoordinator, EquipmentUser; } import from LibIot_Functions {function f_getE2EVerdict;} Loading Loading @@ -129,6 +133,35 @@ module AtsImsIot_Functions { return v_status; } /** * @desc Trigger UE given by p_ueRef to remove a media stream * @param p_userCompRef Reference to IMS UE user component * @return * true in case of successfull execution of the trigger command * otherwise false */ function f_mtc_userRemoveMediaStream(EquipmentUser p_ueRef) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc Trigger UE given by p_ueRef to check the remove of a media stream * @param p_userCompRef Reference to IMS UE user component * @return * true in case of successfull execution of the trigger command * otherwise false */ function f_mtc_userCheckRemoveMediaStream(EquipmentUser p_ueRef) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc Trigger UE given by p_ueRef to add a new media stream * @param p_userCompRef Reference to IMS UE user component Loading Loading @@ -157,6 +190,21 @@ module AtsImsIot_Functions { return v_status; } /** * @desc Trigger UE given by p_ueRef to loose conectifity * @param p_userCompRef Reference to IMS UE user component * @return * true in case of successfull execution of the trigger command * otherwise false */ function f_mtc_userLooseConnection(EquipmentUser p_ueRef) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc Trigger UE given by p_ueRef to enter HOLD state * @param p_userCompRef Reference to IMS UE user component Loading Loading @@ -708,6 +756,15 @@ module AtsImsIot_Functions { return v_uePublicId.publicId; } /** * @desc Get the UE URI containing the IP address of referenced EUT */ function f_getUeIpAddress(integer p_ProductIdx) return SipUrl { // TODO return "TODO"; } /** * @desc Get the Public Id of referenced EUT */ Loading
AtsImsIot/AtsImsIot_Templates.ttcn +26 −1 Original line number Diff line number Diff line Loading @@ -1142,9 +1142,34 @@ module AtsImsIot_Templates { } } /** * @desc VYE Request checking TP_IMS_5074_01 */ template BYE_Request mdw_TP_IMS_5074_01_mw( template CallId p_callId, template SipUrl p_UE_URI // must be the IP address ) modifies mw_BYE_Request_Base := { requestLine := { requestUri := p_UE_URI }, msgHeader := { toField := ?, fromField := ?, cSeq := ?, route := ?, reason := { fieldName := REASON_E, reasonValues := { token := "503 Service Unavailable", reasonParams := * } } } } /** * @desc INVITE Request checking TP_IMS_5106_01 * @desc UPDATE Request checking TP_IMS_5106_02 */ template UPDATE_Request mdw_TP_IMS_5106_02_mw( template CallId p_callId, Loading
AtsImsIot/AtsImsIot_TestCases_CALL.ttcn +331 −0 Original line number Diff line number Diff line Loading @@ -986,4 +986,335 @@ group Limit { f_cf_int_call_down(v_config); } /** * @desc Hold/resume media streams (reINVITE) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.8 */ testcase TC_IMS_CALL_0021() 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 ImsInterfaceMonitor v_gmB := f_cf_create_monitor(c_gm_A); var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A); var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B); // variables 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, v_gmB}; // 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_userAddNewMediaStream(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 ---------------------> // optional // Test Sequence 9 ---------------------> // optional // Test Sequence 10 --------------------> f_mtc_userCheckNewMediaStream(v_ueB); // Test Sequence 11 --------------------> f_mtc_userCheckNewMediaStream(v_ueA); // check 2 f_mtc_check_TP_IMS_5121_02_gm(v_gmB,1); f_mtc_check_TP_IMS_5121_02_mw(v_mw,1); // Test Sequence 12 --------------------> f_mtc_userTriggerHold(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 13 --------------------> f_mtc_userCheckUserOnHold(v_ueA); // Test Sequence 14 --------------------> f_mtc_userCheckUserOnHold(v_ueB); // check 2 f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0); f_mtc_check_TP_IMS_5121_02_mw(v_mw,0); // Test Sequence 15 --------------------> 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 16 --------------------> f_mtc_userCheckCallResumed(v_ueB); // check 2 f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0); f_mtc_check_TP_IMS_5121_02_mw(v_mw,0); // Test Sequence 17 --------------------> f_mtc_userCheckCallResumed(v_ueA); // Test Sequence 18 --------------------> f_mtc_userRemoveMediaStream(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 19 --------------------> f_mtc_userCheckRemoveMediaStream(v_ueB); // check 2 f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0); f_mtc_check_TP_IMS_5121_02_mw(v_mw,0); // Test Sequence 20 --------------------> // optional // Test Sequence 21 --------------------> f_mtc_triggerEndCall(v_ueB); // Test Sequence 22 --------------------> f_mtc_userCheckCallEnded(v_ueA ); // Test Sequence 23 --------------------> f_mtc_userCheckCallEnded(v_ueB ); // 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); } /** * @desc Hold/resume media streams (UPDATE) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.3.9 */ testcase TC_IMS_CALL_0022() 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 ImsInterfaceMonitor v_gmB := f_cf_create_monitor(c_gm_A); var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A); var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B); // variables 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, v_gmB}; // 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_userAddNewMediaStream(v_ueA); // check 1 f_mtc_check_TP_IMS_5106_02_gm(v_gmA); f_mtc_check_TP_IMS_5106_02_mw(v_mw); // Test Sequence 8 ---------------------> // optional // Test Sequence 9 ---------------------> // optional // Test Sequence 10 --------------------> f_mtc_userCheckNewMediaStream(v_ueB); // Test Sequence 11 --------------------> f_mtc_userCheckNewMediaStream(v_ueA); // check 2 f_mtc_check_TP_IMS_5121_02_gm(v_gmB,1); f_mtc_check_TP_IMS_5121_02_mw(v_mw,1); // Test Sequence 12 --------------------> f_mtc_userTriggerHold(v_ueA); // check 1 f_mtc_check_TP_IMS_5106_02_gm(v_gmA); f_mtc_check_TP_IMS_5106_02_mw(v_mw); // Test Sequence 13 --------------------> f_mtc_userCheckUserOnHold(v_ueA); // Test Sequence 14 --------------------> f_mtc_userCheckUserOnHold(v_ueB); // check 2 f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0); f_mtc_check_TP_IMS_5121_02_mw(v_mw,0); // Test Sequence 15 --------------------> f_mtc_userTriggerResume(v_ueA); // check 1 f_mtc_check_TP_IMS_5106_02_gm(v_gmA); f_mtc_check_TP_IMS_5106_02_mw(v_mw); // Test Sequence 16 --------------------> f_mtc_userCheckCallResumed(v_ueB); // check 2 f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0); f_mtc_check_TP_IMS_5121_02_mw(v_mw,0); // Test Sequence 17 --------------------> f_mtc_userCheckCallResumed(v_ueA); // Test Sequence 18 --------------------> f_mtc_userRemoveMediaStream(v_ueA); // check 1 f_mtc_check_TP_IMS_5106_02_gm(v_gmA); f_mtc_check_TP_IMS_5106_02_mw(v_mw); // Test Sequence 19 --------------------> f_mtc_userCheckRemoveMediaStream(v_ueB); // check 2 f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0); f_mtc_check_TP_IMS_5121_02_mw(v_mw,0); // Test Sequence 20 --------------------> // optional // Test Sequence 21 --------------------> f_mtc_triggerEndCall(v_ueB); // Test Sequence 22 --------------------> f_mtc_userCheckCallEnded(v_ueA ); // Test Sequence 23 --------------------> f_mtc_userCheckCallEnded(v_ueB ); // 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); } /** * @desc Subsequent target refresh request (INVITE) * @see TS 186 011-2 V2.3.1 cause 4.5.3.1.4 */ testcase TC_IMS_CALL_0023() 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); // variables 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}; // 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_userLooseConnection(v_ueB); // check 1 f_mtc_check_TP_IMS_5074_01_mw(v_mw); // Test Sequence 8 ---------------------> 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