Commit 3ac93f8b authored by Yann Garcia's avatar Yann Garcia
Browse files

Review sequence for TD_VoLTE_ECO_INT_INI_02

parent b6bf678a
Loading
Loading
Loading
Loading
+29 −48
Original line number Diff line number Diff line
@@ -294,7 +294,7 @@ module AtsImsIot_Emergency {
                                                              PX_DIAMETER_GX_INTERFACENAME,
                                                              PX_DIAMETER_RX_INTERFACENAME,
                                                              PX_SIP_MW_PE_INTERFACENAME,
                                                              PX_SIP_MM_PSAP_INTERFACENAME // IBCF -> PSAP
                                                              PX_SIP_MM_PSAP_INTERFACENAME // E-CSCCF -> PSAP
                                                              }))
                    {
                        var SipMessage v_sip;
@@ -338,15 +338,15 @@ module AtsImsIot_Emergency {
                        f_mtc_check_TP_MM_ECSCF_ECO_100Trying_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip);

                        // 183 Session Progress
                        f_mtc_check_TP_MM_ECSCF_ECO_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip); // Event 12
                        f_mtc_check_TP_MM_ECSCF_ECO_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip); // 183 In Progress Event 12
                        f_mtc_check_TP_MW_PCSCF_ECO_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 13
                        f_mtc_check_TP_GM_PCSCF_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 18
                        
                        //Rx/Gx exchange after 183(SDP) was received at P-CSCF
                        f_mtc_check_TP_RX_PCSCF_AAR_04(vc_vxlte_monitor_components.rx);// Event 16
                        f_mtc_check_TP_GX_PCRF_RAR_01(vc_vxlte_monitor_components.gx, true); // Event 17
                        f_mtc_check_TP_GX_PGW_RAA_02(vc_vxlte_monitor_components.gx);  // Event 18
                        f_mtc_check_TP_RX_PCRF_AAA_02(vc_vxlte_monitor_components.rx); // Event 19
                        f_mtc_check_TP_RX_PCSCF_AAR_04(vc_vxlte_monitor_components.rx);// Event 14
                        f_mtc_check_TP_GX_PCRF_RAR_01(vc_vxlte_monitor_components.gx, true); // Event 15
                        f_mtc_check_TP_GX_PGW_RAA_02(vc_vxlte_monitor_components.gx);  // Event 16
                        f_mtc_check_TP_RX_PCRF_AAA_02(vc_vxlte_monitor_components.rx); // Event 17
                        
                        f_mtc_check_TP_MM_ECSCF_ECO_180RINGING_01(vc_vxlte_monitor_components.mwB_PSAP); // 180 Ringing – Event 20
                        f_mtc_check_TP_MW_PCSCF_ECO_180RINGING_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 21
@@ -354,7 +354,7 @@ module AtsImsIot_Emergency {
                        
                        f_mtc_userCheckRinging(v_psap); // Event 19
                        f_mtc_userCheckPeerIsRinging(v_ueA); // Event 19
                        f_mtc_userAnswerCall(v_psap); // Event 20
                        f_mtc_userAnswerCall(v_psap); // Event 26
                        
                        f_mtc_check_TP_MM_ECSCF_ECO_200OK_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip); // 200 OK Event 23
                        f_mtc_check_TP_MW_PCSCF_ECO_200OK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 24
