Commit 538d0207 authored by garciay's avatar garciay
Browse files

STF467 corrections:

- Temporary backup of source code, development in progress
parent 336d6314
Loading
Loading
Loading
Loading
+66 −48
Original line number Diff line number Diff line
@@ -2674,6 +2674,18 @@ module AtsIms_Mw_TCFunctions
            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));
			//END OF SPECIAL REGISTRATION PROCEDURE
			
			
			
//			TODO please remove this experimental workaround before SVN commit (for testing w/o security association support only)			
//			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_UE1atSUThome, c_interfaceProfile_IMS_SUT_PCSCF1, p_cSeq_s, v_register);
//          v_routeBody := mw_routeBody ( mw_SipUrl_Host ( ( PX_IMS_SUT_PCSCF1_IPADDR, PX_IMS_SUT_PCSCF1_HOME_DOMAIN ) ));			
			
			
			
			
            
			f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done

			// TESTBODY
@@ -3224,9 +3236,13 @@ module AtsIms_Mw_TCFunctions
				//await response - 180
				f_awaitingResponse(mw_Response_Base(c_statusLine180,vc_callId, vc_cSeq)); 
				//180 - check of parameters 
				if ((not match(f_getRecordRouteHeaderElementAddressFromResponse(vc_response,0),f_get_interfaceHostPort(vc_interfaceprofile))
				or not match(f_getRecordRouteHeaderElementAddressFromResponse(vc_response,1),f_get_interfaceHostPort(vc_interfaceprofile)))) // IUT_PCSCF
					{setverdict(fail)};
				if (match(f_getRecordRouteHeaderElementAddressFromResponse(vc_response,0),f_get_interfaceHostPort(vc_interfaceprofile))
				and match(f_getRecordRouteHeaderElementAddressFromResponse(vc_response,1),f_get_interfaceHostPort(vc_interfaceprofile))) // IUT_PCSCF
				{
				    setverdict(fail);
				} else {
				    setverdict(pass);
				}
			}

			f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done
@@ -3266,7 +3282,7 @@ module AtsIms_Mw_TCFunctions
													v_notMatchingRecordRoute, valueof(m_MBody_SDP(vc_sdp_local)))) to vc_sent_label;			
			
			// await ACK
			f_awaitingACK(mw_ACK_Request_Base(vc_callId));
//			f_awaitingACK(mw_ACK_Request_Base(vc_callId));
			
			f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done
			// POSTAMBLE
@@ -3305,31 +3321,34 @@ module AtsIms_Mw_TCFunctions
				//await response - 200
				f_awaitingResponse(mw_Response_Base(c_statusLine200,vc_callId, vc_cSeq)); 
				//200 - check of parameters 
				if ((not match(f_getRecordRouteHeaderElementAddressFromResponse(vc_response,0),f_get_interfaceHostPort(vc_interfaceprofile))
				or not match(f_getRecordRouteHeaderElementAddressFromResponse(vc_response,1),f_get_interfaceHostPort(vc_interfaceprofile)))) // IUT_PCSCF
					{setverdict(fail)};
					
				if (match(f_getRecordRouteHeaderElementAddressFromResponse(vc_response,0),f_get_interfaceHostPort(vc_interfaceprofile))
				and match(f_getRecordRouteHeaderElementAddressFromResponse(vc_response,1),f_get_interfaceHostPort(vc_interfaceprofile))) // IUT_PCSCF
				{
				    setverdict(fail);
				} else {
                    setverdict(pass);
				}

                // send ACK
                LibSip_Steps.f_setHeadersACK();
                f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq,
                                             vc_from, vc_to, vc_via, vc_route));
//                // send ACK
//                LibSip_Steps.f_setHeadersACK();
//                f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq,
//                                             vc_from, vc_to, vc_via, vc_route));
			}

			f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done
			// POSTAMBLE
			
			if (PC_PCSCF_handle_1xx_2xx_response_to_initial_request_with_mismatching_Route_header) {
//			if (PC_PCSCF_handle_1xx_2xx_response_to_initial_request_with_mismatching_Route_header) {
				// send CANCEL await 200 on CANCEL and 487 on INV
				f_cancelCall(m_CANCEL_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via));			
				f_awaitingResponse(mw_Response_Base(c_statusLine487, vc_callId, v_cseq_invite)); // on INVITE
				LibSip_Steps.f_setHeadersACK();
                f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq,
                                             vc_from, vc_to, vc_via, vc_route));
				} else {
				//send BYE and await 200OK
				f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To);
				}
