Commit 807895a8 authored by pintar's avatar pintar
Browse files

corrections due to validation of STF346 from week 46

parent b2101a8c
Loading
Loading
Loading
Loading
+148 −81
Original line number Diff line number Diff line
@@ -716,7 +716,7 @@ module AtsIms_Gm_TCFunctions {
					f_awaitingResponse(mw_Response_Base(c_statusLine100,
														vc_callId, vc_cSeq));
					// send CANCEL of REQUEST
     				f_setHeadersCANCEL(vc_cSeq);
					LibIms_Steps.f_setHeadersCANCEL(vc_cSeq,c_userProfile_UE2atSUThome);
					f_SendCANCEL(m_CANCEL_Request_UE(vc_requestUri, vc_callId,
													 p_cSeq_s, vc_from, vc_to,
													 vc_via,
@@ -833,7 +833,7 @@ module AtsIms_Gm_TCFunctions {
				// done
				// POSTAMBLE
				// send CANCEL of REQUEST
				f_setHeadersCANCEL(vc_cSeq);
				LibIms_Steps.f_setHeadersCANCEL(vc_cSeq,c_userProfile_UE2atSUThome);
				f_SendCANCEL(m_CANCEL_Request_UE(vc_requestUri, vc_callId,
												 p_cSeq_s, vc_from, vc_to,
												 vc_via, vc_route));
@@ -1423,7 +1423,7 @@ module AtsIms_Gm_TCFunctions {
				// done
				// POSTAMBLE
				// send CANCEL of REQUEST
				f_setHeadersCANCEL(vc_cSeq);
				LibIms_Steps.f_setHeadersCANCEL(vc_cSeq,c_userProfile_UE2atSUThome);
				f_SendCANCEL(m_CANCEL_Request_UE(vc_requestUri, vc_callId,
												 p_cSeq_s, vc_from, vc_to,
												 vc_via, vc_route));
@@ -2040,6 +2040,24 @@ module AtsIms_Gm_TCFunctions {
				// preamble
				// done
				// TESTBODY
				// prepare and send INVITE UE2
				// @SUT
				LibIms_Steps
				.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome);
				f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId,
												 p_cSeq_s, vc_from, vc_to,
												 vc_via, vc_contact, omit,
												 vc_route_REG, omit,
												 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));

				// prepare and send BYE UE2
				// @SUT
				LibIms_Steps
@@ -2102,6 +2120,18 @@ module AtsIms_Gm_TCFunctions {
				// preamble
				// done
				// TESTBODY
				// Awaiting INVITE
				f_awaitingINVITE(mw_INVITE_Request_Base);
				f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200,
														 vc_callId, vc_cSeq,
														 vc_caller_From,
														 vc_caller_To, vc_via,
														 vc_contact, f_recordroute(),
														 valueof(m_MBody_SDP(
																	 vc_sdp_local
																 ))));


				vc_boo_request := false;
				f_awaitingBYE_sendReply_PassOnTimeout(mw_BYE_Request_Base
													  (vc_callId));
@@ -2149,6 +2179,24 @@ module AtsIms_Gm_TCFunctions {
				// preamble
				// done
				// TESTBODY
				// prepare and send INVITE UE2
				// @SUT
				LibIms_Steps
				.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome);
				f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId,
												 p_cSeq_s, vc_from, vc_to,
												 vc_via, vc_contact, omit,
												 vc_route_REG, omit,
												 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));

				vc_boo_request := false;
				f_awaitingBYE_sendReply_PassOnTimeout(mw_BYE_Request_Base
													  (vc_callId));
@@ -2193,6 +2241,17 @@ module AtsIms_Gm_TCFunctions {
				// preamble
				// done
				// TESTBODY
				// Awaiting INVITE
				f_awaitingINVITE(mw_INVITE_Request_Base);
				f_sendResponse(m_Response_2xxonINVITE_UE(c_statusLine200,
														 vc_callId, vc_cSeq,
														 vc_caller_From,
														 vc_caller_To, vc_via,
														 vc_contact, f_recordroute(),
														 valueof(m_MBody_SDP(
																	 vc_sdp_local
																 ))));

				// prepare and send BYE UE1
				// @SUT
				LibIms_Steps
@@ -2321,7 +2380,7 @@ module AtsIms_Gm_TCFunctions {
														 vc_callId, vc_cSeq,
														 vc_caller_From,
														 vc_caller_To, vc_via,
														 vc_contact, f_route(),
														 vc_contact, f_recordroute(),
														 valueof(m_MBody_SDP(
																	 vc_sdp_local
																 ))));
