Commit 08821079 authored by YannGarcia's avatar YannGarcia
Browse files

Finalyze REGISTER implementation

parent 3d513f79
Loading
Loading
Loading
Loading
+17 −10
Original line number Diff line number Diff line
@@ -4,9 +4,10 @@
 *    @desc       This module provides the PIXIT used for the SIP-IMS tests.
 */

module AtsSccas_PIXITS
{    
module AtsSccas_PIXITS {    

    //LibSip
    import from LibSip_SIPTypesAndValues all;

    // SUT specific implementation variants

@@ -16,7 +17,13 @@ modulepar {
        */
        boolean PX_SCCAS__ := true;

    charstring PX_SIP_URI := "";
        charstring PX_ACTF_MGMT_URI := "";

        charstring PX_ACTF_URI := "";

        charstring PX_ICSI_URI := "";

        SipUrl PX_SCCAS_URI := {scheme := "c_sipScheme", components := {sip := {userInfo := omit, hostPort := {host := "",portField := c_defaultSipPort}}}};
        
    }

+159 −12
Original line number Diff line number Diff line
@@ -124,7 +124,7 @@ module AtsSccas_TCFunctions {
                                                omit, 
                                                PX_IMS_SUT_SCSCF_IPADDR, // TODO To be refined during validation
                                                PX_IMS_SUT_SCSCF_PORT, // TODO To be refined during validation
                                                "0"
                                                "0" // Expired
                                ));
                tc_ack.start;
                alt {
@@ -245,7 +245,7 @@ module AtsSccas_TCFunctions {
                                                                        m_fcValue(
                                                                                  "g-3gpp-atcf-mgmt-uri-in-path",
                                                                                  {
                                                                                    {"sip-uri", { tokenOrHost := PX_SIP_URI }}
                                                                                    {"sip-uri", { tokenOrHost := PX_ACTF_MGMT_URI }}
                                                                                  })
                                                                    }),
                                                m_contentType(c_sdpApplication), // TODO To be refined during validation
@@ -253,7 +253,18 @@ module AtsSccas_TCFunctions {
                                ));
                tc_ack.start;
                alt {
                    [] SIPP.receive(mw_sccas_Response_2xxonREGISTER(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) {
                    [] SIPP.receive(mw_sccas_Response_2xxonREGISTER(
                                                                    vc_callId, 
                                                                    vc_cSeq, 
                                                                    vc_from, 
                                                                    vc_to, 
                                                                    vc_via_REG, 
                                                                    vc_contact, 
                                                                    mw_pChargingVector(-, { tokenOrHost := "orig-ioi" }), // TODO To be refined during validation
                                                                    mw_PAssertedID(
                                                                                   mw_PAssertedIDValue(PX_SCCAS_URI)
                                                                                   )
                                                                    )) {
                        tc_ack.stop;
                        log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync
@@ -283,7 +294,9 @@ module AtsSccas_TCFunctions {
                LibIms_Steps.f_setHeadersMESSAGE(v_cSeq_s, vc_from.addressField.addrSpecUnion, vc_to.addressField.addrSpecUnion);
                f_awaitingMESSAGE(
                                  mw_sccas_MESSAGE_Request(
                                                           -, -, -, -,  // TODO To be refined during validation
                                                           -, -, 
                                                           mw_pChargingVector(-, { tokenOrHost := "orig-ioi" }), // TODO To be refined during validation
                                                           -,
                                                           m_contentType("application/vnd.3gpp.SRVCC-info+xml"),  // TODO To be refined during validation
                                                           ? // TODO To be refined during validation
                                  )
@@ -307,6 +320,7 @@ module AtsSccas_TCFunctions {
            runs on ImsComponent {
                // Local variables
                var CSeq v_cSeq_s := p_cSeq_s;
                var Contact v_contact;

                // Preambule
                f_init_userprofile(c_userProfile_UE1atSUThome);
@@ -317,6 +331,17 @@ module AtsSccas_TCFunctions {

                // Registration
                f_setHeaders_REGISTER(v_cSeq_s);
                v_contact := valueof(vc_contact);
                v_contact.contactBody.contactAddresses[0].contactParams := { // TODO To be refined during validation
                                                                             {
                                                                               "g.3gpp.atcf-mgmt-uri",
                                                                               {tokenOrHost := PX_ACTF_MGMT_URI}
                                                                             },
                                                                             {
                                                                               "g.3gpp.path",
                                                                               {tokenOrHost := PX_ACTF_URI}
                                                                             }
                                                                            };
                f_SendREGISTER(
                               m_sccas_register(
                                                vc_requestUri, 
@@ -325,7 +350,7 @@ module AtsSccas_TCFunctions {
                                                vc_from, 
                                                vc_to, 
                                                vc_via_REG, 
                                                vc_contact, 
                                                v_contact, 
                                                m_add_Authorization_digest(
                                                                           vc_authorization, 
                                                                           {c_Integrity_protected_no}
@@ -333,14 +358,14 @@ module AtsSccas_TCFunctions {
                                                PX_IMS_SUT_SCSCF_IPADDR, // TODO To be refined during validation
                                                PX_IMS_SUT_SCSCF_PORT, // TODO To be refined during validation
                                                "600000",
                                                m_sccas_featureCaps( // TS 124 237 Clause C.6 Definition of feature-capability indicator g.3gpp.atcfmgmt-uri
                                                -/*m_sccas_featureCaps( // TS 124 237 Clause C.6 Definition of feature-capability indicator g.3gpp.atcfmgmt-uri
                                                                    {
                                                                        m_fcValue(
                                                                                  "g-3gpp-atcf-mgmt-uri-in-path",
                                                                                  "g-3gpp-atcf-mgmt-uri\",
                                                                                  {
                                                                                    {"sip-uri", { tokenOrHost := PX_SIP_URI }}
                                                                                    {"sip-uri", { tokenOrHost := PX_ACTF_MGMT_URI }}
                                                                                  })
                                                                    }),
                                                                    })*/, // TODO To be refined during validation
                                                m_contentType(c_sdpApplication), // TODO To be refined during validation
                                                m_MBody_SDP(vc_sdp_local) // TODO To be refined during validation
                                ));
@@ -378,6 +403,128 @@ module AtsSccas_TCFunctions {

        } // End of group TP_6_3_4_Trigger_SRVCC_To_MSC

        group TP_6_3_5_Providing_SRVCC_To_MSC {

            /**
             *  @desc    Verify that the SCCAS successfully provide CS to PS SRVCC information
             *  @param   p_cSeq_s Random CSeq REGISTER number
             */
            function f_TC_ISC_SCCAS_RSC_REG_06_ueims(in CSeq p_cSeq_s)
            runs on ImsComponent {
                // Local variables
                var CSeq v_cSeq_s := p_cSeq_s;
                var Contact v_contact;

                // Preambule
                f_init_userprofile(c_userProfile_UE1atSUThome);
                f_initSipUrl(c_serviceProfile_EMERGENCY);
                f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1);
                action("Please register UE")
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

                // Registration
                f_setHeaders_REGISTER(v_cSeq_s);
                v_contact := valueof(vc_contact);
                v_contact.contactBody.contactAddresses[0].contactParams := { // TODO To be refined during validation
                                                                             {
                                                                               "g.3gpp.icsi-ref",
                                                                               {tokenOrHost := PX_ICSI_URI}
                                                                             }
                                                                            };
                f_SendREGISTER(
                               m_sccas_register(
                                                vc_requestUri, 
                                                vc_callId, 
                                                vc_cSeq, 
                                                vc_from, 
                                                vc_to, 
                                                vc_via_REG, 
                                                v_contact, 
                                                m_add_Authorization_digest(
                                                                            vc_authorization, 
                                                                            {c_Integrity_protected_no}
                                                                            ), 
                                                PX_IMS_SUT_SCSCF_IPADDR, // TODO To be refined during validation
                                                PX_IMS_SUT_SCSCF_PORT, // TODO To be refined during validation
                                                "600000",
                                                -/*m_sccas_featureCaps( // TS 124 237 Clause C.6 Definition of feature-capability indicator g.3gpp.atcfmgmt-uri
                                                                    {
                                                                        m_fcValue(
                                                                                  "g-3gpp-atcf-mgmt-uri-in-path",
                                                                                  {
                                                                                    {"sip-uri", { tokenOrHost := PX_ACTF_MGMT_URI }}
                                                                                  })
                                                                    })*/, // TODO To be refined during validation
                                                m_contentType(c_sdpApplication), // TODO To be refined during validation
                                                m_MBody_SDP(vc_sdp_local) // TODO To be refined during validation
                                ));
                tc_ack.start;
                alt {
                    [] SIPP.receive(mw_sccas_Response_2xxonREGISTER(
                                                                    vc_callId, 
                                                                    vc_cSeq, 
                                                                    vc_from, 
                                                                    vc_to, 
                                                                    vc_via_REG, 
                                                                    vc_contact, 
                                                                    mw_pChargingVector(-, { tokenOrHost := "orig-ioi" }), // TODO To be refined during validation
                                                                    mw_PAssertedID(
                                                                                   mw_PAssertedIDValue(PX_SCCAS_URI)
                                                                                   ), // TODO To be refined during validation
                                                                    mw_acceptContact(
                                                                                     { // TODO To be refined during validation
                                                                                        {
                                                                                        "g.3gpp.path-media",
                                                                                        {tokenOrHost := PX_ICSI_URI}
                                                                                        }
                                                                                     }
                                                                                     )
                                                                    )) {
                        tc_ack.stop;
                        log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync
                    }
                    [] tc_ack.timeout {
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync 
                    }
                }

                // TODO Deregistration?
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

            } // End of function f_TC_ISC_SCCAS_RSC_REG_06_ueims

            function f_TC_ISC_SCCAS_RSC_REG_06_msc(in CSeq p_cSeq_s)
            runs on ImsComponent {
                // Local variables
                var CSeq v_cSeq_s := p_cSeq_s;

                // Preambule
                f_init_userprofile(c_userProfile_UE1atSUThome);
                f_initSipUrl(c_serviceProfile_EMERGENCY);
                f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1);
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

                // Message
                LibIms_Steps.f_setHeadersMESSAGE(v_cSeq_s, vc_from.addressField.addrSpecUnion, vc_to.addressField.addrSpecUnion);
                f_awaitingMESSAGE(
                                  mw_sccas_MESSAGE_Request(
                                                           -, -, 
                                                           mw_pChargingVector(-, { tokenOrHost := "orig-ioi" }), // TODO To be refined during validation
                                                           -,
                                                           m_contentType("application/vnd.3gpp.SRVCC-info+xml"),  // TODO To be refined during validation
                                                           ? // TODO To be refined during validation
                                  )
                                  );
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync

                // Answer to the MESSAGE
                f_send200OK();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
            } // end function f_TC_ISC_SCCAS_RSC_REG_06_msc

        } // End of group TP_6_3_5_Providing_SRVCC_To_MSC

    } // End of group Group_6_3
     
    group Group_6A_4 {
+20 −3
Original line number Diff line number Diff line
@@ -62,8 +62,22 @@ module AtsSccas_Templates
            fcParams := p_fcParams
        } // End of template mw_fcValue

        template(value) Contact m_sccas_contact(
                                                in template (value) SipUrl p_sipUrl,
                                                in template (value) SemicolonParam_List p_contactParams
                                                ) modifies m_Contact := {
            contactBody := {
                contactAddresses := {
                    {
                        contactParams := p_contactParams
                    }
                }
            }
        } // End of template m_sccas_contact

        template (present) LibSip_SIPTypesAndValues.Contact mw_sccas_contact(
                                                                             template (present) ContactBody p_contact_body := ?
                                                                             template (present) ContactBody p_contact_body := ?,
                                                                             template SemicolonParam_List p_contactParams := *
                                                                             ) := {
            contactBody := p_contact_body
        } // End of template mw_sccas_contact
@@ -163,11 +177,14 @@ module AtsSccas_Templates
                                                                        template (present) To p_to := ?,
                                                                        template (present) Via p_via := ?,
                                                                        template (present) Contact p_contact := ?,
                                                                        template (present) PChargingVector p_pChargingVector := ?
                                                                        template (present) PChargingVector p_pChargingVector := ?,
                                                                        template (present) PAssertedID p_pAssertedID := ?,
                                                                        template AcceptContact p_acceptContact := *
                                                                        ) modifies mw_Response_2xx_Base := {
                    msgHeader := {
                        pChargingVector := p_pChargingVector,
                        contact         := p_contact
                        contact         := p_contact,
                        acceptContact   := p_acceptContact
                    }
                } // End of template mw_sccas_Response_2xxonREGISTER

+6 −5
Original line number Diff line number Diff line
@@ -25,17 +25,17 @@ module AtsSccas_TestSystem
        type charstring CM_Message;
        } // end group CMTypes

     group Signatures {
    /*group Signatures {
        signature s_SIP_conversation (in charstring text, out boolean answer);
        signature s_SIP_ringing (in charstring text, out boolean answer);
        } // end group Signatures
    }*/ // end group Signatures

    group SystemConfiguration {
    group Ports {

        type port operatorPort_SIP procedure {
        /*type port operatorPort_SIP procedure {
            inout s_SIP_conversation; 
            inout s_SIP_ringing};
            inout s_SIP_ringing};*/

        type port Coordination message { 
            inout CM_Message} with {extension "internal"};
@@ -48,7 +48,8 @@ module AtsSccas_TestSystem
        */
        type component TestAdapter {
            port SipPort UEIMS, SCCAS, ATCF, MSC, UE1;
            port operatorPort_SIP opPortS;
            //port operatorPort_SIP opPortS;
            port OperatorPort opPortS;
        }
    } // end Group TestSystemInterfaces

+38 −11
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ module AtsSccas_Testcases
        group TP_6_3_1_General {

            /*
            * @desc TC_IMST2_GM_GEN_01
            * @desc Verify that the SCCAS successfully obtain/processes 3pty registration information
            * @param p_cSeq_s Transaction Id
            */
            testcase TC_ISC_SCCAS_RSC_REG_01(inout CSeq p_cSeq_s) 
@@ -44,10 +44,10 @@ module AtsSccas_Testcases

                f_cf_1IscDown(v_imsComponent_ueims);

            } // end TC_ISC_SCCAS_RSC_REG_01
            } // End of TC_ISC_SCCAS_RSC_REG_01

            /*
            * @desc TC_IMST2_GM_GEN_02
            * @desc Verify that the SCCAS successfully obtain/processes de-registration information (Expires=0)
            * @param p_cSeq_s Transaction Id
            */
            testcase TC_ISC_SCCAS_RSC_REG_02(inout CSeq p_cSeq_s) 
@@ -65,14 +65,14 @@ module AtsSccas_Testcases

                f_cf_1IscDown(v_imsComponent_ueims);

            } // end TC_ISC_SCCAS_RSC_REG_02
            } // End of TC_ISC_SCCAS_RSC_REG_02

          } // End of group TP_6_3_1_General

        group TP_6_3_2_Triggers_To_ATCF {

            /*
            * @desc TC_IMST2_GM_GEN_03
            * @desc Verify that the SCCAS successfully obtain/processes SRVCC information
            * @param p_cSeq_s Transaction Id
            */
            testcase TC_ISC_SCCAS_RSC_REG_03(inout CSeq p_cSeq_s) 
@@ -90,14 +90,14 @@ module AtsSccas_Testcases

                f_cf_1IscDown(v_imsComponent_ueims);

            } // end TC_ISC_SCCAS_RSC_REG_03
            } // End of TC_ISC_SCCAS_RSC_REG_03

          } // End of group TP_6_3_2_Triggers_To_ATCF

        group TP_6_3_3_SRVCC_Information_To_ATCF {

            /*
            * @desc TC_IMST2_GM_GEN_04
            * @desc Verify that the SCCAS successfully sends MESSAGE providing PS to CS SRVCC information
            * @param p_cSeq_s Transaction Id
            */
            testcase TC_ISC_SCCAS_RSC_REG_04(inout CSeq p_cSeq_s) 
@@ -117,14 +117,14 @@ module AtsSccas_Testcases

                f_cf_1Isc1AtcfDown(v_imsComponent_ueims, v_imsComponent_atcf);

            } // end TC_ISC_SCCAS_RSC_REG_04
            } // End of TC_ISC_SCCAS_RSC_REG_04

          } // End of group TP_6_3_3_SRVCC_Information_To_ATCF

        group TP_6_3_4_Trigger_SRVCC_To_MSC {

            /*
            * @desc TC_IMST2_GM_GEN_05
            * @desc Verify that the SCCAS successfully get CS to PS SRVCC information
            * @param p_cSeq_s Transaction Id
            */
            testcase TC_ISC_SCCAS_RSC_REG_05(inout CSeq p_cSeq_s) 
@@ -137,17 +137,44 @@ module AtsSccas_Testcases

                //Start
                f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_RSC_REG_05_ueims(p_cSeq_s));
                                     v_imsComponent_msc.start(f_TC_ISC_SCCAS_RSC_REG_05_msc(p_cSeq_s));
                f_IncCSeq(p_cSeq_s); v_imsComponent_msc.start(f_TC_ISC_SCCAS_RSC_REG_05_msc(p_cSeq_s)); // TODO Not considered in TP?

                // synchronize both PTCs on 3 sychronization points
                f_serverSync2Clients({c_prDone, c_tbDone, c_poDone});

                f_cf_1Isc1AtcfDown(v_imsComponent_ueims, v_imsComponent_msc);

            } // end TC_ISC_SCCAS_RSC_REG_05
            } // End of TC_ISC_SCCAS_RSC_REG_05

          } // End of group TP_6_3_4_Trigger_SRVCC_To_MSC

        group TP_6_3_5_Providing_SRVCC_To_MSC {

            /*
            * @desc Verify that the SCCAS successfully provide CS to PS SRVCC information
            * @param p_cSeq_s Transaction Id
            */
            testcase TC_ISC_SCCAS_RSC_REG_06(inout CSeq p_cSeq_s) 
            runs on ServerSyncComp
            system TestAdapter {
                //Variables
                var ImsComponent v_imsComponent_ueims;
                var ImsComponent v_imsComponent_msc;
                f_cf_1Isc1AtcfUp(v_imsComponent_ueims, v_imsComponent_msc);

                //Start
                f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_RSC_REG_06_ueims(p_cSeq_s));
                f_IncCSeq(p_cSeq_s); v_imsComponent_msc.start(f_TC_ISC_SCCAS_RSC_REG_06_msc(p_cSeq_s)); // TODO Not considered in TP?

                // synchronize both PTCs on 3 sychronization points
                f_serverSync2Clients({c_prDone, c_tbDone, c_poDone});

                f_cf_1Isc1AtcfDown(v_imsComponent_ueims, v_imsComponent_msc);

            } // End of TC_ISC_SCCAS_RSC_REG_06

          } // End of group TP_6_3_5_Providing_SRVCC_To_MSC

     } // End of group Group_6_3
     
     group Group_6A_4 {
+1 −1

File changed.

Contains only whitespace changes.

Loading