Commit 3ffd2ac1 authored by rennoch's avatar rennoch
Browse files

HOLD01-03

parent 0e93f0cd
Loading
Loading
Loading
Loading
+440 −3
Original line number Diff line number Diff line
@@ -1614,6 +1614,10 @@ module AtsNIT_SipSip_SS_TCFunctions {
		// await ACK
		f_awaitingACK(mw_ACK_Request_Base(vc_callId));

		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
		
		// session termination

		//SendBYE and await response
		f_terminateCall_UE(
			vc_requestUri, 
@@ -1623,8 +1627,6 @@ module AtsNIT_SipSip_SS_TCFunctions {
			vc_caller_To
		);
		
		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
		
		// postamble
		f_IMS_postamble_withDeRegistration(vc_cSeq);
		
@@ -1633,6 +1635,441 @@ module AtsNIT_SipSip_SS_TCFunctions {
	}//end group TP2_4_SS_TIR

	group TP2_5_HOLD {

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

		// 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
		));
		
		// 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_prDone, f_getVerdict());

		// set HOLD
		f_SIP_modSessionDirection(m_attribute_sendonly); // handling of attribute in session
		f_SendUPDATE(m_UPDATE_Request_Base(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, m_MBody_SDP(vc_sdp_local)));
		f_awaitingResponse(mw_Response_Base(c_statusLine200,vc_callId, vc_cSeq));					
		f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via));		
		f_SIP_checkSDPrespDirection(mw_attribute_recvonly);
				
		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
		
		//await BYE and send 200OK
		f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId));
		
		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
		
		// postamble
		f_IMS_postamble_withDeRegistration(vc_cSeq);
	} // end function f_AtsNIT_TC_SS___XXSSCH01UE1

	/* 
	* @desc		This is the test case function (terminating side) for TC_SS___XXSSCH01
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SS___XXSSCH01UE2(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_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_prDone, f_getVerdict());
		
				
		//Awaiting UPDATE, reply 200
		f_awaitingUPDATE(mw_UPDATE_Request_Base(vc_callId));
		f_SIP_checksetSDPreqDirection(mw_attribute_sendonly,m_attribute_recvonly); // handling of attribute in media description
		f_sendResponse(m_Response_2xxonUPDATE(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))));
		f_awaitingACK(mw_ACK_Request_Base(vc_callId));

		
		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
		);
		
		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
		
		// postamble
		f_IMS_postamble_withDeRegistration(vc_cSeq);
	} // end function f_AtsNIT_TC_SS___XXSSCH01UE2

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

		// 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
		));
		
		// 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_prDone, f_getVerdict());

		// await HOLD, reply 200
		f_awaitingUPDATE(mw_UPDATE_Request_Base(vc_callId));
		f_SIP_checksetSDPreqDirection(mw_attribute_sendonly,m_attribute_recvonly); // handling of attribute in media description
		f_sendResponse(m_Response_2xxonUPDATE(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))));
		f_awaitingACK(mw_ACK_Request_Base(vc_callId));

		// set INACTIIVE
		f_SIP_modSessionDirection(m_attribute_inactive); // handling of attribute in session
		f_SendUPDATE(m_UPDATE_Request_Base(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, m_MBody_SDP(vc_sdp_local)));
		f_awaitingResponse(mw_Response_Base(c_statusLine200,vc_callId, vc_cSeq));					
		f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via));		
		f_SIP_checkSDPrespDirection(mw_attribute_inactive);
				
		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
		
		//await BYE and send 200OK
		f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId));
		
		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
		
		// postamble
		f_IMS_postamble_withDeRegistration(vc_cSeq);
	} // end function f_AtsNIT_TC_SS___XXSSCH02UE1

	/* 
	* @desc		This is the test case function (terminating side) for TC_SS___XXSSCH02
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SS___XXSSCH02UE2(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_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_prDone, f_getVerdict());
		
		// SET HOLD
		f_SIP_modSessionDirection(m_attribute_sendonly); // handling of attribute in session
		f_SendUPDATE(m_UPDATE_Request_Base(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, m_MBody_SDP(vc_sdp_local)));
		f_awaitingResponse(mw_Response_Base(c_statusLine200,vc_callId, vc_cSeq));					
		f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via));		
		f_SIP_checkSDPrespDirection(mw_attribute_recvonly);
				
		//Awaiting UPDATE INACTIVE, reply 200
		f_awaitingUPDATE(mw_UPDATE_Request_Base(vc_callId));
		f_SIP_checksetSDPreqDirection(mw_attribute_inactive,m_attribute_inactive); // handling of attribute in media description
		f_sendResponse(m_Response_2xxonUPDATE(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))));
		f_awaitingACK(mw_ACK_Request_Base(vc_callId));

		
		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
		);
		
		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
		
		// postamble
		f_IMS_postamble_withDeRegistration(vc_cSeq);
	} // end function f_AtsNIT_TC_SS___XXSSCH02UE2

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

		// 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
		));
		
		// 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_prDone, f_getVerdict());

		// set HOLD
		f_SIP_modSessionDirection(m_attribute_sendonly); // handling of attribute in session
		f_SendUPDATE(m_UPDATE_Request_Base(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, m_MBody_SDP(vc_sdp_local)));
		f_awaitingResponse(mw_Response_Base(c_statusLine200,vc_callId, vc_cSeq));					
		f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via));		
		f_SIP_checkSDPrespDirection(mw_attribute_recvonly);
				
		// unset HOLD
		f_SIP_modSessionDirection(m_attribute_sendrecv); // handling of attribute in session
		f_SendUPDATE(m_UPDATE_Request_Base(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, m_MBody_SDP(vc_sdp_local)));
		f_awaitingResponse(mw_Response_Base(c_statusLine200,vc_callId, vc_cSeq));					
		f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via));		
		f_SIP_checkSDPrespDirection(mw_attribute_sendrecv);

		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
		
		//await BYE and send 200OK
		f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId));
		
		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
		
		// postamble
		f_IMS_postamble_withDeRegistration(vc_cSeq);
	} // end function f_AtsNIT_TC_SS___XXSSCH03UE1

	/* 
	* @desc		This is the test case function (terminating side) for TC_SS___XXSSCH03
	* @param	p_CSeq_s Transaction Id
	*/
	function f_AtsNIT_TC_SS___XXSSCH03UE2(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_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_prDone, f_getVerdict());
		
				
		//Awaiting UPDATE, reply 200
		f_awaitingUPDATE(mw_UPDATE_Request_Base(vc_callId));
		f_SIP_checksetSDPreqDirection(mw_attribute_sendonly,m_attribute_recvonly); // handling of attribute in media description
		f_sendResponse(m_Response_2xxonUPDATE(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))));
		f_awaitingACK(mw_ACK_Request_Base(vc_callId));

		//Awaiting UPDATE (unset), reply 200
		f_awaitingUPDATE(mw_UPDATE_Request_Base(vc_callId));
		f_SIP_checksetSDPreqDirection(mw_attribute_sendrecv,m_attribute_sendrecv); // handling of attribute in media description
		f_sendResponse(m_Response_2xxonUPDATE(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))));
		f_awaitingACK(mw_ACK_Request_Base(vc_callId));

		
		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
		);
		
		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
		
		// postamble
		f_IMS_postamble_withDeRegistration(vc_cSeq);
	} // end function f_AtsNIT_TC_SS___XXSSCH03UE2


	}//end group TP2_5_HOLD
	
	group TP2_6_SS_CFU {