Commit 04a2cec7 authored by poglitsch's avatar poglitsch
Browse files

TC_SS___XX__04 added

parent da5c9df8
Loading
Loading
Loading
Loading
+221 −0
Original line number Diff line number Diff line
@@ -505,6 +505,227 @@ module AtsNIT_SipSip_BC_TCFunctions {
					f_IMS_postamble_withDeRegistration(vc_cSeq);
				} // end function f_AtsNIT_TC_SS___XX__03UE2
				
				/* 
				* @desc		This is the test case function (originating side) for AtsNIT_TC_SS___XX__04
				* @param	p_CSeq_s Transaction Id
				*/
				function f_AtsNIT_TC_SS___XX__04UE1(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
					
					// 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, 
            			m_Supported_100rel_prec, 
            			m_MBody_SDP(vc_sdp_local)
            		));
            		
            		// await 184 response with 
            		// 100rel in require header field
            		// and a=curr and a=des lines present in sdp
            		f_awaitingResponse(mw_Response_messageBody(
            			c_statusLine183,
            			vc_callId, 
            			vc_cSeq,
            			mw_require_100rel,
            			mw_MBody_SDP(
            				mw_SDP_atribute_list(mw_ttribute_list_curr_des)
            			)
            		));
            		
            		// await 200 OK response
            		f_awaitingOkResponse(vc_cSeq);
            		
            		// send PRACK
            		f_SendPRACK(m_PRACK_Request_Base(
            			vc_requestUri, 
            			vc_callId, 
            			vc_cSeq, 
            			vc_from, 
            			vc_to, 
            			vc_via,
            			vc_rAck
            		));
            		
            		// await 200 OK response
            		f_awaitingOkResponse(vc_cSeq);
            		
            		f_SendUPDATE(m_UPDATE_Request_Base(
            		    vc_requestUri, 
            			vc_callId, 
            			vc_cSeq, 
            			vc_from, 
            			vc_to, 
            			vc_via, 
            			vc_contact, 
            			m_MBody_SDP(vc_sdp_local)
            		));
            		
            		f_awaitingUPDATE_sendReply(mw_UPDATE_Request_SDP(
            			vc_callId,
            			mw_MBody_SDP(
            				mw_SDP_atribute_list(mw_ttribute_list_curr_des)
            			)	
            		));
            		
            		// 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
            		));
            		
					// send PRACK
            		f_SendPRACK(m_PRACK_Request_Base(
            			vc_requestUri, 
            			vc_callId, 
            			vc_cSeq, 
            			vc_from, 
            			vc_to, 
            			vc_via,
            			vc_rAck
            		));
            		
            		// await 200 OK PRACK response
            		f_awaitingOkResponse(vc_cSeq);
            		
            		// await 200 OK INVITE 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
            		));
            		
            		// check media
            		f_check_Conversation();
            		
            		//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___XX__04UE1

				/* 
				* @desc		This is the test case function (terminating side) for AtsNIT_TC_SS___XX__04
				* @param	p_CSeq_s Transaction Id
				*/
				function f_AtsNIT_TC_SS___XX__04UE2(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
					
            		f_awaitingINVITE(mw_INVITE_Request_require(
            			mw_require_100rel
            		)); 
            		
            		// send 183 response
					f_sendResponse(m_Response_18XonINVITE_require_sdp_UE(
						c_statusLine183,
						vc_callId, 
						vc_cSeq,
						vc_caller_From, 
						vc_caller_To, 
						vc_via,
						vc_contact,
						mw_require_100rel,
						m_MBody_SDP(vc_sdp_local)
					));
					
					// await PRACK
					f_awaitingPRACK_sendReply(
						mw_PRACK_Request_Base(vc_callId)
					);
					
					// await UPDATE
					f_awaitingUPDATE_sendReply(mw_UPDATE_Request_SDP(
            			vc_callId,
            			mw_MBody_SDP(
            				mw_SDP_atribute_list(mw_ttribute_list_curr_des)
            			)	
            		));
					
					// send UPDATE
					f_SendUPDATE(m_UPDATE_Request_Base(
            		    vc_requestUri, 
            			vc_callId, 
            			vc_cSeq, 
            			vc_from, 
            			vc_to, 
            			vc_via, 
            			vc_contact, 
            			m_MBody_SDP(vc_sdp_local)
            		));
            		
            		// await 200 OK UPDATE response
            		f_awaitingOkResponse(vc_cSeq);
            		
            		// send 180 response
            		f_sendResponse(m_Response_18XonINVITE_UE(
						c_statusLine180,
						vc_callId, 
						vc_cSeq,
						vc_caller_From, 
						vc_caller_To, 
						vc_via,
						vc_contact
					));
					
					// await Prack
					f_awaitingPRACK_sendReply(
						mw_PRACK_Request_Base(vc_callId)
					);
					
					// send 200 OK Invite
					f_send200OK(); // TODO must be checked
            		
            		// await ACK
					f_awaitingACK(mw_ACK_Request_Base(vc_callId));
            		
            		// check media
            		f_check_Conversation();
            		
            		//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___XX__04UE2
				
		} // end group TP1_1_1_BC_Normal_Call_Esthablishment
		
		group TP1_1_2_BC_CodecNegotiation {				
+51 −3
Original line number Diff line number Diff line
@@ -77,6 +77,54 @@ module AtsNIT_SipSip_Testcases {
            		f_cf_2imsDown(v_imsComponent1, v_imsComponent2);
            	} // end TC_SS___XX__02
            	
            	
            	/*
            	 * @desc TC_SS___XX__03
            	 * @param p_CSeq_s Transaction Id
            	 */
            	testcase TC_SS___XX__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___XX__03UE1(p_CSeq_s));
            		v_imsComponent2.start(f_AtsNIT_TC_SS___XX__03UE2(p_CSeq_s));
            		
            		// synchronize both PTCs on 4 sychronization points
            		f_serverSync2ClientsAndStop({c_prDone, c_Ringing, c_uPlane, c_tbDone});
                    
            		f_cf_2imsDown(v_imsComponent1, v_imsComponent2);
            	} // end TC_SS___XX__03
            	
            	
                /*
            	 * @desc TC_SS___XX__04
            	 * @param p_CSeq_s Transaction Id
            	 */
            	testcase TC_SS___XX__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___XX__04UE1(p_CSeq_s));
            		v_imsComponent2.start(f_AtsNIT_TC_SS___XX__04UE2(p_CSeq_s));
            		
            		// synchronize both PTCs on 4 sychronization points
            		f_serverSync2ClientsAndStop({c_prDone, c_Ringing, c_uPlane, c_tbDone});
                    
            		f_cf_2imsDown(v_imsComponent1, v_imsComponent2);
            	} // end TC_SS___XX__04
								
			} // end group TP1_1_1_BC_Normal_Call_Esthablishment
		
    		group TP1_1_2_BC_CodecNegotiation {				
@@ -106,13 +154,13 @@ group TP2_1_SS_OIP_OIR {
    	testcase TC_SS___XXSS_OIP01(inout CSeq p_CSeq_s) 
    	runs on ServerSyncComp
    	system TestAdapter {
    		//Variables
    		var ImsComponent v_imsComponent1;
      		var ImsComponent v_imsComponent2;
    
 			//selection criteria
			action("The originating user subscribes to OIR 'temporary mode' default 'not restricted'. The terminating user subscribes to OIP.");

    		//Variables
    		var ImsComponent v_imsComponent1;
      		var ImsComponent v_imsComponent2;
    		f_cf_2imsUp(v_imsComponent1, v_imsComponent2);
    		f_IncCSeq(p_CSeq_s);