Commit 5effb903 authored by rennoch's avatar rennoch
Browse files

new f_IMS_TC_602_001

parent 079f46f0
Loading
Loading
Loading
Loading
+78 −0
Original line number Diff line number Diff line
@@ -10370,6 +10370,84 @@ module SipIsup_IMS_TCFunctions {
			} // end group TP601_CLI
			
			group TP602_HOLD {
			 
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_602_001
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_602_001(in CSeq p_cSeq_s) runs on ImsComponent {
				
					// PREAMBLE
					// IMS component interface initialization
					f_IMS_preamble_MGCF(c_userProfile_ICSCFwithHomeUE, p_cSeq_s); // assignment of PIXIT values to component variable

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

					//Awaiting INVITE, reply 180+200
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					f_sendResponse(m_Response_18XonINVITE(c_statusLine180,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));
					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));



					//Awaiting reINVITE, reply 200
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					// check SDP a=sendonly
					if (not (ispresent(vc_request.messageBody) and f_check_attribute(vc_request.messageBody.sdpMessageBody,mw_attribute_sendonly))) 
						{setverdict(fail);};
					// response to Invite
     				f_SIP_modMediaDirection(1, m_attribute_recvonly); // handling of attribute in media description
					f_SIP_modSessionDirection(m_attribute_recvonly); // handling of attribute in session
					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_sync1, f_getVerdict());// sync point 1	
					
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					// check SDP a=sendrecv
					if (not (ispresent(vc_request.messageBody) and f_check_attribute(vc_request.messageBody.sdpMessageBody,mw_attribute_sendrecv))) 
						{setverdict(fail);};
					// response to Invite
					f_SIP_modMediaDirection(1, m_attribute_sendrecv); // handling of attribute in media description
					f_SIP_modSessionDirection(m_attribute_sendrecv); // handling of attribute in session
					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_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));		
					// check SDP a=recvonly
					if (not (ispresent(vc_request.messageBody) and f_check_attribute(vc_request.messageBody.sdpMessageBody,mw_attribute_recvonly))) 
						{setverdict(fail);};						
					
					f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());// sync point 2	
					
					
					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));		
					// check SDP a=recvonly
					if (not (ispresent(vc_request.messageBody) and f_check_attribute(vc_request.messageBody.sdpMessageBody,mw_attribute_sendrecv))) 
						{setverdict(fail);};								
					

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

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

					// POSTAMBLE
					f_SIP_postamble_IMS1_withoutRegistration ()
					
				}// end function f_IMS_TC_602_001
 
			 
			} // end group TP602_HOLD
			
			group TP603_TP {