Commit 05eb8b30 authored by juvancic's avatar juvancic
Browse files

added tests of 310-312 group

parent cf4f590c
Loading
Loading
Loading
Loading
+317 −10
Original line number Diff line number Diff line
@@ -7913,6 +7913,7 @@ module SipIsup_IMS_TCFunctions {
				*/
				function f_IMS_TC_307_004(in CSeq p_cSeq_s) runs on ImsComponent {
					
					var INVITE_Request v_InviteReq;
					// expected status and cause values according to the testcase variant
					// From ETSI TS 186 009-2 Table 10, TP307004-307006
					var integer v_CauseVal[7]; 
@@ -7940,6 +7941,7 @@ module SipIsup_IMS_TCFunctions {
					// TESTBODY
					//Awaiting INVITE	
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					v_InviteReq:=vc_request;
					f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point
					
					select(PX_SIP_MESSAGE_VA) {           
@@ -7954,7 +7956,9 @@ module SipIsup_IMS_TCFunctions {
					if (not (match (vc_request.msgHeader.reason,mw_Reason(v_CauseVal[PX_TC_VA])))){setverdict(fail)}
					
					f_sendResponse(m_Response_onCANCEL(c_statusLine200,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route()));
					f_sendResponse(m_Response_onCANCEL(c_statusLine487,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route()));
					
					f_setHeadersOnReceiptOfRequest(v_InviteReq);
					f_sendResponse(m_Response_onINVITE(c_statusLine487,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route()));
					f_awaitingACK(mw_ACK_Request_Base(vc_callId));

					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done
@@ -8017,6 +8021,7 @@ module SipIsup_IMS_TCFunctions {
				*/
				function f_IMS_TC_307_006(in CSeq p_cSeq_s) runs on ImsComponent {
					
					var INVITE_Request v_InviteReq;
					// expected status and cause values according to the testcase variant
					// From ETSI TS 186 009-2 Table 10, TP307004-307006
					var integer v_CauseVal[7]; 
@@ -8044,6 +8049,7 @@ module SipIsup_IMS_TCFunctions {
					// TESTBODY
					//Awaiting INVITE	
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					v_InviteReq:=vc_request;
										
					select(PX_SIP_MESSAGE_VA) {           
						case(1){f_sendResponse(m_Response_18XonINVITE(c_statusLine180,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));}
@@ -8058,7 +8064,9 @@ module SipIsup_IMS_TCFunctions {
					if (not (match (vc_request.msgHeader.reason,mw_Reason(v_CauseVal[PX_TC_VA])))){setverdict(fail)}
					
					f_sendResponse(m_Response_onCANCEL(c_statusLine200,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route()));
					f_sendResponse(m_Response_onCANCEL(c_statusLine487,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route()));
					
					f_setHeadersOnReceiptOfRequest(v_InviteReq);
					f_sendResponse(m_Response_onINVITE(c_statusLine487,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route()));
					f_awaitingACK(mw_ACK_Request_Base(vc_callId));

					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done
@@ -8188,7 +8196,7 @@ module SipIsup_IMS_TCFunctions {

					//Awaiting INVITE	
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
     				f_sendResponse(m_Response_XXXonINVITE(v_statusLine[PX_TC_VA],vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));
     				f_sendResponse(m_Response_onINVITE(v_statusLine[PX_TC_VA],vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route()));
					f_awaitingACK(mw_ACK_Request_Base(vc_callId));
					
					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done
@@ -8256,7 +8264,7 @@ module SipIsup_IMS_TCFunctions {

					//Awaiting INVITE	
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					f_sendResponse(m_Response_XXXonINVITE_Reason(v_statusLine[PX_TC_VA],vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,PX_CauseValue));
					f_sendResponse(m_Response_onINVITE_Reason(v_statusLine[PX_TC_VA],vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route(),PX_CauseValue));
					f_awaitingACK(mw_ACK_Request_Base(vc_callId));
					
					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done
@@ -8331,7 +8339,7 @@ module SipIsup_IMS_TCFunctions {
						case else {log("Invalid PX_SIP_MESSAGE_VA variant (",PX_SIP_MESSAGE_VA,"), available variant 1-4");}
					}
					
					f_sendResponse(m_Response_XXXonINVITE_Reason(v_statusLine[PX_TC_VA],vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,PX_CauseValue));
					f_sendResponse(m_Response_onINVITE_Reason(v_statusLine[PX_TC_VA],vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route(),PX_CauseValue));
					f_awaitingACK(mw_ACK_Request_Base(vc_callId));
					
					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done
@@ -8366,7 +8374,7 @@ module SipIsup_IMS_TCFunctions {

					//Awaiting INVITE	
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					f_sendResponse(m_Response_XXXonINVITE(v_statusLine[PX_TC_VA],vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));
					f_sendResponse(m_Response_onINVITE(v_statusLine[PX_TC_VA],vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route()));
					f_awaitingACK(mw_ACK_Request_Base(vc_callId));
					
					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done
@@ -8476,6 +8484,7 @@ module SipIsup_IMS_TCFunctions {
				*/
				function f_IMS_TC_309_003(in CSeq p_cSeq_s) runs on ImsComponent {
					
					var INVITE_Request v_InviteReq;
					// PREAMBLE
					// IMS component interface initialization
					//c_userProfile_ICSCFwithHomeUE or c_userProfile_IBCFwithHomeUE
@@ -8485,10 +8494,13 @@ module SipIsup_IMS_TCFunctions {
					// TESTBODY
					//Awaiting INVITE	
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					v_InviteReq:=vc_request;
										
					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_sendResponse(m_Response_onCANCEL(c_statusLine487,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route()));
					
					f_setHeadersOnReceiptOfRequest(v_InviteReq);
					f_sendResponse(m_Response_onINVITE(c_statusLine487,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route()));
					f_awaitingACK(mw_ACK_Request_Base(vc_callId));

					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done
@@ -8504,6 +8516,7 @@ module SipIsup_IMS_TCFunctions {
				*/
				function f_IMS_TC_309_004(in CSeq p_cSeq_s) runs on ImsComponent {
					
					var INVITE_Request v_InviteReq;
					// PREAMBLE
					// IMS component interface initialization
					//c_userProfile_ICSCFwithHomeUE or c_userProfile_IBCFwithHomeUE
@@ -8513,12 +8526,15 @@ module SipIsup_IMS_TCFunctions {
					// TESTBODY
					//Awaiting INVITE	
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					v_InviteReq:=vc_request;
					
					f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point
										
					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_sendResponse(m_Response_onCANCEL(c_statusLine487,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route()));
					
					f_setHeadersOnReceiptOfRequest(v_InviteReq);
					f_sendResponse(m_Response_onINVITE(c_statusLine487,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route()));
					f_awaitingACK(mw_ACK_Request_Base(vc_callId));

					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done
@@ -8546,7 +8562,7 @@ module SipIsup_IMS_TCFunctions {
					//f_awaitingINVITE(mw_INVITE_Request_Base); 
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
										
					f_sendResponse(m_Response_XXXonINVITE(c_statusLine580,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));
					f_sendResponse(m_Response_onINVITE(c_statusLine580,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route()));
					f_awaitingACK(mw_ACK_Request_Base(vc_callId));
										
					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done
@@ -8580,7 +8596,7 @@ module SipIsup_IMS_TCFunctions {
										
					f_sendResponse(m_Response_18XonINVITE(c_statusLine183,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));
					f_awaitingPRACK_sendReply(mw_PRACK_Request_Base(vc_callId));
					f_sendResponse(m_Response_XXXonINVITE(c_statusLine580,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));
					f_sendResponse(m_Response_onINVITE(c_statusLine580,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route()));
					f_awaitingACK(mw_ACK_Request_Base(vc_callId));
										
					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done
@@ -8619,12 +8635,303 @@ module SipIsup_IMS_TCFunctions {
						
				}// end function f_IMS_TC_310_001
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_310_002
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_310_002(in CSeq p_cSeq_s) runs on ImsComponent {
					
					var INVITE_Request v_InviteReq;
					// PREAMBLE
					// IMS component interface initialization
					//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());// sync point preamble done
					// TESTBODY
					//Awaiting INVITE	
					f_awaitingINVITE_No100Response(mw_INVITE_Request_IMS(*,*,*,*));
					v_InviteReq:=vc_request;
					
					f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point
					
					select(PX_SIP_MESSAGE_VA) {
						case(1){f_sendResponse(m_Response_onINVITE(c_statusLine100,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route()));}           
						case(2){f_sendResponse(m_Response_18XonINVITE(c_statusLine180,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));}
						case(3){f_sendResponse(m_Response_18XonINVITE(c_statusLine181,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));}
						case(4){f_sendResponse(m_Response_18XonINVITE(c_statusLine182,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));}
						case(5){f_sendResponse(m_Response_18XonINVITE(c_statusLine183,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));}
						case else {log("Invalid PX_SIP_MESSAGE_VA variant (",PX_SIP_MESSAGE_VA,"), available variant 1-5");}
					}
					
					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_setHeadersOnReceiptOfRequest(v_InviteReq);
					f_sendResponse(m_Response_onINVITE(c_statusLine487,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route()));
					f_awaitingACK(mw_ACK_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_310_002
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_310_003
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_310_003(in CSeq p_cSeq_s) runs on ImsComponent {
					
					var INVITE_Request v_InviteReq;
					var CANCEL_Request v_CancelReq;
					// PREAMBLE
					// IMS component interface initialization
					//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());// sync point preamble done
					// TESTBODY
					//Awaiting INVITE	
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					v_InviteReq:=vc_request;
					f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point
					
					f_awaitingCANCEL(mw_CANCEL_Request_Base(vc_callId));
					v_CancelReq:=vc_request;
					
					f_setHeadersOnReceiptOfRequest(v_InviteReq);
					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_setHeadersOnReceiptOfRequest(v_CancelReq);
					f_sendResponse(m_Response_onCANCEL(c_statusLine200,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route()));
					
					//await BYE - also check cause and send 200 OK
					f_awaitingBYE_sendReply(mw_BYE_Request_Reason(vc_callId,31));

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

					// POSTAMBLE
					f_SIP_postamble_IMS1_withoutRegistration ()
						
				}// end function f_IMS_TC_310_003
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_310_004
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_310_004(in CSeq p_cSeq_s) runs on ImsComponent {
					
					// PREAMBLE
					// IMS component interface initialization
					//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());// sync point preamble done
					// TESTBODY
					//Awaiting INVITE	
					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));
					
					f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point
										
					//await BYE - also check cause and send 200 OK
					f_awaitingBYE_sendReply(mw_BYE_Request_Reason(vc_callId,31));

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

					// POSTAMBLE
					f_SIP_postamble_IMS1_withoutRegistration ()
						
				}// end function f_IMS_TC_310_004
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_310_005
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_310_005(in CSeq p_cSeq_s) runs on ImsComponent {
					
					var INVITE_Request v_InviteReq;
					// PREAMBLE
					// IMS component interface initialization
					//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());// sync point preamble done
					// TESTBODY
					//Awaiting INVITE	
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					v_InviteReq:=vc_request;
					
					select(PX_SIP_MESSAGE_VA) {           
						case(1){f_sendResponse(m_Response_18XonINVITE(c_statusLine180,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));}
						case(2){f_sendResponse(m_Response_18XonINVITE(c_statusLine181,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));}
						case(3){f_sendResponse(m_Response_18XonINVITE(c_statusLine182,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));}
						case(4){f_sendResponse(m_Response_18XonINVITE(c_statusLine183,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact));}
						case else {log("Invalid PX_SIP_MESSAGE_VA variant (",PX_SIP_MESSAGE_VA,"), available variant 1-4");}
					}
					
					f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point
					
					f_awaitingCANCEL(mw_CANCEL_Request_Base(vc_callId));
					if (not (match (vc_request.msgHeader.reason,mw_Reason(31)))){setverdict(fail)}
					
					f_sendResponse(m_Response_onCANCEL(c_statusLine200,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route()));
					
					f_setHeadersOnReceiptOfRequest(v_InviteReq);
					f_sendResponse(m_Response_onINVITE(c_statusLine487,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact,f_route()));
					f_awaitingACK(mw_ACK_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_310_005
								
			} // end group TP310_Receiving_RSC
			
			group TP311_Receiving_GRS {
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_311_001
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_311_001(in CSeq p_cSeq_s) runs on ImsComponent {
					f_IMS_TC_310_001(p_cSeq_s);
				}// end function f_IMS_TC_311_001
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_311_002
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_311_002(in CSeq p_cSeq_s) runs on ImsComponent {
					f_IMS_TC_310_002(p_cSeq_s);	
				}// end function f_IMS_TC_311_002
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_311_003
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_311_003(in CSeq p_cSeq_s) runs on ImsComponent {
					f_IMS_TC_310_003(p_cSeq_s);	
				}// end function f_IMS_TC_311_003
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_311_004
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_311_004(in CSeq p_cSeq_s) runs on ImsComponent {
					f_IMS_TC_310_004(p_cSeq_s);	
				}// end function f_IMS_TC_311_004
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_311_005
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_311_005(in CSeq p_cSeq_s) runs on ImsComponent {
					f_IMS_TC_310_005(p_cSeq_s);	
				}// end function f_IMS_TC_311_005
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_311_006
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_311_006(in CSeq p_cSeq_s) runs on ImsComponent {
					
					var CallId v_cid1,v_cid2;
					// PREAMBLE
					// IMS component interface initialization
					//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());// sync point preamble done
					// TESTBODY
					//Awaiting INVITE 1	
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					v_cid1:=vc_callId;	
					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));

					f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict());// sync point
					
					//Awaiting INVITE 2	
					f_awaitingINVITE(mw_INVITE_Request_IMS(*,*,*,*));
					v_cid2:=vc_callId;	
					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));
					
					f_selfOrClientSyncAndVerdict(c_sync2, f_getVerdict());// sync point
						
					//await BYE and send 200 OK
					f_awaitingBYE_sendReply(mw_BYE_Request_Base(v_cid1));
					f_awaitingBYE_sendReply(mw_BYE_Request_Base(v_cid2));
					
					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done

					// POSTAMBLE
					f_SIP_postamble_IMS1_withoutRegistration ()
		
				}// end function f_IMS_TC_311_006
				
			} // end group TP311_Receiving_GRS
			
            group TP312_Receiving_CGB {
            	
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_312_001
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_312_001(in CSeq p_cSeq_s) runs on ImsComponent {
					f_IMS_TC_310_001(p_cSeq_s);
				}// end function f_IMS_TC_312_001

				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_312_002
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_312_002(in CSeq p_cSeq_s) runs on ImsComponent {
					f_IMS_TC_310_002(p_cSeq_s);	
				}// end function f_IMS_TC_312_002

				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_312_003
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_312_003(in CSeq p_cSeq_s) runs on ImsComponent {
					f_IMS_TC_310_003(p_cSeq_s);	
				}// end function f_IMS_TC_312_003

				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_312_004
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_312_004(in CSeq p_cSeq_s) runs on ImsComponent {
					f_IMS_TC_310_004(p_cSeq_s);	
				}// end function f_IMS_TC_312_004

				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_312_005
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_312_005(in CSeq p_cSeq_s) runs on ImsComponent {
					f_IMS_TC_310_005(p_cSeq_s);	
				}// end function f_IMS_TC_312_005
				
				/* 
				*  @desc	This is the test case function (IMS/SIP side) for TC_312_006
				*  @param	loc_CSeq_s - Transaction Id
				*/
				function f_IMS_TC_312_006(in CSeq p_cSeq_s) runs on ImsComponent {
					f_IMS_TC_311_006(p_cSeq_s);	
				}// end function f_IMS_TC_312_006
            	
            } // end group TP312_Receiving_CGB
		} // end group TP3_InterworkingFromISUPtoSIP
	} // end group BasicCall