AtsImsIot_TP_behavior_MM.ttcn 4.47 KB
Newer Older
/*
 *  @author     TTF T010
 *  @version    $Id$
 *  @desc       This module provides the TP behaviour functions at MM interface
 */
module AtsImsIot_TP_behavior_MM {

    import from LibIms_Templates all;
    import from LibIms_UpperTester all;
    // LibIot
    import from LibIot_TypesAndValues all;
    import from LibIot_Functions all;
    import from LibIot_TestInterface all;
    import from LibIot_PIXITS all;
    // LibSip
    import from LibSip_SIPTypesAndValues all;
    import from LibSip_Templates all;
    import from LibSip_Common all;
    import from LibSip_SDPTypes all;
    // LibMsrp
    import from LibMsrp_TypesAndValues all;
    import from LibMsrp_Functions all;
    import from LibMsrp_Templates all;
    // AtsImsIot
    import from AtsImsIot_TestSystem all;
    import from AtsImsIot_Templates_MW all;
    import from AtsImsIot_Templates all;
    import from AtsImsIot_TypesAndValues all;
    import from AtsImsIot_Functions all;

    group imsInvite {
        
        /**
         * @desc Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg)..
         * Initial conditions with {
         *     the UE_A entity isAttachedTo the EPC_A and
         *     the PSAP entity isAttachedTo the EPC_B and
         *     the UE_A entity isRegisteredTo the IMS_A and
         *     the PSAP entity isRegisteredTo the IMS_B
         * }
         * 
         * Expected behaviour
         * ensure that {
         *     when {
         *         the PSAP entity receives an INVITE containing
         *             From indicating value PX_UE_A_SIP_URI,
         *             To indicating value PX_PSAP_SIP_URI,
         *             CallId indicating value PX_UE_A_CALLID,
         *             Via indicating value PX_UE_A_VIA,
         *             Route indicating value PX_UE_A_SERVICE_ROUTE,
         *             PAccessNetworkInfo,
         *             MessageBody containing
         *                 SDP containing
         *                     Version indicating value "0" 
         *                         ;
         *             ;;
         *         from the IMS_EBCF_A entity
         *     }
         *     then {
         *         the PSAP entity sends an 100_Trying
         *         to the IMS_IBCF_A entity
         *         }
         *     }
         */
        function f_mtc_check_TP_MM_PSAP_INVITE_01(
                                                   in SipInterfaceMonitor p_monitorCompRef,
                                                   in boolean p_checkMessage := false,
                                                   out SipMessage p_sip
                                                   ) runs on ImsTestCoordinator {
            if (isvalue(p_monitorCompRef)) {
                var ImsUserInfo v_userInfoA := f_getTelUserId(PX_EUT_A);
                var ImsUserInfo v_userInfoB := f_getTelUserId(PX_PSAP);
                
                // Check the INVITE
                p_monitorCompRef.start(
                                       f_Iot_Sip_receive(
                                                        { mw_SipRequest(mw_TP_MM_PSAP_INVITE_01(
                                                                                                 -, // FIXME Set expected value
                                                                                                 mw_From_AddrUnion_TelUrl(-), // v_userInfoA.publicId
                                                                                                 mw_To_AddrUnion_TelUrl(-) // v_userInfoB.publicId
                                                                                                 ))
                                                        },
                                                        { mw_SipRequest(mw_INVITE_Request_Base) },
                                                        {0, omit},
                                                        "TP_MM_PSAP_INVITE_01 - Request",
                                                        true,
                                                        p_checkMessage
                                                        )
                                       );
                p_monitorCompRef.done;
                // Retrieve messge
                f_getSipMsgFromMonitor(p_monitorCompRef, p_sip);
                log("##### p_sip: ", p_sip);
            }
        } // End of function f_mtc_check_TP_MM_PSAP_INVITE_01

    } // End of group imsInvite

} // end module AtsImsIot_TP_behavior_MM