Commit 864b2fe0 authored by pintar's avatar pintar
Browse files

Week 39 - Validation for STF450

parent 44fd14d8
Loading
Loading
Loading
Loading
+282 −3
Original line number Original line Diff line number Diff line
@@ -9,11 +9,11 @@ module DiameterRx_ImsGm_TCFunctions {
	import from LibCommon_Sync {function f_selfOrClientSyncAndVerdict;
	import from LibCommon_Sync {function f_selfOrClientSyncAndVerdict;
	    						const c_prDone, c_tbDone, c_poDone;}
	    						const c_prDone, c_tbDone, c_poDone;}
	// LibSip
	// LibSip
	import from LibSip_SIPTypesAndValues {type REGISTER_Request, CSeq;
	    								  const c_statusLine200;}
	import from LibSip_Templates all;
	import from LibSip_Templates all;
	import from LibSip_Steps all;
	import from LibSip_Steps all;
	import from LibSip_SIPTypesAndValues all;
	import from LibSip_SIPTypesAndValues all;
    import from LibSip_SDPTypes all;
    import from LibSip_PIXITS all;
	// LibIms
	// LibIms
	import from LibIms_Templates all;
	import from LibIms_Templates all;
	import from LibIms_Steps all;
	import from LibIms_Steps all;
@@ -22,6 +22,140 @@ module DiameterRx_ImsGm_TCFunctions {


	group TP_BasicCall{
	group TP_BasicCall{


        /*
        *  @desc	This is the test case function (SIP originating side - UE1) for test cases where only REGISTRATION procedure is Reqired
        *  @param	p_cSeq_s
        */
                function f_TC_IMST2_GM_REG_01_UE1(in CSeq p_cSeq_s)
                runs on ImsComponent {

                    var template REGISTER_Request v_register;

                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());

                    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(c_userProfile_UE1atSUThome,
                                                    p_cSeq_s, v_register);

                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync

                    // send REGISTER, await 401, send REGISTER, await 200 OK
                    f_RemoveRegistration(vc_cSeq); // deregistration in SUT
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                    f_SIP_postamble_UE1_withoutRegistration();
                } // end function f_Sip_TC_IMST2_GM_REG_01_UE1

        /*
        *  @desc	This is the test case function (SIP terminating side - UE2) for test cases where only REGISTRATION procedure is Reqired
        *  @param	loc_CSeq_s
        */
                function f_TC_IMST2_GM_REG_01_UE2(in CSeq p_cSeq_s)
                runs on ImsComponent {

                    var template REGISTER_Request v_register;

                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());

                    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));

                    // IMS1 component interface initialization
                    f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF2);
                    // preamble with send REGISTER, await 401, send REGISTER, await
                    // 200 OK and user profile setting
                    f_IMS_preamble_withRegistration(c_userProfile_UE2atSUThome,
                                                    p_cSeq_s, v_register);

                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync

                    // POSTAMBLE
                    // send REGISTER, await 401, send REGISTER, await 200 OK
                    f_RemoveRegistration(vc_cSeq);

                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                    f_SIP_postamble_UE2_withoutRegistration();
                } // end function f_Sip_TC_IMST2_GM_REG_01_UE2

        /*
        *  @desc	This is the test case function (SIP originating side - UE1) for test cases where only REGISTRATION procedure is Reqired
        *  @param	p_cSeq_s
        */
                function f_TC_IMST2_GM_REG_02_UE1(in CSeq p_cSeq_s)
                runs on ImsComponent {

                    var template REGISTER_Request v_register;

                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());

                    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(c_userProfile_UE1atSUThome,
                                                    p_cSeq_s, v_register);

                    f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync

                    // send REGISTER, await 401, send REGISTER, await 200 OK
                    f_RemoveRegistration(vc_cSeq); // deregistration in SUT
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                    f_SIP_postamble_UE1_withoutRegistration();
                } // end function f_Sip_TC_IMST2_GM_REG_02_UE1

        /*
        *  @desc	This is the test case function (SIP terminating side - UE2) for test cases where only REGISTRATION procedure is Reqired
        *  @param	loc_CSeq_s
        */
                function f_TC_IMST2_GM_REG_02_UE2(in CSeq p_cSeq_s)
                runs on ImsComponent {

                    var template REGISTER_Request v_register;

                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());

                    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));

                    // IMS1 component interface initialization
                    f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF2);
                    // preamble with send REGISTER, await 401, send REGISTER, await
                    // 200 OK and user profile setting
                    f_IMS_preamble_withRegistration(c_userProfile_UE2atSUThome,
                                                    p_cSeq_s, v_register);

                    f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync

                    // POSTAMBLE
                    // send REGISTER, await 401, send REGISTER, await 200 OK
                    f_RemoveRegistration(vc_cSeq);

                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                    f_SIP_postamble_UE2_withoutRegistration();
                } // end function f_Sip_TC_IMST2_GM_REG_02_UE2

	/*
	/*
	*  @desc	This is the test case function (SIP originating side - UE1) for TC_IMST2_GM_INI_04_UE1
	*  @desc	This is the test case function (SIP originating side - UE1) for TC_IMST2_GM_INI_04_UE1
	*  @param	p_cSeq_s
	*  @param	p_cSeq_s
@@ -139,6 +273,125 @@ module DiameterRx_ImsGm_TCFunctions {
				f_SIP_postamble_UE2_withoutRegistration();
				f_SIP_postamble_UE2_withoutRegistration();
			} // end function f_Sip_TC_IMST2_GM_INI_04_UE2
			} // end function f_Sip_TC_IMST2_GM_INI_04_UE2


	/*
	*  @desc	This is the test case function (SIP originating side - UE1) for TC_IMST2_GM_INI_04_UE1 addopted to case where SUT release both UEs with BYE
	*  @param	p_cSeq_s
	*/
			function f_TC_IMST2_GM_REL_04_UE1(in CSeq p_cSeq_s)
			runs on ImsComponent {

				var template REGISTER_Request v_register;

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());

				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(c_userProfile_UE1atSUThome,
												p_cSeq_s, v_register);
				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync point preamble done

				// TESTBODY
				// prepare and send INVITE UE2
				// @SUT
				LibIms_Steps
				.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome);
				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));
                // await BYE and send 200OK
                f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId));

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync
                // point
                // test
                // body
                // done
                // POSTAMBLE

				// send REGISTER, await 401, send REGISTER, await 200 OK
				f_RemoveRegistration(vc_cSeq); // deregistration in SUT
				f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
				// point
				// postamble
				// done
				f_SIP_postamble_UE1_withoutRegistration();
			} // end function f_Sip_TC_IMST2_GM_REL_04_UE1

	/*
	*  @desc	This is the test case function (SIP terminating side - UE2) for TC_IMST2_GM_INI_04_UE2 addopted to case where SUT release both UEs with BYE
	*  @param	loc_CSeq_s
	*/
			function f_TC_IMST2_GM_REL_04_UE2(in CSeq p_cSeq_s)
			runs on ImsComponent {

				var template REGISTER_Request v_register;

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());

				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));

				// IMS1 component interface initialization
				f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF2);
				// preamble with send REGISTER, await 401, send REGISTER, await
				// 200 OK and user profile setting
				f_IMS_preamble_withRegistration(c_userProfile_UE2atSUThome,
												p_cSeq_s, v_register);

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync point preamble done

				// TESTBODY
				// Awaiting INVITE
				f_awaitingINVITE(mw_INVITE_Request_Base);
				f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200,
														 vc_callId, vc_cSeq,
														 vc_caller_From,
														 vc_caller_To, vc_via,
														 vc_contact, f_recordroute(),
														 valueof(m_MBody_SDP(
																	 vc_sdp_local
																 ))));

                f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync before STR

				// await BYE and send 200OK
				f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId));

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync
                // point
                // test
                // body
                // done
                // POSTAMBLE

				// send REGISTER, await 401, send REGISTER, await 200 OK
				f_RemoveRegistration(vc_cSeq);

				f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
				// point
				// postamble
				// done
				f_SIP_postamble_UE2_withoutRegistration();
			} // end function f_Sip_TC_IMST2_GM_REG_04_UE2

	} //end group TP_BasicCall
	} //end group TP_BasicCall


	// source from AtsIms_Gm_TCFunctions (STF346)
	// source from AtsIms_Gm_TCFunctions (STF346)
