Loading AtsImsIot/AtsImsIot_Behavior.ttcn +217 −27 Original line number Diff line number Diff line Loading @@ -2203,6 +2203,149 @@ group checksTC_IMS_CALL_0010 { } // group group checksTC_IMS_CALL_0011 { /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5080_02_gm( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage, integer p_skipCount ) runs on ImsTestCoordinator { var template SkipType v_skip := {0, omit}; if(p_skipCount > 0) { v_skip := {1, mw_SipRequest(mw_UPDATE_Request_Base(?))}; } p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_UPDATE_Request_Base(?))}, {}, v_skip, "TP_IMS_5080_02", false, p_checkMessage ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5080_02_ic( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { // INVITE from IMS_A to IMS_B p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5080_02_ic(?))}, {}, {0, omit}, "TP_IMS_5080_02", false, p_checkMessage ) ); p_monitorCompRef.done; } } // group group checksTC_IMS_CALL_0012 { /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5120_02_gm( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage, integer p_skipCount ) runs on ImsTestCoordinator { var template SkipType v_skip := {0, omit}; if(p_skipCount > 0) { v_skip := {1, mw_SipRequest(mw_UPDATE_Request_Base(?))}; } p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_UPDATE_Request_Base(?))}, {}, v_skip, "TP_IMS_5120_02", false, p_checkMessage ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5120_02_ic( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage, integer p_skipCount ) runs on ImsTestCoordinator { var template SipUrl v_scscfEutBUrl := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_B)); var template SkipType v_skip := {0, omit}; if(p_skipCount > 0) { v_skip := {p_skipCount, mw_SipRequest(mw_UPDATE_Request_Base(?))}; } //UPDATE from IMS_A to IMS_B p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_UPDATE_Request_Base(?))}, {}, v_skip, "TP_IMS_5120_02", false, false ) ); p_monitorCompRef.done; // 100 Trying from IMS_B to IMS_A p_monitorCompRef.start( f_imsIot_receive( {mw_SipResponse(mw_100Trying_Base)}, {}, {0, omit}, "TP_IMS_5120_02", false, false ) ); p_monitorCompRef.done; // UPDATE from IMS_B to IMS_A p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5120_02_ic(?, v_scscfEutBUrl))}, {}, {0, omit}, "TP_IMS_5120_02", false, p_checkMessage ) ); p_monitorCompRef.done; } } // group group checksTC_IMS_CALL_0014 { Loading Loading @@ -2255,6 +2398,53 @@ group checksTC_IMS_CALL_0014 { } // group group checksTC_IMS_CALL_0015 { /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5073_01_gm( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_BYE_Request_Base(*))}, {}, {0, omit}, "TP_IMS_5073_01", false, p_checkMessage ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5073_01_ic( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { var template SipUrl v_ibcfEutAUrl := mw_SipUrl_Host(f_GetEUTIbcfAddress(PX_EUT_A)); p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5073_01_ic(?))}, {}, {0, omit}, "TP_IMS_5073_01", false, p_checkMessage ) ); p_monitorCompRef.done; } } // group group checksTC_IMS_CALL_0016 { /** * @desc Starts monitor component behavior Loading Loading @@ -4376,8 +4566,8 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } } group ici { function f_mtc_check_invite_ici( group mx { function f_mtc_check_invite_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4386,7 +4576,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_INVITE_Request_Base)}, {}, {0,omit}, "f_mtc_check_invite_ici", "f_mtc_check_invite_mx", false, false ) Loading @@ -4394,7 +4584,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_message_ici( function f_mtc_check_message_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4403,7 +4593,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_MESSAGE_Request_Base)}, {}, {0,omit}, "f_mtc_check_message_ici", "f_mtc_check_message_mx", false, false ) Loading @@ -4411,7 +4601,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_ack_ici( function f_mtc_check_ack_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4420,7 +4610,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_ACK_Request_Base(?))}, {}, {0,omit}, "f_mtc_check_ack_ici", "f_mtc_check_ack_mx", false, false ) Loading @@ -4428,7 +4618,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_prack_ici( function f_mtc_check_prack_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4437,7 +4627,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_PRACK_Request_Base(?))}, {}, {0,omit}, "f_mtc_check_prack_ici", "f_mtc_check_prack_mx", false, false ) Loading @@ -4445,7 +4635,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_bye_ici( function f_mtc_check_bye_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4454,7 +4644,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_BYE_Request_Base(?))}, {}, {0,omit}, "f_mtc_check_bye_ici", "f_mtc_check_bye_mx", false, false ) Loading @@ -4462,7 +4652,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_update_ici( function f_mtc_check_update_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4471,7 +4661,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_UPDATE_Request_Base(?))}, {}, {0,omit}, "f_mtc_check_update_ici", "f_mtc_check_update_mx", false, false ) Loading @@ -4479,7 +4669,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_register_ici( function f_mtc_check_register_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4488,7 +4678,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_REGISTER_Request_Base)}, {}, {0,omit}, "f_mtc_check_register_ici", "f_mtc_check_register_mx", false, false ) Loading @@ -4496,7 +4686,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_notify_ici( function f_mtc_check_notify_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4505,7 +4695,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_NOTIFY_Request_Base(?))}, {}, {0,omit}, "f_mtc_check_notify_ici", "f_mtc_check_notify_mx", false, false ) Loading @@ -4513,7 +4703,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_info_ici( function f_mtc_check_info_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4522,7 +4712,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_INFO_Request_Base(?))}, {}, {0,omit}, "f_mtc_check_info_ici", "f_mtc_check_info_mx", false, false ) Loading @@ -4530,7 +4720,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_subscribe_ici( function f_mtc_check_subscribe_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4539,7 +4729,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_SUBSCRIBE_Request_Base)}, {}, {0,omit}, "f_mtc_check_subscribe_ici", "f_mtc_check_subscribe_mx", false, false ) Loading @@ -4547,7 +4737,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_cancel_ici( function f_mtc_check_cancel_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4556,7 +4746,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_CANCEL_Request_Base(?))}, {}, {0,omit}, "f_mtc_check_cancel_ici", "f_mtc_check_cancel_mx", false, false ) Loading @@ -4564,7 +4754,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_refer_ici( function f_mtc_check_refer_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4573,7 +4763,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_REFER_Request_Base(?))}, {}, {0,omit}, "f_mtc_check_refer_ici", "f_mtc_check_refer_mx", false, false ) Loading @@ -4581,7 +4771,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_response_ici( function f_mtc_check_response_mx( ImsInterfaceMonitor p_monitorCompRef, template StatusLine p_statusLine ) runs on ImsTestCoordinator { Loading @@ -4591,7 +4781,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipResponse(mw_Response_Base(p_statusLine, ?, ?))}, {}, {0,omit}, "f_mtc_check_response_ici", "f_mtc_check_response_mx", false, false ) Loading AtsImsIot/AtsImsIot_Functions.ttcn +149 −0 Original line number Diff line number Diff line Loading @@ -803,6 +803,155 @@ module AtsImsIot_Functions { return v_status; } /** * @desc Trigger UE given by p_ueRef to initiate conference call * @param p_ueRef Reference to IMS UE user component * @return * true in case of successfull execution of the trigger command * otherwise false */ function f_mtc_userInitiateConferenceCall(EquipmentUser p_ueRef)//, ImsUserInfo p_calledParty) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO //if( p_calledParty.publicId == "dummy" ) { return true; } //v_status := f_mtc_userInitiateCallSuccessful(p_ueRef); return v_status; } /** * @desc Trigger UE given by p_ueRef to verify that user is informed * that Conference is being set up * @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_userCheckConferenceSetUp(EquipmentUser p_userCompRef) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc Trigger UE given by p_ueRef to verify that user is informed * that Conference is established * @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_userCheckConferenceEstablished(EquipmentUser p_userCompRef) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc Trigger UE given by p_ueRef to invite user to join the conference call * @param p_ueRef Reference to IMS UE user component * @param p_calledParty ImsUserInfo of called party * @return * true in case of successfull execution of the trigger command * otherwise false */ function f_mtc_userInviteUserToJoinConferenceCall(EquipmentUser p_ueRef, ImsUserInfo p_calledParty) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO //if( p_calledParty.publicId == "dummy" ) { return true; } //v_status := f_mtc_userInitiateCallSuccessful(p_ueRef); return v_status; } /** * @desc Trigger UE given by p_ueRef to verify that user is ringing * @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_userCheckConferenceCallRinging(EquipmentUser p_userCompRef) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc Trigger UE given by p_ueRef to verify that its peer is ringing * @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_userCheckConferenceCallPeerIsRinging(EquipmentUser p_userCompRef) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc Answer on Conference call * @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_userAnswerConferenceCall(EquipmentUser p_userCompRef) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc Trigger UE given by p_ueRef to verify user is alerted when * peer joins the conference call * @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_userCheckInfoWhenPeerJoinsConference(EquipmentUser p_userCompRef) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc User leave conference call * @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_LeaveConferenceCall(EquipmentUser p_userCompRef) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc Check that UE by p_ueRef given reports that conference call has ended * @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_userCheckConferenceCallEnded(EquipmentUser p_userCompRef) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc Trigger UE given by p_ueRef to initiate chat * @param p_ueRef Reference to IMS UE user component Loading AtsImsIot/AtsImsIot_Templates.ttcn +56 −0 Original line number Diff line number Diff line Loading @@ -505,6 +505,23 @@ module AtsImsIot_Templates { } } /** * * @desc BYE Request checking TP_IMS_5073_01 on MW */ template BYE_Request mdw_TP_IMS_5073_01_ic(template CallId p_callId) modifies mw_BYE_Request_Base := { msgHeader := { reason := { fieldName := REASON_E, reasonValues := {{ token := "503", reasonParams := * }} } } } /** * * @desc INVITE Request checking TP_IMS_5080_01 on MW Loading @@ -519,6 +536,20 @@ module AtsImsIot_Templates { } } /** * * @desc UPDATE Request checking TP_IMS_5080_02 on MW */ template UPDATE_Request mdw_TP_IMS_5080_02_ic(template CallId p_callId) modifies mw_UPDATE_Request_Base := { msgHeader := { pChargingVector := mw_PChargingVector({ {id := "access-network-charging-info", paramValue := ?}, //note access-network-charging-info should be updated * }) } } /** * * @desc 200 OK Response checking TP_IMS_5082_01 on MW Loading Loading @@ -1625,6 +1656,31 @@ module AtsImsIot_Templates { } } /** * @desc UPDATE Request checking TP_IMS_5120_02 */ template UPDATE_Request mdw_TP_IMS_5120_02_ic( template CallId p_callId, template SipUrl p_SCSCF_URI ) modifies mw_UPDATE_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), * } } } } template Response mw_TP_IMS_5121_02_ic modifies mdw_2XX_Base := { msgHeader := { pChargingVector := { Loading AtsImsIot/AtsImsIot_TestCases_CALL.ttcn +191 −1 File changed.Preview size limit exceeded, changes collapsed. Show changes AtsImsIot/AtsImsIot_TestCases_SS.ttcn +65 −0 Original line number Diff line number Diff line Loading @@ -697,4 +697,69 @@ module AtsImsIot_TestCases_SS { f_cf_user_down(v_ueB); f_cf_roam_as_down(v_config); } //end testcase TC_IMS_SS_0010 /** * @desc IMS network handles subsequent INVITEs, UPDATEs, REFERs and NOTIFYs * correctly during Ad-Hoc Conference calls * @see TS 186 011-2 V3.1.1 cause 4.5.5.11 */ testcase TC_IMS_CONF_0001() 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_ic := f_cf_create_monitor(c_ic); var ImsInterfaceMonitor v_iscA := f_cf_create_monitor(c_isc_A); var ImsInterfaceMonitor v_iscB := f_cf_create_monitor(c_isc_B); var ImsUserInfo v_userInfoA := f_getOIRUser(PX_EUT_A); var ImsUserInfo v_userInfoB := f_getOIPUser(PX_EUT_B); var ImsInterfaceMonitor v_mxA := f_cf_create_monitor(c_mx_A); var ImsInterfaceMonitor v_mxB := f_cf_create_monitor(c_mx_B); var CF_INT_AS v_config := {v_gmA, v_mxA, v_ic, v_mxB, v_gmB, v_iscA, v_iscB}; // map/connect component ports // f_cf_user_up(v_ueB); f_cf_adapter_up(); f_cf_user_up(v_ueA); f_cf_user_up(v_ueB); f_cf_int_as_up(v_config); // preamble f_mtc_userRegistration(v_ueA, v_userInfoA); f_mtc_userRegistration(v_ueB, v_userInfoB); // test body f_mtc_userInitiateConferenceCall (v_ueA);//Test Sequence Step 1 f_mtc_userCheckConferenceSetUp(v_ueA); //Test Sequence Step 2 f_mtc_userCheckConferenceEstablished(v_ueA); //Test Sequence Step 3 f_mtc_userInviteUserToJoinConferenceCall (v_ueA, v_userInfoB);//Test Sequence Step 4 f_mtc_userCheckConferenceCallRinging(v_ueB); //Test Sequence Step 5 f_mtc_userCheckConferenceCallPeerIsRinging(v_ueA); // Test Sequence Step 6 f_mtc_userAnswerConferenceCall(v_ueB);//Test Sequence Step 7 // check 1 200 OK f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0); f_mtc_check_TP_IMS_5121_02_ic(v_ic,0); f_mtc_userCheckInfoWhenPeerJoinsConference(v_ueA);//Test Sequence Step 8 f_mtc_LeaveConferenceCall(v_ueB);//Test Sequence Step 9 f_mtc_userCheckConferenceCallEnded(v_ueB);//Test Sequence Step 10 f_mtc_userCheckConferenceCallEnded(v_ueA);//Test Sequence Step 11 // 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_as_down(v_config); f_cf_adapter_down(); } //end testcase TC_IMS_CONF_0001 } Loading
AtsImsIot/AtsImsIot_Behavior.ttcn +217 −27 Original line number Diff line number Diff line Loading @@ -2203,6 +2203,149 @@ group checksTC_IMS_CALL_0010 { } // group group checksTC_IMS_CALL_0011 { /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5080_02_gm( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage, integer p_skipCount ) runs on ImsTestCoordinator { var template SkipType v_skip := {0, omit}; if(p_skipCount > 0) { v_skip := {1, mw_SipRequest(mw_UPDATE_Request_Base(?))}; } p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_UPDATE_Request_Base(?))}, {}, v_skip, "TP_IMS_5080_02", false, p_checkMessage ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5080_02_ic( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { // INVITE from IMS_A to IMS_B p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5080_02_ic(?))}, {}, {0, omit}, "TP_IMS_5080_02", false, p_checkMessage ) ); p_monitorCompRef.done; } } // group group checksTC_IMS_CALL_0012 { /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5120_02_gm( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage, integer p_skipCount ) runs on ImsTestCoordinator { var template SkipType v_skip := {0, omit}; if(p_skipCount > 0) { v_skip := {1, mw_SipRequest(mw_UPDATE_Request_Base(?))}; } p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_UPDATE_Request_Base(?))}, {}, v_skip, "TP_IMS_5120_02", false, p_checkMessage ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5120_02_ic( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage, integer p_skipCount ) runs on ImsTestCoordinator { var template SipUrl v_scscfEutBUrl := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_B)); var template SkipType v_skip := {0, omit}; if(p_skipCount > 0) { v_skip := {p_skipCount, mw_SipRequest(mw_UPDATE_Request_Base(?))}; } //UPDATE from IMS_A to IMS_B p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_UPDATE_Request_Base(?))}, {}, v_skip, "TP_IMS_5120_02", false, false ) ); p_monitorCompRef.done; // 100 Trying from IMS_B to IMS_A p_monitorCompRef.start( f_imsIot_receive( {mw_SipResponse(mw_100Trying_Base)}, {}, {0, omit}, "TP_IMS_5120_02", false, false ) ); p_monitorCompRef.done; // UPDATE from IMS_B to IMS_A p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5120_02_ic(?, v_scscfEutBUrl))}, {}, {0, omit}, "TP_IMS_5120_02", false, p_checkMessage ) ); p_monitorCompRef.done; } } // group group checksTC_IMS_CALL_0014 { Loading Loading @@ -2255,6 +2398,53 @@ group checksTC_IMS_CALL_0014 { } // group group checksTC_IMS_CALL_0015 { /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5073_01_gm( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mw_BYE_Request_Base(*))}, {}, {0, omit}, "TP_IMS_5073_01", false, p_checkMessage ) ); p_monitorCompRef.done; } /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component */ function f_mtc_check_TP_IMS_5073_01_ic( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { var template SipUrl v_ibcfEutAUrl := mw_SipUrl_Host(f_GetEUTIbcfAddress(PX_EUT_A)); p_monitorCompRef.start( f_imsIot_receive( {mw_SipRequest(mdw_TP_IMS_5073_01_ic(?))}, {}, {0, omit}, "TP_IMS_5073_01", false, p_checkMessage ) ); p_monitorCompRef.done; } } // group group checksTC_IMS_CALL_0016 { /** * @desc Starts monitor component behavior Loading Loading @@ -4376,8 +4566,8 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } } group ici { function f_mtc_check_invite_ici( group mx { function f_mtc_check_invite_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4386,7 +4576,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_INVITE_Request_Base)}, {}, {0,omit}, "f_mtc_check_invite_ici", "f_mtc_check_invite_mx", false, false ) Loading @@ -4394,7 +4584,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_message_ici( function f_mtc_check_message_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4403,7 +4593,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_MESSAGE_Request_Base)}, {}, {0,omit}, "f_mtc_check_message_ici", "f_mtc_check_message_mx", false, false ) Loading @@ -4411,7 +4601,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_ack_ici( function f_mtc_check_ack_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4420,7 +4610,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_ACK_Request_Base(?))}, {}, {0,omit}, "f_mtc_check_ack_ici", "f_mtc_check_ack_mx", false, false ) Loading @@ -4428,7 +4618,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_prack_ici( function f_mtc_check_prack_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4437,7 +4627,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_PRACK_Request_Base(?))}, {}, {0,omit}, "f_mtc_check_prack_ici", "f_mtc_check_prack_mx", false, false ) Loading @@ -4445,7 +4635,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_bye_ici( function f_mtc_check_bye_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4454,7 +4644,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_BYE_Request_Base(?))}, {}, {0,omit}, "f_mtc_check_bye_ici", "f_mtc_check_bye_mx", false, false ) Loading @@ -4462,7 +4652,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_update_ici( function f_mtc_check_update_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4471,7 +4661,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_UPDATE_Request_Base(?))}, {}, {0,omit}, "f_mtc_check_update_ici", "f_mtc_check_update_mx", false, false ) Loading @@ -4479,7 +4669,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_register_ici( function f_mtc_check_register_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4488,7 +4678,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_REGISTER_Request_Base)}, {}, {0,omit}, "f_mtc_check_register_ici", "f_mtc_check_register_mx", false, false ) Loading @@ -4496,7 +4686,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_notify_ici( function f_mtc_check_notify_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4505,7 +4695,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_NOTIFY_Request_Base(?))}, {}, {0,omit}, "f_mtc_check_notify_ici", "f_mtc_check_notify_mx", false, false ) Loading @@ -4513,7 +4703,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_info_ici( function f_mtc_check_info_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4522,7 +4712,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_INFO_Request_Base(?))}, {}, {0,omit}, "f_mtc_check_info_ici", "f_mtc_check_info_mx", false, false ) Loading @@ -4530,7 +4720,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_subscribe_ici( function f_mtc_check_subscribe_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4539,7 +4729,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_SUBSCRIBE_Request_Base)}, {}, {0,omit}, "f_mtc_check_subscribe_ici", "f_mtc_check_subscribe_mx", false, false ) Loading @@ -4547,7 +4737,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_cancel_ici( function f_mtc_check_cancel_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4556,7 +4746,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_CANCEL_Request_Base(?))}, {}, {0,omit}, "f_mtc_check_cancel_ici", "f_mtc_check_cancel_mx", false, false ) Loading @@ -4564,7 +4754,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_refer_ici( function f_mtc_check_refer_mx( ImsInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { Loading @@ -4573,7 +4763,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipRequest(mw_REFER_Request_Base(?))}, {}, {0,omit}, "f_mtc_check_refer_ici", "f_mtc_check_refer_mx", false, false ) Loading @@ -4581,7 +4771,7 @@ group checksTC_IMS_SHARE_0009 { p_monitorCompRef.done; } function f_mtc_check_response_ici( function f_mtc_check_response_mx( ImsInterfaceMonitor p_monitorCompRef, template StatusLine p_statusLine ) runs on ImsTestCoordinator { Loading @@ -4591,7 +4781,7 @@ group checksTC_IMS_SHARE_0009 { {mw_SipResponse(mw_Response_Base(p_statusLine, ?, ?))}, {}, {0,omit}, "f_mtc_check_response_ici", "f_mtc_check_response_mx", false, false ) Loading
AtsImsIot/AtsImsIot_Functions.ttcn +149 −0 Original line number Diff line number Diff line Loading @@ -803,6 +803,155 @@ module AtsImsIot_Functions { return v_status; } /** * @desc Trigger UE given by p_ueRef to initiate conference call * @param p_ueRef Reference to IMS UE user component * @return * true in case of successfull execution of the trigger command * otherwise false */ function f_mtc_userInitiateConferenceCall(EquipmentUser p_ueRef)//, ImsUserInfo p_calledParty) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO //if( p_calledParty.publicId == "dummy" ) { return true; } //v_status := f_mtc_userInitiateCallSuccessful(p_ueRef); return v_status; } /** * @desc Trigger UE given by p_ueRef to verify that user is informed * that Conference is being set up * @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_userCheckConferenceSetUp(EquipmentUser p_userCompRef) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc Trigger UE given by p_ueRef to verify that user is informed * that Conference is established * @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_userCheckConferenceEstablished(EquipmentUser p_userCompRef) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc Trigger UE given by p_ueRef to invite user to join the conference call * @param p_ueRef Reference to IMS UE user component * @param p_calledParty ImsUserInfo of called party * @return * true in case of successfull execution of the trigger command * otherwise false */ function f_mtc_userInviteUserToJoinConferenceCall(EquipmentUser p_ueRef, ImsUserInfo p_calledParty) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO //if( p_calledParty.publicId == "dummy" ) { return true; } //v_status := f_mtc_userInitiateCallSuccessful(p_ueRef); return v_status; } /** * @desc Trigger UE given by p_ueRef to verify that user is ringing * @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_userCheckConferenceCallRinging(EquipmentUser p_userCompRef) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc Trigger UE given by p_ueRef to verify that its peer is ringing * @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_userCheckConferenceCallPeerIsRinging(EquipmentUser p_userCompRef) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc Answer on Conference call * @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_userAnswerConferenceCall(EquipmentUser p_userCompRef) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc Trigger UE given by p_ueRef to verify user is alerted when * peer joins the conference call * @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_userCheckInfoWhenPeerJoinsConference(EquipmentUser p_userCompRef) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc User leave conference call * @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_LeaveConferenceCall(EquipmentUser p_userCompRef) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc Check that UE by p_ueRef given reports that conference call has ended * @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_userCheckConferenceCallEnded(EquipmentUser p_userCompRef) runs on TestCoordinator return boolean { var boolean v_status := true; // TODO return v_status; } /** * @desc Trigger UE given by p_ueRef to initiate chat * @param p_ueRef Reference to IMS UE user component Loading
AtsImsIot/AtsImsIot_Templates.ttcn +56 −0 Original line number Diff line number Diff line Loading @@ -505,6 +505,23 @@ module AtsImsIot_Templates { } } /** * * @desc BYE Request checking TP_IMS_5073_01 on MW */ template BYE_Request mdw_TP_IMS_5073_01_ic(template CallId p_callId) modifies mw_BYE_Request_Base := { msgHeader := { reason := { fieldName := REASON_E, reasonValues := {{ token := "503", reasonParams := * }} } } } /** * * @desc INVITE Request checking TP_IMS_5080_01 on MW Loading @@ -519,6 +536,20 @@ module AtsImsIot_Templates { } } /** * * @desc UPDATE Request checking TP_IMS_5080_02 on MW */ template UPDATE_Request mdw_TP_IMS_5080_02_ic(template CallId p_callId) modifies mw_UPDATE_Request_Base := { msgHeader := { pChargingVector := mw_PChargingVector({ {id := "access-network-charging-info", paramValue := ?}, //note access-network-charging-info should be updated * }) } } /** * * @desc 200 OK Response checking TP_IMS_5082_01 on MW Loading Loading @@ -1625,6 +1656,31 @@ module AtsImsIot_Templates { } } /** * @desc UPDATE Request checking TP_IMS_5120_02 */ template UPDATE_Request mdw_TP_IMS_5120_02_ic( template CallId p_callId, template SipUrl p_SCSCF_URI ) modifies mw_UPDATE_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), * } } } } template Response mw_TP_IMS_5121_02_ic modifies mdw_2XX_Base := { msgHeader := { pChargingVector := { Loading
AtsImsIot/AtsImsIot_TestCases_CALL.ttcn +191 −1 File changed.Preview size limit exceeded, changes collapsed. Show changes
AtsImsIot/AtsImsIot_TestCases_SS.ttcn +65 −0 Original line number Diff line number Diff line Loading @@ -697,4 +697,69 @@ module AtsImsIot_TestCases_SS { f_cf_user_down(v_ueB); f_cf_roam_as_down(v_config); } //end testcase TC_IMS_SS_0010 /** * @desc IMS network handles subsequent INVITEs, UPDATEs, REFERs and NOTIFYs * correctly during Ad-Hoc Conference calls * @see TS 186 011-2 V3.1.1 cause 4.5.5.11 */ testcase TC_IMS_CONF_0001() 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_ic := f_cf_create_monitor(c_ic); var ImsInterfaceMonitor v_iscA := f_cf_create_monitor(c_isc_A); var ImsInterfaceMonitor v_iscB := f_cf_create_monitor(c_isc_B); var ImsUserInfo v_userInfoA := f_getOIRUser(PX_EUT_A); var ImsUserInfo v_userInfoB := f_getOIPUser(PX_EUT_B); var ImsInterfaceMonitor v_mxA := f_cf_create_monitor(c_mx_A); var ImsInterfaceMonitor v_mxB := f_cf_create_monitor(c_mx_B); var CF_INT_AS v_config := {v_gmA, v_mxA, v_ic, v_mxB, v_gmB, v_iscA, v_iscB}; // map/connect component ports // f_cf_user_up(v_ueB); f_cf_adapter_up(); f_cf_user_up(v_ueA); f_cf_user_up(v_ueB); f_cf_int_as_up(v_config); // preamble f_mtc_userRegistration(v_ueA, v_userInfoA); f_mtc_userRegistration(v_ueB, v_userInfoB); // test body f_mtc_userInitiateConferenceCall (v_ueA);//Test Sequence Step 1 f_mtc_userCheckConferenceSetUp(v_ueA); //Test Sequence Step 2 f_mtc_userCheckConferenceEstablished(v_ueA); //Test Sequence Step 3 f_mtc_userInviteUserToJoinConferenceCall (v_ueA, v_userInfoB);//Test Sequence Step 4 f_mtc_userCheckConferenceCallRinging(v_ueB); //Test Sequence Step 5 f_mtc_userCheckConferenceCallPeerIsRinging(v_ueA); // Test Sequence Step 6 f_mtc_userAnswerConferenceCall(v_ueB);//Test Sequence Step 7 // check 1 200 OK f_mtc_check_TP_IMS_5121_02_gm(v_gmB,0); f_mtc_check_TP_IMS_5121_02_ic(v_ic,0); f_mtc_userCheckInfoWhenPeerJoinsConference(v_ueA);//Test Sequence Step 8 f_mtc_LeaveConferenceCall(v_ueB);//Test Sequence Step 9 f_mtc_userCheckConferenceCallEnded(v_ueB);//Test Sequence Step 10 f_mtc_userCheckConferenceCallEnded(v_ueA);//Test Sequence Step 11 // 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_as_down(v_config); f_cf_adapter_down(); } //end testcase TC_IMS_CONF_0001 }