Commit 2e693435 authored by poglitsch's avatar poglitsch
Browse files

call waiting test cases added

parent 0632e10d
Loading
Loading
Loading
Loading
+598 −0
Original line number Diff line number Diff line
@@ -14985,6 +14985,604 @@ module AtsNIT_SipSip_SS_TCFunctions {
		
	}//end group TP2_13_SS_ECT
	
	group TP2_14_SS_CW {
		/* 
    	* @desc		This is the test case function (originating side) for f_AtsNIT_TC_SS___XXSSCW_01UE1
    	* @param	p_CSeq_s Transaction Id
    	*/
    	function f_AtsNIT_TC_SS___XXSSCW_01UE1(in CSeq p_cSeq_s) runs on ImsComponent {
    		var SessionDialog v_UE2_Session;
    		
    		f_IMS_preamble_withRegistrationBasic(c_userProfile_UE1atSUThome, p_cSeq_s); // assignment of PIXIT values to component variable
    		
    		f_selfOrClientSyncAndVerdict(c_initDone, f_getVerdict());
    		
    		// establish call with UE2
    		f_establishCall(vc_cSeq, c_userProfile_UE2atSUThome);
    		v_UE2_Session := f_saveSession();
    		
    		f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
    		
    		// Testbody
    
    		// 	INVITE UE1
    		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)
    		));
    		
    		// POSTAMBLE
    		f_awaitingResponse(mw_Response_Base(c_statusLine486, 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_tbDone, f_getVerdict());
    		
    		f_loadSession(v_UE2_Session);
    		
    		f_terminateCall_UE(
    			vc_requestUri, 
    			vc_callId, 
    			vc_cSeq, 
    			vc_caller_From, 
    			vc_caller_To
    		);
    		
    		f_IMS_postamble_withDeRegistration(vc_cSeq);
    	} // end function f_AtsNIT_TC_SS___XXSSCW_01UE1
    
    	/* 
    	* @desc		This is the test case function (terminating side) for f_AtsNIT_TC_SS___XXSSCW_01UE2
    	* @param	p_CSeq_s Transaction Id
    	*/
    	function f_AtsNIT_TC_SS___XXSSCW_01UE2(in CSeq p_cSeq_s) runs on ImsComponent {
    		var SessionDialog v_UE1_Session;
    		
    		f_IMS_preamble_withRegistrationBasic(c_userProfile_UE2atSUThome, p_cSeq_s); // assignment of PIXIT values to component variable
    		
    		f_selfOrClientSyncAndVerdict(c_initDone, f_getVerdict());
    		
    		// accept call form UE1
    		f_acceptCall();
    		
    		v_UE1_Session := f_saveSession();
    		
    		f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
    		
    		// Testbody
    		
    		//Awaiting INVITE	
    		f_awaitingINVITE(mw_INVITE_Request_MB(
    			?,
    			mw_MBody_MIME_Ims3gpp(?, mw_Ims_3gpp_CW)
    		));
    		
    		// postamle
    		f_sendResponse(m_Response_4XXonINVITE_UE(
    			c_statusLine486,
    			vc_callId, 
    			vc_cSeq,
    			vc_caller_From, 
    			vc_caller_To, 
    			vc_via,
    			vc_contact
    		));
    		
    		// await ACK
			f_awaitingACK(mw_ACK_Request_Base(vc_callId));
    		
    		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
    		
    		f_loadSession(v_UE1_Session);
    		
    		//await BYE and send 200OK
    		f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId));
    
    		f_IMS_postamble_withDeRegistration(vc_cSeq);
    	} // end function f_AtsNIT_TC_SS___XXSSCW_01UE2
    	
    	/* 
    	* @desc		This is the test case function (originating side) for f_AtsNIT_TC_SS___XXSSCW_02UE1
    	* @param	p_CSeq_s Transaction Id
    	*/
    	function f_AtsNIT_TC_SS___XXSSCW_02UE1(in CSeq p_cSeq_s) runs on ImsComponent {
    		var SessionDialog v_UE2_Session;
    		
    		f_IMS_preamble_withRegistrationBasic(c_userProfile_UE1atSUThome, p_cSeq_s); // assignment of PIXIT values to component variable
    		
    		f_selfOrClientSyncAndVerdict(c_initDone, f_getVerdict());
    		
    		// establish call with UE2
    		f_establishCall(vc_cSeq, c_userProfile_UE2atSUThome);
    		v_UE2_Session := f_saveSession();
    		
    		f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
    		
    		// Testbody
    
    		// 	INVITE UE1
    		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)
    		));
    
    		// POSTAMBLE
    		f_awaitingResponse(mw_Response_Base(c_statusLine486, 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_tbDone, f_getVerdict());
    		
    		f_loadSession(v_UE2_Session);
    		
    		f_terminateCall_UE(
    			vc_requestUri, 
    			vc_callId, 
    			vc_cSeq, 
    			vc_caller_From, 
    			vc_caller_To
    		);
    		
    		f_IMS_postamble_withDeRegistration(vc_cSeq);
    	} // end function f_AtsNIT_TC_SS___XXSSCW_02UE1
    
    	/* 
    	* @desc		This is the test case function (terminating side) for f_AtsNIT_TC_SS___XXSSCW_02UE2
    	* @param	p_CSeq_s Transaction Id
    	*/
    	function f_AtsNIT_TC_SS___XXSSCW_02UE2(in CSeq p_cSeq_s) runs on ImsComponent {
    		var SessionDialog v_UE1_Session;
    		
    		f_IMS_preamble_withRegistrationBasic(c_userProfile_UE2atSUThome, p_cSeq_s); // assignment of PIXIT values to component variable
    		
    		f_selfOrClientSyncAndVerdict(c_initDone, f_getVerdict());
    		
    		// accept call form UE1
    		f_acceptCall();
    		
    		v_UE1_Session := f_saveSession();
    		
    		f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
    		
    		// Testbody
    		
    		//Awaiting INVITE	
    		f_awaitingINVITE(mw_INVITE_Request_MB(
    			?,
    			mw_MBody_MIME_Ims3gpp(?, mw_Ims_3gpp_CW)
    		));
    		
    		f_sendResponse(m_Response_4XXonINVITE_UE(
    			c_statusLine415,
    			vc_callId, 
    			vc_cSeq,
    			vc_caller_From, 
    			vc_caller_To, 
    			vc_via,
    			vc_contact
    		));
    		
    		// await ACK
			f_awaitingACK(mw_ACK_Request_Base(vc_callId));
    		
    		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
    		
    		// postamle
    		f_loadSession(v_UE1_Session);
    		
    		//await BYE and send 200OK
    		f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId));
    
    		f_IMS_postamble_withDeRegistration(vc_cSeq);
    	} // end function f_AtsNIT_TC_SS___XXSSCW_02UE2
    	
    	/* 
    	* @desc		This is the test case function (originating side) for f_AtsNIT_TC_SS___XXSSCW_03UE1
    	* @param	p_CSeq_s Transaction Id
    	*/
    	function f_AtsNIT_TC_SS___XXSSCW_03UE1(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
    
    		// 	INVITE UE1
    		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
    		f_awaitingResponse(mw_Response_AlertInfo(
    			c_statusLine180,
    			vc_callId, 
    			vc_cSeq,
    			mw_AlertInfo("urn:alert:call-waiting")
    		));
    		
    		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
    		
    		// POSTAMBLE
    		f_cancelCall(m_CANCEL_Request_UE(
    			vc_requestUri, 
    			vc_callId, 
    			vc_cSeq, 
    			vc_caller_From, 
    			vc_caller_To, 
    			vc_via, 
    			vc_route
    		));
    		
    		f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
    		
    		f_IMS_postamble_withDeRegistration(vc_cSeq);
    	} // end function f_AtsNIT_TC_SS___XXSSCW_03UE1
    
    	/* 
    	* @desc		This is the test case function (terminating side) for f_AtsNIT_TC_SS___XXSSCW_03UE2
    	* @param	p_CSeq_s Transaction Id
    	*/
    	function f_AtsNIT_TC_SS___XXSSCW_03UE2(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
    		
    		f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
    		
    		// Testbody
    		
    		// await INVITE 
			f_awaitingINVITE(mw_INVITE_Request_Base);
    		
    		// send 180 Ringing
			f_sendResponse(m_Response_18XonINVITE_AlertInfo(
				c_statusLine180,
				vc_callId, 
				vc_cSeq,
				vc_caller_From, 
				vc_caller_To, 
				vc_via,
				m_AlertInfo("urn:alert:call-waiting")
			));
			
			f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
			
			// postamle
			f_awaitingCANCEL(mw_CANCEL_Request_Base(vc_callId));
			f_sendResponse(m_Response_onCANCEL(
				c_statusLine200,
				vc_callId, 
				vc_cSeq,
				vc_caller_From, 
				vc_caller_To, 
				vc_via,
				vc_contact,
				f_route()
			));
			
			f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
    
    		f_IMS_postamble_withDeRegistration(vc_cSeq);
    	} // end function f_AtsNIT_TC_SS___XXSSCW_03UE2
    	
    	
    	/* 
    	* @desc		This is the test case function (originating side) for f_AtsNIT_TC_SS___XXSSCW_04UE1
    	* @param	p_CSeq_s Transaction Id
    	*/
    	function f_AtsNIT_TC_SS___XXSSCW_04UE1(in CSeq p_cSeq_s) runs on ImsComponent {
    		var SessionDialog v_UE2_Session1;
    		var SessionDialog v_UE2_Session2;
    		
    		f_IMS_preamble_withRegistrationBasic(c_userProfile_UE1atSUThome, p_cSeq_s); // assignment of PIXIT values to component variable
    		
    		f_selfOrClientSyncAndVerdict(c_initDone, f_getVerdict());
    		
    		// establish call with UE2
    		f_establishCall(vc_cSeq, c_userProfile_UE2atSUThome);
    		v_UE2_Session1 := f_saveSession();
    		
    		f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
    		
    		// Testbody
    
    		// 	INVITE UE1
    		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)
    		));
    		
    		v_UE2_Session2 := f_saveSession();
    		
    		f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());
    		
    		f_loadSession(v_UE2_Session1);
    		
    		f_terminateCall_UE(
    			vc_requestUri, 
    			vc_callId, 
    			vc_cSeq, 
    			vc_caller_From, 
    			vc_caller_To
    		);
    		
    		f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());
    		f_loadSession(v_UE2_Session2);
    		
    		// await 180 response
    		f_awaitingResponse(mw_Response_Base(
    			c_statusLine180,
    			vc_callId, 
    			vc_cSeq
    		));
			
			// await 200 OK response
    		f_awaitingOkResponse(p_cSeq_s);
			
			// send ACK
    		f_SendACK(m_ACK_Request_Base(
    			vc_requestUri, 
    			vc_callId, 
    			vc_cSeq, 
    			vc_from, 
    			vc_to, 
    			vc_via
    		));
    
    		f_selfOrClientSyncAndVerdict(c_sync3, f_getVerdict());
    		
    		f_check_Conversation();
    		
    		f_terminateCall_UE(
    			vc_requestUri, 
    			vc_callId, 
    			vc_cSeq, 
    			vc_caller_From, 
    			vc_caller_To
    		);
    		
    		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
    		
    		f_IMS_postamble_withDeRegistration(vc_cSeq);
    	} // end function f_AtsNIT_TC_SS___XXSSCW_04UE1
    
    	/* 
    	* @desc		This is the test case function (terminating side) for f_AtsNIT_TC_SS___XXSSCW_04UE2
    	* @param	p_CSeq_s Transaction Id
    	*/
    	function f_AtsNIT_TC_SS___XXSSCW_04UE2(in CSeq p_cSeq_s) runs on ImsComponent {
    		var SessionDialog v_UE1_Session1;
    		var SessionDialog v_UE1_Session2;
    		
    		f_IMS_preamble_withRegistrationBasic(c_userProfile_UE2atSUThome, p_cSeq_s); // assignment of PIXIT values to component variable
    		
    		f_selfOrClientSyncAndVerdict(c_initDone, f_getVerdict());
    		
    		// accept call form UE1
    		f_acceptCall();
    		
    		v_UE1_Session1 := f_saveSession();
    		
    		f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
    		
    		// Testbody
    		
    		//Awaiting INVITE	
    		f_awaitingINVITE(mw_INVITE_Request_MB(
    			?,
    			mw_MBody_MIME_Ims3gpp(?, mw_Ims_3gpp_CW)
    		));
    		
    		v_UE1_Session2 := f_saveSession();
    		
    		f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());
    		
    		f_loadSession(v_UE1_Session1);
    		
    		//await BYE and send 200OK
    		f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId));
    		
    		f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());
    		
    		f_loadSession(v_UE1_Session2);
    		
    		// send 180 Ringing
			f_sendResponse(m_Response_18XonINVITE(
				c_statusLine180,
				vc_callId, 
				vc_cSeq,
				vc_caller_From, 
				vc_caller_To, 
				vc_via,
				vc_contact
			));
			
			// send 200 OK
			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_sync3, f_getVerdict());
    		
    		f_check_Conversation();
    		
    		//await BYE and send 200OK
    		f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId));
    		
    		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
    
    		f_IMS_postamble_withDeRegistration(vc_cSeq);
    	} // end function f_AtsNIT_TC_SS___XXSSCW_04UE2
    	
    	
    	/* 
    	* @desc		This is the test case function (originating side) for f_AtsNIT_TC_SS___XXSSCW_05UE1
    	* @param	p_CSeq_s Transaction Id
    	*/
    	function f_AtsNIT_TC_SS___XXSSCW_05UE1(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
    
    		// 	INVITE UE1
    		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
    		f_awaitingResponse(mw_Response_AlertInfo(
    			c_statusLine180,
    			vc_callId, 
    			vc_cSeq,
    			mw_AlertInfo("urn:alert:call-waiting")
    		));
    		
    		f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());
    		
    		f_check_AnnouncementUE_A();
    		
    		// await 200 OK response
    		f_awaitingOkResponse(p_cSeq_s);
			
			// send ACK
    		f_SendACK(m_ACK_Request_Base(
    			vc_requestUri, 
    			vc_callId, 
    			vc_cSeq, 
    			vc_from, 
    			vc_to, 
    			vc_via
    		));	
    		
    		f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());
    		
    		f_check_Conversation();
    		
    		f_selfOrClientSyncAndVerdict(c_sync3, f_getVerdict());
    		
    		f_terminateCall_UE(
    			vc_requestUri, 
    			vc_callId, 
    			vc_cSeq, 
    			vc_caller_From, 
    			vc_caller_To
    		);
    		
    		f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
    		
    		f_IMS_postamble_withDeRegistration(vc_cSeq);
    	} // end function f_AtsNIT_TC_SS___XXSSCW_05UE1
    
    	/* 
    	* @desc		This is the test case function (terminating side) for f_AtsNIT_TC_SS___XXSSCW_05UE2
    	* @param	p_CSeq_s Transaction Id
    	*/
    	function f_AtsNIT_TC_SS___XXSSCW_05UE2(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
    		
    		f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
    		
    		// Testbody
    		
    		// await INVITE 
			f_awaitingINVITE(mw_INVITE_Request_Base);
    		
    		// send 180 Ringing
			f_sendResponse(m_Response_18XonINVITE_AlertInfo(
				c_statusLine180,
				vc_callId, 
				vc_cSeq,
				vc_caller_From, 
				vc_caller_To, 
				vc_via,
				m_AlertInfo("urn:alert:call-waiting")
			));
			
			f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());
			
			f_check_AnnouncementUE_A();
			
			f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());
			
			f_check_Conversation();
			
			f_selfOrClientSyncAndVerdict(c_sync3, f_getVerdict());
			
			//await BYE and send 200OK
    		f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId));
			
			f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
    
    		f_IMS_postamble_withDeRegistration(vc_cSeq);
    	} // end function f_AtsNIT_TC_SS___XXSSCW_05UE2
	} // end group TP2_14_SS_CW
		
	}//end group TP_2_SupplementaryServices

} // end AtsNIT_SipSip_SS_TCFunctions
 No newline at end of file