@@ -3312,7 +3371,7 @@ module AtsIms_Gm_TCFunctions {
					f_awaitingResponse(mw_Response_Base(c_statusLine100,
														vc_callId, vc_cSeq));
					// send CANCEL of REQUEST
					f_setHeadersCANCEL(vc_cSeq);
					LibIms_Steps.f_setHeadersCANCEL(vc_cSeq,c_userProfile_UE2atSUThome);
					f_SendCANCEL(m_CANCEL_Request_UE(vc_requestUri, vc_callId,
													 p_cSeq_s, vc_from, vc_to,
													 vc_via,
@@ -4961,7 +5020,7 @@ module AtsIms_Gm_TCFunctions {
				// done
				// POSTAMBLE
				// send CANCEL of REQUEST
				f_setHeadersCANCEL(vc_cSeq);
				LibSip_Steps.f_setHeadersCANCEL(vc_cSeq);
				f_SendCANCEL(m_CANCEL_Request_UE(vc_requestUri, vc_callId,
												 p_cSeq_s, vc_from, vc_to,
												 vc_via, vc_route));
@@ -5078,7 +5137,7 @@ module AtsIms_Gm_TCFunctions {
				// done
				// POSTAMBLE
				// send CANCEL of REQUEST
				f_setHeadersCANCEL(vc_cSeq);
				LibSip_Steps.f_setHeadersCANCEL(vc_cSeq);
				f_SendCANCEL(m_CANCEL_Request_UE(vc_requestUri, vc_callId,
												 p_cSeq_s, vc_from, vc_to,
												 vc_via, vc_route));
@@ -5140,7 +5199,7 @@ module AtsIms_Gm_TCFunctions {
				// done
				// POSTAMBLE
				// send CANCEL of REQUEST
				f_setHeadersCANCEL(vc_cSeq);
				LibSip_Steps.f_setHeadersCANCEL(vc_cSeq);
				f_SendCANCEL(m_CANCEL_Request_UE(vc_requestUri, vc_callId,
												 p_cSeq_s, vc_from, vc_to,
												 vc_via, vc_route));
@@ -5204,10 +5263,10 @@ module AtsIms_Gm_TCFunctions {
											vc_from, vc_to, vc_via,
											m_MBody_SDP(vc_sdp_local)));

				// await response - 503 or 488 ...
				f_awaitingResponseSendACK(mw_Response_Base((c_statusLine503,
													 c_statusLine488),
													vc_callId, vc_cSeq));
                // await BYE and send 200OK
                f_awaitingBYE_sendReply(mw_BYE_Request_ReasonSIP
                      (vc_callId,(503,488)));


				f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync
				// point
@@ -5267,10 +5326,12 @@ module AtsIms_Gm_TCFunctions {
																	 vc_sdp_local
																 ))));

				// await response - 503 or 488 ...
				f_awaitingResponseSendACK(mw_Response_Base((c_statusLine503,
													 c_statusLine488),
													vc_callId, vc_cSeq));
				// await response 
				f_awaitingACK(mw_ACK_Request_Base(vc_callId));

				// await BYE (503 or 488 ...) and send 200OK
				f_awaitingBYE_sendReply(mw_BYE_Request_ReasonSIP
										(vc_callId,(503,488)));
										
				f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync
				// point
@@ -5331,10 +5392,9 @@ module AtsIms_Gm_TCFunctions {
											vc_from, vc_to, vc_via,
											m_MBody_SDP(vc_sdp_local)));

				// await response - 503 or 488 ...
				f_awaitingResponseSendACK(mw_Response_Base((c_statusLine503,
													 c_statusLine488),
													vc_callId, vc_cSeq));
				// await BYE and send 200OK
				f_awaitingBYE_sendReply(mw_BYE_Request_ReasonSIP
										(vc_callId,(503,488)));

				f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync
				// point
@@ -5400,10 +5460,13 @@ module AtsIms_Gm_TCFunctions {
																	 vc_sdp_local
																 ))));

				// await response - 503 or 488 ...
				f_awaitingResponseSendACK(mw_Response_Base((c_statusLine503,
													 c_statusLine488),
													vc_callId, vc_cSeq));
				// await response 
				f_awaitingACK(mw_ACK_Request_Base(vc_callId));

				// await BYE (503 or 488 ...) and send 200OK
				f_awaitingBYE_sendReply(mw_BYE_Request_ReasonSIP
										(vc_callId,(503,488)));
										

				f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync
				// point
