Commit 635ed6c8 authored by rennoch's avatar rennoch
Browse files

definition and use of new convenience functions during preambles (registration, invite)

parent b529f334
Loading
Loading
Loading
Loading
+6 −58
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@
 *              for IMS-DIAMETER tests.
 */
module DiameterCxDx_Dx_TCFunctions {
    // LibCommon
    // LibIms
    import from LibIms_Interface {type ImsComponent;}
    import from LibIms_Templates all;
    import from LibIms_Steps all;
@@ -233,18 +233,8 @@ module DiameterCxDx_Dx_TCFunctions {
             */
            function f_TC_DX_CSCF_UA_01_UE(in CSeq p_cSeq_s)
            runs on ImsComponent {
                var template REGISTER_Request v_register;
                f_selfOrClientSyncAndVerdict( c_initDone, f_getVerdict() ); // sync - init done

                //Registration
                v_register :=
                    valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId,
                                                    p_cSeq_s, vc_from, vc_to,
                                                    vc_via_REG, vc_contact,
                                                    vc_authorization));
                // preamble with send REGISTER, await 401, send REGISTER, await
                // 200 OK and user profile setting
                f_IMS_preamble_withRegistration(p_cSeq_s, v_register);
                f_preamble_UE_registration(p_cSeq_s);

                f_selfOrClientSyncAndVerdict( c_prDone, f_getVerdict() ); // sync - preamble done
    
@@ -304,18 +294,8 @@ module DiameterCxDx_Dx_TCFunctions {
             */
            function f_TC_DX_CSCF_SA_01_UE(in CSeq p_cSeq_s)
            runs on ImsComponent {
                var template REGISTER_Request v_register;
                f_selfOrClientSyncAndVerdict( c_initDone, f_getVerdict() ); // sync - init done

                //Registration
                v_register :=
                    valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId,
                                                    p_cSeq_s, vc_from, vc_to,
                                                    vc_via_REG, vc_contact,
                                                    vc_authorization));
                // preamble with send REGISTER, await 401, send REGISTER, await
                // 200 OK and user profile setting
                f_IMS_preamble_withRegistration(p_cSeq_s, v_register);
                f_preamble_UE_registration(p_cSeq_s);
                
                f_selfOrClientSyncAndVerdict( c_prDone, f_getVerdict() ); // sync - preamble done
                
@@ -375,32 +355,10 @@ module DiameterCxDx_Dx_TCFunctions {
             */
            function f_TC_DX_CSCF_LI_01_UE(in CSeq p_cSeq_s)
            runs on ImsComponent {
                var template REGISTER_Request v_register;
                f_selfOrClientSyncAndVerdict( c_initDone, f_getVerdict() ); // sync - init done

                //Registration
                v_register :=
                    valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId,
                                                    p_cSeq_s, vc_from, vc_to,
                                                    vc_via_REG, vc_contact,
                                                    vc_authorization));
                // preamble with send REGISTER, await 401, send REGISTER, await
                // 200 OK and user profile setting
                f_IMS_preamble_withRegistration(p_cSeq_s, v_register);
                
                // Send Invite  
                LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, vc_requestUri);
                f_SendINVITE(m_INVITE_Request_UE_Diameter(vc_requestUri, vc_callId,
                                                 p_cSeq_s, vc_from, vc_to,
                                                 vc_via, vc_contact, omit,
                                                 vc_route_REG, omit,
                                                 m_MBody_SDP(vc_sdp_local)));
                // await response - 200
                f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId,vc_cSeq));
                // send ACK
                LibSip_Steps.f_setHeadersACK();
                f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq,
                                             vc_from, vc_to, vc_via));
                //Registration and session initiation
                f_preamble_UE_regInv(p_cSeq_s);
    
                f_selfOrClientSyncAndVerdict( c_prDone, f_getVerdict() ); // sync - preamble done
                
@@ -464,18 +422,8 @@ module DiameterCxDx_Dx_TCFunctions {
             */
            function f_TC_DX_CSCF_MA_01_UE(in CSeq p_cSeq_s)
            runs on ImsComponent {
                var template REGISTER_Request v_register;
                f_selfOrClientSyncAndVerdict( c_initDone, f_getVerdict() ); // sync - init done

                //Registration
                v_register :=
                    valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId,
                                                    p_cSeq_s, vc_from, vc_to,
                                                    vc_via_REG, vc_contact,
                                                    vc_authorization));
                // preamble with send REGISTER, await 401, send REGISTER, await
                // 200 OK and user profile setting
                f_IMS_preamble_withRegistration(p_cSeq_s, v_register);
                f_preamble_UE_registration(p_cSeq_s);
    
                f_selfOrClientSyncAndVerdict( c_prDone, f_getVerdict() ); // sync - preamble done
                
+57 −0
Original line number Diff line number Diff line
@@ -26,6 +26,18 @@
    import from DiameterCxDx_TestConfiguration all;
    import from DiameterCxDx_TestSystem all;
    import from LibDiameter_Types_CxDx_AVPs all;
    import from DiameterCxDx_SIP_Templates all;

    // LibIms
    import from LibIms_Interface {type ImsComponent;}
    import from LibIms_Templates all;
    import from LibIms_Steps all;
    import from LibIms_SIPTypesAndValues all;
    
    // LibSip
    import from LibSip_SIPTypesAndValues all;
    import from LibSip_Templates all;
    import from LibSip_Steps {function f_RemoveRegistration, f_SendACK, f_SendINVITE, f_awaitingResponse};

    group GlobalSteps {

@@ -258,6 +270,51 @@
            f_preambleDiameterBaseServer(c_applId3GPPCxDx);
        }
        
        /**
         * 
         * @desc UE registration at Gm
         */
        function f_preamble_UE_registration(in CSeq p_cSeq_s) runs on ImsComponent {
            var template REGISTER_Request v_register;
            //UE Registration
            vc_interfaceprofile.SUTPort := PX_DIAMETER_CX_SUT_ICSCF_PORT;
            vc_interfaceprofile.SUTIpaddr := PX_DIAMETER_CX_SUT_ICSCF_IPADDR;   
            vc_interfaceprofile.SUTHomeDomain := PX_OriginRealm;  
            v_register :=
                valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId,
                                                p_cSeq_s, vc_from, vc_to,
                                                vc_via_REG, vc_contact,
                                                vc_authorization));
            // preamble with send REGISTER, await 401, send REGISTER, await
            // 200 OK and user profile setting
            f_IMS_preamble_withRegistration(p_cSeq_s, v_register);
        }
        
        /**
         * 
         * @desc UE registration and initiates session at Gm
         */
        function f_preamble_UE_regInv(in CSeq p_cSeq_s) runs on ImsComponent {
        //Registration
        f_preamble_UE_registration(p_cSeq_s);

        // Send Invite  
        vc_userprofile.registrarDomain := PX_OriginRealm;
        vc_userprofile.privUsername := PX_UserName;
        LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, vc_requestUri);
        f_SendINVITE(m_INVITE_Request_UE_Diameter(vc_requestUri, vc_callId,
                                         p_cSeq_s, vc_from, vc_to,
                                         vc_via, vc_contact, omit,
                                         vc_route_REG, omit,
                                         m_MBody_SDP(vc_sdp_local)));
        // await response - 200
        f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId,vc_cSeq));
        // send ACK
        LibSip_Steps.f_setHeadersACK();
        f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq,
                                     vc_from, vc_to, vc_via));
    }
    
    }// end group Preambles

    group Postambles {