+117 −0
Original line number Diff line number Diff line
@@ -2386,6 +2386,123 @@ group TP2_1_SS_OIP_OIR {
         
        }//end group TP2_11_SS_ECT
        
        group TP2_12_SS_CallWaiting {
   			/*
        	 * @desc TC_SS__XXSS_CW_01
        	 * @param p_CSeq_s Transaction Id
        	 */
        	testcase TC_SS__XXSS_CW_01(inout CSeq p_CSeq_s) 
        	runs on ServerSyncComp
        	system TestAdapter {
        		//Variables
        		var ImsComponent v_imsComponent1;
          		var ImsComponent v_imsComponent2;
        		f_cf_2imsUp(v_imsComponent1, v_imsComponent2);
        		f_IncCSeq(p_CSeq_s); 
        
        		//Start
        		v_imsComponent1.start(f_AtsNIT_TC_SS___XXSSCW_01UE1(p_CSeq_s));
        		v_imsComponent2.start(f_AtsNIT_TC_SS___XXSSCW_01UE1(p_CSeq_s));
        		
        		// synchronize both PTCs on 3 sychronization points
        		f_serverSync2ClientsAndStop({c_initDone, c_prDone, c_tbDone});
                
        		f_cf_2imsDown(v_imsComponent1, v_imsComponent2);
        	} // end TC_SS__XXSS_CW_01
        	
        	/*
        	 * @desc TC_SS__XXSS_CW_02
        	 * @param p_CSeq_s Transaction Id
        	 */
        	testcase TC_SS__XXSS_CW_02(inout CSeq p_CSeq_s) 
        	runs on ServerSyncComp
        	system TestAdapter {
        		//Variables
        		var ImsComponent v_imsComponent1;
          		var ImsComponent v_imsComponent2;
        		f_cf_2imsUp(v_imsComponent1, v_imsComponent2);
        		f_IncCSeq(p_CSeq_s); 
        
        		//Start
        		v_imsComponent1.start(f_AtsNIT_TC_SS___XXSSCW_02UE1(p_CSeq_s));
        		v_imsComponent2.start(f_AtsNIT_TC_SS___XXSSCW_02UE1(p_CSeq_s));
        		
        		// synchronize both PTCs on 3 sychronization points
        		f_serverSync2ClientsAndStop({c_initDone, c_prDone, c_tbDone});
                
        		f_cf_2imsDown(v_imsComponent1, v_imsComponent2);
        	} // end TC_SS__XXSS_CW_02
        	
        	/*
        	 * @desc TC_SS__XXSS_CW_03
        	 * @param p_CSeq_s Transaction Id
        	 */
        	testcase TC_SS__XXSS_CW_03(inout CSeq p_CSeq_s) 
        	runs on ServerSyncComp
        	system TestAdapter {
        		//Variables
        		var ImsComponent v_imsComponent1;
          		var ImsComponent v_imsComponent2;
        		f_cf_2imsUp(v_imsComponent1, v_imsComponent2);
        		f_IncCSeq(p_CSeq_s); 
        
        		//Start
        		v_imsComponent1.start(f_AtsNIT_TC_SS___XXSSCW_03UE1(p_CSeq_s));
        		v_imsComponent2.start(f_AtsNIT_TC_SS___XXSSCW_03UE1(p_CSeq_s));
        		
        		// synchronize both PTCs on 3 sychronization points
        		f_serverSync2ClientsAndStop({c_prDone, c_tbDone, c_poDone});
                
        		f_cf_2imsDown(v_imsComponent1, v_imsComponent2);
        	} // end TC_SS__XXSS_CW_03
        	
        	/*
        	 * @desc TC_SS__XXSS_CW_04
        	 * @param p_CSeq_s Transaction Id
        	 */
        	testcase TC_SS__XXSS_CW_04(inout CSeq p_CSeq_s) 
        	runs on ServerSyncComp
        	system TestAdapter {
        		//Variables
        		var ImsComponent v_imsComponent1;
          		var ImsComponent v_imsComponent2;
        		f_cf_2imsUp(v_imsComponent1, v_imsComponent2);
        		f_IncCSeq(p_CSeq_s); 
        
        		//Start
        		v_imsComponent1.start(f_AtsNIT_TC_SS___XXSSCW_04UE1(p_CSeq_s));
        		v_imsComponent2.start(f_AtsNIT_TC_SS___XXSSCW_04UE1(p_CSeq_s));
        		
        		// synchronize both PTCs on 6 sychronization points
        		f_serverSync2ClientsAndStop({c_initDone, c_prDone, c_sync1, c_sync2, c_sync3, c_tbDone});
                
        		f_cf_2imsDown(v_imsComponent1, v_imsComponent2);
        	} // end TC_SS__XXSS_CW_04
        	
        	/*
        	 * @desc TC_SS__XXSS_CW_05
        	 * @param p_CSeq_s Transaction Id
        	 */
        	testcase TC_SS__XXSS_CW_05(inout CSeq p_CSeq_s) 
        	runs on ServerSyncComp
        	system TestAdapter {
        		//Variables
        		var ImsComponent v_imsComponent1;
          		var ImsComponent v_imsComponent2;
        		f_cf_2imsUp(v_imsComponent1, v_imsComponent2);
        		f_IncCSeq(p_CSeq_s); 
        
        		//Start
        		v_imsComponent1.start(f_AtsNIT_TC_SS___XXSSCW_05UE1(p_CSeq_s));
        		v_imsComponent2.start(f_AtsNIT_TC_SS___XXSSCW_05UE1(p_CSeq_s));
        		
        		// synchronize both PTCs on 5 sychronization points
        		f_serverSync2ClientsAndStop({c_prDone, c_sync1, c_sync2, c_sync3, c_tbDone});
                
        		f_cf_2imsDown(v_imsComponent1, v_imsComponent2);
        	} // end TC_SS__XXSS_CW_05
        } // end group TP2_12_SS_CallWaiting
         
    }//end group TP_2_SupplementaryServices

} // end module AtsNIT_SipSip_Testcases