@@ -5554,7 +5617,6 @@ module AtsIms_Gm_TCFunctions {

                var REGISTER_Request v_register;
            

                v_register :=
                 valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId,
                         p_cSeq_s, vc_from, vc_to,
@@ -5569,24 +5631,19 @@ module AtsIms_Gm_TCFunctions {
                // preamble
                // done
                // TESTBODY
				// Awaiting INVITE
				f_awaitingINVITE(mw_INVITE_Request_Base);
                // prepare and send INVITE UE2
                // @SUT
                LibIms_Steps
                .f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE2atSUThome);
                f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId,
                         p_cSeq_s, vc_from, vc_to,
                         vc_via, vc_contact, omit,
                         vc_route_REG, omit,
                         m_MBody_SDP(vc_sdp_local)));

				vc_sdp_local :=
					valueof(m_SDP_unacceptable(valueof(m_media_dynPT
													   ("0", "PCMU/8000")),
											   vc_userprofile));
				f_sendResponse(m_Response_18XonINVITE_sdp_UE(c_statusLine180,
															 vc_callId,
															 vc_cSeq,
															 vc_caller_From,
															 vc_caller_To,
															 vc_via,
															 vc_contact,
															 valueof(m_MBody_SDP
																	 (
																		 vc_sdp_local
																	 ))));
				// await response - 180 ...
				f_awaitingResponse(mw_Response_Base(c_statusLine180, vc_callId,
													vc_cSeq));

				f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync
				// point
