Commit a5e48aad authored by deshpande's avatar deshpande
Browse files

Added testcase funcions for CFNRC and corrected 180 and 181 message arrival sequence in CFU module

parent 221b8c3b
Loading
Loading
Loading
Loading
+606 −25
Original line number Diff line number Diff line
@@ -6669,7 +6669,7 @@ module AtsNIT_SipSip_SS_TCFunctions {
			m_MBody_SDP(vc_sdp_local)
		));

		vc_ignore181 := true; // allow optional 181
		// NO 181 allowed
		
		// await 180 response without 
		// 100rel in require header field
@@ -6680,9 +6680,6 @@ module AtsNIT_SipSip_SS_TCFunctions {
			mw_Require_not_100rel
		));
				
		// NO 181 allowed
 		 vc_ignore181 := false; // disable optional 181
  				
		// await 200 OK response
		f_awaitingOkResponse(vc_cSeq);
		
@@ -6712,6 +6709,7 @@ module AtsNIT_SipSip_SS_TCFunctions {
	} // end function f_AtsNIT_TC_SS___XXSSCFU03UE1
	


	// UE2 does not take part in the test	

	/* 
@@ -6793,6 +6791,9 @@ module AtsNIT_SipSip_SS_TCFunctions {
			m_MBody_SDP(vc_sdp_local)
		));
		
		// await 181 call forward response		
		f_awaitingResponse(mw_Response_PAsserted_Privacy_History(c_statusLine181,vc_callId, vc_cSeq, omit, mw_Privacy_id, omit));		

		// await 180 response without 
		// 100rel in require header field
		f_awaitingResponse(mw_Response_Require_ifpresent(
@@ -6802,8 +6803,6 @@ module AtsNIT_SipSip_SS_TCFunctions {
			mw_Require_not_100rel
		));
				
		f_awaitingResponse(mw_Response_PAsserted_Privacy_History(c_statusLine181,vc_callId, vc_cSeq, omit, mw_Privacy_id, omit));
				
		// await 200 OK response
		f_awaitingOkResponse(vc_cSeq);
		
@@ -6883,6 +6882,13 @@ module AtsNIT_SipSip_SS_TCFunctions {
			m_MBody_SDP(vc_sdp_local)
		));

		//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("302")}),{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 180 response without 
		// 100rel in require header field
		f_awaitingResponse(mw_Response_Require_ifpresent(
@@ -6892,13 +6898,6 @@ module AtsNIT_SipSip_SS_TCFunctions {
			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("302")}),{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);
		
@@ -6955,7 +6954,6 @@ module AtsNIT_SipSip_SS_TCFunctions {
	} // end function f_AtsNIT_TC_SS___XXSSCFU06UE1
	


	// UE2 does not take part in the test	

	/* 
@@ -6974,6 +6972,7 @@ module AtsNIT_SipSip_SS_TCFunctions {
			{mw_HistoryInfoEntry(mw_SipUrl_NumberHostParam(PX_IMS_SUT_UE2_PUBLIC_USER,PX_IMS_SUT_UE2_HOME_DOMAIN,{m_Cause("302")}),{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)
			})));
			 
		f_sendResponse(m_Response_18XonINVITE_Require_ifpresent(
			c_statusLine180,
			vc_callId, 
@@ -7061,9 +7060,6 @@ module AtsNIT_SipSip_SS_TCFunctions {
			mw_Require_not_100rel
		));
				
		// NO 181 allowed
		vc_ignore181 := false; // disable optional 181
 				
		// await 200 OK response
		f_awaitingOkResponse(vc_cSeq);
		
@@ -7311,10 +7307,6 @@ module AtsNIT_SipSip_SS_TCFunctions {
			mw_Require_not_100rel
		));
				
		// NO 181 allowed
		vc_ignore181 := false; // disable optional 181
 				
				
		// await 200 OK response
		f_awaitingOkResponse(vc_cSeq);
		
@@ -9187,6 +9179,595 @@ module AtsNIT_SipSip_SS_TCFunctions {
    	} // end function f_AtsNIT_TC_SSS__XXSSCONF_CRE_008UE3
	}//end group TP2_10_SS_CONF
	
	group TP2_11_SS_CFNRc {


	/* 
	* @desc		This is the test case function (originating side) for TC_SSS___XXSSCFNRc01
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SSS___XXSSCFNRc01UE1(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)
		));

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

		vc_ignore181 := false; // disable optional 181
				
		// 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_check_Conversation();
				
		//SendBYE and await response
		f_terminateCall_UE(
			vc_requestUri, 
			vc_callId, 
			vc_cSeq, 
			vc_caller_From, 
			vc_caller_To
		);
		
		f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());

		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
				
		// postamble
		f_IMS_postamble_withDeRegistration(vc_cSeq);
		
	} // end function f_AtsNIT_TC_SSS___XXSSCFNRc01UE1	
	
	/* 
	* @desc		This is the test case function (terminating side) for TC_SSS___XXSSCFNRc01
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SSS___XXSSCFNRc01UE2(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

		// Testbody
		
		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(*)))
			);

		f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());

		f_check_Conversation();
		
		f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());

		f_awaitingNOTIFY_sendReply(mw_NOTIFY_Request_MB(vc_callId, mw_MBody_XML(mw_XmlBody_CDIVN(*))));
		
		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());		
		
		// postamble
		f_IMS_postamble_withDeRegistration(vc_cSeq);

	} // end function f_AtsNIT_TC_SSS___XXSSCFNRc01UE2

	/* 
	* @desc		This is the test case function (terminating side) for TC_SSS___XXSSCFNRc01
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SSS___XXSSCFNRc01UE3(in CSeq p_cSeq_s) runs on ImsComponent {
		f_IMS_preamble_withRegistrationBasic(c_userProfile_UE3atSUThome, p_cSeq_s); // assignment of PIXIT values to component variable

		f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());

		// Testbody
		
		f_awaitingINVITE(mw_INVITE_Request_require(
			mw_Require_not_100rel
		)); 
		
		f_sendResponse(m_Response_18XonINVITE_Require_ifpresent(
			c_statusLine180,
			vc_callId, 
			vc_cSeq,
			vc_caller_From, 
			vc_caller_To, 
			vc_via,
			vc_contact,
			mw_Require_not_100rel
		));
				
		f_sendResponse(m_Response_2xxonINVITE_UE(
			c_statusLine200,
			vc_callId, 
			vc_cSeq,
			vc_caller_From, 
			vc_caller_To, 
			vc_via,vc_contact,
			f_route(),
			valueof(m_MBody_SDP(vc_sdp_local))
		));
		
		// await ACK
		f_awaitingACK(mw_ACK_Request_Base(vc_callId));

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

		f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());
		
		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
		
		// postamble
		f_IMS_postamble_withDeRegistration(vc_cSeq);
		
	} // end function f_AtsNIT_TC_SSS___XXSSCFNRc01UE3

	/* 
	* @desc		This is the test case function (originating side) for TC_SSS___XXSSCFNRc02
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SSS___XXSSCFNRc02UE1(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)
		));

		//NO 181 allowed
		
		// 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
		));
				
		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_SSS___XXSSCFNRc02UE1
	
	// UE2 does not take part in the test	

	/* 
	* @desc		This is the test case function (terminating side) for TC_SSS___XXSSCFNRc02
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SSS___XXSSCFNRc02UE3(in CSeq p_cSeq_s) runs on ImsComponent {
		f_IMS_preamble_withRegistrationBasic(c_userProfile_UE3atSUThome, p_cSeq_s); // assignment of PIXIT values to component variable

		f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());

		// Testbody
		
		f_awaitingINVITE(mw_INVITE_Request_require(
			mw_Require_not_100rel
		)); 
		
		f_sendResponse(m_Response_18XonINVITE_Require_ifpresent(
			c_statusLine180,
			vc_callId, 
			vc_cSeq,
			vc_caller_From, 
			vc_caller_To, 
			vc_via,
			vc_contact,
			mw_Require_not_100rel
		));
				
		f_sendResponse(m_Response_2xxonINVITE_UE(
			c_statusLine200,
			vc_callId, 
			vc_cSeq,
			vc_caller_From, 
			vc_caller_To, 
			vc_via,vc_contact,
			f_route(),
			valueof(m_MBody_SDP(vc_sdp_local))
		));
		
		// await ACK
		f_awaitingACK(mw_ACK_Request_Base(vc_callId));
						
		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
		
		//await BYE and send 200OK
		f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId));

		// postamble
		f_IMS_postamble_withDeRegistration(vc_cSeq);
		
	} // end function f_AtsNIT_TC_SSS___XXSSCFNRc02UE3

	/* 
	* @desc		This is the test case function (originating side) for TC_SSS___XXSSCFNRc03
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SSS___XXSSCFNRc03UE1(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)
		));
		
		f_awaitingResponse(mw_Response_PAsserted_Privacy_History(c_statusLine181,vc_callId, vc_cSeq, omit, mw_Privacy_id, omit));		

		// 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
		));
				
		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_SSS___XXSSCFNRc03UE1
		
	// UE2 does not take part in the test	

	/* 
	* @desc		This is the test case function (terminating side) for TC_SSS___XXSSCFNRc03
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SSS___XXSSCFNRc03UE3(in CSeq p_cSeq_s) runs on ImsComponent {
		
		f_AtsNIT_TC_SSS___XXSSCFNRc02UE3(p_cSeq_s);

	} // end function f_AtsNIT_TC_SSS___XXSSCFNRc03UE3

	/* 
	* @desc		This is the test case function (originating side) for TC_SSS___XXSSCFNRc04
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SSS___XXSSCFNRc04UE1(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)
		));

		//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("503")}),{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 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
		));
				
		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_SSS___XXSSCFNRc04UE1

	// UE2 does not take part in the test	

	/* 
	* @desc		This is the test case function (terminating side) for TC_SSS___XXSSCFNRc04
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SSS___XXSSCFNRc04UE3(in CSeq p_cSeq_s) runs on ImsComponent {
  		
		f_AtsNIT_TC_SSS___XXSSCFNRc02UE3(p_cSeq_s);

	} // end function f_AtsNIT_TC_SSS___XXSSCFNRc04UE3

	/* 
	* @desc		This is the test case function (originating side) for TC_SSS___XXSSCFNRc05
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SSS___XXSSCFNRc05UE1(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)
		));

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

		vc_ignore181 := false; // disable optional 181
				
		// 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_check_Conversation();
				
		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_SSS___XXSSCFNRc05UE1

	// UE2 does not take part in the test	

	/* 
	* @desc		This is the test case function (terminating side) for TC_SSS___XXSSCFNRc05
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SSS___XXSSCFNRc05UE3(in CSeq p_cSeq_s) runs on ImsComponent {
		f_IMS_preamble_withRegistrationBasic(c_userProfile_UE3atSUThome, p_cSeq_s); // assignment of PIXIT values to component variable

		f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());

		// Testbody
		
		f_awaitingINVITE(mw_INVITE_Request_HistoryInfo(
		mw_HistoryInfo(
			{mw_HistoryInfoEntry(mw_SipUrl_NumberHostParam(PX_IMS_SUT_UE2_PUBLIC_USER,PX_IMS_SUT_UE2_HOME_DOMAIN,{m_Cause("302")}),{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)
			}))); 
			
		f_sendResponse(m_Response_18XonINVITE_Require_ifpresent(
			c_statusLine180,
			vc_callId, 
			vc_cSeq,
			vc_caller_From, 
			vc_caller_To, 
			vc_via,
			vc_contact,
			mw_Require_not_100rel
		));
				
		f_sendResponse(m_Response_2xxonINVITE_UE(
			c_statusLine200,
			vc_callId, 
			vc_cSeq,
			vc_caller_From, 
			vc_caller_To, 
			vc_via,vc_contact,
			f_route(),
			valueof(m_MBody_SDP(vc_sdp_local))
		));
		
		// await ACK
		f_awaitingACK(mw_ACK_Request_Base(vc_callId));

		f_check_Conversation();
						
		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
		
		//await BYE and send 200OK
		f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId));

		// postamble
		f_IMS_postamble_withDeRegistration(vc_cSeq);
	} // end function f_AtsNIT_TC_SSS___XXSSCFNRc05UE3
		
	}//end group TP2_9_SS_CFNRc
	
	}//end group TP_2_SupplementaryServices

} // end AtsNIT_SipSip_SS_TCFunctions
 No newline at end of file