Loading ttcn/AtsImsIot/AtsImsIot_Behavior.ttcn +53 −25 Original line number Diff line number Diff line Loading @@ -4919,14 +4919,24 @@ group checksTC_IMS_SHARE_0009 { group msrpChecks { /** * @desc * @param p_monitorCompRef * @param p_checkMessage * @return * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue. * @return The INVITE request message value * <pre> * ensure that { * when { * User A initiates the call to User B * } * then { * UE_A sends the initial INVITE * containing an offered session-description indicating a session of MSRP * } * } * </pre> */ function f_mtc_check_TP_IMS_9000_invite_req( function f_mtc_check_TP_IMS_9000_01( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator return SipMessage { Loading @@ -4939,7 +4949,7 @@ group checksTC_IMS_SHARE_0009 { }, { }, {0, omit}, "f_mtc_check_TP_IMS_9000_invite_req", "f_mtc_check_TP_IMS_9000_01", false, p_checkMessage ) Loading @@ -4948,12 +4958,30 @@ group checksTC_IMS_SHARE_0009 { // Retrieve INVITE request message f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); log("### f_mtc_check_TP_IMS_9000_invite_req: v_invite=", v_sip.request.messageBody.sdpMessageBody.media_list); log("### f_mtc_check_TP_IMS_9000_01: v_invite=", v_sip.request.messageBody.sdpMessageBody.media_list); return v_sip; } // End of function f_mtc_check_TP_IMS_9000_invite_req } // End of function f_mtc_check_TP_IMS_9000_01 function f_mtc_check_TP_IMS_9000_invite_resp( /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue. * @return The INVITE request message value * <pre> * ensure that { * when { * UE_A sends SEND_MSRP to UE_B * } * then { * UE_A receives the INVITE200 OK response * containing an offered session-description indicating a session of MSRP * } * } * </pre> */ function f_mtc_check_TP_IMS_9000_02( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage, template StatusLine p_statusLine Loading @@ -4967,7 +4995,7 @@ group checksTC_IMS_SHARE_0009 { }, { }, {0, omit}, "f_mtc_check_TP_IMS_9000_invite_resp", "f_mtc_check_TP_IMS_9000_02", true, p_checkMessage ) Loading @@ -4976,10 +5004,10 @@ group checksTC_IMS_SHARE_0009 { // Retrieve INVITE response message f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); log("### f_mtc_check_TP_IMS_9000_invite_resp: v_invite=", v_sip.response.messageBody.sdpMessageBody.media_list); log("### f_mtc_check_TP_IMS_9000_02: v_invite=", v_sip.response.messageBody.sdpMessageBody.media_list); return v_sip; } // End of function f_mtc_check_TP_IMS_9000_invite_resp } // End of function f_mtc_check_TP_IMS_9000_02 /** * @desc Starts monitor component behavior Loading @@ -5001,7 +5029,7 @@ group checksTC_IMS_SHARE_0009 { * } * </pre> */ function f_mtc_check_TP_MSRP_9000_01( function f_mtc_check_TP_MSRP_9000_03( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage, in SipMessage p_inviteReq, Loading @@ -5015,22 +5043,22 @@ group checksTC_IMS_SHARE_0009 { // Sanity checks if (not(ispresent(p_inviteReq.request.messageBody))) { setverdict(inconc, self, fail, "*** f_mtc_check_TP_MSRP_9000_01: 'messageBody' field not present ***"); setverdict(inconc, self, fail, "*** f_mtc_check_TP_MSRP_9000_03: 'messageBody' field not present ***"); } else if (not(ischosen(p_inviteReq.request.messageBody.sdpMessageBody))) { setverdict(inconc, self, fail, "*** f_mtc_check_TP_MSRP_9000_01: 'sdpMessageBody' field not selected ***"); setverdict(inconc, self, fail, "*** f_mtc_check_TP_MSRP_9000_03: 'sdpMessageBody' field not selected ***"); } else if (not(ispresent(p_inviteReq.request.messageBody.sdpMessageBody.media_list))) { setverdict(inconc, self, fail, "*** f_mtc_check_TP_MSRP_9000_01: 'media_list' field not present ***"); setverdict(inconc, self, fail, "*** f_mtc_check_TP_MSRP_9000_03: 'media_list' field not present ***"); } else { v_mediasFromInvite := p_inviteReq.request.messageBody.sdpMessageBody.media_list; v_mediasFromResponse := p_inviteResp.response.messageBody.sdpMessageBody.media_list; if (lengthof(v_mediasFromInvite) == 0) { setverdict(inconc, self, fail, "*** f_mtc_check_TP_MSRP_9000_01: 'media_list' is empty ***"); setverdict(inconc, self, fail, "*** f_mtc_check_TP_MSRP_9000_03: 'media_list' is empty ***"); } else { // Extrat fromPath and toPath if ( not(f_str2msrpUri(v_mediasFromResponse[0].attributes[0].msrp.attr_value, v_toPath)) or not(f_str2msrpUri(v_mediasFromInvite[0].attributes[0].msrp.attr_value, v_fromPath))) { // FIXME To be refined setverdict(inconc, self, fail, "*** f_mtc_check_TP_MSRP_9000_01: 'media_list' is empty ***"); setverdict(inconc, self, fail, "*** f_mtc_check_TP_MSRP_9000_03: 'media_list' is empty ***"); } else { p_monitorCompRef.start( f_imsIot_receive( Loading @@ -5054,11 +5082,11 @@ group checksTC_IMS_SHARE_0009 { // Retrieve MSRP SEND message f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); log("### f_mtc_check_TP_MSRP_9000_01: v_sip=", v_sip.msrpRequest); log("### f_mtc_check_TP_MSRP_9000_03: v_sip=", v_sip.msrpRequest); } } } } // End of function f_mtc_check_TP_MSRP_9000_01 } // End of function f_mtc_check_TP_MSRP_9000_03 /** * @desc Starts monitor component behavior Loading @@ -5079,7 +5107,7 @@ group checksTC_IMS_SHARE_0009 { * } * </pre> */ function f_mtc_check_TP_MSRP_9000_02( function f_mtc_check_TP_MSRP_9000_04( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage, in SipMessage p_inviteReq, Loading @@ -5091,7 +5119,7 @@ group checksTC_IMS_SHARE_0009 { var SDP_media_desc_list v_mediasFromInvite; // Used to extract media description list from SDP in the INVITE request message var SDP_media_desc_list v_mediasFromResponse; // Used to extract media description list from SDP in the INVITE 200 OK response message // Note that sanity checks were done in TP_MSRP_9000_01 // Note that sanity checks were done in TP_MSRP_9000_03 v_mediasFromInvite := p_inviteReq.request.messageBody.sdpMessageBody.media_list; v_mediasFromResponse := p_inviteResp.response.messageBody.sdpMessageBody.media_list; Loading @@ -5114,10 +5142,10 @@ group checksTC_IMS_SHARE_0009 { // Retrieve MSRP SEND message f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); log("### f_mtc_check_TP_MSRP_9000_02: v_sip=", v_sip.msrpResponse); log("### f_mtc_check_TP_MSRP_9000_04: v_sip=", v_sip.msrpResponse); } // End of function f_mtc_check_TP_MSRP_9000_02 } // End of function f_mtc_check_TP_MSRP_9000_04 // function f_mtc_check_TP_MSRP_9000_02_gm( Loading Loading
ttcn/AtsImsIot/AtsImsIot_Behavior.ttcn +53 −25 Original line number Diff line number Diff line Loading @@ -4919,14 +4919,24 @@ group checksTC_IMS_SHARE_0009 { group msrpChecks { /** * @desc * @param p_monitorCompRef * @param p_checkMessage * @return * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue. * @return The INVITE request message value * <pre> * ensure that { * when { * User A initiates the call to User B * } * then { * UE_A sends the initial INVITE * containing an offered session-description indicating a session of MSRP * } * } * </pre> */ function f_mtc_check_TP_IMS_9000_invite_req( function f_mtc_check_TP_IMS_9000_01( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage ) runs on ImsTestCoordinator return SipMessage { Loading @@ -4939,7 +4949,7 @@ group checksTC_IMS_SHARE_0009 { }, { }, {0, omit}, "f_mtc_check_TP_IMS_9000_invite_req", "f_mtc_check_TP_IMS_9000_01", false, p_checkMessage ) Loading @@ -4948,12 +4958,30 @@ group checksTC_IMS_SHARE_0009 { // Retrieve INVITE request message f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); log("### f_mtc_check_TP_IMS_9000_invite_req: v_invite=", v_sip.request.messageBody.sdpMessageBody.media_list); log("### f_mtc_check_TP_IMS_9000_01: v_invite=", v_sip.request.messageBody.sdpMessageBody.media_list); return v_sip; } // End of function f_mtc_check_TP_IMS_9000_invite_req } // End of function f_mtc_check_TP_IMS_9000_01 function f_mtc_check_TP_IMS_9000_invite_resp( /** * @desc Starts monitor component behavior * @param p_monitorCompRef Reference to monitor component * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue. * @return The INVITE request message value * <pre> * ensure that { * when { * UE_A sends SEND_MSRP to UE_B * } * then { * UE_A receives the INVITE200 OK response * containing an offered session-description indicating a session of MSRP * } * } * </pre> */ function f_mtc_check_TP_IMS_9000_02( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage, template StatusLine p_statusLine Loading @@ -4967,7 +4995,7 @@ group checksTC_IMS_SHARE_0009 { }, { }, {0, omit}, "f_mtc_check_TP_IMS_9000_invite_resp", "f_mtc_check_TP_IMS_9000_02", true, p_checkMessage ) Loading @@ -4976,10 +5004,10 @@ group checksTC_IMS_SHARE_0009 { // Retrieve INVITE response message f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); log("### f_mtc_check_TP_IMS_9000_invite_resp: v_invite=", v_sip.response.messageBody.sdpMessageBody.media_list); log("### f_mtc_check_TP_IMS_9000_02: v_invite=", v_sip.response.messageBody.sdpMessageBody.media_list); return v_sip; } // End of function f_mtc_check_TP_IMS_9000_invite_resp } // End of function f_mtc_check_TP_IMS_9000_02 /** * @desc Starts monitor component behavior Loading @@ -5001,7 +5029,7 @@ group checksTC_IMS_SHARE_0009 { * } * </pre> */ function f_mtc_check_TP_MSRP_9000_01( function f_mtc_check_TP_MSRP_9000_03( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage, in SipMessage p_inviteReq, Loading @@ -5015,22 +5043,22 @@ group checksTC_IMS_SHARE_0009 { // Sanity checks if (not(ispresent(p_inviteReq.request.messageBody))) { setverdict(inconc, self, fail, "*** f_mtc_check_TP_MSRP_9000_01: 'messageBody' field not present ***"); setverdict(inconc, self, fail, "*** f_mtc_check_TP_MSRP_9000_03: 'messageBody' field not present ***"); } else if (not(ischosen(p_inviteReq.request.messageBody.sdpMessageBody))) { setverdict(inconc, self, fail, "*** f_mtc_check_TP_MSRP_9000_01: 'sdpMessageBody' field not selected ***"); setverdict(inconc, self, fail, "*** f_mtc_check_TP_MSRP_9000_03: 'sdpMessageBody' field not selected ***"); } else if (not(ispresent(p_inviteReq.request.messageBody.sdpMessageBody.media_list))) { setverdict(inconc, self, fail, "*** f_mtc_check_TP_MSRP_9000_01: 'media_list' field not present ***"); setverdict(inconc, self, fail, "*** f_mtc_check_TP_MSRP_9000_03: 'media_list' field not present ***"); } else { v_mediasFromInvite := p_inviteReq.request.messageBody.sdpMessageBody.media_list; v_mediasFromResponse := p_inviteResp.response.messageBody.sdpMessageBody.media_list; if (lengthof(v_mediasFromInvite) == 0) { setverdict(inconc, self, fail, "*** f_mtc_check_TP_MSRP_9000_01: 'media_list' is empty ***"); setverdict(inconc, self, fail, "*** f_mtc_check_TP_MSRP_9000_03: 'media_list' is empty ***"); } else { // Extrat fromPath and toPath if ( not(f_str2msrpUri(v_mediasFromResponse[0].attributes[0].msrp.attr_value, v_toPath)) or not(f_str2msrpUri(v_mediasFromInvite[0].attributes[0].msrp.attr_value, v_fromPath))) { // FIXME To be refined setverdict(inconc, self, fail, "*** f_mtc_check_TP_MSRP_9000_01: 'media_list' is empty ***"); setverdict(inconc, self, fail, "*** f_mtc_check_TP_MSRP_9000_03: 'media_list' is empty ***"); } else { p_monitorCompRef.start( f_imsIot_receive( Loading @@ -5054,11 +5082,11 @@ group checksTC_IMS_SHARE_0009 { // Retrieve MSRP SEND message f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); log("### f_mtc_check_TP_MSRP_9000_01: v_sip=", v_sip.msrpRequest); log("### f_mtc_check_TP_MSRP_9000_03: v_sip=", v_sip.msrpRequest); } } } } // End of function f_mtc_check_TP_MSRP_9000_01 } // End of function f_mtc_check_TP_MSRP_9000_03 /** * @desc Starts monitor component behavior Loading @@ -5079,7 +5107,7 @@ group checksTC_IMS_SHARE_0009 { * } * </pre> */ function f_mtc_check_TP_MSRP_9000_02( function f_mtc_check_TP_MSRP_9000_04( ImsInterfaceMonitor p_monitorCompRef, boolean p_checkMessage, in SipMessage p_inviteReq, Loading @@ -5091,7 +5119,7 @@ group checksTC_IMS_SHARE_0009 { var SDP_media_desc_list v_mediasFromInvite; // Used to extract media description list from SDP in the INVITE request message var SDP_media_desc_list v_mediasFromResponse; // Used to extract media description list from SDP in the INVITE 200 OK response message // Note that sanity checks were done in TP_MSRP_9000_01 // Note that sanity checks were done in TP_MSRP_9000_03 v_mediasFromInvite := p_inviteReq.request.messageBody.sdpMessageBody.media_list; v_mediasFromResponse := p_inviteResp.response.messageBody.sdpMessageBody.media_list; Loading @@ -5114,10 +5142,10 @@ group checksTC_IMS_SHARE_0009 { // Retrieve MSRP SEND message f_getSipMsgFromMonitor(p_monitorCompRef, v_sip); log("### f_mtc_check_TP_MSRP_9000_02: v_sip=", v_sip.msrpResponse); log("### f_mtc_check_TP_MSRP_9000_04: v_sip=", v_sip.msrpResponse); } // End of function f_mtc_check_TP_MSRP_9000_02 } // End of function f_mtc_check_TP_MSRP_9000_04 // function f_mtc_check_TP_MSRP_9000_02_gm( Loading