@@ -5594,6 +5651,17 @@ module AtsIms_Gm_TCFunctions {
				// body
				// done
				// POSTAMBLE
				// send CANCEL of REQUEST
				LibIms_Steps.f_setHeadersCANCEL(vc_cSeq,c_userProfile_UE2atSUThome);
				f_SendCANCEL(m_CANCEL_Request_UE(vc_requestUri, vc_callId,
												 vc_cSeq, vc_from, vc_to,
												 vc_via, vc_route));
				f_awaitingOkResponse(vc_cSeq);
//				// await response - 487
//				f_awaitingResponseSendACK(mw_Response_Base(c_statusLine487, vc_callId,
//													vc_cSeq));


				// send REGISTER, await 401, send REGISTER, await 200 OK
				f_RemoveRegistration(vc_cSeq); // deregistration in SUT
				f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
@@ -5630,35 +5698,34 @@ module AtsIms_Gm_TCFunctions {
				// preamble
				// done
				// TESTBODY
				// prepare and send INVITE UE1
				// @SUT
				LibIms_Steps
				.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE1atSUThome);
				f_SendINVITE(m_INVITE_Request_UE(vc_requestUri, vc_callId,
												 p_cSeq_s, vc_from, vc_to,
												 vc_via, vc_contact, omit,
												 vc_route_REG, omit,
												 m_MBody_SDP(vc_sdp_local)));
				// Awaiting INVITE
				f_awaitingINVITE(mw_INVITE_Request_Base);

				vc_sdp_local :=
					valueof(m_SDP_unacceptable(valueof(m_media_dynPT
													   ("0", "PCMU/8000")),
											   vc_userprofile));
				f_sendResponse(m_Response_18XonINVITE_sdp_UE(c_statusLine180,
															 vc_callId,
															 vc_cSeq,
															 vc_caller_From,
															 vc_caller_To,
															 vc_via,
															 vc_contact,
															 valueof(m_MBody_SDP
																	 (
																		 vc_sdp_local
																	 ))));

				// await response - 180 ...
				f_awaitingResponse(mw_Response_Base(c_statusLine180, vc_callId,
													vc_cSeq));

				f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync
				// point
				// test
				// body
				// done
				// POSTAMBLE
				// send CANCEL of REQUEST
				f_setHeadersCANCEL(vc_cSeq);
				f_SendCANCEL(m_CANCEL_Request_UE(vc_requestUri, vc_callId,
												 p_cSeq_s, vc_from, vc_to,
												 vc_via, vc_route));
				f_awaitingOkResponse(p_cSeq_s);
				// await response - 487
				f_awaitingResponseSendACK(mw_Response_Base(c_statusLine487, vc_callId,
													vc_cSeq));
				
				f_awaitingCANCEL(mw_CANCEL_Request_Base(vc_callId));
				f_send200OK();
				
				// send REGISTER, await 401, send REGISTER, await 200 OK
				f_RemoveRegistration(vc_cSeq);
+55 −28
Original line number Diff line number Diff line
@@ -998,7 +998,7 @@ module AtsIms_Mw_TCFunctions
		*  @param	p_cSeq_s 
		*/
		function f_TC_IMST2_MW_REG_01_IMS(in CSeq p_cSeq_s) runs on ImsComponent {
		
			var template SipUrl v_SipUrl_;
			f_IMS_preamble_woRegistration(c_userProfile_ICSCFwithHomeUE, p_cSeq_s);
			f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF);
		
@@ -1007,7 +1007,9 @@ module AtsIms_Mw_TCFunctions
			// Testbody

			//Awaiting REGISTER	
			f_awaitingREGISTER(mw_REGISTER_Request_IMS(mw_path (f_initSipUrl(c_interfaceProfile_IMS_SUT_PCSCF1)),mw_pChargingVector("orig-ioi",?),mw_pVisitedNetworkID));
			v_SipUrl_ := f_initSipUrl(c_interfaceProfile_IMS_SUT_PCSCF1);
			v_SipUrl_.userInfo := *;
			f_awaitingREGISTER(mw_REGISTER_Request_IMS(mw_path (v_SipUrl_),mw_pChargingVector("orig-ioi",?),mw_pVisitedNetworkID));

			// any response to complete the request
			f_sendResponse(m_Response_Base(c_statusLine480,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via));
@@ -1068,8 +1070,9 @@ module AtsIms_Mw_TCFunctions
			// 401 response
			f_sendResponse(m_Response_WWWauthenticate_IMS(c_statusLine401,
				vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,
				m_wwwAuthenticate(f_calculatecChallenge_forWWWAuthorization
										(PX_IMS_SUT_UE1_QOP,vc_authorization.body[0].digestResponse)))
				m_wwwAuthenticate(f_calculatecChallenge_forWWWAuthorizationBody
										(PX_IMS_SUT_UE1_QOP,vc_authorization)))
   										//(PX_IMS_SUT_UE1_QOP,vc_authorization.body[0].digestResponse)))
   					);

			f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
@@ -1297,8 +1300,9 @@ module AtsIms_Mw_TCFunctions
			// 401 response
			f_sendResponse(m_Response_WWWauthenticate_IMS(c_statusLine401,
				vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,
				m_wwwAuthenticate(f_calculatecChallenge_forWWWAuthorization
										(PX_IMS_SUT_UE1_QOP,vc_authorization.body[0].digestResponse)))
				m_wwwAuthenticate(f_calculatecChallenge_forWWWAuthorizationBody
										(PX_IMS_SUT_UE1_QOP,vc_authorization)))
										//(PX_IMS_SUT_UE1_QOP,vc_authorization.body[0].digestResponse)))
				);

			f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
@@ -1406,8 +1410,9 @@ module AtsIms_Mw_TCFunctions
			// 401 response
			f_sendResponse(m_Response_WWWauthenticate_IMS(c_statusLine401,
				vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,
				m_wwwAuthenticate(f_calculatecChallenge_forWWWAuthorization
										(PX_IMS_SUT_UE1_QOP,vc_authorization.body[0].digestResponse)))
				m_wwwAuthenticate(f_calculatecChallenge_forWWWAuthorizationBody
										(PX_IMS_SUT_UE1_QOP,vc_authorization)))
										//(PX_IMS_SUT_UE1_QOP,vc_authorization.body[0].digestResponse)))
				);

			f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
