Commit 1272237e authored by Yann Garcia's avatar Yann Garcia
Browse files

Finalyze TD_VoLTE_ECO_INT_INI_01_01

parent bfb7459b
Loading
Loading
Loading
Loading
+274 −14
Original line number Diff line number Diff line
@@ -9,15 +9,15 @@ module AtsImsIot_Emergency {
    // LibCommon
    // LibSip
    // LibIms
    import from LibIms_UpperTester { type ImsUserInfo };
    import from LibIms_UpperTester all;
    // LibIot
    import from LibIot_TestInterface { type IotEquipmentUser };
    import from LibIot_TestConfiguration { function f_cf_create_IotEquipmentUser };
    import from LibIot_PIXITS { modulepar PX_EUT_A, PX_EUT_B, PX_EUT_C };
    import from LibIot_TestInterface all;
    import from LibIot_TestConfiguration all;
    import from LibIot_PIXITS all;
    import from LibIot_VxLTE_PIXITS all;
    import from LibIot_VxLTE_Functions all;
    // LibImsIot
    import from AtsImsIot_Functions { function f_getImUser };
    import from AtsImsIot_Functions all;
    // ImsIot
    import from AtsImsIot_TestConfiguration all; 
    import from AtsImsIot_TestSystem all; 
@@ -26,6 +26,8 @@ module AtsImsIot_Emergency {
    import from AtsImsIot_TP_behavior_MW_PS all;
    import from AtsImsIot_TP_behavior_MW_SI all;
    import from AtsImsIot_TP_behavior_MW_IS all;
    import from AtsImsIot_TP_behavior_MW_EC all;
    import from AtsImsIot_TP_behavior_MW_EB all;
    import from AtsImsIot_TP_behavior_IC all;
    import from AtsImsIot_TP_behavior_CX all;
    import from AtsImsIot_TP_behavior_GX all;
@@ -115,7 +117,7 @@ module AtsImsIot_Emergency {
                    f_cf_adapter_down ( );
                }else{
                    //log...
                    setverdict (inconc,"At least one required monitor interface SHALL be selected! Check PIXITs")
                    setverdict (inconc,"At least one required monitor interface SHALL be selected! Check PIXITs");
                }
            } // End of testcase TD_VoLTE_ECO_INT_REG_01

@@ -171,7 +173,7 @@ module AtsImsIot_Emergency {
                    f_cf_adapter_down ( );
                }else{
                    //log...
                    setverdict (inconc,"At least one required monitor interface SHALL be selected! Check PIXITs")
                    setverdict (inconc,"At least one required monitor interface SHALL be selected! Check PIXITs");
                }
            } // End of testcase TD_VoLTE_ECO_INT_REG_02

