Commit 48be1876 authored by Iztok Juvancic's avatar Iztok Juvancic
Browse files

Merge branch 'TTF016' of https://forge.etsi.org/rep/int/vxlte/sccas-con into TTF016

parents f846c019 cce4de75
Loading
Loading
Loading
Loading
+197 −1
Original line number Diff line number Diff line
@@ -981,7 +981,7 @@ module AtsSccas_TCFunctions {
     
    group Group_9_3 {
        
        function f_TC_IISC_SCCAS_CPT_INV_01_ueims(in CSeq p_cSeq_s)
        function f_TC_ISC_SCCAS_CPT_INV_01(in CSeq p_cSeq_s)
        runs on ImsComponent {
                
            // TODO: set correct service profiles
@@ -1006,6 +1006,202 @@ module AtsSccas_TCFunctions {
            
            }
            
		function f_TC_ISC_SCCAS_CPT_INV_02(in CSeq p_cSeq_s)
		runs on ImsComponent {
		// Local variables
		var CSeq v_cSeq_s := p_cSeq_s;
				
		// Preambule
		f_init_userprofile(c_userProfile_UE1atSUThome);
		f_initSipUrl(c_serviceProfile_EMERGENCY);
		f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1);
		
		// initial condition: the UE entity isRegisteredTo the IMS  
		f_sendRegistrationAndAwait200Ok(
												v_cSeq_s,
												m_sccas_register(
																vc_requestUri, 
																vc_callId, 
																vc_cSeq, 
																vc_from, 
																vc_to, 
																vc_via_REG, 
																vc_contact, 
																m_add_Authorization_digest(
																							vc_authorization, 
																							{c_Integrity_protected_no}
																							), 
																PX_IMS_SUT_SCSCF_IPADDR, // TODO To be refined during validation
																PX_IMS_SUT_SCSCF_PORT, // TODO To be refined during validation
																"600000",
																-,
																m_contentType(c_sdpApplication), // TODO To be refined during validation
																m_MBody_SDP(vc_sdp_local) // TODO To be refined during validation
												), 
												mw_sccas_Response_2xxonREGISTER(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)
												);
				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
		
			LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome));
			f_SendINVITE(m_sccas_invite(
					vc_requestUri,
					vc_callId,
					vc_cSeq,
					vc_from,
					vc_to,
					vc_via_REG,
					vc_contact,
					omit, // template(omit) Require p_require := omit,
					vc_route,
					m_supported_replaces, 
					m_messageBody_SDP_mediaOnly
					
				)
			
			);
			f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callIdReg, p_cSeq_s));
			
			
			f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
		
		} // End of f_TC_IISC_SCCAS_CPT_INV_02
		
		function f_TC_ISC_SCCAS_CPT_RIN_01(in CSeq p_cSeq_s)
		runs on ImsComponent {
		// Local variables
		var CSeq v_cSeq_s := p_cSeq_s;
		
		// Preambule
		f_init_userprofile(c_userProfile_UE1atSUThome);
		f_initSipUrl(c_serviceProfile_EMERGENCY);
		f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1);
				
		// initial condition: the UE entity isRegisteredTo the IMS  
		f_sendRegistrationAndAwait200Ok(
												v_cSeq_s,
												m_sccas_register(
																vc_requestUri, 
																vc_callId, 
																vc_cSeq, 
																vc_from, 
																vc_to, 
																vc_via_REG, 
																vc_contact, 
																m_add_Authorization_digest(
																							vc_authorization, 
																							{c_Integrity_protected_no}
																							), 
																PX_IMS_SUT_SCSCF_IPADDR, // TODO To be refined during validation
																PX_IMS_SUT_SCSCF_PORT, // TODO To be refined during validation
																"600000",
																-,
																m_contentType(c_sdpApplication), // TODO To be refined during validation
																m_MBody_SDP(vc_sdp_local) // TODO To be refined during validation
												), 
												mw_sccas_Response_2xxonREGISTER(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)
												);
				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
		
		} // End of f_TC_IISC_SCCAS_CPT_RIN_01
		
		function f_TC_ISC_SCCAS_CPT_ACK_01(in CSeq p_cSeq_s)
		runs on ImsComponent {
		// Local variables
		var CSeq v_cSeq_s := p_cSeq_s;
			
		// Preambule
		f_init_userprofile(c_userProfile_UE1atSUThome);
		f_initSipUrl(c_serviceProfile_EMERGENCY);
		f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1);
				
		// initial condition: the UE entity isRegisteredTo the IMS  
		f_sendRegistrationAndAwait200Ok(
												v_cSeq_s,
												m_sccas_register(
																vc_requestUri, 
																vc_callId, 
																vc_cSeq, 
																vc_from, 
																vc_to, 
																vc_via_REG, 
																vc_contact, 
																m_add_Authorization_digest(
																							vc_authorization, 
																							{c_Integrity_protected_no}
																							), 
																PX_IMS_SUT_SCSCF_IPADDR, // TODO To be refined during validation
																PX_IMS_SUT_SCSCF_PORT, // TODO To be refined during validation
																"600000",
																-,
																m_contentType(c_sdpApplication), // TODO To be refined during validation
																m_MBody_SDP(vc_sdp_local) // TODO To be refined during validation
												), 
												mw_sccas_Response_2xxonREGISTER(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)
												);
				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
			
		} // End of f_TC_IISC_SCCAS_CPT_ACK_01
		
		function f_TC_ISC_SCCAS_CPT_INV_03(in CSeq p_cSeq_s)
		runs on ImsComponent {
		// Local variables
		var CSeq v_cSeq_s := p_cSeq_s;
		
		// Preambule
		f_init_userprofile(c_userProfile_UE1atSUThome);
		f_initSipUrl(c_serviceProfile_EMERGENCY);
		f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1);
				
		// initial condition: the UE entity isRegisteredTo the IMS  
		f_sendRegistrationAndAwait200Ok(
												v_cSeq_s,
												m_sccas_register(
																vc_requestUri, 
																vc_callId, 
																vc_cSeq, 
																vc_from, 
																vc_to, 
																vc_via_REG, 
																vc_contact, 
																m_add_Authorization_digest(
																							vc_authorization, 
																							{c_Integrity_protected_no}
																							), 
																PX_IMS_SUT_SCSCF_IPADDR, // TODO To be refined during validation
																PX_IMS_SUT_SCSCF_PORT, // TODO To be refined during validation
																"600000",
																-,
																m_contentType(c_sdpApplication), // TODO To be refined during validation
																m_MBody_SDP(vc_sdp_local) // TODO To be refined during validation
												), 
												mw_sccas_Response_2xxonREGISTER(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)
												);
				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
				
				// TODO: initial condition (PICS?): SCC AS supports the MSC Server assisted mid-call feature according to operator policy 
			
			// STEP: send invite	
			LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome));
			f_SendINVITE(m_sccas_invite(
					vc_requestUri,
					vc_callId,
					vc_cSeq,
					vc_from,
					vc_to,
					vc_via_REG,
					m_contact_g3gppSrvccAlertingFeature, // TODO: correct use auf g3gppSrvccAlertingFeatureCapabilityIndicator
					omit, // template(omit) Require p_require := omit,
					vc_route,
					m_supported_replaces, 
					omit
					
				)
			
			);
			f_awaitingResponse(mw_sccas_Response_2xxmediaOnly(vc_callIdReg, p_cSeq_s, ?, ?, ?, mw_contact_g3gppMidcallFeature));
		
		} // End of f_TC_ISC_SCCAS_CPT_INV_03
        
    } // End of group Group_9_3
     
    group Group_10_3 {
+103 −0
Original line number Diff line number Diff line
@@ -142,6 +142,70 @@ module AtsSccas_Templates
            
                group request_sent_Steffen {
                	
					template LibSip_SIPTypesAndValues.Contact m_contact_g3gppSrvccAlertingFeature := {
						fieldName := CONTACT_E,
						contactBody := {
							wildcard :=
								"g3gppSrvccAlertingFeatureCapabilityIndicator"
						}
					}
                    
                    template LibSip_MessageBodyTypes.MessageBody m_messageBody_SDP_mediaOnly := {
						sdpMessageBody := {
							protocol_version := 1, // TODO
							origin := {
								user_name := "username", // TODO 
								session_id := "sessionID", // TODO
								session_version := "sessionVersion", // TODO
								net_type := "netType", // TODO
								addr_type := "addrType", // TODO
								addr := "addr" // TODO
							},
							session_name := "sessionName", // TODO
							information := omit,
							uri := omit,
							emails := omit,
							phone_numbers := omit,
							connection := omit,
							bandwidth := omit,
							times := {
								{
									time_field := {
										start_time := "start", // TODO
										stop_time //* field is numeric strings  // TODO
												  //* that may not fit into
												  //* 32-bit signed int
											:= "stop"
									},
									time_repeat := omit
								}
							},
							timezone_adjustments := omit,
							key := omit,
							attributes := omit,
							media_list := {
								{
									media_field := {
										media := "media",
										ports := {
											port_number := 1,
											num_of_ports := omit
										},
										transport := "transport",
										fmts := {"fmts"}
									},
									information := omit,
									connections := omit,
									bandwidth := omit,
									key := omit,
									attributes := omit
								}
							}
						}
					}
                    
                    
                    
                    template  Supported m_supported_replaces := 
                    {
                         fieldName := REPLACES_E,
@@ -406,6 +470,45 @@ module AtsSccas_Templates
            
                group request_receive_Steffen {
                    
					template LibSip_SIPTypesAndValues.Contact mw_contact_g3gppMidcallFeature := {
						fieldName := ?, contactBody := ? // TODO: correct use of g3gppMidcallFeatureCapabilityIndicator
					}
                    
					template (present) Response mw_sccas_Response_2xxmediaOnly(
						//template (present) StatusLine.statusCode p_statusCode := 200,
						template (present) CallId p_callId := ?,
						template (present) CSeq p_cSeq := ?,
						template (present) From p_from := ?,
						template (present) To p_to := ?,
						template (present) Via p_via := ?,
						template (present) Contact p_contact := ?,
						template (present) PChargingVector p_pChargingVector := ?,
						template (present) PAssertedID p_pAssertedID := ?,
						template AcceptContact p_acceptContact := *
					) modifies mw_Response_2xx_Base := {
				//		statusLine := mw_statusLine(p_statusCode, ?),
						messageBody :=
						{
							sdpMessageBody :=
							{
								protocol_version := ?,
								origin := ?,
								session_name := ?,
								information := *,
								uri := *,
								emails := *,
								phone_numbers := *,
								connection := *,
								bandwidth := *,
								times := ?,
								timezone_adjustments := *,
								key := *,
								attributes := *,
								media_list := ? // TODO: media only && Version 0
							}
						}
					}
                    
                    template (present) Response mw_sccas_Response_200mediaOnly(
                        template (present) StatusLine.statusCode p_statusCode := 200,
                        template (present) CallId p_callId := ?,
+250 −1
Original line number Diff line number Diff line
@@ -354,7 +354,7 @@ module AtsSccas_Testcases
			
			
				
			f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_IISC_SCCAS_CPT_INV_01_ueims(p_cSeq_s));
			f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_CPT_INV_01(p_cSeq_s));
			
			
			
@@ -362,6 +362,255 @@ module AtsSccas_Testcases
				
		} // End of TP_ISC_SCCAS_CPT_INV_01
		
		/*
		 * @desc Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg) with static STI.
		 * @param p_cSeq_s Transaction Id
		 */		
		testcase TP_ISC_SCCAS_CPT_INV_02(inout CSeq p_cSeq_s)
		runs on ServerSyncComp
		system TestAdapter {
		
			var ImsComponent v_imsComponent_ueims;
				   
			// Test control
			if (not PICS_SCCAS_GM) {
				log("*** " & __SCOPE__ & ": ERROR: 'PICS_SCCAS_GM' shall be set to true for executing the TC. ***");
				stop;
			}
			
			// TODO: setUo "the UE entity isRegisteredTo the IMS"
			
			// f_Registration_IMS
			
			// Test component configuration
			f_cf_1IscUp(v_imsComponent_ueims);
			
			
				
			f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_CPT_INV_02(p_cSeq_s));
			
			
			
			// synchronize PTC on 3 sychronization points
			f_serverSync1Client({c_prDone, c_tbDone, c_poDone});

			f_cf_1IscDown(v_imsComponent_ueims);
			
		} // End of TP_ISC_SCCAS_CPT_INV_02
		
		
		/*
		 * @desc Verify that the P-CSCF successfully processes an re-INVITE (Originating Leg)
		 * @param p_cSeq_s Transaction Id
		 */		
		testcase TP_ISC_SCCAS_CPT_RIN_01(inout CSeq p_cSeq_s)
		runs on ServerSyncComp
		system TestAdapter {
			
			var ImsComponent v_imsComponent_ueims;
				   
			// Test control
			if (not PICS_SCCAS_GM) {
				log("*** " & __SCOPE__ & ": ERROR: 'PICS_SCCAS_GM' shall be set to true for executing the TC. ***");
				stop;
			}
			
			// TODO: setUo "the UE entity isRegisteredTo the IMS"
			
			// f_Registration_IMS
			
			// Test component configuration
			f_cf_1IscUp(v_imsComponent_ueims);
			
			
				
			f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_CPT_RIN_01(p_cSeq_s));
			
			
			
			f_cf_1IscDown(v_imsComponent_ueims);
				
		} // End of TP_ISC_SCCAS_CPT_RIN_01
			
			
		/*
		 * @desc Verify that the P-CSCF successfully processes an ACK and release the source access leg.
		 * @param p_cSeq_s Transaction Id
		 */		
		testcase TP_ISC_SCCAS_CPT_ACK_01(inout CSeq p_cSeq_s)
		runs on ServerSyncComp
		system TestAdapter {
			
			var ImsComponent v_imsComponent_ueims;
				   
			// Test control
			if (not PICS_SCCAS_GM) {
				log("*** " & __SCOPE__ & ": ERROR: 'PICS_SCCAS_GM' shall be set to true for executing the TC. ***");
				stop;
			}
			
			// TODO: setUo "the UE entity isRegisteredTo the IMS"
			
			// f_Registration_IMS
			
			// Test component configuration
			f_cf_1IscUp(v_imsComponent_ueims);
			
			
				
			f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_CPT_ACK_01(p_cSeq_s));
			
			
			
			// synchronize PTC on 3 sychronization points
			f_serverSync1Client({c_prDone, c_tbDone, c_poDone});

			f_cf_1IscDown(v_imsComponent_ueims);
				
		} // End of TP_ISC_SCCAS_CPT_ACK_01
		

		/*
		 * @desc Verify that the SCC AS Conditions for selecting a sessions in an early dialog phase
		 * @param p_cSeq_s Transaction Id
		 */		
		testcase TP_ISC_SCCAS_CPT_INV_03(inout CSeq p_cSeq_s)
		runs on ServerSyncComp
		system TestAdapter {
		
		var ImsComponent v_imsComponent_ueims;
				   
			// Test control
			if (not PICS_SCCAS_GM) {
				log("*** " & __SCOPE__ & ": ERROR: 'PICS_SCCAS_GM' shall be set to true for executing the TC. ***");
				stop;
			}
			
			
			// Test component configuration
			f_cf_1IscUp(v_imsComponent_ueims);
			
			
				
			f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_CPT_INV_03(p_cSeq_s));
			
			
			
			// synchronize PTC on 3 sychronization points
			f_serverSync1Client({c_prDone, c_tbDone, c_poDone});

			f_cf_1IscDown(v_imsComponent_ueims);
			
		} // End of TP_ISC_SCCAS_CPT_INV_03
		
		
		testcase TP_ISC_SCCAS_CPT_INV_04(inout CSeq p_cSeq_s)
		runs on ServerSyncComp
		system TestAdapter {
		
		// TODO
			
		} // End of TP_ISC_SCCAS_CPT_INV_04
    	
    	
		testcase TP_ISC_SCCAS_PCT_UPD_01(inout CSeq p_cSeq_s)
		runs on ServerSyncComp
		system TestAdapter {
		
		// TODO
			
		} // End of TP_ISC_SCCAS_PCT_UPD_01
		
		testcase TP_ISC_PCT_RES_02(inout CSeq p_cSeq_s)
		runs on ServerSyncComp
		system TestAdapter {
		
		// TODO
			
		} // End of TP_ISC_PCT_RES_02
		
		testcase TP_ISC_SCCAS_PCT_INV_05(inout CSeq p_cSeq_s)
		runs on ServerSyncComp
		system TestAdapter {
		
		// TODO
			
		} // End of TP_ISC_SCCAS_PCT_INV_05
		
		testcase TP_ISC_SCCAS_PCT_REF_01(inout CSeq p_cSeq_s)
		runs on ServerSyncComp
		system TestAdapter {
		
		// TODO
			
		} // End of TP_ISC_SCCAS_PCT_REF_01
		
		testcase TP_ISC_SCCAS_PCT_REF_02(inout CSeq p_cSeq_s)
		runs on ServerSyncComp
		system TestAdapter {
		
		// TODO
			
		} // End of TP_ISC_SCCAS_PCT_REF_02
		
		testcase TP_ISC_SCCAS_PCT_RES_01(inout CSeq p_cSeq_s)
		runs on ServerSyncComp
		system TestAdapter {
		
		// TODO
			
		} // End of TP_ISC_SCCAS_PCT_RES_01
		
		
		testcase TP_ISC_SCCAS_MED_BYE_01(inout CSeq p_cSeq_s)
		runs on ServerSyncComp
		system TestAdapter {
		
		// TODO
			
		} // End of TP_ISC_SCCAS_MED_BYE_01
		
		testcase TP_ISC_SCCAS_MED_RES_01(inout CSeq p_cSeq_s)
		runs on ServerSyncComp
		system TestAdapter {
		
		// TODO
			
		} // End of TP_ISC_SCCAS_MED_RES_01
		
		testcase TP_ISC_SCCAS_MED_RIN_01(inout CSeq p_cSeq_s)
		runs on ServerSyncComp
		system TestAdapter {
		
		// TODO
			
		} // End of TP_ISC_SCCAS_MED_RIN_01
		
		testcase TP_ISC_SCCAS_CPT_INV_05(inout CSeq p_cSeq_s)
		runs on ServerSyncComp
		system TestAdapter {
		
		// TODO
			
		} // End of TP_ISC_SCCAS_CPT_INV_05
		
		testcase TP_ISC_SCCAS_CPT_INV_06(inout CSeq p_cSeq_s)
		runs on ServerSyncComp
		system TestAdapter {
		
		// TODO
			
		} // End of TP_ISC_SCCAS_CPT_INV_06
		
		
		testcase TP_ISC_SCCAS_PCT_INV_04(inout CSeq p_cSeq_s)
		runs on ServerSyncComp
		system TestAdapter {
		
		// TODO
			
		} // End of TP_ISC_SCCAS_PCT_INV_04
    	
    } // End of group Group_9_3
     
    group Group_10_3 {