@@ -412,8 +412,7 @@ module AtsImsIot_Emergency {
                                                              PX_DIAMETER_GX_INTERFACENAME,
                                                              PX_DIAMETER_RX_INTERFACENAME,
                                                              PX_SIP_MW_PE_INTERFACENAME,
                                                              PX_SIP_EB_INTERFACENAME, // E-CSCF -> IBCF
                                                              PX_SIP_MM_PSAP_INTERFACENAME // IBCF -> PSAP
                                                              PX_SIP_MM_PSAP_INTERFACENAME // E-CSCCF -> PSAP
                                                              }))
                    {
                        var SipMessage v_sip;
@@ -449,59 +448,41 @@ module AtsImsIot_Emergency {
                        f_mtc_check_TP_RX_PCSCF_RAA_01(vc_vxlte_monitor_components.rx);// Events 7,8
                        f_mtc_check_TP_GX_PCRF_CCA_01(vc_vxlte_monitor_components.gx); // Events 6,9


                        f_mtc_check_TP_MW_PCSCF_ECO_INVITE_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 10
                        f_mtc_check_TP_MW_PCSCF_ECO_INVITE_02(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 10
                        f_mtc_check_TP_MW_PCSCF_ECO_100Trying_01(vc_vxlte_monitor_components.mwPE, -, v_sip);
                        
                        f_mtc_check_TP_MW_IBCF_INVITE_01(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 11
                        f_mtc_check_TP_MW_IBCF_100Trying_01(vc_vxlte_monitor_components.mwBE, -, v_sip);
                        
                        f_mtc_check_TP_MM_ECSCF_ECO_INVITE_01(vc_vxlte_monitor_components.mwB_PSAP, true); // Event 12
                        f_mtc_check_TP_MM_ECSCF_ECO_INVITE_01(vc_vxlte_monitor_components.mwB_PSAP, true); // Event 11
                        f_mtc_check_TP_MM_ECSCF_ECO_100Trying_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip);

                        // 183 Session Progress
                        f_mtc_check_TP_MM_ECSCF_ECO_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip); // Event 13
                        f_mtc_check_TP_MW_IBCF_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 14
                        f_mtc_check_TP_MW_PCSCF_ECO_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 15
                        f_mtc_check_TP_GM_PCSCF_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 20
                        
                        // PRACK after 183 Session Progress: require field is present
                        // FIXME Add check of requires SIP message header to check PRACK
                        //f_mtc_check_TP_MW_PCSCF_ECO_PRACK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 15
                        //f_mtc_check_TP_GM_PCSCF_PRACK_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 20
                        f_mtc_check_TP_MM_ECSCF_ECO_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip); // 183 In Progress Event 12
                        f_mtc_check_TP_MW_PCSCF_ECO_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 13
                        f_mtc_check_TP_GM_PCSCF_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 18
                        
                        //Rx/Gx exchange after 183(SDP) was received at P-CSCF
                        f_mtc_check_TP_RX_PCSCF_AAR_04(vc_vxlte_monitor_components.rx);// Event 16
                        f_mtc_check_TP_GX_PCRF_RAR_01(vc_vxlte_monitor_components.gx, true); // Event 17
                        f_mtc_check_TP_GX_PGW_RAA_02(vc_vxlte_monitor_components.gx);  // Event 18
                        f_mtc_check_TP_RX_PCRF_AAA_02(vc_vxlte_monitor_components.rx); // Event 19
                        f_mtc_check_TP_RX_PCSCF_AAR_04(vc_vxlte_monitor_components.rx);// Event 14
                        f_mtc_check_TP_GX_PCRF_RAR_01(vc_vxlte_monitor_components.gx, true); // Event 15
                        f_mtc_check_TP_GX_PGW_RAA_02(vc_vxlte_monitor_components.gx);  // Event 16
                        f_mtc_check_TP_RX_PCRF_AAA_02(vc_vxlte_monitor_components.rx); // Event 17
                        
                        f_mtc_check_TP_MM_ECSCF_ECO_180RINGING_01(vc_vxlte_monitor_components.mwB_PSAP); // 180 Ringing – Event 22
                        f_mtc_check_TP_MW_IBCF_180RINGING_01(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 23
                        f_mtc_check_TP_MW_PCSCF_ECO_180RINGING_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 24
                        f_mtc_check_TP_GM_PCSCF_180RINGING_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 25
                        
                        // PRACK after 180 Session Progress: require field is present
                        // FIXME Add check of requires SIP message header to check PRACK
                        // f_mtc_check_TP_MW_PCSCF_ECO_PRACK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 15
                        // f_mtc_check_TP_GM_PCSCF_PRACK_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 20
                        
                        f_mtc_userCheckRinging(v_psap);
                        f_mtc_userCheckPeerIsRinging(v_ueA);
                        f_mtc_userAnswerCall(v_psap);
                        f_mtc_userCheckRinging(v_psap); // Event 19
                        f_mtc_userCheckPeerIsRinging(v_ueA); // Event 19
                        f_mtc_userAnswerCall(v_psap); // Event 26
                        
                        f_mtc_check_TP_MM_ECSCF_ECO_200OK_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip); // 200 OK Event 26
                        f_mtc_check_TP_MW_IBCF_200OK(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 27
                        f_mtc_check_TP_MW_PCSCF_ECO_200OK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 28
                        f_mtc_check_TP_GM_PCSCF_200OK_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 29
                        f_mtc_check_TP_MM_ECSCF_ECO_200OK_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip); // 200 OK Event 23
                        f_mtc_check_TP_MW_PCSCF_ECO_200OK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 24
                        f_mtc_check_TP_GM_PCSCF_200OK_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 25

                        f_mtc_check_TP_GM_PCSCF_ACK_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 30 
                        f_mtc_check_TP_MW_PCSCF_ECO_ACK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 31
                        f_mtc_check_TP_MW_IBCF_ACK_01(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 32
                        f_mtc_check_TP_MM_ECSCF_ECO_ACK_01(vc_vxlte_monitor_components.mwB_PSAP); // ACK – Event 33
                        f_mtc_check_TP_GM_PCSCF_ACK_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 26 
                        f_mtc_check_TP_MW_PCSCF_ECO_ACK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 27
                        f_mtc_check_TP_MM_ECSCF_ECO_ACK_01(vc_vxlte_monitor_components.mwB_PSAP); // ACK – Event 28

                        f_mtc_userCheckCallEstablished(v_ueA); // Event 34
                        f_mtc_userCheckCallEstablished(v_psap); // Event 34
                        f_mtc_userCheckCallEstablished(v_ueA); // Event 29
                        f_mtc_userCheckCallEstablished(v_psap); // Event 29
                        
                        // Postamble
                        f_mtc_EndCall(v_ueA);
+126 −0
Original line number Diff line number Diff line
@@ -1261,6 +1261,66 @@ module AtsImsIot_TP_behavior_GM {
            }
        } // End of function f_mtc_check_TP_GM_PCSCF_INVITE_01
        
        /**
         * @desc "Verify that the P-CSCF successfully receives an initial emergency INVITE from an unregistered UE."
         * Reference 
         *     "ETSI TS 124 229 [1], Clauses 5.1.6.8.2"
         * Config Id CF_VxLTE_INT
         * PICS Selection NONE
         * Initial conditions with {
         *     the UE_A entity isAttachedTo the EPC_A and
         *     the UE_A entity not isRegisteredTo the IMS_A and
         *     the UE_A entity not isEmergencyRegisteredTo the IMS_A
         *  }
         * Expected behaviour
         *     ensure that {
         *         when {
         *             the UE_A entity isRequestedToEstablishEmergencyCall
         *         }
         *         then {
         *             the IMS_P_CSCF_A entity receives an INVITE containing
         *                 From indicating value "Anonymous",
         *                 To indicating value PX_SIP_EMERGENCY_SERVICE_URN,
         *                 CallId indicating value PX_UE_A_CALLID,
         *                 Via indicating value PX_UE_A_VIA, // see 5.1.6.8.2 7)
         *                 Route indicating value PX_UE_A_SERVICE_ROUTE,
         *                 MessageBody;
         *             from the UE_A entity
         *         }
         *     }
         */
        function f_mtc_check_TP_GM_PCSCF_ECO_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_EMERGENCY);
                var ImsUserInfo v_userInfoB := f_getTelUserId(PX_PSAP);
                
                // Check the INVITE
                p_monitorCompRef.start(
                                       f_Iot_Sip_receive(
                                                        { mw_SipRequest(mw_TP_GM_PCSCF_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_GM_PCSCF_INVITE_01 - Request",
                                                        true,
                                                        p_checkMessage
                                                        )
                                       );
                p_monitorCompRef.done;
                // Retrieve messge
                f_getSipMsgFromMonitor(p_monitorCompRef, p_sip);
                log("##### GM p_sip: ", p_sip);
            }
        } // End of function f_mtc_check_TP_GM_PCSCF_ECO_INVITE_01
        
        /**
         * @desc Verify that the P-CSCF successfully processes an initial INVITE (Terminating Leg).
         * Initial conditions with {
@@ -1329,6 +1389,72 @@ module AtsImsIot_TP_behavior_GM {
            }
        } // End of function f_mtc_check_TP_GM_PCSCF_INVITE_02
        
        /**
         * @desc "Verify that the P-CSCF successfully receives an initial emergency INVITE from an emergency registered UE."
         * Reference 
         *     "ETSI TS 124 229 [1], Clauses 5.1.6.8.3"
         * Config Id CF_VxLTE_INT
         * PICS Selection NONE
         * Initial conditions with {
         *     the UE_A entity isEmergencyAttachedTo the EPC_A and
         *     the UE_A entity isEmergencyRegisteredTo the IMS_A
         *  }
         * Expected behaviour
         *     ensure that {
         *         when {
         *             the UE_A entity isRequestedToEstablishEmergencyCall
         *         }
         *         then {
         *             the IMS_P_CSCF_A entity receives an INVITE containing
         *                 From indicating value PX_UE_A_SIP_URI,
         *                 To indicating value PX_SIP_EMERGENCY_SERVICE_URN,
         *                 CallId indicating value PX_UE_A_CALLID,
         *                 Via indicating value PX_UE_A_VIA,
         *                 Route indicating value PX_UE_A_SERVICE_ROUTE,
         *                 PPreferredIdentity, // one or two instances
         *                 // TODO Geolocation header maybe added later, check!
         *                 MessageBody;
         *             from the UE_A entity
         *         }
         *     }
         */
        function f_mtc_check_TP_GM_PCSCF_ECO_INVITE_02(
                                                       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_getSipUserId(PX_EUT_A_EMERGENCY);
                var ImsUserInfo v_userInfoB := f_getSipUserId(PX_PSAP);
                
                // Check the INVITE
                p_monitorCompRef.start(
                                       f_Iot_Sip_receive(
                                                        { mw_SipRequest(mw_TP_GM_PCSCF_ECO_INVITE_02(
                                                                                                     -, // FIXME Set expected value
                                                                                                     (
                                                                                                       mw_From_NameAddr_SipUrl({quotedString:=v_userInfoB.publicId}, v_userInfoB.publicId, v_userInfoB.domain),
                                                                                                       mw_From_AddrUnion_TelUrl(v_userInfoB.publicId)
                                                                                                     ),
                                                                                                     (
                                                                                                       mw_To_NameAddr_SipUrl({quotedString:=v_userInfoA.publicId}, v_userInfoA.publicId/*, v_userInfoA.domain*/),
                                                                                                       mw_To_AddrUnion_TelUrl(-)//v_userInfoA.publicId
                                                                                                     )
                                                                                                     ))
                                                        },
                                                        { mw_SipRequest(mw_INVITE_Request_Base) },
                                                        {0, omit},
                                                        "TP_GM_PCSCF_INVITE_02 - Request",
                                                        true,
                                                        p_checkMessage
                                                        )
                                       );
                p_monitorCompRef.done;
                // Retrieve messge
                f_getSipMsgFromMonitor(p_monitorCompRef, p_sip);
            }
        } // End of function f_mtc_check_TP_GM_PCSCF_ECO_INVITE_02
        
        function f_mtc_check_TP_GM_PCSCF_INVITE_03( // FIXME RMI To be reviewed
                                                   in SipInterfaceMonitor p_monitorCompRef,
                                                   in boolean p_checkMessage := false,
+5 −5
Original line number Diff line number Diff line
@@ -73,7 +73,7 @@ module AtsImsIot_TP_behavior_MM {
                                                       out SipMessage p_sip
                                                       ) runs on ImsTestCoordinator {
            if (isvalue(p_monitorCompRef)) {
                var ImsUserInfo v_userInfoA := f_getTelUserId(PX_EUT_A);
                var ImsUserInfo v_userInfoA := f_getTelUserId(PX_EUT_A_EMERGENCY);
                var ImsUserInfo v_psapInfo  := f_getSipUserId(PX_PSAP);
                
                // Check the INVITE