@@ -153,6 +406,8 @@ module DiameterRx_ImsGm_TCFunctions {


				var template REGISTER_Request v_register;
				var template REGISTER_Request v_register;


                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());

				v_register :=
				v_register :=
					valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId,
					valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId,
													p_cSeq_s, vc_from, vc_to,
													p_cSeq_s, vc_from, vc_to,
@@ -215,6 +470,8 @@ module DiameterRx_ImsGm_TCFunctions {


				var template REGISTER_Request v_register;
				var template REGISTER_Request v_register;


                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());

				v_register :=
				v_register :=
					valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId,
					valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId,
													p_cSeq_s, vc_from, vc_to,
													p_cSeq_s, vc_from, vc_to,
@@ -278,12 +535,16 @@ module DiameterRx_ImsGm_TCFunctions {
			runs on ImsComponent {
			runs on ImsComponent {


				var template REGISTER_Request v_register;
				var template REGISTER_Request v_register;
				var SipUrl v_requestUri_INVITE;

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());


				v_register :=
				v_register :=
					valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId,
					valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId,
													p_cSeq_s, vc_from, vc_to,
													p_cSeq_s, vc_from, vc_to,
													vc_via_REG, vc_contact,
													vc_via_REG, vc_contact,
													vc_authorization));
													vc_authorization));
													
				// preamble with send REGISTER, await 401, send REGISTER, await
				// preamble with send REGISTER, await 401, send REGISTER, await
				// 200 OK and user profile setting
				// 200 OK and user profile setting
				f_IMS_preamble_withRegistration(c_userProfile_UE1atSUThome,
				f_IMS_preamble_withRegistration(c_userProfile_UE1atSUThome,
@@ -303,6 +564,8 @@ module DiameterRx_ImsGm_TCFunctions {
												 vc_route_REG, omit,
												 vc_route_REG, omit,
												 m_MBody_SDP(vc_sdp_local)));
												 m_MBody_SDP(vc_sdp_local)));


                v_requestUri_INVITE := vc_requestUri;

				// await response - 200 ...
				// await response - 200 ...
				f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId,
				f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callId,
													vc_cSeq));
													vc_cSeq));
