Commit c9c1b186 authored by rennoch's avatar rennoch
Browse files

MW_SUB_04

parent b8927032
Loading
Loading
Loading
Loading
+45 −8
Original line number Diff line number Diff line
@@ -4690,12 +4690,12 @@ module AtsIms_Mw_TCFunctions
			// await ACK
			f_awaitingACK(mw_ACK_Request_Base(vc_callId));
	
			//await BYE and send 200OK
			f_awaitingBYE_sendReply_PassOnTimeout(mw_BYE_Request_Base(vc_callId));
			
			f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done
			// POSTAMBLE

			//await BYE and send 200OK
			f_awaitingBYE_sendReply_PassOnTimeout(mw_BYE_Request_Base(vc_callId));
						
			// send REGISTER, await 401, send REGISTER, await 200 OK	
			f_RemoveRegistration(vc_cSeq); // deregistration in SUT
			f_SIP_postamble_UE1_withoutRegistration();
@@ -4707,9 +4707,46 @@ module AtsIms_Mw_TCFunctions
		*  @param	p_cSeq_s 
		*/
		function f_TC_IMST2_MW_SUB_04_IMS(in CSeq p_cSeq_s) runs on ImsComponent {
			f_IMS_preamble_woRegistration(c_userProfile_SCSCFwithHomeUE, p_cSeq_s);
			f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_ICSCF);
			//TODO

			var CallId v_orig_callId;
			var CSeq v_CSeq;
			
			f_IMS_preamble_woRegistration(c_userProfile_ICSCFwithHomeUE, p_cSeq_s);
			f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_SCSCF);
	
			f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
	
			// Testbody
	
			// prepare and send INVITE UE1
			LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE1atSUThome);
			f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, omit, omit, m_pChargingVector_origIoi_fixedValue(vc_userprofile.homeDomain), valueof(m_MBody_SDP(vc_sdp_local))));
	
			// await response - 200 ...
			f_awaitingResponse(mw_Response_Base(c_statusLine200,vc_callId, vc_cSeq));
			// send ACK
			LibSip_Steps.f_setHeadersACK();
			f_SendACK(m_ACK_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via));
		
			// Sending of a BYE request with wrong Call-ID
			v_orig_callId := vc_callId;
			
			vc_callId.callid:=f_getRndCallId(p_cSeq_s);
			v_CSeq 			 := vc_cSeq;
			v_CSeq.seqNumber := p_cSeq_s.seqNumber + 10;
			v_CSeq.method    :=  "BYE";
			
			f_SendBYE(m_BYE_Request_IMS(vc_requestUri, vc_callId, v_CSeq, vc_from, vc_to, vc_via, vc_route));
			
			// await response - 403 ...
			f_awaitingResponse(mw_Response_Base(c_statusLine403, ?, vc_cSeq));

			f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
			//Postamble
	
			// send original BYE await response to clean the session
			f_terminateCall_IMS(vc_requestUri, v_orig_callId, vc_cSeq, vc_caller_From, vc_caller_To);
	
			f_SIP_postamble_IMS1_withoutRegistration ();
		} // end function f_TC_IMST2_MW_SUB_04_IMS