Skip to content
AtsSccas_TCFunctions.ttcn 64.2 KiB
Newer Older
Steffen Ludtke's avatar
Steffen Ludtke committed
/*
 *    @author     TTF T016
 *    @version    $Id$
 *    @desc       This module provides the TCfunctions used by the test component
 *              for SCCAS tests.
 */
module AtsSccas_TCFunctions {

    // XSD support
    import from XSD all;

    // LibCommon
    import from LibCommon_Sync all;
    import from LibCommon_VerdictControl all;
    import from LibCommon_DataStrings all;

    // LibSip
    import from LibSip_SIPTypesAndValues all;
    import from LibSip_SDPTypes all;
    import from LibSip_Templates all;
    import from LibSip_Steps all;
    import from LibSip_Interface all;
    import from LibSip_PIXITS all;

    // LibIms
    import from LibIms_Templates all;
    import from LibIms_Steps all;
    import from LibIms_SIPTypesAndValues all;
    import from LibIms_Interface all;

    // AtsSccas
    // import from AtsSccas_TestSystem all;
    import from AtsSccas_Templates all;
    import from AtsSccas_Steps all;
    import from AtsSccas_PICS all;
    import from AtsSccas_PIXITS all;
    import from AtsSccas_TestConfiguration all;

    group Group_6_3 {

        group TP_6_3_1_General {

            /**
             *  @desc    Verify that the SCCAS successfully obtain/processes 3pty registration information
             *  @param   p_cSeq_s Random CSeq REGISTER number
             */
            function f_TC_ISC_SCCAS_RSC_REG_01(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);
                action("Please register UE");
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

                // Registration
                f_setHeaders_REGISTER(v_cSeq_s);
                f_SendREGISTER(
                               m_sccas_register(
                                                vc_requestUri, 
                                                vc_callId, 
                                                vc_cSeq, 
                                                vc_from, 
                                                vc_to, 
                                                vc_via_REG, 
                                                vc_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_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)) {
                        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_01

            /**
             *  @desc    Verify that the SCCAS successfully obtain/processes de-registration information (Expires=0)
             *  @param   p_cSeq_s Random CSeq REGISTER number
             */
            function f_TC_ISC_SCCAS_RSC_REG_02(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);
                action("Please register UE");
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

                // Registration
                f_setHeaders_REGISTER(v_cSeq_s);
                f_SendREGISTER(
                               m_sccas_register(
                                                vc_requestUri, 
                                                vc_callId, 
                                                vc_cSeq, 
                                                vc_from, 
                                                vc_to, 
                                                vc_via_REG, 
                                                vc_contact, 
                                                omit, 
                                                PX_IMS_SUT_SCSCF_IPADDR, // TODO To be refined during validation
                                                PX_IMS_SUT_SCSCF_PORT, // TODO To be refined during validation
                                                "0" // Expired
                                ));
                tc_ack.start;
                alt {
                    [] SIPP.receive(mw_sccas_Response_2xxonREGISTER(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) {
                        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_02

        } // End of group TP_6_3_1_General
          
        group TP_6_3_2_Triggers_To_ATCF {
Iztok Juvancic's avatar
Iztok Juvancic committed
        	
			/**
			 *  @desc    Verify that the SCCAS successfully obtain/processes SRVCC information
			 *  @param   p_cSeq_s Random CSeq REGISTER number
			 */
			function f_TC_ISC_SCCAS_RSC_REG_03(in CSeq p_cSeq_s)
			runs on ImsComponent {
				// Local variables
				var CSeq v_cSeq_s := p_cSeq_s;
				var template(value) REGISTER_Request m_register3ptyUe;
				var template(value) RequestUnion m_req;
				var template(value) Response m_ResponseReg_3ptyUe;

				// Preamble
				f_init_userprofile(c_userProfile_PCSCFwithHomeUE);
				f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1);
				f_initSipUrl(c_userProfile_PCSCFwithHomeUE);
				
				//Registration
				f_setHeaders_REGISTER(v_cSeq_s);//UE REGISTER
				m_register3ptyUe :=  m_register_ue_srvcc(
													vc_requestUri, 
													vc_callId, 
													vc_cSeq, 
													vc_from, 
													vc_to, 
													vc_via_REG, 
													vc_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({m_fcValue("g3gppAtcfFeatureCapabilityIndicator")}),
													omit,//m_contentType(c_sdpApplication), // TODO To be refined during validation
													omit//m_MBody_SDP(vc_sdp_local) // TODO To be refined during validation
													);
				m_req:= {Register:=valueof(m_register3ptyUe)};
				
				m_ResponseReg_3ptyUe :=  m_Response_2xxonREGISTER_IMS(
																c_statusLine200,
																vc_callId,
																p_cSeq_s,
																vc_from,
																vc_to,
																vc_via_REG,
																vc_contact,
																m_SipUrl_currDomain(vc_userprofile),
																vc_from.addressField.nameAddr.addrSpec
Loading full blame...