//			} else {
//				//send BYE and await 200OK
//				f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To);
//			}

			f_SIP_postamble_UE1_withoutRegistration();
		
@@ -3367,15 +3386,12 @@ module AtsIms_Mw_TCFunctions
				f_sendResponse(m_Response_4XXonINVITE_UE(c_statusLine487, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via, omit));
//				//	await ACK
				f_awaitingACK(mw_ACK_Request_Base(vc_callId));
			} else
			{
			} else {
				//	await ACK
				f_awaitingACK(mw_ACK_Request_Base(vc_callId));
			}

			
						
			
			// send REGISTER, await 401, send REGISTER, await 200 OK	
			f_RemoveRegistration(vc_cSeq); // deregistration in SUT
			f_SIP_postamble_UE1_withoutRegistration();
@@ -3403,15 +3419,15 @@ module AtsIms_Mw_TCFunctions
			
			// TESTBODY

			if (not PC_PCSCF_handle_other_response_to_initial_request_with_mismatching_Via_header) {
//			if (not PC_PCSCF_handle_other_response_to_initial_request_with_mismatching_Via_header) {
				//await response - 480
				f_awaitingResponse(mw_Response_Via(c_statusLine480,vc_callId, vc_cSeq, vc_via)); 
				}
//			}

			f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done
			// POSTAMBLE
			
			if (PC_PCSCF_handle_other_response_to_initial_request_with_mismatching_Via_header) {
//			if (PC_PCSCF_handle_other_response_to_initial_request_with_mismatching_Via_header) {
                vc_cSeq.method := "CANCEL";
				// send CANCEL await 200 on CANCEL and 487 on INV
				f_cancelCall(m_CANCEL_Request_Base(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via));			
@@ -3419,11 +3435,11 @@ module AtsIms_Mw_TCFunctions
				f_awaitingResponse(mw_Response_Base(c_statusLine487, vc_callId, v_cseq_invite)); // on INVITE
				LibSip_Steps.f_setHeadersACK();
				f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_route));
				} else {
				//send ACK for 4xx reponse
				LibSip_Steps.f_setHeadersACK();
				f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_route));
				}
//			} else {
//				//send ACK for 4xx reponse
//				LibSip_Steps.f_setHeadersACK();
//				f_SendACK(m_ACK_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_route));
//			}

			f_SIP_postamble_UE1_withoutRegistration();
		
@@ -5090,8 +5106,6 @@ module AtsIms_Mw_TCFunctions
			//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_UE1atSUThome, c_interfaceProfile_IMS_SUT_PCSCF1, p_cSeq_s, v_register);
			f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done
			// TESTBODY
			
			//	prepare and send INVITE UE@TS
			LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, c_userProfile_ICSCFwithHomeUE);
@@ -5109,6 +5123,9 @@ module AtsIms_Mw_TCFunctions
			f_SendBYE(m_BYE_Request_UE(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_route));
            f_awaitingResponse(mw_Response_Base((c_statusLine200),vc_callId, vc_cSeq));

			f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());// sync point preamble done
			// TESTBODY

			f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done
			// POSTAMBLE
			
@@ -5126,10 +5143,6 @@ module AtsIms_Mw_TCFunctions
			f_IMS_preamble_woRegistration(c_userProfile_ICSCFwithHomeUE, p_cSeq_s);
			f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_SCSCF);
        	
			f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
        	
			// Testbody
        	
			// await INVITE UE1@SUT			
			f_awaitingINVITE(mw_INVITE_Request_Base); // no specific constraints in TP
				
@@ -5142,6 +5155,9 @@ module AtsIms_Mw_TCFunctions
			//await BYE and send 200OK (if alternative b)
			f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId));					
        	
			f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
        	
			// Testbody        		
			// Sending of a BYE request
			LibSip_Steps.f_setHeadersBYE(vc_cSeq);
			f_SendBYE(m_BYE_Request_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, vc_route));
@@ -5164,7 +5180,7 @@ module AtsIms_Mw_TCFunctions
			var REGISTER_Request v_register;
			timer t_regExpires;
			var CallId v_callId;
			const charstring c_shortTimerExpiration := "30";
			const charstring c_shortTimerExpiration := "3700"; // FIXME STF467 Use a PIXIT
			
            //INITIALIZATION AND SPECIAL REGISTRATION PROCEDURE WHERE EXPIRATION TIMER IS REDUCED SO THAT TEST CAN BE EXECUTED                                                                      
            f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1);
