Commit ad9a9683 authored by rennoch's avatar rennoch
Browse files

cfb 01-06 (ndub)

parent 9e6ff82f
Loading
Loading
Loading
Loading
+365 −0
Original line number Diff line number Diff line
@@ -7159,6 +7159,371 @@ module AtsNIT_SipSip_SS_TCFunctions {
		f_IMS_postamble_withDeRegistration(vc_cSeq);
	} // end function f_AtsNIT_TC_SS___XXSSCFB01UE4

	/* 
	* @desc		This is the test case function (originating side) for AtsNIT_TC_SS___XXSSCFB02
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SS___XXSSCFB02UE1(in CSeq p_cSeq_s) runs on ImsComponent {
		f_AtsNIT_TC_SS___XXSSCFB01UE1(p_cSeq_s);
	} // end function f_AtsNIT_TC_SS___XXSSCFB02UE1	
	
	/* 
	* @desc		This is the test case function (terminating side) for TC_SS___XXSSCFB02
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SS___XXSSCFB02UE2(in CSeq p_cSeq_s) runs on ImsComponent {
		f_IMS_preamble_withRegistrationBasic(c_userProfile_UE2atSUThome, p_cSeq_s); // assignment of PIXIT values to component variable

		// subscribe to CDIVN
		f_SubscriptionWithNotification(p_cSeq_s, 
			m_SUBSCRIBE_Request_mb_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, m_MBody_XML(m_XmlBody_CDIVN(m_CDIVN_sub))),
			mw_NOTIFY_Request_MB(vc_callId, mw_MBody_XML(mw_XmlBody_CDIVN(*)))
			);

		// prepare and send INVITE UE4@SUT (aux. call to be in busy state)
		LibIms_Steps.f_setHeadersINVITE(
			vc_cSeq, 
			c_userProfile_UE4atSUThome
		);
		
		f_SendINVITE(m_INVITE_Request_UE(
			vc_requestUri, 
			vc_callId, 
			vc_cSeq, 
			vc_from, 
			vc_to, 
			vc_via, 
			vc_contact, 
			omit, 
			vc_route, 
			omit, 
			m_MBody_SDP(vc_sdp_local)
		));

		vc_ignore181 := true; // allow optional 181
		
		// await 180 response without 
		// 100rel in require header field
		f_awaitingResponse(mw_Response_Require_ifpresent(
			c_statusLine180,
			vc_callId, 
			vc_cSeq,
			mw_Require_not_100rel
		));
				
		// await 200 OK response
		f_awaitingOkResponse(vc_cSeq);
		
		// send ACK
		f_SendACK(m_ACK_Request_Base(
			vc_requestUri, 
			vc_callId, 
			vc_cSeq, 
			vc_from, 
			vc_to, 
			vc_via
		));

		// Testbody
		
		f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());

		f_awaitingMESSAGE_sendReply();

		f_check_Conversation();
						
		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
		
		// postamble

		//SendBYE and await response (terminate aux. call with UE4)
		f_terminateCall_UE(
			vc_requestUri, 
			vc_callId, 
			vc_cSeq, 
			vc_caller_From, 
			vc_caller_To
		);
		f_IMS_postamble_withDeRegistration(vc_cSeq);
	} // end function f_AtsNIT_TC_SS___XXSSCFB02UE2
	
	/* 
	* @desc		This is the test case function (originating side) for AtsNIT_TC_SS___XXSSCFB02
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SS___XXSSCFB02UE3(in CSeq p_cSeq_s) runs on ImsComponent {
		f_AtsNIT_TC_SS___XXSSCFB01UE3(p_cSeq_s);
	} // end function f_AtsNIT_TC_SS___XXSSCFB02UE3

	/* 
	* @desc		This is the test case function (aux. user UE4) for TC_SS___XXSSCFB02
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SS___XXSSCFB02UE4(in CSeq p_cSeq_s) runs on ImsComponent {
		f_AtsNIT_TC_SS___XXSSCFB01UE4(p_cSeq_s);
	} // end function f_AtsNIT_TC_SS___XXSSCFB02UE4

	/* 
	* @desc		This is the test case function (originating side) for AtsNIT_TC_SS___XXSSCFB03
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SS___XXSSCFB03UE1(in CSeq p_cSeq_s) runs on ImsComponent {
		f_AtsNIT_TC_SS___XXSSCFU03UE1(p_cSeq_s);
	} // end function f_AtsNIT_TC_SS___XXSSCFB03UE1	
	
	/* 
	* @desc		This is the test case function (terminating side) for TC_SS___XXSSCFB03
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SS___XXSSCFB03UE2(in CSeq p_cSeq_s) runs on ImsComponent {
		f_IMS_preamble_withRegistrationBasic(c_userProfile_UE2atSUThome, p_cSeq_s); // assignment of PIXIT values to component variable

		// prepare and send INVITE UE4@SUT (aux. call to be in busy state)
		LibIms_Steps.f_setHeadersINVITE(
			vc_cSeq, 
			c_userProfile_UE4atSUThome
		);
		
		f_SendINVITE(m_INVITE_Request_UE(
			vc_requestUri, 
			vc_callId, 
			vc_cSeq, 
			vc_from, 
			vc_to, 
			vc_via, 
			vc_contact, 
			omit, 
			vc_route, 
			omit, 
			m_MBody_SDP(vc_sdp_local)
		));

		vc_ignore181 := true; // allow optional 181
		
		// await 180 response without 
		// 100rel in require header field
		f_awaitingResponse(mw_Response_Require_ifpresent(
			c_statusLine180,
			vc_callId, 
			vc_cSeq,
			mw_Require_not_100rel
		));
				
		// await 200 OK response
		f_awaitingOkResponse(vc_cSeq);
		
		// send ACK
		f_SendACK(m_ACK_Request_Base(
			vc_requestUri, 
			vc_callId, 
			vc_cSeq, 
			vc_from, 
			vc_to, 
			vc_via
		));

		// Testbody
		
		f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());

		f_awaitingMESSAGE_sendReply();

		f_check_Conversation();
						
		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
		
		// postamble

		//SendBYE and await response (terminate aux. call with UE4)
		f_terminateCall_UE(
			vc_requestUri, 
			vc_callId, 
			vc_cSeq, 
			vc_caller_From, 
			vc_caller_To
		);
		f_IMS_postamble_withDeRegistration(vc_cSeq);
	} // end function f_AtsNIT_TC_SS___XXSSCFB03UE2
	
	/* 
	* @desc		This is the test case function (originating side) for AtsNIT_TC_SS___XXSSCFB03
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SS___XXSSCFB03UE3(in CSeq p_cSeq_s) runs on ImsComponent {
		f_AtsNIT_TC_SS___XXSSCFB01UE3(p_cSeq_s);
	} // end function f_AtsNIT_TC_SS___XXSSCFB03UE3

	/* 
	* @desc		This is the test case function (aux. user UE4) for TC_SS___XXSSCFB03
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SS___XXSSCFB03UE4(in CSeq p_cSeq_s) runs on ImsComponent {
		f_AtsNIT_TC_SS___XXSSCFB01UE4(p_cSeq_s);
	} // end function f_AtsNIT_TC_SS___XXSSCFB03UE4

	/* 
	* @desc		This is the test case function (originating side) for AtsNIT_TC_SS___XXSSCFB04
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SS___XXSSCFB04UE1(in CSeq p_cSeq_s) runs on ImsComponent {
		f_AtsNIT_TC_SS___XXSSCFU04UE1(p_cSeq_s);
	} // end function f_AtsNIT_TC_SS___XXSSCFB04UE1	
	
	/* 
	* @desc		This is the test case function (terminating side) for TC_SS___XXSSCFB04
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SS___XXSSCFB04UE2(in CSeq p_cSeq_s) runs on ImsComponent {
		f_AtsNIT_TC_SS___XXSSCFB03UE2(p_cSeq_s);
	} // end function f_AtsNIT_TC_SS___XXSSCFB04UE2
	
	/* 
	* @desc		This is the test case function (originating side) for AtsNIT_TC_SS___XXSSCFB04
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SS___XXSSCFB04UE3(in CSeq p_cSeq_s) runs on ImsComponent {
		f_AtsNIT_TC_SS___XXSSCFB01UE3(p_cSeq_s);
	} // end function f_AtsNIT_TC_SS___XXSSCFB04UE3

	/* 
	* @desc		This is the test case function (aux. user UE4) for TC_SS___XXSSCFB04
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SS___XXSSCFB04UE4(in CSeq p_cSeq_s) runs on ImsComponent {
		f_AtsNIT_TC_SS___XXSSCFB01UE4(p_cSeq_s);
	} // end function f_AtsNIT_TC_SS___XXSSCFB04UE4
		
	/* 
	* @desc		This is the test case function (originating side) for AtsNIT_TC_SS___XXSSCFB05
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SS___XXSSCFB05UE1(in CSeq p_cSeq_s) runs on ImsComponent {
		f_IMS_preamble_withRegistrationBasic(c_userProfile_UE1atSUThome, p_cSeq_s); // assignment of PIXIT values to component variable

		f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());

		// Testbody
		
		// prepare and send INVITE UE2@SUT
		LibIms_Steps.f_setHeadersINVITE(
			vc_cSeq, 
			c_userProfile_UE2atSUThome
		);
		
		f_SendINVITE(m_INVITE_Request_UE(
			vc_requestUri, 
			vc_callId, 
			vc_cSeq, 
			vc_from, 
			vc_to, 
			vc_via, 
			vc_contact, 
			omit, 
			vc_route, 
			omit, 
			m_MBody_SDP(vc_sdp_local)
		));
		
		// await 180 response without 
		// 100rel in require header field
		f_awaitingResponse(mw_Response_Require_ifpresent(
			c_statusLine180,
			vc_callId, 
			vc_cSeq,
			mw_Require_not_100rel
		));

		//TODO: verify that cause is associated to user B
		f_awaitingResponse(mw_Response_PAsserted_Privacy_History(c_statusLine181,vc_callId, vc_cSeq, mw_PAssertedID(mw_PAssertedIDValue(mw_SipUrl_Number(PX_IMS_SUT_UE2_PUBLIC_USER))), *, 
			mw_HistoryInfo(
				{mw_HistoryInfoEntry(mw_SipUrl_NumberHostParam(PX_IMS_SUT_UE2_PUBLIC_USER,PX_IMS_SUT_UE2_HOME_DOMAIN,{m_Cause("486")}),{1},omit), // Note: cause is part of hi-targeted-to-uri
					mw_HistoryInfoEntry(mw_SipUrl_Number(PX_IMS_SUT_UE3_PUBLIC_USER),{1,1},omit)
				})));
				
		// await 200 OK response
		f_awaitingOkResponse(vc_cSeq);
		
		// send ACK
		f_SendACK(m_ACK_Request_Base(
			vc_requestUri, 
			vc_callId, 
			vc_cSeq, 
			vc_from, 
			vc_to, 
			vc_via
		));
				
		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
		
		//SendBYE and await response
		f_terminateCall_UE(
			vc_requestUri, 
			vc_callId, 
			vc_cSeq, 
			vc_caller_From, 
			vc_caller_To
		);
		
		// postamble
		f_IMS_postamble_withDeRegistration(vc_cSeq);
	} // end function f_AtsNIT_TC_SS___XXSSCFB05UE1	
	
	/* 
	* @desc		This is the test case function (terminating side) for TC_SS___XXSSCFB05
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SS___XXSSCFB05UE2(in CSeq p_cSeq_s) runs on ImsComponent {
		f_AtsNIT_TC_SS___XXSSCFB03UE2(p_cSeq_s);
	} // end function f_AtsNIT_TC_SS___XXSSCFB05UE2
	
	/* 
	* @desc		This is the test case function (originating side) for AtsNIT_TC_SS___XXSSCFB05
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SS___XXSSCFB05UE3(in CSeq p_cSeq_s) runs on ImsComponent {
		f_AtsNIT_TC_SS___XXSSCFB01UE3(p_cSeq_s);
	} // end function f_AtsNIT_TC_SS___XXSSCFB05UE3

	/* 
	* @desc		This is the test case function (aux. user UE4) for TC_SS___XXSSCFB05
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SS___XXSSCFB05UE4(in CSeq p_cSeq_s) runs on ImsComponent {
		f_AtsNIT_TC_SS___XXSSCFB01UE4(p_cSeq_s);
	} // end function f_AtsNIT_TC_SS___XXSSCFB05UE4

	/* 
	* @desc		This is the test case function (originating side) for AtsNIT_TC_SS___XXSSCFB06
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SS___XXSSCFB06UE1(in CSeq p_cSeq_s) runs on ImsComponent {
		f_AtsNIT_TC_SS___XXSSCFU06UE1(p_cSeq_s);
	} // end function f_AtsNIT_TC_SS___XXSSCFB06UE1	
	
	/* 
	* @desc		This is the test case function (terminating side) for TC_SS___XXSSCFB06
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SS___XXSSCFB06UE2(in CSeq p_cSeq_s) runs on ImsComponent {
		f_AtsNIT_TC_SS___XXSSCFB03UE2(p_cSeq_s);
	} // end function f_AtsNIT_TC_SS___XXSSCFB06UE2
	
	/* 
	* @desc		This is the test case function (originating side) for AtsNIT_TC_SS___XXSSCFB06
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SS___XXSSCFB06UE3(in CSeq p_cSeq_s) runs on ImsComponent {
		f_AtsNIT_TC_SS___XXSSCFU06UE3(p_cSeq_s);
	} // end function f_AtsNIT_TC_SS___XXSSCFB06UE3

	/* 
	* @desc		This is the test case function (aux. user UE4) for TC_SS___XXSSCFB06
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SS___XXSSCFB06UE4(in CSeq p_cSeq_s) runs on ImsComponent {
		f_AtsNIT_TC_SS___XXSSCFB01UE4(p_cSeq_s);
	} // end function f_AtsNIT_TC_SS___XXSSCFB06UE4
		

	}//end group TP2_7_SS_CFB