Commit 67f8c922 authored by Yann Garcia's avatar Yann Garcia
Browse files

Finalyze test cases TD_VoLTE_ECO_INT_REL_01_01/02

parent d44d6763
Loading
Loading
Loading
Loading
+177 −7
Original line number Original line Diff line number Diff line
@@ -285,7 +285,6 @@ module AtsImsIot_Emergency {
                    var IotEquipmentUser v_ueA  := f_cf_create_IotEquipmentUser ( c_userUE_A_emergency );
                    var IotEquipmentUser v_ueA  := f_cf_create_IotEquipmentUser ( c_userUE_A_emergency );
                    var IotEquipmentUser v_psap := f_cf_create_IotEquipmentUser ( c_psap );
                    var IotEquipmentUser v_psap := f_cf_create_IotEquipmentUser ( c_psap );
                    var ImsUserInfo v_userInfoA := f_getImUser ( PX_EUT_A_EMERGENCY );
                    var ImsUserInfo v_userInfoA := f_getImUser ( PX_EUT_A_EMERGENCY );
                    var ImsUserInfo v_infoPsap  := f_getImUser ( PX_PSAP ); 
        
        
                    f_setVxLteMonIterfacesAvailability();
                    f_setVxLteMonIterfacesAvailability();
                    //Check required monitor interfaces due to TD
                    //Check required monitor interfaces due to TD
@@ -309,7 +308,7 @@ module AtsImsIot_Emergency {
                
                
                        // Preamble
                        // Preamble
                        f_mtc_userRegistration(v_ueA, v_userInfoA);
                        f_mtc_userRegistration(v_ueA, v_userInfoA);
                        f_mtc_userRegistration(v_psap, v_infoPsap); 
                        // PSAP is not known from the IMS A
                        f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_01_01();
                        f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_01_01();
                        
                        
                        // Test body
                        // Test body
@@ -434,7 +433,11 @@ module AtsImsIot_Emergency {
                
                
                        // Preamble
                        // Preamble
                        f_mtc_userRegistration(v_ueA, v_userInfoA); 
                        f_mtc_userRegistration(v_ueA, v_userInfoA); 
                        if (PX_PSAP_REGISTERED) {
                            f_mtc_userRegistration(v_psap, v_infoPsap); 
                            f_mtc_userRegistration(v_psap, v_infoPsap); 
                        } else {
                            // TODO Check OPTIONS from PSAP to E-CSCF
                        }
                        f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_01_02();
                        f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_01_02();
                        
                        
                        // Test body
                        // Test body
@@ -542,7 +545,6 @@ module AtsImsIot_Emergency {
                    var IotEquipmentUser v_ueA  := f_cf_create_IotEquipmentUser ( c_userUE_A_emergency );
                    var IotEquipmentUser v_ueA  := f_cf_create_IotEquipmentUser ( c_userUE_A_emergency );
                    var IotEquipmentUser v_psap := f_cf_create_IotEquipmentUser ( c_psap );
                    var IotEquipmentUser v_psap := f_cf_create_IotEquipmentUser ( c_psap );
                    var ImsUserInfo v_userInfoA := f_getImUser ( PX_EUT_A_EMERGENCY );
                    var ImsUserInfo v_userInfoA := f_getImUser ( PX_EUT_A_EMERGENCY );
                    var ImsUserInfo v_infoPsap  := f_getImUser ( PX_PSAP ); 
        
        
                    f_setVxLteMonIterfacesAvailability();
                    f_setVxLteMonIterfacesAvailability();
                    //Check required monitor interfaces due to TD
                    //Check required monitor interfaces due to TD
@@ -551,7 +553,7 @@ module AtsImsIot_Emergency {
                                                              PX_DIAMETER_RX_INTERFACENAME,
                                                              PX_DIAMETER_RX_INTERFACENAME,
                                                              PX_SIP_MW_PE_INTERFACENAME,
                                                              PX_SIP_MW_PE_INTERFACENAME,
                                                              PX_SIP_EB_INTERFACENAME, // E-CSCF -> IBCF
                                                              PX_SIP_EB_INTERFACENAME, // E-CSCF -> IBCF
                                                              PX_SIP_MM_PSAP_INTERFACENAME // IBCF -> PSAP
                                                              PX_SIP_PSTN_INTERFACENAME // IBCF -> PSTN -> PSAP
                                                              }))
                                                              }))
                    {
                    {
                        var SipMessage v_sip;
                        var SipMessage v_sip;
@@ -566,7 +568,7 @@ module AtsImsIot_Emergency {
                
                
                        // Preamble
                        // Preamble
                        f_mtc_userRegistration(v_ueA, v_userInfoA); 
                        f_mtc_userRegistration(v_ueA, v_userInfoA); 
                        f_mtc_userRegistration(v_psap, v_infoPsap); 
                        // PSAP is not known from the IMS A
                        f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_01_03();
                        f_mtc_check_precond_TD_VoLTE_ECO_INT_INI_01_03();
                        
                        
                        // Test body
                        // Test body
@@ -1010,6 +1012,97 @@ module AtsImsIot_Emergency {


            group EmergencySessionRelease {
            group EmergencySessionRelease {


                /**
                 * @desc    To perform originating UE session release and the tear down of related dedicated bearers.
                 *          On call release, the P-CSCF A should trigger the removal of all relevant previously created bearers
                 * @see ETSI TS 103 795-2 Clause 5.3.3.1	UE Initiated Emergency Session Release
                 * @remark This is option1: IBCF is connected to the PSAP, the interface IBCF and the PSAP is the Mm interface
                 */
                testcase TD_VoLTE_ECO_INT_REL_01_01() runs on ImsTestCoordinator system IotSystemInterface {

                    var IotEquipmentUser v_ueA  := f_cf_create_IotEquipmentUser ( c_userUE_A_emergency );
                    var IotEquipmentUser v_psap := f_cf_create_IotEquipmentUser ( c_psap );
                    var ImsUserInfo v_userInfoA := f_getImUser ( PX_EUT_A_EMERGENCY );
                    var ImsUserInfo v_infoPsap  := f_getImUser ( PX_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_userRegistration(v_ueA, v_userInfoA); 
                        f_mtc_userRegistration(v_psap, v_infoPsap); 
                        f_mtc_userInitiateCall (v_ueA, v_infoPsap);
                        f_mtc_userCheckRinging(v_psap);
                        f_mtc_userCheckPeerIsRinging(v_ueA);
                        f_mtc_userAnswerCall(v_psap);
                        f_mtc_userCheckCallEstablished(v_ueA); // Event 1
                        f_mtc_userCheckCallEstablished(v_psap); // Event 1
                        f_mtc_check_precond_TD_VoLTE_ECO_INT_REL_01_01();
                        
                        // Test body
                        //f_mtc_userInitiateCall (v_ueA, v_userTelInfoB);

                        f_mtc_check_TP_GM_PCSCF_BYE_01(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 2
                        f_mtc_check_TP_MW_ECSCF_BYE_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 3
                        f_mtc_check_TP_MW_IBCF_BYE_01(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 3
                        f_mtc_check_TP_MM_PSAP_BYE_01(vc_vxlte_monitor_components.mwB_PSAP); // Event 6

                        //Rx/Gx exchange after BYE was received at P-CSCF
                        f_mtc_check_TP_RX_PCSCF_STR_01(vc_vxlte_monitor_components.rx); // (STR – Event 10
                        f_mtc_check_TP_GX_PCRF_RAR_02(vc_vxlte_monitor_components.gx, true); // (RAR – Event 11)
                        f_mtc_check_TP_GX_PGW_RAA_03(vc_vxlte_monitor_components.gx); // (RAA – Event 12)
                        f_mtc_check_TP_RX_PCRF_STA_01(vc_vxlte_monitor_components.rx); // (STA – Event 13)                        
                        
                        
                        f_mtc_check_TP_MW_IBCF_200OK_01(vc_vxlte_monitor_components.mwBE, -, v_sip); // Event 15
                        f_mtc_check_TP_MW_ECSCF_200OK_01(vc_vxlte_monitor_components.mwPE, -, v_sip); // Event 20
                        f_mtc_check_TP_GM_PCSCF_200OK_02(vc_vxlte_monitor_components.gmA, -, v_sip); // Event 21
                        
                        f_mtc_userCheckCallTerminated(v_ueA); // Event 22
                        f_mtc_userCheckCallCancelled(v_ueB); // Event 23
                        
                        // Postamble
                        f_PO_user_home_deregistration(v_ueA);
                        f_PO_user_home_deregistration(v_ueB);
            
                        //unmap/disconnect component ports
                        f_cf_user_down ( v_ueB );
                        f_cf_user_down ( v_ueA );
                        f_cf_VxLteMonitor_Down();
                        f_cf_adapter_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_REL_01_01
                
                group f_TD_VoLTE_ECO_INT_REL_01_01 {
                    
                    function f_mtc_check_precond_TD_VoLTE_ECO_INT_REL_01_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_mtc_check_precond_TD_VoLTE_ECO_INT_REL_01_01
                     
                } // End of group f_TD_VoLTE_ECO_INT_REL_01_01

                /**
                /**
                 * @desc    To perform originating UE session release and the tear down of related dedicated bearers.
                 * @desc    To perform originating UE session release and the tear down of related dedicated bearers.
                 *          On call release, the P-CSCF A should trigger the removal of all relevant previously created bearers
                 *          On call release, the P-CSCF A should trigger the removal of all relevant previously created bearers
@@ -1100,6 +1193,83 @@ module AtsImsIot_Emergency {
                     
                     
                } // End of f_TD_VoLTE_ECO_INT_REL_01_02
                } // End of f_TD_VoLTE_ECO_INT_REL_01_02


               /**
                 * @desc    To perform originating UE session release and the tear down of related dedicated bearers.
                 *          On call release, the P-CSCF A should trigger the removal of all relevant previously created bearers
                 * @see ETSI TS 103 795-2 Clause 5.3.3.1	UE Initiated Emergency Session Release
                 * @remark This is option3: IBCF is connected to the PSTN network
                 */
                testcase TD_VoLTE_ECO_INT_REL_01_03() runs on ImsTestCoordinator system IotSystemInterface {

                    var IotEquipmentUser v_ueA  := f_cf_create_IotEquipmentUser ( c_userUE_A_emergency );
                    var IotEquipmentUser v_psap := f_cf_create_IotEquipmentUser ( c_psap );
                    var ImsUserInfo v_userInfoA := f_getImUser ( PX_EUT_A_EMERGENCY );
                    var ImsUserInfo v_infoPsap  := f_getImUser ( PX_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_PSTN_INTERFACENAME // IBCF -> PSTN -> 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_infoPsap); 
                        f_mtc_userInitiateCall (v_ueA, v_infoPsap);
                        f_mtc_userCheckRinging(v_psap);
                        f_mtc_userCheckPeerIsRinging(v_ueA);
                        f_mtc_userAnswerCall(v_psap);
                        f_mtc_userCheckCallEstablished(v_ueA); // Event 1
                        f_mtc_userCheckCallEstablished(v_psap); // Event 1
                        f_mtc_check_precond_TD_VoLTE_ECO_INT_REL_01_03();
                        
                        // Test body
                        //f_mtc_userInitiateCall (v_ueA, v_userTelInfoB);

                        // TODO
                        
                        f_mtc_userCheckCallTerminated(v_ueA); // Event 22
                        f_mtc_userCheckCallCancelled(v_ueB); // Event 23
                        
                        // Postamble
                        f_PO_user_home_deregistration(v_ueA);
                        f_PO_user_home_deregistration(v_ueB);
            
                        //unmap/disconnect component ports
                        f_cf_user_down ( v_ueB );
                        f_cf_user_down ( v_ueA );
                        f_cf_VxLteMonitor_Down();
                        f_cf_adapter_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_REL_01_03
                
                group f_TD_VoLTE_ECO_INT_REL_01_03 {
                    
                    function f_mtc_check_precond_TD_VoLTE_ECO_INT_REL_01_03() 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_mtc_check_precond_TD_VoLTE_ECO_INT_REL_01_03
                     
                } // End of group f_TD_VoLTE_ECO_INT_REL_01_03

            } // End of group EmergencySessionRelease
            } // End of group EmergencySessionRelease


            group EmergencySessionAbortOrReject {
            group EmergencySessionAbortOrReject {
+5 −0
Original line number Original line Diff line number Diff line
@@ -23,6 +23,11 @@ group SUT_CONF {
		 */
		 */
		modulepar charstring PX_IMS_A_ICID := "PX_IMS_A_ICID";
		modulepar charstring PX_IMS_A_ICID := "PX_IMS_A_ICID";


		/**
		 * @desc Set to true of PSAP shall be registered to the IMS 
		 */
		modulepar boolean PX_PSAP_REGISTERED := true;
		
} // end group SUT_CONF
} // end group SUT_CONF


} // end group SUT
} // end group SUT
+172 −32

File changed.

Preview size limit exceeded, changes collapsed.

+120 −92
Original line number Original line Diff line number Diff line
@@ -131,4 +131,32 @@ module AtsImsIot_Templates_MM {
        }
        }
    } // End of template mw_TP_MM_PSAP_ACK_01
    } // End of template mw_TP_MM_PSAP_ACK_01
    
    
    template (present) BYE_Request mw_TP_MM_PSAP_BYE_01( // TODO To be enforced
                                                            template (present) CallId p_callId := ?,
                                                            template (present) CSeq p_cSeq := ?,
                                                            template (present) SipUrl p_bye_uri := ?,
                                                            template (present) From p_from := ?,
                                                            template (present) To p_to := ?
                                                            ) modifies mw_BYE_Request_Base := {
        requestLine := {
            method := BYE_E,
            requestUri := p_bye_uri, // @TODO
            sipVersion := c_sipNameVersion
        },
        msgHeader := {
            callId := p_callId,
            fromField := p_from,
            toField := p_to,
            route := {
                fieldName := ROUTE_E,
                routeBody := {
                    *, 
                    ?,
                    *
                }
            }
        }
    } // End of template mw_TP_MW_PCSCF_BYE_01
        

} // End of module AtsImsIot_Templates_MM
} // End of module AtsImsIot_Templates_MM