Commit 90a51ce1 authored by rennoch's avatar rennoch
Browse files

added tests 17-25 into group 509

parent 1e15f051
Loading
Loading
Loading
Loading
+503 −2
Original line number Diff line number Diff line
@@ -11325,9 +11325,510 @@ module SipIsup_IMS_TCFunctions {
				* @param	p_CSeq_s Transaction Id
				*/
				function f_IMS_TC_509_017(in CSeq p_cSeq_s) runs on ImsComponent {
						f_IMS_TC_509_014(p_cSeq_s);					
					
					//expected status and cause values according to the testcase variant
					// From ETSI TS 186 009-2 TP509014-TP509024 - array used to parameterize the SIP test case variant
					var integer v_CauseVal[8]; 
					var NameAddr UserA,UserB;
					var template HistoryInfo_List v_HIList;
					
					// dummy value for index 0 (unused)
					v_CauseVal[0] := 0;
					v_CauseVal[1] := 404;
					v_CauseVal[2] := 302;
					v_CauseVal[3] := 486;
					v_CauseVal[4] := 408;
					v_CauseVal[5] := 487;
					v_CauseVal[6] := 480;
					v_CauseVal[7] := 503;
					
					if ((PX_TC_VA<1)and(PX_TC_VA>7)){log("PIXIT PX_TC_VA is not inside allowed range (1-7)!");}
					
					UserA := PX_SIP_NameAddr_From;
					UserB := PX_SIP_NameAddr_UserB;
					UserB.addrSpec.urlParameters:={({id:="cause",paramValue:=int2str(v_CauseVal[PX_TC_VA])})};
					
					v_HIList:={
						(mw_HistoryInfoEntry(UserA.addrSpec, ({1}), *)),
						(mw_HistoryInfoEntry(UserB.addrSpec, ({1,1}),*))
					};
													
					//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());
					// Testbody

					// 	INVITE UE1
					LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_ISUP);
					f_SendINVITE(m_INVITE_Request_HistoryInfo_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, omit, omit, m_MBody_SDP(vc_sdp_local),mw_HistoryInfo(v_HIList)));

					f_awaitingResponse(mw_Response_Base(c_statusLine180,vc_callId, vc_cSeq));
					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));		

					f_check_Conversation();

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

					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());

					f_SIP_postamble_IMS1_withoutRegistration();
				} // end function f_IMS_TC_509_017
				
				/* 
				* @desc		This is the test case function (SIP side) for TC_509_018
				* @param	p_CSeq_s Transaction Id
				*/
				function f_IMS_TC_509_018(in CSeq p_cSeq_s) runs on ImsComponent {
					if (match(PX_SIP_NameAddr_From.addrSpec.userInfo.userOrTelephoneSubscriber,m_international_number_format)){
						f_IMS_TC_509_017(p_cSeq_s);
					}
					else{
						log("PIXIT PX_SIP_NameAddr_From is not in international format!");
					}
				} // end function f_IMS_TC_509_018
				
				/* 
				* @desc		This is the test case function (SIP side) for TC_509_019
				* @param	p_CSeq_s Transaction Id
				*/
				function f_IMS_TC_509_019(in CSeq p_cSeq_s) runs on ImsComponent {
					
					//expected status and cause values according to the testcase variant
					// From ETSI TS 186 009-2 TP509014-TP509024 - array used to parameterize the SIP test case variant
					var integer v_CauseVal[8]; 
					var NameAddr UserA,UserB;
					var template HistoryInfo_List v_HIList;
					
					// dummy value for index 0 (unused)
					v_CauseVal[0] := 0;
					v_CauseVal[1] := 404;
					v_CauseVal[2] := 302;
					v_CauseVal[3] := 486;
					v_CauseVal[4] := 408;
					v_CauseVal[5] := 487;
					v_CauseVal[6] := 480;
					v_CauseVal[7] := 503;
					
					if ((PX_TC_VA<1)and(PX_TC_VA>7)){log("PIXIT PX_TC_VA is not inside allowed range (1-7)!");}
					
					UserA := PX_SIP_NameAddr_From;
					UserB := PX_SIP_NameAddr_UserB;
					UserA.addrSpec.urlParameters:={({id:="Privacy",paramValue:="history"})};
					UserB.addrSpec.urlParameters:={({id:="cause",paramValue:=int2str(v_CauseVal[PX_TC_VA])})};
					
					v_HIList:={
						(mw_HistoryInfoEntry(UserA.addrSpec, ({1}), *)),
						(mw_HistoryInfoEntry(UserB.addrSpec, ({1,1}),*))
					};
													
					//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());
					// Testbody

					// 	INVITE UE1
					LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_ISUP);
					f_SendINVITE(m_INVITE_Request_HistoryInfo_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, omit, omit, m_MBody_SDP(vc_sdp_local),mw_HistoryInfo(v_HIList)));

					f_awaitingResponse(mw_Response_Base(c_statusLine180,vc_callId, vc_cSeq));
					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));		

					f_check_Conversation();

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

					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());

					f_SIP_postamble_IMS1_withoutRegistration();
				} // end function f_IMS_TC_509_019		
				
				/* 
				* @desc		This is the test case function (SIP side) for TC_509_020
				* @param	p_CSeq_s Transaction Id
				*/
				function f_IMS_TC_509_020(in CSeq p_cSeq_s) runs on ImsComponent {
					
					//expected status and cause values according to the testcase variant
					// From ETSI TS 186 009-2 TP509014-TP509024 - array used to parameterize the SIP test case variant
					var integer v_CauseVal[8]; 
					var NameAddr UserA,UserC,UserD;
					var template HistoryInfo_List v_HIList;
					
					// dummy value for index 0 (unused)
					v_CauseVal[0] := 0;
					v_CauseVal[1] := 404;
					v_CauseVal[2] := 302;
					v_CauseVal[3] := 486;
					v_CauseVal[4] := 408;
					v_CauseVal[5] := 487;
					v_CauseVal[6] := 480;
					v_CauseVal[7] := 503;
					
					if ((PX_TC_VA<1)and(PX_TC_VA>7)){log("PIXIT PX_TC_VA is not inside allowed range (1-7)!");}
					
					UserA := PX_SIP_NameAddr_From;
					UserC := PX_SIP_NameAddr_UserC;
					UserD := PX_SIP_NameAddr_UserD;
					
					UserC.addrSpec.urlParameters:={({id:="cause",paramValue:=int2str(302)})};
					UserD.addrSpec.urlParameters:={({id:="cause",paramValue:=int2str(v_CauseVal[PX_TC_VA])})};
					
					v_HIList:={
						(mw_HistoryInfoEntry(UserA.addrSpec, ({1}), *)),
						(mw_HistoryInfoEntry(UserC.addrSpec, ({1,1}),*)),
						(mw_HistoryInfoEntry(UserD.addrSpec, ({1,1,1}),*))
					};
													
					//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());
					// Testbody

					// 	INVITE UE1
					LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_ISUP);
					f_SendINVITE(m_INVITE_Request_HistoryInfo_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, omit, omit, m_MBody_SDP(vc_sdp_local),mw_HistoryInfo(v_HIList)));

					f_awaitingResponse(mw_Response_Base(c_statusLine180,vc_callId, vc_cSeq));
					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));		

					f_check_Conversation();

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

					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());

					f_SIP_postamble_IMS1_withoutRegistration();
				} // end function f_IMS_TC_509_020													
				
				/* 
				* @desc		This is the test case function (SIP side) for TC_509_021
				* @param	p_CSeq_s Transaction Id
				*/
				function f_IMS_TC_509_021(in CSeq p_cSeq_s) runs on ImsComponent {
					
					//expected status and cause values according to the testcase variant
					// From ETSI TS 186 009-2 TP509014-TP509024 - array used to parameterize the SIP test case variant
					var integer v_CauseVal[8]; 
					var NameAddr UserA,UserC,UserD;
					var template HistoryInfo_List v_HIList;
					
					// dummy value for index 0 (unused)
					v_CauseVal[0] := 0;
					v_CauseVal[1] := 404;
					v_CauseVal[2] := 302;
					v_CauseVal[3] := 486;
					v_CauseVal[4] := 408;
					v_CauseVal[5] := 487;
					v_CauseVal[6] := 480;
					v_CauseVal[7] := 503;
					
					if ((PX_TC_VA<1)and(PX_TC_VA>7)){log("PIXIT PX_TC_VA is not inside allowed range (1-7)!");}
					
					UserA := PX_SIP_NameAddr_From;
					UserC := PX_SIP_NameAddr_UserC;
					UserD := PX_SIP_NameAddr_UserD;
					
					UserC.addrSpec.urlParameters:={({id:="Privacy",paramValue:="history"}),({id:="cause",paramValue:=int2str(302)})};
					UserD.addrSpec.urlParameters:={({id:="cause",paramValue:=int2str(v_CauseVal[PX_TC_VA])})};
					
					v_HIList:={
						(mw_HistoryInfoEntry(UserA.addrSpec, ({1}), *)),
						(mw_HistoryInfoEntry(UserC.addrSpec, ({1,1}),*)),
						(mw_HistoryInfoEntry(UserD.addrSpec, ({1,1,1}),*))
					};
													
					//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());
					// Testbody

					// 	INVITE UE1
					LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_ISUP);
					/**TODO Check Privacy header field!!!
					*/
					f_SendINVITE(m_INVITE_Request_HistoryInfo_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, omit, omit, m_MBody_SDP(vc_sdp_local),mw_HistoryInfo(v_HIList)));

					f_awaitingResponse(mw_Response_Base(c_statusLine180,vc_callId, vc_cSeq));
					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));		

					f_check_Conversation();

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

					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());

					f_SIP_postamble_IMS1_withoutRegistration();
				} // end function f_IMS_TC_509_021

				/* 
				* @desc		This is the test case function (SIP side) for TC_509_022
				* @param	p_CSeq_s Transaction Id
				*/
				function f_IMS_TC_509_022(in CSeq p_cSeq_s) runs on ImsComponent {
			
					//expected status and cause values according to the testcase variant
					// From ETSI TS 186 009-2 TP509014-TP509024 - array used to parameterize the SIP test case variant
					var integer v_CauseVal[8]; 
					var NameAddr UserA,UserC,UserD;
					var template HistoryInfo_List v_HIList;
			
					// dummy value for index 0 (unused)
					v_CauseVal[0] := 0;
					v_CauseVal[1] := 404;
					v_CauseVal[2] := 302;
					v_CauseVal[3] := 486;
					v_CauseVal[4] := 408;
					v_CauseVal[5] := 487;
					v_CauseVal[6] := 480;
					v_CauseVal[7] := 503;
			
					if ((PX_TC_VA<1)and(PX_TC_VA>7)){log("PIXIT PX_TC_VA is not inside allowed range (1-7)!");}
			
					UserA := PX_SIP_NameAddr_From;
					UserC := PX_SIP_NameAddr_UserC;
					UserD := PX_SIP_NameAddr_UserD;
			
					UserA.addrSpec.urlParameters:={({id:="Privacy",paramValue:="history"})};
					UserC.addrSpec.urlParameters:={({id:="cause",paramValue:=int2str(302)})};
					UserD.addrSpec.urlParameters:={({id:="cause",paramValue:=int2str(v_CauseVal[PX_TC_VA])})};
			
					v_HIList:={
						(mw_HistoryInfoEntry(UserA.addrSpec, ({1}), *)),
						(mw_HistoryInfoEntry(UserC.addrSpec, ({1,1}),*)),
						(mw_HistoryInfoEntry(UserD.addrSpec, ({1,1,1}),*))
					};
											
					//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());
					// Testbody

					// 	INVITE UE1
					LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_ISUP);
					f_SendINVITE(m_INVITE_Request_HistoryInfo_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, omit, omit, m_MBody_SDP(vc_sdp_local),mw_HistoryInfo(v_HIList)));

					f_awaitingResponse(mw_Response_Base(c_statusLine180,vc_callId, vc_cSeq));
					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));		

					f_check_Conversation();

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

					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());

					f_SIP_postamble_IMS1_withoutRegistration();
				} // end function f_IMS_TC_509_022

				/* 
				* @desc		This is the test case function (SIP side) for TC_509_023
				* @param	p_CSeq_s Transaction Id
				*/
				function f_IMS_TC_509_023(in CSeq p_cSeq_s) runs on ImsComponent {
			
					//expected status and cause values according to the testcase variant
					// From ETSI TS 186 009-2 TP509014-TP509024 - array used to parameterize the SIP test case variant
					var integer v_CauseVal[8]; 
					var NameAddr UserA,UserC,UserD;
					var template HistoryInfo_List v_HIList;
			
					// dummy value for index 0 (unused)
					v_CauseVal[0] := 0;
					v_CauseVal[1] := 404;
					v_CauseVal[2] := 302;
					v_CauseVal[3] := 486;
					v_CauseVal[4] := 408;
					v_CauseVal[5] := 487;
					v_CauseVal[6] := 480;
					v_CauseVal[7] := 503;
			
					if ((PX_TC_VA<1)and(PX_TC_VA>7)){log("PIXIT PX_TC_VA is not inside allowed range (1-7)!");}
			
					UserA := PX_SIP_NameAddr_From;
					UserC := PX_SIP_NameAddr_UserC;
					UserD := PX_SIP_NameAddr_UserD;
			
					UserA.addrSpec.urlParameters:={({id:="Privacy",paramValue:="history"})};
					UserC.addrSpec.urlParameters:={({id:="Privacy",paramValue:="history"}),({id:="cause",paramValue:=int2str(302)})};
					UserD.addrSpec.urlParameters:={({id:="cause",paramValue:=int2str(v_CauseVal[PX_TC_VA])})};
			
					v_HIList:={
						(mw_HistoryInfoEntry(UserA.addrSpec, ({1}), *)),
						(mw_HistoryInfoEntry(UserC.addrSpec, ({1,1}),*)),
						(mw_HistoryInfoEntry(UserD.addrSpec, ({1,1,1}),*))
					};
											
					//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());
					// Testbody

					// 	INVITE UE1
					LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_ISUP);
					f_SendINVITE(m_INVITE_Request_HistoryInfo_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, omit, omit, m_MBody_SDP(vc_sdp_local),mw_HistoryInfo(v_HIList)));

					f_awaitingResponse(mw_Response_Base(c_statusLine180,vc_callId, vc_cSeq));
					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));		

					f_check_Conversation();

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

					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());

					f_SIP_postamble_IMS1_withoutRegistration();
				} // end function f_IMS_TC_509_023
				
				/* 
				* @desc		This is the test case function (SIP side) for TC_509_024
				* @param	p_CSeq_s Transaction Id
				*/
				function f_IMS_TC_509_024(in CSeq p_cSeq_s) runs on ImsComponent {
					
					//expected status and cause values according to the testcase variant
					// From ETSI TS 186 009-2 TP509014-TP509024 - array used to parameterize the SIP test case variant
					var integer v_CauseVal[8]; 
					var NameAddr UserA,UserC,UserD,UserE;
					var template HistoryInfo_List v_HIList;
					
					// dummy value for index 0 (unused)
					v_CauseVal[0] := 0;
					v_CauseVal[1] := 404;
					v_CauseVal[2] := 302;
					v_CauseVal[3] := 486;
					v_CauseVal[4] := 408;
					v_CauseVal[5] := 487;
					v_CauseVal[6] := 480;
					v_CauseVal[7] := 503;
					
					if ((PX_TC_VA<1)and(PX_TC_VA>7)){log("PIXIT PX_TC_VA is not inside allowed range (1-7)!");}
					
					UserA := PX_SIP_NameAddr_From;
					UserC := PX_SIP_NameAddr_UserC;
					UserD := PX_SIP_NameAddr_UserD;
					UserE := PX_SIP_NameAddr_UserE;
					
					UserC.addrSpec.urlParameters:={({id:="cause",paramValue:=int2str(302)})};
					UserD.addrSpec.urlParameters:={({id:="cause",paramValue:=int2str(486)})};
					UserE.addrSpec.urlParameters:={({id:="cause",paramValue:=int2str(v_CauseVal[PX_TC_VA])})};
					
					v_HIList:={
						(mw_HistoryInfoEntry(UserA.addrSpec, ({1}), *)),
						(mw_HistoryInfoEntry(UserC.addrSpec, ({1,1}),*)),
						(mw_HistoryInfoEntry(UserD.addrSpec, ({1,1,1}),*)),
						(mw_HistoryInfoEntry(UserE.addrSpec, ({1,1,1,1}),*))
					};
													
					//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());
					// Testbody

					// 	INVITE UE1
					LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_ISUP);
					f_SendINVITE(m_INVITE_Request_HistoryInfo_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, omit, omit, m_MBody_SDP(vc_sdp_local),mw_HistoryInfo(v_HIList)));

					f_awaitingResponse(mw_Response_Base(c_statusLine180,vc_callId, vc_cSeq));
					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));		

					f_check_Conversation();

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

					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());

					f_SIP_postamble_IMS1_withoutRegistration();
				} // end function f_IMS_TC_509_024
				
				/* 
				* @desc		This is the test case function (SIP side) for TC_509_025
				* @param	p_CSeq_s Transaction Id
				*/
				function f_IMS_TC_509_025(in CSeq p_cSeq_s) runs on ImsComponent {
					
					//expected status and cause values according to the testcase variant
					// From ETSI TS 186 009-2 TP509014-TP509024 - array used to parameterize the SIP test case variant
					var integer v_CauseVal[8]; 
					var NameAddr UserA,UserC,UserD;
					var template HistoryInfo_List v_HIList;
					
					// dummy value for index 0 (unused)
					v_CauseVal[0] := 0;
					v_CauseVal[1] := 404;
					v_CauseVal[2] := 302;
					v_CauseVal[3] := 486;
					v_CauseVal[4] := 408;
					v_CauseVal[5] := 487;
					v_CauseVal[6] := 480;
					v_CauseVal[7] := 503;
					
					if ((PX_TC_VA<1)and(PX_TC_VA>7)){log("PIXIT PX_TC_VA is not inside allowed range (1-7)!");}
					
					UserA := PX_SIP_NameAddr_From;
					UserC := PX_SIP_NameAddr_UserC;
					UserD := PX_SIP_NameAddr_UserD;
					
					UserC.addrSpec.urlParameters:={({id:="cause",paramValue:=int2str(v_CauseVal[PX_TC_VA])})};
					UserD.addrSpec.urlParameters:={({id:="cause",paramValue:=int2str(v_CauseVal[PX_TC_VA])})};
					
					v_HIList:={
						(mw_HistoryInfoEntry(UserA.addrSpec, ({1}), *)),
						(mw_HistoryInfoEntry(UserC.addrSpec, ({1,1}),*)),
						(mw_HistoryInfoEntry(UserD.addrSpec, ({1,1,1}),*))
					};
													
					//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());
					// Testbody

					// 	INVITE UE1
					LibIms_Steps.f_setHeadersINVITE(vc_cSeq, c_userProfile_ISUP);
					f_SendINVITE(m_INVITE_Request_HistoryInfo_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact, omit, vc_route, vc_recordRoute, omit, omit, m_MBody_SDP(vc_sdp_local),mw_HistoryInfo(v_HIList)));

					f_awaitingResponse(mw_Response_Base(c_statusLine180,vc_callId, vc_cSeq));
					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));		

					f_check_Conversation();

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

					f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());

					f_SIP_postamble_IMS1_withoutRegistration();
				} // end function f_IMS_TC_509_025								
				
			} // end group TP509_CDIV
		
			group TP510_CW {