@@ -5247,7 +5263,7 @@ module AtsIms_Mw_TCFunctions
		function f_TC_IMST2_MW_SUB_10_IMS(in CSeq p_cSeq_s) runs on ImsComponent {
			
			timer t_regExpires;
            const charstring c_shortTimerExpiration := "30";
            const charstring c_shortTimerExpiration := "3700"; // FIXME STF467 Use a PIXIT
			
			f_IMS_preamble_woRegistration(c_userProfile_ICSCFwithHomeUE, p_cSeq_s);
			f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_SCSCF);
@@ -5521,9 +5537,9 @@ module AtsIms_Mw_TCFunctions
			
			//await REINVITE UE1@SUT
            f_awaitingINVITE(mw_INVITE_Request_IMS(
                            *,//PCSCF update PCharging-Vector header with access-network-charging-info but than when INVITE is going towards second IMS this parameter could be removed // mw_pChargingVector(c_access_network_charging_info,?),
                            mw_pChargingVector(c_access_network_charging_info,?),
                            mw_recordroute(	mw_routeBody(mw_SipUrl_Host((PX_IMS_SUT_PCSCF1_IPADDR,PX_IMS_SUT_PCSCF1_HOME_DOMAIN)))),
                            *,//PCSCF add route header but than when INVITE is going towards second IMS route is not present//mw_route({mw_routeBody(f_initSipUrl(c_userProfile_SCSCFwithHomeUE))}),
                            mw_route({mw_routeBody(complement(mw_SipUrl_Host((PX_IMS_SUT_PCSCF1_IPADDR,PX_IMS_SUT_PCSCF1_HOME_DOMAIN))))}),
                            mw_Via(mw_ViaBody_interface(f_get_interfaceHostPort(vc_interfaceprofile))) // interfaceProfile_IMS_SUT_PCSCF
                            )); 			
			
@@ -6821,7 +6837,9 @@ module AtsIms_Mw_TCFunctions
			// 	INVITE UE1 (registered at SUT)
			LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, c_userProfile_UE1atSUThome);
			vc_sdp_local:=valueof(m_SDP_encrypted(valueof(m_media_dynPT("0", "PCMU/8000")), vc_userprofile));
			f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, omit, omit, omit, m_pChargingVector_origIoi_fixedValue(vc_userprofile.homeDomain), valueof(m_MBody_SDP(vc_sdp_local))));
//			f_SendINVITE(m_INVITE_Request_IMS(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, omit, omit, omit, m_pChargingVector_origIoi_fixedValue(vc_userprofile.homeDomain), valueof(m_MBody_SDP(vc_sdp_local))));
			f_SendINVITE(m_INVITE_Request_Mime_IMS(vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via, vc_contact, omit, omit, omit, omit, m_pChargingVector_origIoi_fixedValue(vc_userprofile.homeDomain), valueof(m_MBody_MIMESdpEncrypted(vc_sdp_local))));
            
			//await response - 4xx or timeout
			f_awaitingResponse(mw_Response_Base({c_sipNameVersion, (400..499), ?},vc_callId, vc_cSeq)); 
			//send ACK	
@@ -6964,7 +6982,8 @@ module AtsIms_Mw_TCFunctions
					 */
			
			vc_sdp_local:=valueof(m_SDP_encrypted(valueof(m_media_dynPT("0", "PCMU/8000")), vc_userprofile));
			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))));
			f_sendResponse(m_Response_2xxonINVITE_Mime(c_statusLine200,vc_callId, vc_cSeq,vc_caller_From, vc_caller_To, vc_via,vc_contact, f_recordroute(),valueof(m_MBody_MIMESdpEncrypted(vc_sdp_local))));

			//await ACK
			f_awaitingACK(mw_ACK_Request_Base(vc_callId));
			//await BYE and send 200OK
@@ -6994,11 +7013,10 @@ module AtsIms_Mw_TCFunctions
			//	send ACK
			vc_sdp_local:=valueof(m_SDP_encrypted(valueof(m_media_dynPT("0", "PCMU/8000")), vc_userprofile));
			LibSip_Steps.f_setHeadersACK();
			f_SendACK(m_ACK_Request_sdp_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, valueof(m_MBody_SDP(vc_sdp_local)), vc_route));
			
            //send BYE and await 200OK
            f_terminateCall_UE(vc_requestUri, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To);
			f_SendACK(m_ACK_Request_Mime_IMS(vc_requestUri, vc_callId, vc_cSeq, vc_from, vc_to, vc_via, valueof(m_MBody_MIMESdpEncrypted(vc_sdp_local)), vc_route));
			
            //await BYE and send 200OK
            f_awaitingBYE_sendReply(mw_BYE_Request_Base(vc_callId));            
			f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());// sync point test body done

			//	POSTAMBLE