@@ -1595,8 +1600,13 @@ module AtsIms_Mw_TCFunctions
												 m_proxyRequire_secAgree, m_require_secAgree, omit, omit ,omit)); //LibIms
		
			f_awaitingResponse(mw_Response_401onREGISTER_securityServer_UE(c_statusLine401, vc_callId, p_cSeq_s));
			if(f_checkParamValueFromChallengeIfPresent(vc_response.msgHeader.wwwAuthenticate.challenge.otherChallenge.authParams,"ck") 
				or f_checkParamValueFromChallengeIfPresent(vc_response.msgHeader.wwwAuthenticate.challenge.otherChallenge.authParams,"ik"))
			
			
			if( ischosen(vc_response.msgHeader.wwwAuthenticate.challenge.otherChallenge) and(
			
			f_checkParamValueFromChallengeIfPresent(vc_response.msgHeader.wwwAuthenticate.challenge.otherChallenge.authParams,"ck") 
				or f_checkParamValueFromChallengeIfPresent(vc_response.msgHeader.wwwAuthenticate.challenge.otherChallenge.authParams,"ik")
				))
						{setverdict(fail);
						log("FAIL: ck or ik parameter shall be removed from WWW-authenticate header");};
						
@@ -1627,9 +1637,18 @@ module AtsIms_Mw_TCFunctions
			// 401 response
			f_sendResponse(m_Response_WWWauthenticate_IMS(c_statusLine401,
				vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,
				m_wwwAuthenticate(f_calculatecChallenge_forWWWAuthorization
										(PX_IMS_SUT_UE1_QOP,vc_authorization.body[0].digestResponse)))
				m_wwwAuthenticate(f_calculatecChallenge_forWWWAuthorizationBody
										(PX_IMS_SUT_UE1_QOP,vc_authorization)))
				//m_wwwAuthenticate(f_calculatecChallenge_forWWWAuthorization
				//						(PX_IMS_SUT_UE1_QOP,vc_authorization.body[0].digestResponse)))
				);
//			// 401 response
//			if(ischosen(vc_authorization.body[0].otherResponse)){
//			f_sendResponse(m_Response_WWWauthenticate_IMS(c_statusLine401,
//				vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,
//				m_wwwAuthenticate(f_calculatecChallenge_forWWWAuthorization
//										(PX_IMS_SUT_UE1_QOP,vc_authorization.body[0].otherResponse.authParams)))
//				);}

			f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
			//Postamble
@@ -1683,10 +1702,16 @@ module AtsIms_Mw_TCFunctions
			var REGISTER_Request v_register;
		
			v_register := valueof(m_REGISTER_Request_Base(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG, vc_contact, vc_authorization));	
			// preamble with send REGISTER, await 401, send REGISTER, await 200 OK and user profile setting
			f_IMS_preamble_withRegistration(c_userProfile_UE1atSUTvisiting, p_cSeq_s, v_register);
			//Variables & defaults initialization
			f_IMS_preamble_woRegistration(c_userProfile_UE1atSUTvisiting, p_cSeq_s);
	
			//Preamble
			f_Registration(p_cSeq_s, v_register, PX_SIP_REGISTER_AUTHENTICATION_ENABLED);
			f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done

			// TESTBODY			
			f_setHeaders_SUBSCRIBE(p_cSeq_s);
			f_Subscription(p_cSeq_s, m_SUBSCRIBE_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, vc_route_REG));
					
			f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done
			// POSTAMBLE
