Commit 9f1d849b authored by pintar's avatar pintar
Browse files

Test group 502

parent be6e6cc9
Loading
Loading
Loading
Loading
+287 −21
Original line number Diff line number Diff line
@@ -9929,55 +9929,321 @@ module SipIsup_IMS_TCFunctions {
					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));		
					
					// First Re-INVITE
					vc_sdp_local := valueof(m_SDP_media_attr_preconditions(valueof(m_media_dynPT(PX_SIP_SDP_dyn, PX_SIP_SDP_encoding)), vc_userprofile, {m_attribute_sendonly}));
					// First Re-INVITE and reply 200 OK	
					f_SIP_modSessionDirection(m_attribute_sendonly); // handling of attribute in session
					LibIms_Steps.f_setHeadersReINVITE_(vc_cSeq);
					f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, m_Supported_prec, omit, 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_sync1, f_getVerdict());// sync point 1
							
					// Second Re-INVITE and reply 200 OK
					f_SIP_modSessionDirection(m_attribute_sendrecv); // handling of attribute in session
					LibIms_Steps.f_setHeadersReINVITE_(vc_cSeq);
					f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, m_Supported_prec, omit, 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_sync2, f_getVerdict());// sync point 2
					
					// Third Re-INVITE and reply 200 OK
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					f_SIP_checksetSDPreqDirection(mw_attribute_sendonly,m_attribute_recvonly); // handling of attribute in media description
					f_sendResponse(m_Response_2xxonINVITE(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_sync3, f_getVerdict());// sync point 3
					
					// Fourth Re-INVITE and reply 200 OK
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					f_SIP_checksetSDPreqDirection(mw_attribute_sendrecv,m_attribute_sendrecv); // handling of attribute in media description
					f_sendResponse(m_Response_2xxonINVITE(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));
					
					//Send BYE and awaiting response
					f_terminateCall_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To);
					
					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
					
					f_SIP_postamble_IMS1_withoutRegistration();
				} // end function f_IMS_TC_502_001
				
				/* 
				* @desc		This is the test case function (SIP side) for TC_502_002
				* @param	p_CSeq_s Transaction Id
				*/
				function f_IMS_TC_502_002(in CSeq p_cSeq_s) runs on ImsComponent {

					//c_userProfile_ICSCFwithHomeUE or c_userProfile_IBCFwithHomeUE
					f_IMS_preamble_MGCF(c_userProfile_ICSCFwithHomeUE, p_cSeq_s); // assignment of PIXIT values to component variable
		
					f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
					// Testbody
					
					// 	INVITE UE1
					LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_ISUP);
					f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, omit, omit, m_MBody_SDP(vc_sdp_local)));
					
					f_awaitingResponse(mw_Response_Base(c_statusLine180,vc_callId, vc_cSeq));
					
					f_check_Ringing();
					
					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_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point 1
					
					//	send UPDATE, await 200					
					f_SIP_modSessionDirection(m_attribute_sendonly); // handling of attribute in session
					f_SendUPDATE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, m_Supported_prec, omit, 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_sync2, f_getVerdict());// sync point 2	

					//send UPDATE, await 200					
					f_SIP_modSessionDirection(m_attribute_sendrecv); // handling of attribute in session
					f_SendUPDATE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, m_Supported_prec, omit, 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);
					
					//Send BYE and awaiting response
					f_terminateCall_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To);
					
					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
					
					f_SIP_postamble_IMS1_withoutRegistration();
				} // end function f_IMS_TC_502_002
				
				/* 
				* @desc		This is the test case function (SIP side) for TC_502_003
				* @param	p_CSeq_s Transaction Id
				*/
				function f_IMS_TC_502_003(in CSeq p_cSeq_s) runs on ImsComponent {
					f_IMS_TC_502_002(p_cSeq_s);
				} // end function f_IMS_TC_502_003
				
				/* 
				* @desc		This is the test case function (SIP side) for TC_502_004
				* @param	p_CSeq_s Transaction Id
				*/
				function f_IMS_TC_502_004(in CSeq p_cSeq_s) runs on ImsComponent {

					//c_userProfile_ICSCFwithHomeUE or c_userProfile_IBCFwithHomeUE
					f_IMS_preamble_MGCF(c_userProfile_ICSCFwithHomeUE, p_cSeq_s); // assignment of PIXIT values to component variable
		
					f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
					// Testbody
					
					// 	INVITE UE1
					LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_ISUP);
					f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, omit, omit, m_MBody_SDP(vc_sdp_local)));
					
					f_awaitingResponse(mw_Response_Base(c_statusLine180,vc_callId, vc_cSeq));
					

					f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point 1
					
					//	send UPDATE, await 200					
					f_SIP_modSessionDirection(m_attribute_sendonly); // handling of attribute in session
					f_SendUPDATE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, m_Supported_prec, omit, 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_sync2, f_getVerdict());// sync point 2	

					//send UPDATE, await 200					
					f_SIP_modSessionDirection(m_attribute_sendrecv); // handling of attribute in session
					f_SendUPDATE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, m_Supported_prec, omit, 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);
					
					//Send BYE and awaiting response
					f_terminateCall_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To);
					
					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
					
					f_SIP_postamble_IMS1_withoutRegistration();
				} // end function f_IMS_TC_502_004
				
				/* 
				* @desc		This is the test case function (SIP side) for TC_502_005
				* @param	p_CSeq_s Transaction Id
				*/
				function f_IMS_TC_502_005(in CSeq p_cSeq_s) runs on ImsComponent {

					//c_userProfile_ICSCFwithHomeUE or c_userProfile_IBCFwithHomeUE
					f_IMS_preamble_MGCF(c_userProfile_ICSCFwithHomeUE, p_cSeq_s); // assignment of PIXIT values to component variable
		
					f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
					// Testbody
					
					// 	INVITE UE1
					LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_ISUP);
					f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, omit, omit, m_MBody_SDP(vc_sdp_local)));
					
					f_awaitingResponse(mw_Response_Base(c_statusLine180,vc_callId, vc_cSeq));
					
					f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point 1	

					//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_sync2, f_getVerdict());// sync point 2	

					// check SDP a=recvonly
					if (not (ispresent(vc_response.messageBody) and f_check_attribute(vc_response.messageBody.sdpMessageBody,mw_attribute_recvonly))) 
					{setverdict(fail);};
					//Awaiting UPDATE, 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));
					
					// Second Re-INVITE
					vc_sdp_local := valueof(m_SDP_media_attr_preconditions(valueof(m_media_dynPT(PX_SIP_SDP_dyn, PX_SIP_SDP_encoding)), vc_userprofile, {m_attribute_sendrecv}));
					//Send BYE and awaiting response
					f_terminateCall_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To);
					
					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
					
					f_SIP_postamble_IMS1_withoutRegistration();
				} // end function f_IMS_TC_502_005
				
				/* 
				* @desc		This is the test case function (SIP side) for TC_502_006
				* @param	p_CSeq_s Transaction Id
				*/
				function f_IMS_TC_502_006(in CSeq p_cSeq_s) runs on ImsComponent {

					//c_userProfile_ICSCFwithHomeUE or c_userProfile_IBCFwithHomeUE
					f_IMS_preamble_MGCF(c_userProfile_ICSCFwithHomeUE, p_cSeq_s); // assignment of PIXIT values to component variable
		
					f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
					// Testbody
					
					// 	INVITE UE1
					LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_ISUP);
					f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, omit, omit, m_MBody_SDP(vc_sdp_local)));
					
					f_awaitingResponse(mw_Response_Base(c_statusLine180,vc_callId, vc_cSeq));
					
					f_check_Ringing();
					
					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));		
					
					// First Re-INVITE and reply 200 OK	
					f_SIP_modSessionDirection(m_attribute_sendonly); // handling of attribute in session
					LibIms_Steps.f_setHeadersReINVITE_(vc_cSeq);
					f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, m_Supported_prec, omit, 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);
					
					// check SDP a=recvonly
					if (not (ispresent(vc_response.messageBody) and f_check_attribute(vc_response.messageBody.sdpMessageBody,mw_attribute_recvonly))) 
					{setverdict(fail);};
					f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point 1
							
					// Third Re-INVITE
					// Second Re-INVITE and reply 200 OK
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					f_SIP_checksetSDPreqDirection(mw_attribute_inactive,m_attribute_inactive); // handling of attribute in media description
					f_sendResponse(m_Response_2xxonINVITE(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_sync2, f_getVerdict());// sync point 2
					
					// Third Re-INVITE and reply 200 OK
					f_SIP_modSessionDirection(m_attribute_recvonly); // handling of attribute in session
					LibIms_Steps.f_setHeadersReINVITE_(vc_cSeq);
					f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, m_Supported_prec, omit, 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_sendonly);
					
					// check SDP a=recvonly
					if (not (ispresent(vc_request.messageBody) and f_check_attribute(vc_request.messageBody.sdpMessageBody,mw_attribute_sendonly))) 
					{setverdict(fail);};
					f_selfOrClientSyncAndVerdict(c_sync3, f_getVerdict());// sync point 3
					
					vc_sdp_local := valueof(m_SDP_media_attr_preconditions(valueof(m_media_dynPT(PX_SIP_SDP_dyn, PX_SIP_SDP_encoding)), vc_userprofile, {m_attribute_recvonly}));		
					// Fourth Re-INVITE and reply 200 OK
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					f_SIP_checksetSDPreqDirection(mw_attribute_sendrecv,m_attribute_sendrecv); // handling of attribute in media description
					f_sendResponse(m_Response_2xxonINVITE(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));
					
					// Fourth Re-INVITE
					//Send BYE and awaiting response
					f_terminateCall_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To);
					
					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
					
					f_SIP_postamble_IMS1_withoutRegistration();
				} // end function f_IMS_TC_502_006
				
				/* 
				* @desc		This is the test case function (SIP side) for TC_502_007
				* @param	p_CSeq_s Transaction Id
				*/
				function f_IMS_TC_502_007(in CSeq p_cSeq_s) runs on ImsComponent {

					//c_userProfile_ICSCFwithHomeUE or c_userProfile_IBCFwithHomeUE
					f_IMS_preamble_MGCF(c_userProfile_ICSCFwithHomeUE, p_cSeq_s); // assignment of PIXIT values to component variable
		
					f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
					// Testbody
					
					// 	INVITE UE1
					LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_ISUP);
					f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, omit, omit, m_MBody_SDP(vc_sdp_local)));
					
					f_awaitingResponse(mw_Response_Base(c_statusLine180,vc_callId, vc_cSeq));
					
					f_check_Ringing();
					
					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));		
					
					// First Re-INVITE and reply 200 OK	
					f_SIP_modSessionDirection(m_attribute_sendonly); // handling of attribute in session
					LibIms_Steps.f_setHeadersReINVITE_(vc_cSeq);
					f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, m_Supported_prec, omit, 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_sync1, f_getVerdict());// sync point 1
							
					// Second Re-INVITE and reply 200 OK
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					f_SIP_checksetSDPreqDirection(mw_attribute_inactive,m_attribute_inactive); // handling of attribute in media description
					f_sendResponse(m_Response_2xxonINVITE(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));
					
					// check SDP a=sendrecv
					if (not (ispresent(vc_request.messageBody) and f_check_attribute(vc_request.messageBody.sdpMessageBody,mw_attribute_sendrecv))) 
					{setverdict(fail);};
					f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());// sync point 2
					
					vc_sdp_local := valueof(m_SDP_media_attr_preconditions(valueof(m_media_dynPT(PX_SIP_SDP_dyn, PX_SIP_SDP_encoding)), vc_userprofile, {m_attribute_sendrecv}));		
					// Third Re-INVITE and reply 200 OK
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					f_SIP_checksetSDPreqDirection(mw_attribute_recvonly,m_attribute_sendonly); // handling of attribute in media description
					f_sendResponse(m_Response_2xxonINVITE(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_sync3, f_getVerdict());// sync point 3
					
					// Fourth Re-INVITE and reply 200 OK
					f_SIP_modSessionDirection(m_attribute_sendrecv); // handling of attribute in session
					LibIms_Steps.f_setHeadersReINVITE_(vc_cSeq);
					f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, m_Supported_prec, omit, 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);
					
					//Send BYE and awaiting response
					f_terminateCall_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To);
					
					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
					
					f_SIP_postamble_IMS1_withoutRegistration();
				} // end function f_IMS_TC_502_001
				} // end function f_IMS_TC_502_007
				
			} // end group TP502_HOLD