Loading AtsImsIot/AtsImsIot_Behavior.ttcn +88 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,12 @@ module AtsImsIot_Behavior { import from LibSip_SIPTypesAndValues all; import from LibSip_Templates all; import from LibMsrp_Templates { template mw_msrpSEND_any, mw_msrpResponse_success }; import from AtsImsIot_Functions all; import from LibIot_PIXITS {modulepar PX_EUT_A, PX_EUT_B;} Loading Loading @@ -4889,5 +4895,87 @@ group checksTC_IMS_SHARE_0009 { } } group msrpChecks { /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component * @param p_checkMessage TODO */ function f_mtc_check_TP_MSRP_9000_01( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator return Request { var SipMessage v_sip := { request := valueof(m_INVITE_Dummy) }; var Request v_registerStep; p_monitorCompRef.start( f_imsIot_receive( { // Pass criteria mw_MsrpRequest(mw_msrpSEND_any) }, {}, // Fail criteria {0, omit}, "TP_MSRP_9000_01", false, p_checkMessage ) ); p_monitorCompRef.done; // Retrieve INVITE message f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); v_registerStep := v_sip.request; log("### f_mtc_check_TP_MSRP_9000_01: v_registerStep=", v_sip.request.messageBody.sdpMessageBody.media_list[0].attributes[0].msrp); return v_registerStep } // End of function f_mtc_check_TP_MSRP_9000_01 /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component * @param p_checkMessage TODO */ function f_mtc_check_TP_MSRP_9000_02( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( { // Pass criteria mw_MsrpResponse(mw_msrpResponse_success) }, {}, // Fail criteria {0, omit}, "TP_MSRP_9000_01", false, p_checkMessage ) ); p_monitorCompRef.done; } // End of function f_mtc_check_TP_MSRP_9000_02 // function f_mtc_check_TP_MSRP_9000_02_gm( // ImsInterfaceMonitor p_monitorCompRef, // boolean p_checkMessage // ) runs on ImsTestCoordinator { // p_monitorCompRef.start( // f_imsIot_receive( // { // mw_SipRequest(mdw_TP_MSRP_9000_02(?)) // }, // {}, // {0, omit}, // "TP_MSRP_9000_02", // false, // p_checkMessage // ) // ); // p_monitorCompRef.done; // } // End of function f_mtc_check_TP_MSRP_9000_02_gm } // End of group msrpChecks } // end group }// end module AtsImsIot/AtsImsIot_Functions.ttcn +30 −0 Original line number Diff line number Diff line Loading @@ -1118,6 +1118,36 @@ module AtsImsIot_Functions { return v_status; } /** * @desc Trigger UE given by p_ueRef to authenticate to MSRP Relay * @param p_userCompRef Reference to IMS UE user component * @return * true in case of successfull execution of the trigger command * otherwise false * @see RFC 4976 */ function f_mtc_userInitiateMSRPAuthentication(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 check that authentication to MSRP Relay succeed * @param p_userCompRef Reference to IMS UE user component * @return * true in case of successfull execution of the trigger command * otherwise false * @see RFC 4976 */ function f_mtc_userCheckMSRPAuthenticated(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 initiate chat conference * @param p_ueRef Reference to IMS UE user component Loading AtsImsIot/AtsImsIot_Templates.ttcn +25 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,11 @@ module AtsImsIot_Templates { import from AtsImsIot_TypesAndValues {type NAPTRmessage;} import from LibSip_SIPTypesAndValues all; import from LibSip_Templates all; import from LibMsrp_TypesAndValues { type SEND_request, RECEIVE_response }; import from LibIot_PIXITS { modulepar PX_IOT_TIMESTAMP_OFFSET, Loading Loading @@ -69,6 +74,26 @@ module AtsImsIot_Templates { } }//end group group sipMsrpMessages { /** * @desc MSRP request template * @param p_msrpRequest MSRP request */ template SipMessage mw_MsrpRequest(in template (present) SEND_request p_msrpRequest) := { msrpRequest := p_msrpRequest } /** * @desc MSRP response template * @param p_msrpResponse MSRP response */ template SipMessage mw_MsrpResponse(in template (present) RECEIVE_response p_msrpResponse) := { msrpResponse := p_msrpResponse } } // End of group sipMsrpMessages group naptrTemplates { template NAPTRmessage mw_EnumQuery_Base := { enumMessage := { Loading AtsImsIot/AtsImsIot_TestCases_RCS.ttcn +74 −2 Original line number Diff line number Diff line Loading @@ -9,7 +9,8 @@ module AtsImsIot_TestCases_RCS { import from LibIot_PIXITS { modulepar PX_EUT_A, PX_EUT_B, PX_EUT_C } import from LibIms_UpperTester { type ImsUserInfo; } import from LibSip_SIPTypesAndValues { const c_statusLine100, c_statusLine200, c_statusLine404, c_statusLine480, c_statusLine603; } c_statusLine603; type Request }; import from LibIot_TestConfiguration { function f_cf_create_IotEquipmentUser; } import from AtsImsIot_TestConfiguration { const all; function all; } import from LibIot_TestInterface {type IotEquipmentUser;} Loading Loading @@ -2955,4 +2956,75 @@ module AtsImsIot_TestCases_RCS { } //end testcase TC_IMS_SHARE_0010 /** * @desc Chat 1 to 1 procedure via MSRP * @see TS 102 901-2 V2.1.3 clause 5.4.1 Chat 1 to 1 procedure via MSRP */ testcase TC_MSRP_CHAT_0001() runs on ImsTestCoordinator system IotSystemInterface { 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_getPresUser(PX_EUT_A); var ImsUserInfo v_userInfoB := f_getPresUser(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 }; var Request v_registerStep; // map/connect component ports 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 ); f_mtc_userAddNewMediaStream(v_ueA); // Add MSRP support f_mtc_userAddNewMediaStream(v_ueB); f_mtc_StartAllTrafficCapture(); f_mtc_userInitiateChat (v_ueA, v_userInfoB); // Initiate chat f_mtc_userCheckChatInfo(v_ueA); f_mtc_userCheckPeerChatInfo(v_ueB); f_mtc_userInitiateMSRPAuthentication(v_ueA); f_mtc_userInitiateMSRPAuthentication(v_ueB); // test body f_mtc_userCheckChating(v_ueA,v_ueB); // Step 1: User A writes a chat message v_registerStep := f_mtc_check_TP_MSRP_9000_01(v_gmB, true); // Step 2: UE_B receives the SEND_MSRP f_mtc_check_TP_MSRP_9000_02(v_gmA, true); // Step3: UE B responds with 200 OK to UE A // postamble f_mtc_EndChat(v_ueA); // Terminate chat f_mtc_userCheckChatEnded(v_ueA); f_mtc_userCheckChatEnded(v_ueB); 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 of testcase TC_MSRP_CHAT_0001 }//end module AtsImsIot_TestCases_RCS No newline at end of file AtsImsIot/AtsImsIot_TypesAndValues.ttcn +9 −2 Original line number Diff line number Diff line Loading @@ -6,8 +6,13 @@ module AtsImsIot_TypesAndValues { import from LibSip_SIPTypesAndValues {type Request, SipUrl, Response;} import from LibCommon_BasicTypesAndValues all; import from LibSip_SIPTypesAndValues {type Request, SipUrl, Response;} import from LibMsrp_TypesAndValues { type SEND_request, RECEIVE_response }; group SIPmessageTypes { /** Loading @@ -17,7 +22,9 @@ module AtsImsIot_TypesAndValues { */ type union SipMessage { Request request, Response response Response response, SEND_request msrpRequest, RECEIVE_response msrpResponse } /** * @desc SIP Message List Type Loading Loading
AtsImsIot/AtsImsIot_Behavior.ttcn +88 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,12 @@ module AtsImsIot_Behavior { import from LibSip_SIPTypesAndValues all; import from LibSip_Templates all; import from LibMsrp_Templates { template mw_msrpSEND_any, mw_msrpResponse_success }; import from AtsImsIot_Functions all; import from LibIot_PIXITS {modulepar PX_EUT_A, PX_EUT_B;} Loading Loading @@ -4889,5 +4895,87 @@ group checksTC_IMS_SHARE_0009 { } } group msrpChecks { /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component * @param p_checkMessage TODO */ function f_mtc_check_TP_MSRP_9000_01( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator return Request { var SipMessage v_sip := { request := valueof(m_INVITE_Dummy) }; var Request v_registerStep; p_monitorCompRef.start( f_imsIot_receive( { // Pass criteria mw_MsrpRequest(mw_msrpSEND_any) }, {}, // Fail criteria {0, omit}, "TP_MSRP_9000_01", false, p_checkMessage ) ); p_monitorCompRef.done; // Retrieve INVITE message f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); v_registerStep := v_sip.request; log("### f_mtc_check_TP_MSRP_9000_01: v_registerStep=", v_sip.request.messageBody.sdpMessageBody.media_list[0].attributes[0].msrp); return v_registerStep } // End of function f_mtc_check_TP_MSRP_9000_01 /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component * @param p_checkMessage TODO */ function f_mtc_check_TP_MSRP_9000_02( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator { p_monitorCompRef.start( f_imsIot_receive( { // Pass criteria mw_MsrpResponse(mw_msrpResponse_success) }, {}, // Fail criteria {0, omit}, "TP_MSRP_9000_01", false, p_checkMessage ) ); p_monitorCompRef.done; } // End of function f_mtc_check_TP_MSRP_9000_02 // function f_mtc_check_TP_MSRP_9000_02_gm( // ImsInterfaceMonitor p_monitorCompRef, // boolean p_checkMessage // ) runs on ImsTestCoordinator { // p_monitorCompRef.start( // f_imsIot_receive( // { // mw_SipRequest(mdw_TP_MSRP_9000_02(?)) // }, // {}, // {0, omit}, // "TP_MSRP_9000_02", // false, // p_checkMessage // ) // ); // p_monitorCompRef.done; // } // End of function f_mtc_check_TP_MSRP_9000_02_gm } // End of group msrpChecks } // end group }// end module
AtsImsIot/AtsImsIot_Functions.ttcn +30 −0 Original line number Diff line number Diff line Loading @@ -1118,6 +1118,36 @@ module AtsImsIot_Functions { return v_status; } /** * @desc Trigger UE given by p_ueRef to authenticate to MSRP Relay * @param p_userCompRef Reference to IMS UE user component * @return * true in case of successfull execution of the trigger command * otherwise false * @see RFC 4976 */ function f_mtc_userInitiateMSRPAuthentication(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 check that authentication to MSRP Relay succeed * @param p_userCompRef Reference to IMS UE user component * @return * true in case of successfull execution of the trigger command * otherwise false * @see RFC 4976 */ function f_mtc_userCheckMSRPAuthenticated(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 initiate chat conference * @param p_ueRef Reference to IMS UE user component Loading
AtsImsIot/AtsImsIot_Templates.ttcn +25 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,11 @@ module AtsImsIot_Templates { import from AtsImsIot_TypesAndValues {type NAPTRmessage;} import from LibSip_SIPTypesAndValues all; import from LibSip_Templates all; import from LibMsrp_TypesAndValues { type SEND_request, RECEIVE_response }; import from LibIot_PIXITS { modulepar PX_IOT_TIMESTAMP_OFFSET, Loading Loading @@ -69,6 +74,26 @@ module AtsImsIot_Templates { } }//end group group sipMsrpMessages { /** * @desc MSRP request template * @param p_msrpRequest MSRP request */ template SipMessage mw_MsrpRequest(in template (present) SEND_request p_msrpRequest) := { msrpRequest := p_msrpRequest } /** * @desc MSRP response template * @param p_msrpResponse MSRP response */ template SipMessage mw_MsrpResponse(in template (present) RECEIVE_response p_msrpResponse) := { msrpResponse := p_msrpResponse } } // End of group sipMsrpMessages group naptrTemplates { template NAPTRmessage mw_EnumQuery_Base := { enumMessage := { Loading
AtsImsIot/AtsImsIot_TestCases_RCS.ttcn +74 −2 Original line number Diff line number Diff line Loading @@ -9,7 +9,8 @@ module AtsImsIot_TestCases_RCS { import from LibIot_PIXITS { modulepar PX_EUT_A, PX_EUT_B, PX_EUT_C } import from LibIms_UpperTester { type ImsUserInfo; } import from LibSip_SIPTypesAndValues { const c_statusLine100, c_statusLine200, c_statusLine404, c_statusLine480, c_statusLine603; } c_statusLine603; type Request }; import from LibIot_TestConfiguration { function f_cf_create_IotEquipmentUser; } import from AtsImsIot_TestConfiguration { const all; function all; } import from LibIot_TestInterface {type IotEquipmentUser;} Loading Loading @@ -2955,4 +2956,75 @@ module AtsImsIot_TestCases_RCS { } //end testcase TC_IMS_SHARE_0010 /** * @desc Chat 1 to 1 procedure via MSRP * @see TS 102 901-2 V2.1.3 clause 5.4.1 Chat 1 to 1 procedure via MSRP */ testcase TC_MSRP_CHAT_0001() runs on ImsTestCoordinator system IotSystemInterface { 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_getPresUser(PX_EUT_A); var ImsUserInfo v_userInfoB := f_getPresUser(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 }; var Request v_registerStep; // map/connect component ports 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 ); f_mtc_userAddNewMediaStream(v_ueA); // Add MSRP support f_mtc_userAddNewMediaStream(v_ueB); f_mtc_StartAllTrafficCapture(); f_mtc_userInitiateChat (v_ueA, v_userInfoB); // Initiate chat f_mtc_userCheckChatInfo(v_ueA); f_mtc_userCheckPeerChatInfo(v_ueB); f_mtc_userInitiateMSRPAuthentication(v_ueA); f_mtc_userInitiateMSRPAuthentication(v_ueB); // test body f_mtc_userCheckChating(v_ueA,v_ueB); // Step 1: User A writes a chat message v_registerStep := f_mtc_check_TP_MSRP_9000_01(v_gmB, true); // Step 2: UE_B receives the SEND_MSRP f_mtc_check_TP_MSRP_9000_02(v_gmA, true); // Step3: UE B responds with 200 OK to UE A // postamble f_mtc_EndChat(v_ueA); // Terminate chat f_mtc_userCheckChatEnded(v_ueA); f_mtc_userCheckChatEnded(v_ueB); 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 of testcase TC_MSRP_CHAT_0001 }//end module AtsImsIot_TestCases_RCS No newline at end of file
AtsImsIot/AtsImsIot_TypesAndValues.ttcn +9 −2 Original line number Diff line number Diff line Loading @@ -6,8 +6,13 @@ module AtsImsIot_TypesAndValues { import from LibSip_SIPTypesAndValues {type Request, SipUrl, Response;} import from LibCommon_BasicTypesAndValues all; import from LibSip_SIPTypesAndValues {type Request, SipUrl, Response;} import from LibMsrp_TypesAndValues { type SEND_request, RECEIVE_response }; group SIPmessageTypes { /** Loading @@ -17,7 +22,9 @@ module AtsImsIot_TypesAndValues { */ type union SipMessage { Request request, Response response Response response, SEND_request msrpRequest, RECEIVE_response msrpResponse } /** * @desc SIP Message List Type Loading