@@ -318,8 +581,9 @@ module DiameterRx_ImsGm_TCFunctions {
				// @SUT
				// @SUT
				// Check function to set headers for reinvite on
				// Check function to set headers for reinvite on
				// originating side
				// originating side
                vc_sdp_local := valueof(m_SDP_modified(valueof(m_media_dynPT("8", "PCMA/8000")), vc_userprofile));
				LibIms_Steps.f_setHeadersReINVITE(p_cSeq_s, true);
				LibIms_Steps.f_setHeadersReINVITE(p_cSeq_s, true);
				f_SendINVITE(m_INVITE_Request_UE_Diameter(vc_requestUri, vc_callId,
				f_SendINVITE(m_INVITE_Request_UE_Diameter(v_requestUri_INVITE, vc_callId,
												 p_cSeq_s, vc_from, vc_to,
												 p_cSeq_s, vc_from, vc_to,
												 vc_via, vc_contact, omit,
												 vc_via, vc_contact, omit,
												 vc_route, omit,
												 vc_route, omit,
@@ -361,6 +625,8 @@ module DiameterRx_ImsGm_TCFunctions {


				var template REGISTER_Request v_register;
				var template REGISTER_Request v_register;


                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());

				v_register :=
				v_register :=
					valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId,
					valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId,
													p_cSeq_s, vc_from, vc_to,
													p_cSeq_s, vc_from, vc_to,
@@ -445,6 +711,19 @@ module DiameterRx_ImsGm_TCFunctions {
          messageBody := p_mb
          messageBody := p_mb
        }
        }
        
        
      group SDPTemplates{
          
          template SDP_Message m_SDP_modified(SDP_media_desc p_media, in SipUserProfile p_userprofile) 
                  modifies m_SDP
                  := {origin := {
                      session_id := "30001",
                      session_version := "30001"
                      },
                      //attributes := {m_attribute_sendonly},
                      bandwidth := {{PX_SIP_SDP_b_modifier, PX_SIP_SDP_b_bandwidth}}
                  };
      }

	}
	}


} // end module DiameterRx_ImsGm_TCFunctions
} // end module DiameterRx_ImsGm_TCFunctions
 No newline at end of file
