Commit d584d104 authored by Bostjan Pintar's avatar Bostjan Pintar
Browse files

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

parents 457f84c1 9d0c30ae
Loading
Loading
Loading
Loading
+149 −5
Original line number Original line Diff line number Diff line
@@ -1227,7 +1227,7 @@ module AtsSccas_TCFunctions {
			
			
			// STEP: send invite	
			// STEP: send invite	
			LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome));
			LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome));
			f_SendINVITE(m_sccas_invite(
			f_SendINVITE(m_sccas_invite_contact(
					vc_requestUri,
					vc_requestUri,
					vc_callId,
					vc_callId,
					vc_cSeq,
					vc_cSeq,
@@ -1237,8 +1237,8 @@ module AtsSccas_TCFunctions {
					m_contact_g3gppSrvccAlertingFeature, // TODO: correct use auf g3gppSrvccAlertingFeatureCapabilityIndicator
					m_contact_g3gppSrvccAlertingFeature, // TODO: correct use auf g3gppSrvccAlertingFeatureCapabilityIndicator
					omit, // template(omit) Require p_require := omit,
					omit, // template(omit) Require p_require := omit,
					vc_route,
					vc_route,
					m_supported_replaces, 
					omit, 
					omit
					m_messageBody_SDP_mediaOnly
					
					
				)
				)
			
			
@@ -1247,6 +1247,149 @@ module AtsSccas_TCFunctions {
		
		
		} // End of f_TC_ISC_SCCAS_CPT_INV_03
		} // End of f_TC_ISC_SCCAS_CPT_INV_03
		
		
		function f_TC_ISC_SCCAS_CPT_INV_04(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_contact(
					vc_requestUri,
					vc_callId,
					vc_cSeq,
					vc_from,
					vc_to,
					vc_via_REG,
					m_contact_g3gppDrvccAlertingFeature, // TODO: correct use auf g3gppDrvccAlertingFeature
					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_g3gppDrvccAlertingFeature));
		
		} // End of f_TC_ISC_SCCAS_CPT_INV_04
		
		
		function f_TC_ISC_SCCAS_CPT_INV_05(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_contact(
					vc_requestUri,
					vc_callId,
					vc_cSeq,
					vc_from,
					vc_to,
					vc_via_REG,
					m_contact_g3gppDrvccOrigPreAlertingFeature, // TODO: correct use auf g3gppDrvccOrigPreAlertingFeature
					omit, // template(omit) Require p_require := omit,
					vc_route,
					m_supported_replaces, 
					omit // TODO
					
				)
			
			);
			
 			tc_ack.start;
				alt {
					[] SIPP.receive(mw_UPDATE_Request_ContactChange(
							vc_callId, 
							mw_contact_sourceLegAtCreation, 
							mw_contentType_appclication_sdp, 
							mw_sdpmessageBody)) {
						tc_ack.stop;
						log("*** " & __SCOPE__ & ": PASS: response 200 was received ***");
						f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync
					}
					[] tc_ack.timeout {
						f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync 
					}
				}
			
//			f_awaitingResponse(mw_UPDATE_Request_ContactChange(
//				vc_callId, 
//				mw_contact_sourceLegAtCreation, 
//				mw_contentType_appclication_sdp, 
//				mw_sdpmessageBody));
		//	f_awaitingResponse(mw_sccas_Response_2xxmediaOnly(vc_callIdReg, p_cSeq_s, ?, ?, ?, mw_contact_g3gppDrvccAlertingFeature));
		
		} // End of f_TC_ISC_SCCAS_CPT_INV_05
        
    } // End of group Group_9_3
    } // End of group Group_9_3
     
     
    group Group_10_3 {
    group Group_10_3 {
@@ -1293,14 +1436,15 @@ module AtsSccas_TCFunctions {
                // Registration
                // Registration
                f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome));
                f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome));
                f_SendINVITE(
                f_SendINVITE(
                             m_sccas_invite(   // TODO request active speech media component using CS bearer
							 m_sccas_invite_replaces(   // TODO request active speech media component using CS bearer
                                            vc_requestUri,
                                            vc_requestUri,
                                            vc_callId, 
                                            vc_callId, 
                                            p_cSeq_s, 
                                            p_cSeq_s, 
                                            vc_from, vc_to, vc_via_REG, 
                                            vc_from, vc_to, vc_via_REG, 
                                            vc_contact,
                                            vc_contact,
                                            -, -, -,
                                            -, -, -,
                                            m_MBody_SDP(vc_sdp_local)
                                            m_MBody_SDP(vc_sdp_local),
                                            - // indicating access transfer procedure
                                            ));
                                            ));
                tc_ack.start;
                tc_ack.start;
                alt {
                alt {
+108 −4
Original line number Original line Diff line number Diff line
@@ -17,6 +17,8 @@ module AtsSccas_Templates
    import from LibIms_SIPTypesAndValues all;
    import from LibIms_SIPTypesAndValues all;
    import from LibIms_Templates all;
    import from LibIms_Templates all;
    
    
    import from LibSip_SDPTypes all;
  
    group HeaderTemplates {                
    group HeaderTemplates {                
        
        
        template (value) Supported m_sccas_supported(
        template (value) Supported m_sccas_supported(
@@ -138,10 +140,41 @@ module AtsSccas_Templates
                    messageBody := p_mb
                    messageBody := p_mb
                }
                }
                group request_sent_Axel {
                group request_sent_Axel {

				template (omit) INVITE_Request m_sccas_invite_replaces(
															  in template(value) SipUrl p_requestUri,
															  in template(value) CallId p_callId,
															  in template(value) CSeq p_cSeq,
															  in template(value) From p_from,
															  in template(value) To p_to,
															  in template(value) LibSip_SIPTypesAndValues.Via p_via,
															  in template(value) LibSip_SIPTypesAndValues.Contact p_contact,
															  in template(omit) Require p_require := omit,
															  in template(omit) Route p_route := omit,
															  in template(omit) Supported p_supported := omit,
															  in template(value) MessageBody p_mb,
															  in template(omit) Replaces p_replaces := omit
				) modifies m_INVITE_Request_UE := {
					msgHeader := {
						contentLength := m_contentLength(f_MessageBodyLength(p_mb)),
						contentType := m_contentType(c_sdpApplication)
					},
					messageBody := p_mb
				}
				
                }
                }
            
            
                group request_sent_Steffen {
                group request_sent_Steffen {
                	
                	
					
					template LibSip_SIPTypesAndValues.Contact m_contact_g3gppDrvccOrigPreAlertingFeature := {
						fieldName := CONTACT_E,
						contactBody := {
							wildcard :=
								"g3gppDrvccOrigPreAlertingFeature"
						}
					}
                	
					template LibSip_SIPTypesAndValues.Contact m_contact_g3gppSrvccAlertingFeature := {
					template LibSip_SIPTypesAndValues.Contact m_contact_g3gppSrvccAlertingFeature := {
						fieldName := CONTACT_E,
						fieldName := CONTACT_E,
						contactBody := {
						contactBody := {
@@ -150,6 +183,15 @@ module AtsSccas_Templates
						}
						}
					}
					}
					
					
					template LibSip_SIPTypesAndValues.Contact m_contact_g3gppDrvccAlertingFeature := {
						fieldName := CONTACT_E,
						contactBody := {
							wildcard :=
								"g3gppDrvccAlertingFeature"
						}
					}
					
                    
                    template LibSip_MessageBodyTypes.MessageBody m_messageBody_SDP_mediaOnly := {
                    template LibSip_MessageBodyTypes.MessageBody m_messageBody_SDP_mediaOnly := {
						sdpMessageBody := {
						sdpMessageBody := {
							protocol_version := 1, // TODO
							protocol_version := 1, // TODO
@@ -219,8 +261,8 @@ module AtsSccas_Templates
//                    payload := omit
//                    payload := omit
//                }
//                }
                    
                    
                    // TODO:change name
        
                    template (omit) INVITE_Request m_sccas_invite_stl(
                    template (omit) INVITE_Request m_sccas_invite_contact(
                        template(value) SipUrl p_requestUri,
                        template(value) SipUrl p_requestUri,
                        template(value) CallId p_callId,
                        template(value) CallId p_callId,
                        template(value) CSeq p_cSeq,
                        template(value) CSeq p_cSeq,
@@ -242,7 +284,7 @@ module AtsSccas_Templates
                            toField := p_to,
                            toField := p_to,
                            via := p_via
                            via := p_via
                            },
                            },
                        messageBody := omit,
                        messageBody := p_mb,
                        payload := omit
                        payload := omit
                    }
                    }
                    
                    
@@ -470,10 +512,72 @@ module AtsSccas_Templates
            
            
                group request_receive_Steffen {
                group request_receive_Steffen {
                
                
			     template LibSip_SIPTypesAndValues.ContentType mw_contentType_appclication_sdp := {
					 fieldName := CONTENT_TYPE_E, 
					 mTypeSubtype := "appclication/sdp", 
					 mParams := *
				 }

                
                template LibSip_SDPTypes.SDP_Message mw_sdpmessageBody := {
					protocol_version := ?,
					origin := ?,
					session_name := ?,
					information := *,
					uri := *,
					emails := *,
					phone_numbers := *,
					connection := *,
					bandwidth := *,
					times := ?,
					timezone_adjustments := ?,
					key := ?,
					attributes := ?,
					media_list := {
						{
							media_field := ?,
							information := *,
							connections := *,
							bandwidth := *,
							key := *,
							attributes := *
						}
					}
				}

                
                	
				template(present) UPDATE_Request mw_UPDATE_Request_ContactChange(
					template CallId p_callId,
					template(present) Contact p_contact := ?,
					template(present) ContentType p_contenType := ?,
					template(present) SDP_Message p_sdpMessageBody := ?
				) modifies mw_UPDATE_Request_Base := {
					msgHeader := {
						callId := p_callId,
						contact := p_contact,
						contentType := p_contenType
					},
					messageBody := {
						sdpMessageBody := p_sdpMessageBody
					}
				}
                	
                    
				template LibSip_SIPTypesAndValues.Contact mw_contact_g3gppMidcallFeature := {
				template LibSip_SIPTypesAndValues.Contact mw_contact_g3gppMidcallFeature := {
						fieldName := ?, contactBody := ? // TODO: correct use of g3gppMidcallFeatureCapabilityIndicator
						fieldName := ?, contactBody := ? // TODO: correct use of g3gppMidcallFeatureCapabilityIndicator
					}
					}
                    
                    
					template LibSip_SIPTypesAndValues.Contact mw_contact_sourceLegAtCreation := {
						fieldName := ?, contactBody := ? // TODO: "set to the Contact header field provided on the source leg at the creation of the dialog",
					}
					
					template LibSip_SIPTypesAndValues.Contact mw_contact_g3gppDrvccAlertingFeature := {
						fieldName := ?, contactBody := ? // TODO: correct use of g3gppDrvccAlertingFeature
					}
					
					
                    
					template (present) Response mw_sccas_Response_2xxmediaOnly(
					template (present) Response mw_sccas_Response_2xxmediaOnly(
						//template (present) StatusLine.statusCode p_statusCode := 200,
						//template (present) StatusLine.statusCode p_statusCode := 200,
						template (present) CallId p_callId := ?,
						template (present) CallId p_callId := ?,
+57 −3
Original line number Original line Diff line number Diff line
@@ -503,12 +503,37 @@ module AtsSccas_Testcases
			
			
		} // End of TP_ISC_SCCAS_CPT_INV_03
		} // End of TP_ISC_SCCAS_CPT_INV_03
		
		
		
		/*
		 * @desc Verify that the SCC AS accepts conditions in an early dialog phase
		 * @param p_cSeq_s Transaction Id
		 */	
		testcase TP_ISC_SCCAS_CPT_INV_04(inout CSeq p_cSeq_s)
		testcase TP_ISC_SCCAS_CPT_INV_04(inout CSeq p_cSeq_s)
		runs on ServerSyncComp
		runs on ServerSyncComp
		system TestAdapter {
		system TestAdapter {
		
		
		// TODO
			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);
			
			// TODO: SCC AS supports the MSC Server g.3gpp.drvcc-alerting feature 
			
				
			f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_CPT_INV_04(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_04
		} // End of TP_ISC_SCCAS_CPT_INV_04
    	
    	
@@ -586,11 +611,40 @@ module AtsSccas_Testcases
			
			
		} // End of TP_ISC_SCCAS_MED_RIN_01
		} // End of TP_ISC_SCCAS_MED_RIN_01
		
		
		
		/*
		 * @desc Verify that the SCC AS performs the procedures correctly for CS to PS dual radio access transfer for originating calls in pre-alerting phase or in alerting phase on the originating side
		 * @param p_cSeq_s Transaction Id
		 */	
		testcase TP_ISC_SCCAS_CPT_INV_05(inout CSeq p_cSeq_s)
		testcase TP_ISC_SCCAS_CPT_INV_05(inout CSeq p_cSeq_s)
		runs on ServerSyncComp
		runs on ServerSyncComp
		system TestAdapter {
		system TestAdapter {
		
		
		// TODO
		// the SCC AS supports CS to PS dual radio access transfer for originating calls in pre-alerting phase
		
		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);
			
			// TODO: SCC AS supports the MSC Server g.3gpp.drvcc-alerting feature 
			
				
			f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_CPT_INV_05(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_05
		} // End of TP_ISC_SCCAS_CPT_INV_05