@@ -1712,21 +1737,23 @@ module AtsIms_Mw_TCFunctions
			// 401 response
			f_sendResponse(m_Response_WWWauthenticate_IMS(c_statusLine401,
				vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,
				m_wwwAuthenticate(f_calculatecChallenge_forWWWAuthorization
										(PX_IMS_SUT_UE1_QOP,vc_authorization.body[0].digestResponse)))
				m_wwwAuthenticate(f_calculatecChallenge_forWWWAuthorizationBody
										(PX_IMS_SUT_UE1_QOP,vc_authorization)))
				//wwwAuthenticate(f_calculatecChallenge_forWWWAuthorization
				//				(PX_IMS_SUT_UE1_QOP,vc_authorization.body[0].digestResponse)))
				);

			//Awaiting 2nd REGISTER	with authorization header
			f_awaitingREGISTER(mw_REGISTER_authorizedRequest_IMS(m_Authorization_digest(mw_digestResponse(c_Integrity_protected_yes))));

			f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
			f_awaitingREGISTER(mw_REGISTER_authorizedRequest_IMS(m_Authorization_digest(mw_digestResponse((c_Integrity_protected_yes,c_Integrity_protected_ip_assoc_pending)))));

			// Testbody

			// 200OK to complete the request
			vc_contact := vc_request.msgHeader.contact;
			vc_contact.contactBody.contactAddresses[0].contactParams := {{"expires",int2str(3600)}};
			f_sendResponse(m_Response_2xxonREGISTER_IMS(c_statusLine200,vc_callId, vc_cSeq,vc_callee_From, vc_callee_To, vc_via,vc_contact,f_initSipUrl(c_userProfile_SCSCFwithHomeUE)));
			f_sendResponse(m_Response_2xxonREGISTER_IMS(c_statusLine200,vc_callId, vc_cSeq,vc_callee_From, vc_callee_To, vc_via,vc_contact,f_initSipUrl(c_userProfile_SCSCFwithHomeUE),vc_caller_From.addressField.nameAddr.addrSpec));

			f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());

			// await SUBSCRIBE
			f_awaitingSUBSCRIBE(mw_SUBSCRIBE_Request_IMS(mw_From(f_initSipUrl(c_interfaceProfile_IMS_SUT_PCSCF1)), vc_to, m_PAssertedID(m_AddrUnion_NameAddr(vc_request.msgHeader.path.pathValues[0].nameAddr)), mw_pChargingVector("icid-value",?)));
@@ -1758,7 +1785,7 @@ module AtsIms_Mw_TCFunctions
			f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_ICSCF);
			
			// registration of UE (visiting IMS) in home (SUT)
			f_Registration_IMS(vc_cSeq,false);
			f_Registration_IMS(vc_cSeq,true);
			f_setHeaders_SUBSCRIBE(p_cSeq_s);
			f_Subscription(vc_cSeq, m_SUBSCRIBE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_contact));
					
@@ -2352,7 +2379,7 @@ module AtsIms_Mw_TCFunctions
			{
				f_awaitingResponse(mw_Response_Base(c_statusLine100,vc_callId, vc_cSeq));
				//send CANCEL of REQUEST
				f_setHeadersCANCEL(vc_cSeq);
    			LibIms_Steps.f_setHeadersCANCEL(vc_cSeq,c_userProfile_ICSCFwithHomeUE);
				f_SendCANCEL(m_CANCEL_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, v_notMatchingRoute));
				f_awaitingOkResponse(p_cSeq_s);
				// await response - 487
@@ -5412,7 +5439,7 @@ module AtsIms_Mw_TCFunctions
			// POSTAMBLE
			
			//send CANCEL of REQUEST
			f_setHeadersCANCEL(vc_cSeq);
			LibIms_Steps.f_setHeadersCANCEL(vc_cSeq,c_serviceProfile_EMERGENCY);
			f_SendCANCEL(m_CANCEL_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_route)); 
			f_awaitingOkResponse(p_cSeq_s);
			// await response - 487
@@ -5466,7 +5493,7 @@ module AtsIms_Mw_TCFunctions
			// POSTAMBLE
			
			//send CANCEL of REQUEST
			f_setHeadersCANCEL(vc_cSeq);
			LibIms_Steps.f_setHeadersCANCEL(vc_cSeq,c_serviceProfile_EMERGENCY);
			f_SendCANCEL(m_CANCEL_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_route)); 
			f_awaitingOkResponse(p_cSeq_s);
			// await response - 487
@@ -5520,7 +5547,7 @@ module AtsIms_Mw_TCFunctions
			// POSTAMBLE
			
			//send CANCEL of REQUEST
			f_setHeadersCANCEL(vc_cSeq);
			LibIms_Steps.f_setHeadersCANCEL(vc_cSeq,c_serviceProfile_EMERGENCY);
			f_SendCANCEL(m_CANCEL_Request_UE(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_route)); 
			f_awaitingOkResponse(p_cSeq_s);
			// await response - 487