Commit 23893fdb 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 84e3c6ac 6a3246fb
Loading
Loading
Loading
Loading
+88 −0
Original line number Diff line number Diff line
@@ -19,4 +19,92 @@ PICS used for test case selection
    
    boolean PICS_MSC_GM := false;
}

  group PICS_A2 {
    //Core functionalities
    //A2/1.1  procedures for PS to CS dual radio access transfer, for a session with an active speech media component?    4.1, 1) a)  o.1
    //A2/1.2  procedures for PS-PS access transfer, for a session with an active speech media component?  4.1, 1) b)  o.1
    //A2/1.3  procedures for PS to CS SRVCC for a session with an active speech media component?  4.1, 1) c)  o.1
    //A2/1.4  procedures for CS to PS dual radio access transfer, for a session with an active speech media component?    4.1, 1) d)  o.1

    //Optional features
    //A2/2    access transfer for a session with an inactive speech media component?  4.1, 2) o   
    //A2/3    access transfer for a session with conference control with active speech media component or inactive speech media component?    4.1, 3) o   
    //A2/4    access transfer in the alerting phase with an active speech media component?    4.1, 4) o   
    //A2/5    PS to CS SRVCC access transfer for originating calls in pre-alerting phase with an active speech media component?   4.1, 5) c.1
    //A2/6    access transfer for a session with active speech media component and active video media component?  4.1, 6) o   
    //A2/6.1  access transfer in the alerting phase with an active speech media component and active video media component?   4.1, 6) a)  c.2
    //A2/6.2  PS to CS SRVCC access transfer for originating calls in pre-alerting phase with an active speech media component and an active video media component?   4.1, 6) b)  c.3
    //A2/7.1  CS to PS SRVCC access transfer for an active session with an active speech media component? 4.1, 7) c.4
    //A2/7.2  access transfer for a session with an inactive speech media component?  4.1, 7) a)  c.5
    //A2/7.3  access transfer for a session with conference control with active speech media component or inactive speech media component?    4.1, 7) b)  c.6
    //A2/7.4  access transfer in the alerting phase with an active speech media component?    4.1, 7) c)  c.7
    //A2/8    dual radio access transfer for originating calls in pre-alerting phase with an active speech media component?   4.1, 8) c.8
    //A2/9    procedures related to the MSC server assisted mid-call feature? 4.1 o   
  } //end group PICS_A2

  group PICS_A3 {
    //A3/1    procedures for registration in the IM CN subsystem for service continuity?  6.3 m   
    
    /** @desc   Does IUT supports provision of PS to CS SRVCC related information to the ATCF?    6.3.2, 6.3.3
     *  @see    ETSI TS 103 833-1 A.3/1.1
    */
    modulepar boolean PICS_SCCAS_PS2CS_SRVCC_ATCF := false;
    
    /** @desc   Does IUT supports provision of PS to CS SRVCC related information to the MSC server?  6.3.4, 6.3.5
     *  @see    ETSI TS 103 833-1 A.3/1.2
    */
    modulepar boolean PICS_SCCAS_PS2CS_SRVCC_MSC := false;
    
    //A3/2    common procedures for setting up SIP messages sent by SCC AS?   6A.4    m   
    //A3/2.1  handling of OMR specific attributes?    6A.4.4  o   
    //A3/2.2  rejection of malicious SIP REFER requests from remote UE?   6A.4.6  c.10
    //A3/2.3  handling of SDP media description conflicts?    5.3, 6A.5   m   
    //A3/2.4  SCC AS server procedure for indicating traffic leg? 5.3, 6A.6.1 o   
    //A3/3    procedures for call origination for service continuity? 7.3 m   
    //A3/3.1  removal of the g.3gpp.mid-call media feature tag in SIP INVITE requests towards the remote UE?  7.3.2   c.11
    //A3/3.2  removal of the g.3gpp.srvcc-alerting media feature tag in SIP INVITE requests towards the remote UE?    7.3.2   c.9
    //A3/4    procedures for call termination for service continuity? 8.3 m   
    //A3/4.1  removal of the g.3gpp.mid-call media feature tag from the SIP 2xx response towards the remote UE?   8.3.2   c.11
    //A3/5    procedures for PS-CS access transfer?   9.3.2, 9.3.3, 9.3.6 c.12
    //A3/5.1  procedures for PS to CS access transfer with MSC server assisted mid-call feature?  9.3.2A, 9.3.4   c.13
    //A3/5.2  procedures for PS to CS dual radio access transfer of calls in an early dialog or alerting phase?   9.3.5.1, 9.3.5.2, 9.3.5.4, 9.3.5.5  c.14
    //A3/5.3  procedures for PS to CS dual radio, access transfer of a originating session in the pre-alerting phase? 9.3.5.3 c.15
    //A3/5.4  procedures for CS to PS dual radio access transfer for calls in an early phase? 9.3.7   c.16
    //
    //    Check optional session release! & “support”         
    //A3/6    procedures for PS-PS access transfer?   10.3.1, 10.3.2, 10.3.4, 10.3.5  c.17
    //A3/6.1  Procedure for P-CSCF releasing early dialog during PS to PS access transfer?    10.3.6  c.18
    //A3/7    procedures for PS-PS access transfer in conjunction with PS-CS access transfer? 11.3    c.19
    //A3/8    procedures for PS-CS access transfer, Single Radio (PS to CS SRVCC)?    12.3.0, 12.3.0A, 12.3.0B, 12.3.1, 12.3.3.1, 12.3.3.2, 12.3.3.4, 12.3.5, 12.3.6, 12.3.7, 12.3.8, 12.3.9, 12.3.11 c.20
    //
    //A3/8.1  inclusion of the g.3gpp.srvcc-alerting feature-capability indicator in the Feature-Caps header field in SIP 200 (OK) responses to SIP INVITE requests due to STN-SR on the target access leg?   12.3.1, 3rd numbered list item 2)   c.21
    //A3/8.2  procedures for PS to CS SRVCC access transfer with MSC server assisted mid-call feature?    12.3.2  c.22
    //A3/8.3  procedures for PS to CS SRVCC access transfer when call is in alerting phase or pre-alerting phase? 12.3.3.1A, 12.3.3.3, 12.3.3.5, 12.3.4   c.21
    //A3/8.4  procedures for CS to PS SRVCC access transfer?  12.3.10 c.23
    //A3/9    procedures for media adding/deleting for access transfer?   13.3    m   
    //A3/10   procedures for access transfer and supplementary services interaction?  20.1    m   
    //A3/10.1.1   delivery of Explicit Communication Transfer (ECT) requests on the CS access leg?    20.1.11 o   
    //A3/10.1.2   delivery of ECT requests on the PS access leg?  20.1.11 o   
    //A3/10.2.1   delivery of Advice of Charge (AOC) charging information on the CS access leg?   20.1.12 o   
    //A3/10.2.2   delivery of AOC charging information on the PS access leg?  20.1.12 o   
    //A3/11   procedures for detection of remote leg information? 5.3, 22.3   c.9
  } // end group PICS_A3

  group PICS_A4 {
    //A4/1    ICS User Agent (IUA)        o.1
    //A4/2    Terminating Access Domain Selection (T-ADS)     o.1
    //A4/3    AS acting as routeing B2BUA performing 3rd party call control       o   
  } //end group PICS_A4

  group PICS_A5 {
    //A5/1    Procedures for registration in the IM CN subsystem? 6.4     
    //A5/2    Procedures for call origination?    7.4     
    //A5/3    Procedures for call modifcation initiated from the ICS UE?  8.4     
    //A5/4    Procedures call modifcation initiated towards an ICS UE?    9.4     
    //A5/5    Procedures for call termination?    10.4        
    //A5/6    Procedures for session release? 11.4        
    //A5/7    Procedures for supplementary service invocation for ICS?    12  
  } //end group PICS_A5

} // end module AtsSccas_PICS
+89 −12
Original line number Diff line number Diff line
@@ -904,9 +904,9 @@ module AtsSccas_TCFunctions {
					                   ?,
					//mw_sccas_featureCaps({})
					                   mw_sccas_featureCaps({(mw_fcValue("g3gppFeatureCapabilityIndicator")),
										                     (mw_fcValue("g3gppMidcallFeatureCapabilityIndicator",{-})),
										                     (mw_fcValue("g3gppSrvccAlertingFeatureCapabilityIndicator",{-})),
										                     (mw_fcValue("g3gppPs2csSrvccOrigPreAlertingMediaIndicator",{-}))
										                     (mw_fcValue("g3gppMidcallFeatureCapabilityIndicator")),
										                     (mw_fcValue("g3gppSrvccAlertingFeatureCapabilityIndicator")),
										                     (mw_fcValue("g3gppPs2csSrvccOrigPreAlertingMediaIndicator"))
					                                       })
                                       )) {
						log("*** " & __SCOPE__ & ": PASS: 183 message was received ***");
@@ -918,11 +918,11 @@ module AtsSccas_TCFunctions {
										?,
										?,
										?,
										mw_sccas_featureCaps({(mw_fcValue("g3gppFeatureCapabilityIndicator",{-})),
															 (mw_fcValue("g3gppMidcallFeatureCapabilityIndicator",{-})),
															 (mw_fcValue("g3gppSrvccAlertingFeatureCapabilityIndicator",{-})),
															 (mw_fcValue("g3gppPs2csSrvccOrigPreAlertingMediaIndicator",{-})),
											                 (mw_fcValue("g3gppRemoteLegInfoFeatureCapabilityIndicator",{-}))
										mw_sccas_featureCaps({(mw_fcValue("g3gppFeatureCapabilityIndicator")),
															 (mw_fcValue("g3gppMidcallFeatureCapabilityIndicator")),
															 (mw_fcValue("g3gppSrvccAlertingFeatureCapabilityIndicator")),
															 (mw_fcValue("g3gppPs2csSrvccOrigPreAlertingMediaIndicator")),
											                 (mw_fcValue("g3gppRemoteLegInfoFeatureCapabilityIndicator"))
															})
					)) {
						tc_wait.stop;
@@ -1347,7 +1347,7 @@ module AtsSccas_TCFunctions {
							mw_contentType_appclication_sdp, 
							mw_sdpmessageBody)) {
						tc_ack.stop;
						log("*** " & __SCOPE__ & ": PASS: response 200 was received ***");
						log("*** " & __SCOPE__ & ": PASS: UPDATE message received ***");
						f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync
					}
					[] tc_ack.timeout {
@@ -1364,6 +1364,83 @@ module AtsSccas_TCFunctions {
		
		} // End of f_TC_ISC_SCCAS_CPT_INV_05
		
		function f_TC_ISC_SCCAS_CPT_INV_06(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_registrationAS(p_cSeq_s);
		
		
		// TODO: the IUT entity hasAchievedInitialINVITE // TODO: INVITE contains: g3gppDrvccAlerting
		
		// STEP: send r_180_ringing
		f_sendResponse(m_Response_Base(c_statusLine180, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via));
		
		// Expected Update
		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: UPDATE message was received ***");
						f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync
					}
					[] tc_ack.timeout {
						f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync 
					}
				}
		
		} // End of f_TC_ISC_SCCAS_CPT_INV_06
		
		function f_TC_ISC_SCCAS_PCT_REF_02(in CSeq p_cSeq_s)
		runs on ImsComponent {
			
			// 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_registrationAS(p_cSeq_s);
			
			
			// STEP: send 488 notAcceptableHere
			f_sendResponse(m_Response_Base(c_statusLine488, vc_callId, vc_cSeq, vc_caller_From, vc_caller_To, vc_via));
			
			
//				template CallId p_callId := ?,
//					template(value) SipUrl p_requestUri,
//					template(value) SipUrl p_referredBy,
//					template(value) MessageBody p_messageBody	
			// Ecpecation: REFER message
			tc_ack.start;
				alt {
					[] SIPP.receive(mw_REFER_Request_stl(
							vc_callId, 
							?, 
							?, 
							mw_sdpmessageBody)) {
						tc_ack.stop;
						log("*** " & __SCOPE__ & ": PASS: REFER message was received ***");
						f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync
					}
					[] tc_ack.timeout {
						f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync 
					}
				}
			
		} // End of f_TC_ISC_SCCAS_PCT_REF_02
        
    } // End of group Group_9_3
     
    group Group_10_3 {
@@ -1418,11 +1495,11 @@ module AtsSccas_TCFunctions {
                                            vc_contact,
                                            -, -, -,
                                            m_MBody_SDP(vc_sdp_local),
                                            - // indicating access transfer procedure
											m_Replaces(vc_callId.callid,{quotedString:=""},{quotedString:=""}) // indicating access transfer procedure
                                            ));
                tc_ack.start;
                alt {
                    [] SIPP.receive(mw_INVITE_Request(?,vc_requestUri)) {
                    [] SIPP.receive(mw_INVITE_Request_contact(?)) {
                        tc_ack.stop;
                        log("*** " & __SCOPE__ & ": PASS: forwarded INVITE message was received ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync
+56 −1
Original line number Diff line number Diff line
@@ -527,10 +527,65 @@ module AtsSccas_Templates
                

                group request_receive_Axel {
                
				template(present) INVITE_Request mw_INVITE_Request_contact(
					template Contact p_contact
				) modifies mw_INVITE_Request_Base := {
					msgHeader := {contact := p_contact}
				}
				
                }
            
                group request_receive_Steffen {
                
   
				template(present) REFER_Request mw_REFER_Request_stl(
					template CallId p_callId := ?,
					template SipUrl p_requestUri,
					template SipUrl p_referredBy,
					template(present) SDP_Message p_sdpMessageBody			
				) modifies mw_REFER_Request_Base := {
					requestLine := {requestUri := p_requestUri},
					msgHeader := {
						referredBy := {
							fieldName := REFERRED_BY_E,
							nameAddr := mw_NameAddr(*, p_referredBy),  // STF471
																	   // {displayName
																	   // :=
																	   // *,
																	   // addrSpec
																	   // :=
																	   // p_referredBy},
							referredbyIdParams := *
						},
						pAssertedID := ?,
						referSub := 
							{
								referSubValue := false
							},
						contentType := 
							{
								mTypeSubtype := "application/sdp"
							},
						referTo := ?,
						require := 
							{
								fieldName := REQUIRE_E, optionsTags := {"tdilog"}
								
							}
					}, 
					messageBody := {
						sdpMessageBody := p_sdpMessageBody
					}
				}
				
				template LibSip_SIPTypesAndValues.Require test := {
					fieldName := REQUIRE_E, optionsTags := {"tdilog"}
				}

				
                
                
			     template LibSip_SIPTypesAndValues.ContentType mw_contentType_appclication_sdp := {
					 fieldName := CONTENT_TYPE_E, 
					 mTypeSubtype := "appclication/sdp", 
@@ -718,7 +773,7 @@ module AtsSccas_Templates
											template CallId p_callId,
											template CSeq p_cSeq,
											template(present) PChargingVector p_chargingVector := ?,
						                    template(omit) FeatureCaps p_featureCaps := omit
						                    template FeatureCaps p_featureCaps := *
										) modifies mw_Response_StatusCode_Base := {
											msgHeader := {
												pChargingVector := p_chargingVector,
+57 −2
Original line number Diff line number Diff line
@@ -604,11 +604,39 @@ module AtsSccas_Testcases
			
		} // End of TP_ISC_SCCAS_PCT_REF_01
		
		
		/*
		 * @desc Verify that the SCC AS terminates the call over CS after receiving a SIP 488
		 * @param p_cSeq_s Transaction Id
		 */	
		testcase TP_ISC_SCCAS_PCT_REF_02(inout CSeq p_cSeq_s)
		runs on ServerSyncComp
		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: SIP INVITE was sent with:
			// 		creating the session in the terminating alerting phase without an SDP MIME body
			// SCC AS supports PS to CS dual radio access
			
				
			f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_PCT_REF_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_PCT_REF_02
		
@@ -682,11 +710,38 @@ module AtsSccas_Testcases
			
		} // End of TP_ISC_SCCAS_CPT_INV_05
		
	
		/*
		 * @desc Verify that SCC AS correctly recognizes and initiated for CS to PS dual radio access transfer for a call in the alerting phase on the terminating side 
		 * @param p_cSeq_s Transaction Id
		 */	
		testcase TP_ISC_SCCAS_CPT_INV_06(inout CSeq p_cSeq_s)
		runs on ServerSyncComp
		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_06(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_06