@@ -182,14 +184,261 @@ module AtsImsIot_Emergency {
         */
        group EmergencySessionEmergencyBearerOperations {

        } // End of group EmergencySessionEmergencyBearerOperations
            group EmergencySessionEstablishment {

                /**
         * @see ETSI TS 103 795-2 Clause 5.4	Emergency Deregistration
                * @desc    To demonstrate the establishment of dedicated bearers at the originating EPC due to SIP emergency session establishment.
                *          On successful emergency call setup with UE-A attached to EPC A, the P-CSCF should derive from the SDP offer and answer, descriptions of the Service Data Flow
                * @see ETSI TS 103 795-2 Clause 5.3.1.2	UE calling PSAP with emergency registration
                * @remark This is option1: IBCF is connect to another network and the interface between the IBCF and the PSAP is the Ic interface
                */
        group EmergencyNetworkDetachment {
                testcase TD_VoLTE_ECO_INT_INI_01_01 ( ) runs on ImsTestCoordinator system IotSystemInterface {
                    
            group EmergencySessionEstablishment {
                    var IotEquipmentUser v_ueA  := f_cf_create_IotEquipmentUser ( c_userUE_A );
                    var IotEquipmentUser v_psap := f_cf_create_IotEquipmentUser ( c_psap );
        
                    f_setVxLteMonIterfacesAvailability();
                    //Check required monitor interfaces due to TD
                    if (f_checkVxLteRequiredMonitorInterface({PX_SIP_GMA_INTERFACENAME,
                                                              PX_DIAMETER_GX_INTERFACENAME,
                                                              PX_DIAMETER_RX_INTERFACENAME,
                                                              PX_SIP_MW_PE_INTERFACENAME,
                                                              PX_SIP_EB_INTERFACENAME, // E-CSCF -> IBCF
                                                              PX_SIP_IC_INTERFACENAME // IBCF -> IMS_B -> PSAP
                                                              }))
                    {
                        var SipMessage v_sip;
                        
                        f_cf_createVxLteMonitor();
                
                        // map/connect component ports
                        f_cf_adapter_up ( );
                        f_cf_user_up ( v_ueA );
                        f_cf_user_up ( v_psap );
                        f_cf_VxLteMonitor_Up();
                
                        // Preamble
//                        f_mtc_userRegistration(v_ueA, v_userInfoA); 
//                        f_mtc_userRegistration(v_psap, v_userInfoB); 
                        f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_01_01();
                        
                        // Test body
                        //f_mtc_userInitiateCall (v_ueA, v_userTelInfoB);
                        

                        f_mtc_check_TP_GM_PCSCF_INVITE_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 1
                        f_mtc_check_TP_GM_PCSCF_100Trying_01(vc_vxlte_monitor_components.gmA, -, v_sip);

                        //Rx/Gx exchange after INVITE (SDP) was received at P-CSCF
                        f_mtc_check_TP_RX_PCSCF_AAR_03(vc_vxlte_monitor_components.rx);// Event 2
                        f_mtc_check_TP_GX_PCRF_RAR_01(vc_vxlte_monitor_components.gx, true); // Event 3
                        f_mtc_check_TP_GX_PGW_RAA_02(vc_vxlte_monitor_components.gx);  // Event 4
                        f_mtc_check_TP_RX_PCRF_AAA_02(vc_vxlte_monitor_components.rx); // Event 5
                        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_ECSCF_INVITE_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 10
                        f_mtc_check_TP_MW_ECSCF_100Trying_01(vc_vxlte_monitor_components.mwPE, -, v_sip);
        
                        f_mtc_check_TP_MW_IBCF_INVITE_01(vc_vxlte_monitor_components.mw??, -, v_sip); // Event 11
                        f_mtc_check_TP_MW_IBCF_100Trying_01(vc_vxlte_monitor_components.mw??, -, v_sip);
        
                        f_mtc_check_TP_IC_IBCF_INVITE_01(vc_vxlte_monitor_components.ic, true); // INVITE Event 12 (NOTE: comment out if ISC simulated by Ic)
                        f_mtc_check_TP_IC_IBCF_INVITE_02(vc_vxlte_monitor_components.ic, true); // INVITE Event 12 (NOTE: comment out if ISC simulated by Ic)
                        f_mtc_check_TP_IC_IBCF_INVITE_03(vc_vxlte_monitor_components.ic); // INVITE ENUM Event 8
                        f_mtc_check_TP_IC_IBCF_183RESP_01(vc_vxlte_monitor_components.ic,-); // 183 Event 13

                        // 183 Session Progress
                        f_mtc_check_TP_MW_IBCF_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwPS, -, v_sip); // Event 14
                        f_mtc_check_TP_MW_ECSCF_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
                        
                        //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_IC_IBCF_180RINGING_01(vc_vxlte_monitor_components.ic, true); // 180 Ringing – Event 22
                        f_mtc_check_TP_MW_IBCF_180RINGING_01(vc_vxlte_monitor_components.mwPS, -, v_sip); // Event 23
                        f_mtc_check_TP_MW_ECSCF_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
                                                
                        f_mtc_userCheckRinging(v_psap);
                        f_mtc_userCheckPeerIsRinging(v_ueA);
                        f_mtc_userAnswerCall(v_psap);
                        
                        f_mtc_check_TP_IC_IBCF_2XXRESP_01(vc_vxlte_monitor_components.ic, true); // 200 OK – Event 26
                        f_mtc_check_TP_IC_IBCF_2XXRESP_02(vc_vxlte_monitor_components.ic, true); // 200 OK – Event 26
                        f_mtc_check_TP_IC_IBCF_2XXRESP_03(vc_vxlte_monitor_components.ic); // 200 OK – Event 26

                        f_mtc_check_TP_MW_IBCF_200OK_01(vc_vxlte_monitor_components.mwPS, -, v_sip); // Event 27
                        f_mtc_check_TP_MW_ECSCF_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_GM_PCSCF_ACK_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 30 
                        f_mtc_check_TP_MW_ECSCF_ACK_01(vc_vxlte_monitor_components.mwPS, -, v_sip); // Event 31
                        f_mtc_check_TP_MW_IBSCF_ACK_01(vc_vxlte_monitor_components.mwPS, -, v_sip); // Event 32                        
                        f_mtc_check_TP_IC_IBCF_ACK_01(vc_vxlte_monitor_components.ic); // ACK – Event 33

                        f_mtc_userCheckCallEstablished(v_ueA); // Event 34
                        f_mtc_userCheckCallEstablished(v_psap); // Event 34
                        
                        // Postamble
                        f_mtc_EndCall(v_ueA);
                        f_PO_user_home_deregistration(v_ueA);
                        f_PO_user_home_deregistration(v_psap);
                        //f_cf_int_call_down(v_config);
            
                        //unmap/disconnect component ports
                        f_cf_user_down ( v_psap );
                        f_cf_user_down ( v_ueA );
                        f_cf_VxLteMonitor_Down();
                    }else{
                        //log...
                        setverdict (inconc,"At least one required monitor interface SHALL be selected! Check PIXITs")
                    }
                    f_cf_adapter_down ( );
                } // End of TC TD_VoLTE_ECO_INT_INI_01_01
                
                group f_TD_VoLTE_ECO_INT_INI_01_01 {
                    
                    function f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_01_01() runs on ImsTestCoordinator {
                        log("If the test case fails, please check the preconditions");
                     } // End of function f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_01_01
                     
                } // End of f_TD_VoLTE_ECO_INT_INI_01_01
                 
                /**
                * @desc    To demonstrate the establishment of dedicated bearers at the originating EPC due to SIP emergency session establishment.
                *          On successful emergency call setup with UE-A attached to EPC A, the P-CSCF should derive from the SDP offer and answer, descriptions of the Service Data Flow
                * @see ETSI TS 103 795-2 Clause 5.3.1.2	UE calling PSAP with emergency registration
                * @remark This is option2: IBCF is connected to the PSAP, the interface IBCF and the PSAP is the Mm interface
                */
                testcase TD_VoLTE_ECO_INT_INI_01_02() runs on ImsTestCoordinator system IotSystemInterface {

                    var IotEquipmentUser v_ueA    := f_cf_create_IotEquipmentUser ( c_userUE_A );
                    var IotEquipmentUser v_psap   := f_cf_create_IotEquipmentUser ( c_psap );
        
                    f_setVxLteMonIterfacesAvailability();
                    //Check required monitor interfaces due to TD
                    if (f_checkVxLteRequiredMonitorInterface({PX_SIP_GMA_INTERFACENAME,
                                                              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
                                                              }))
                    {
                        var SipMessage v_sip;
                        
                        f_cf_createVxLteMonitor();
                
                        // map/connect component ports
                        f_cf_adapter_up ( );
                        f_cf_user_up ( v_ueA );
                        f_cf_user_up ( v_psap );
                        f_cf_VxLteMonitor_Up();
                
                        // Preamble
                        f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_01();
                        
                        // Test body
                        //f_mtc_userInitiateCall (v_ueA, v_userTelInfoB);
                        

                        f_mtc_check_TP_GM_PCSCF_INVITE_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 1
                        f_mtc_check_TP_GM_PCSCF_100Trying_01(vc_vxlte_monitor_components.gmA, -, v_sip);

                        //Rx/Gx exchange after INVITE (SDP) was received at P-CSCF
                        f_mtc_check_TP_RX_PCSCF_AAR_03(vc_vxlte_monitor_components.rx);// Event 2
                        f_mtc_check_TP_GX_PCRF_RAR_01(vc_vxlte_monitor_components.gx, true); // Event 3
                        f_mtc_check_TP_GX_PGW_RAA_02(vc_vxlte_monitor_components.gx);  // Event 4
                        f_mtc_check_TP_RX_PCRF_AAA_02(vc_vxlte_monitor_components.rx); // Event 5
                        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_ECSCF_INVITE_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 10
                        f_mtc_check_TP_MW_ECSCF_100Trying_01(vc_vxlte_monitor_components.mwPE, -, v_sip);

                        f_mtc_check_TP_MW_IBCF_INVITE_01(vc_vxlte_monitor_components.mw??, -, v_sip); // Event 11
                        f_mtc_check_TP_MW_IBCF_100Trying_01(vc_vxlte_monitor_components.mw??, -, v_sip);
                        
                        f_mtc_check_TP_MM_PSAP_INVITE_01(vc_vxlte_monitor_components.mwB_PSAP, true); // INVITE Event 12

                        // 183 Session Progress
                        f_mtc_check_TP_MM_PSAP_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwB_PSAP, -, v_sip); // Event 13
                        f_mtc_check_TP_MW_ECSCF_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 14
                        f_mtc_check_TP_MW_PCSCF_183SESSION_PROGRESS_01(vc_vxlte_monitor_components.mwPS, -, 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_PRACK_01(vc_vxlte_monitor_components.mwPS, -, v_sip); // Event 15
                        //f_mtc_check_TP_GM_PCSCF_PRACK_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 20
                        
                        //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_MM_PSAP_1XXRESP_01(vc_vxlte_monitor_components.ic); // 180 Ringing – Event 22                        
                        // FIXME f_mtc_check_TP_???_180RINGING_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 23
                        f_mtc_check_TP_MW_ECSCF_180RINGING_01(vc_vxlte_monitor_components.mwPS, -, 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_PRACK_01(vc_vxlte_monitor_components.mwPS, -, 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_check_TP_IC_IBCF_2XXRESP_01(vc_vxlte_monitor_components.ic, true); // 200 OK – Event 26
                        //f_mtc_check_TP_IC_IBCF_2XXRESP_02(vc_vxlte_monitor_components.ic, true); // 200 OK – Event 25
                        f_mtc_check_TP_MM_PSAP_2XXRESP_03(vc_vxlte_monitor_components.ic); // 200 OK – Event 26
                        // FIXME f_mtc_check_TP_???_2XXRESP_03(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 27
                        f_mtc_check_TP_MW_ECSCF_200OK_01(vc_vxlte_monitor_components.mwPS, -, 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_GM_PCSCF_ACK_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 30 
                        f_mtc_check_TP_MW_ECSCF_ACK_01(vc_vxlte_monitor_components.mwPS, -, v_sip); // Event 31
                        // FIXME f_mtc_check_TP_???_ACK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 32
                        f_mtc_check_TP_MM_PSAP_ACK_01(vc_vxlte_monitor_components.ic); // ACK – Event 33

                        f_mtc_userCheckCallEstablished(v_ueA); // Event 34
                        f_mtc_userCheckCallEstablished(v_psap); // Event 34
                        
                        // Postamble
                        f_mtc_EndCall(v_ueA);
                        f_PO_user_home_deregistration(v_ueA);
                        f_PO_user_home_deregistration(v_psap);
                        //f_cf_int_call_down(v_config);
            
                        //unmap/disconnect component ports
                        f_cf_user_down ( v_psap );
                        f_cf_user_down ( v_ueA );
                        f_cf_VxLteMonitor_Down();
                    }else{
                        //log...
                        setverdict (inconc,"At least one required monitor interface SHALL be selected! Check PIXITs")
                    }
                    f_cf_adapter_down ( );
                } // End of TC TD_VoLTE_ECO_INT_INI_01_02
                
                group f_TD_VoLTE_ECO_INT_INI_01_02 {
                    
                    function f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_01() runs on ImsTestCoordinator {
                        log("If the test case fails, please check the preconditions");
                        // TODO Add real code to check pre-conditions
                     } // End of function f_TD_VoLTE_ECO_INT_INI_01_02
                     
                } // End of f_TD_VoLTE_ECO_INT_INI_01
                 
            } // End of group EmergencySessionEstablishment

@@ -201,6 +450,17 @@ module AtsImsIot_Emergency {

            } // End of group EmergencySessionAbortOrReject

        } // End of group EmergencySessionEmergencyBearerOperations

        /**
         * @see ETSI TS 103 795-2 Clause 5.4	Emergency Deregistration
         */
        group EmergencyNetworkDetachment {

            group EmergencySessionDetachment {

            } // End of group EmergencySessionDetachment

        } // End of group EmergencyNetworkDetachment

    } // End of group Interoperability
+428 −0

File added.

Preview size limit exceeded, changes collapsed.

+433 −0

File added.

Preview size limit exceeded, changes collapsed.

+257 −0

File changed.

Preview size limit exceeded, changes collapsed.