Commit ba839846 authored by garciay's avatar garciay
Browse files

Add and finalyze TPs for MSRP

parent b2d36a7d
Loading
Loading
Loading
Loading
+53 −25
Original line number Diff line number Diff line
@@ -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 {
@@ -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
                )
@@ -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 
@@ -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
                )
@@ -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
@@ -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,
@@ -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(
@@ -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
@@ -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,
@@ -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;
            
@@ -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(