+24 −0
Original line number Original line Diff line number Diff line
@@ -16,12 +16,36 @@ module DiameterRx_PICS
	*/
	*/
	modulepar boolean PC_AF_SPONSORED_DATA_CONNECTIVITY_SUPPORTED;
	modulepar boolean PC_AF_SPONSORED_DATA_CONNECTIVITY_SUPPORTED;
	
	
    /** @desc	Does AF support MODIFICATION_OF_THE_SESSION_INFORMATION
     *  @remark	PICS ref: A.3/3
     *			True, if MODIFICATION_OF_THE_SESSION_INFORMATION is supported
    */
    modulepar boolean PC_AF_MODIFICATION_OF_THE_SESSION_INFORMATION;
	
    /** @desc	Does AF support GATE_RELATED_PROCEDURE
     *  @remark	PICS ref: A.3/4
     *			True, if GATE_RELATED_PROCEDURE is supported
    */
    modulepar boolean PC_AF_GATE_RELATED_PROCEDURE;

    /** @desc	Does AF support SUBSCRIBE_TO_NOTIFICATION
    /** @desc	Does AF support SUBSCRIBE_TO_NOTIFICATION
     *  @remark	PICS ref: A.3/6
     *  @remark	PICS ref: A.3/6
     *			True, if SUBSCRIBE_TO_NOTIFICATION is supported
     *			True, if SUBSCRIBE_TO_NOTIFICATION is supported
    */
    */
    modulepar boolean PC_AF_SUBSCRIBE_TO_NOTIFICATION_SUPPORTED;
    modulepar boolean PC_AF_SUBSCRIBE_TO_NOTIFICATION_SUPPORTED;


    /** @desc	Does AF support Procedures for the provision of information about AF Signalling IP flows
     *  @remark	PICS ref: A.3/7
     *			True, if PC_AF_SIGNALLING_IP_FLOWS_INFO is supported
    */
    modulepar boolean PC_AF_SIGNALLING_IP_FLOWS_INFO;

    /** @desc	Does AF support Procedures for the handling of traffic plane events?
     *  @remark	PICS ref: A.3/8
     *			True, if PC_AF_HANDLING_TRAFFIC_PLANE_EVENT is supported
    */
    modulepar boolean PC_AF_HANDLING_TRAFFIC_PLANE_EVENT;

    /** @desc	Does PCRF support SPONSORED_DATA_CONNECTIVITY
    /** @desc	Does PCRF support SPONSORED_DATA_CONNECTIVITY
     *  @remark	PICS ref: A.4/4
     *  @remark	PICS ref: A.4/4
 	 *	        True, if SPONSORED_DATA_CONNECTIVITY is supported
 	 *	        True, if SPONSORED_DATA_CONNECTIVITY is supported
+419 −373

File changed.

Preview size limit exceeded, changes collapsed.

+173 −16

File changed.

Preview size limit exceeded, changes collapsed.

+331 −332

File changed.

Preview size limit exceeded, changes collapsed.

Loading