From 75f6b6f88f4c292a7faaf273fd8ae1558dafd84f Mon Sep 17 00:00:00 2001 From: pintar Date: Fri, 11 Mar 2022 13:29:47 +0100 Subject: [PATCH 001/202] inital files --- test_purposes/References.txt | 19 ++++ test_purposes/Sip_Common.tplan2 | 164 ++++++++++++++++++++++++++++ test_purposes/ims/TP_SCSCF.tplan2 | 117 ++++++++++++++++++++ test_purposes/sccas/TP_SCCAS.tplan2 | 117 ++++++++++++++++++++ 4 files changed, 417 insertions(+) create mode 100644 test_purposes/References.txt create mode 100644 test_purposes/Sip_Common.tplan2 create mode 100644 test_purposes/ims/TP_SCSCF.tplan2 create mode 100644 test_purposes/sccas/TP_SCCAS.tplan2 diff --git a/test_purposes/References.txt b/test_purposes/References.txt new file mode 100644 index 0000000..0569619 --- /dev/null +++ b/test_purposes/References.txt @@ -0,0 +1,19 @@ +TODO + +[1] ETSI ES 203 119-4: "TDL: Structured Test Objective Specification (Extension)" +[2] ETSI TS 124 229: "Digital cellular telecommunications system (Phase 2+) (GSM); Universal Mobile Telecommunications System (UMTS); LTE; IP multimedia call control protocol based on Session Initiation Protocol (SIP) and Session Description Protocol (SDP); Stage 3 (3GPP TS 24.229 Release 15)". +[3] ETSI TS 129 165: "Digital cellular telecommunications system (Phase 2+) (GSM); Universal Mobile Telecommunications System (UMTS); LTE; Inter-IMS Network to Network Interface (NNI) (3GPP TS 29.165 Release 15)". +[4] ETSI TS 129 228: "Digital cellular telecommunications system (Phase 2+) (GSM); Universal Mobile Telecommunications System (UMTS); LTE; IP Multimedia (IM) Subsystem Cx and Dx Interfaces; Signalling flows and message contents (3GPP TS 29.228 Release 15)". +[5] ETSI TS 129 229: "Digital cellular telecommunications system (Phase 2+) (GSM); Universal Mobile Telecommunications System (UMTS); LTE; Cx and Dx interfaces based on the Diameter protocol; Protocol details (3GPP TS 29.229 Release 15)". +[6] ETSI TS 132 260: "Digital cellular telecommunications system (Phase 2+) (GSM); Universal Mobile Telecommunications System (UMTS); LTE; Telecommunication management;Charging management;IP Multimedia Subsystem (IMS) charging (3GPP TS 32.260 Release 15)". +[7] ETSI TS 132 299: "Digital cellular telecommunications system (Phase 2+) (GSM); Universal Mobile Telecommunications System (UMTS); LTE; Telecommunication management; Charging management; Diameter charging applications (3GPP TS 32.299 Release 15)". +[8] ETSI TS 129 214: "Universal Mobile Telecommunications System (UMTS); LTE; Policy and charging control over Rx reference point (3GPP TS 29.214 Release 15)". +[9] ETSI TS 129 212: "Universal Mobile Telecommunications System (UMTS); LTE; Policy and Charging Control (PCC); Reference points (3GPP TS 29.212 Release 15)". +[10] ETSI TS 129 272: "Universal Mobile Telecommunications System (UMTS); LTE; Evolved Packet System (EPS); Mobility Management Entity (MME) and Serving GPRS Support Node (SGSN) related interfaces based on Diameter protocol (3GPP TS 29.272 Release 15)". +[11] ETSI TS 129 215: "Digital cellular telecommunications system (Phase 2+) (GSM); Universal Mobile Telecommunications System (UMTS); LTE; Policy and Charging Control (PCC) over S9 reference point; Stage 3 (3GPP TS 29.215 Release 15)". +[12] ETSI TS 129 328: "Digital cellular telecommunications system (Phase 2+) (GSM); Universal Mobile Telecommunications System (UMTS); LTE; IP Multimedia (IM) Subsystem Sh interface; Signalling flows and message contents (3GPP TS 29.328 Release 15)". +[13] ETSI TS 129 329: "Digital cellular telecommunications system (Phase 2+) (GSM); Universal Mobile Telecommunications System (UMTS); LTE; Sh interface based on the Diameter protocol; Protocol details (3GPP TS 29.329 Release 15)". +[14] ISO/IEC 9646-1: "Information technology -- Open Systems Interconnection -- Conformance testing methodology and framework -- Part 1: General concepts". +[15] ISO/IEC 9646-7: "Information technology -- Open Systems Interconnection -- Conformance testing methodology and framework -- Part 7: Implementation Conformance Statements". +[16] ETSI ETS 300 406: "Methods for testing and Specification (MTS); Protocol and profile conformance testing specifications; Standardization methodology". +[17] IETF RFC 3588: "Diameter Base Protocol". \ No newline at end of file diff --git a/test_purposes/Sip_Common.tplan2 b/test_purposes/Sip_Common.tplan2 new file mode 100644 index 0000000..d848587 --- /dev/null +++ b/test_purposes/Sip_Common.tplan2 @@ -0,0 +1,164 @@ +/* ETSI Software License +* As long as the here under conditions are respected, non-exclusive permission is hereby granted, +* free of charge, to use, reproduce and modify this software source code, under the following conditions: +* This source code is provided AS IS with no warranties, express or implied, including but not limited to, +* the warranties of merchant ability, fitness for a particular purpose and warranties for non-infringement +* of intellectual property rights. +* ETSI shall not be held liable in any event for any direct or indirect damages whatsoever (including, without +* limitation, damages for loss of profits, business interruption, loss of information, or any other pecuniary +* loss) arising out of or related to the use of or inability to use the source code. +* This permission is granted to facilitate the implementation of the related ETSI standard, provided that +* ETSI is given the right to use, reproduce and amend the modified source code under the same conditions +* as the present permission. +* This permission does not apply to any documentation associated with this source code for which ETSI keeps +* all rights reserved. +* The present ETSI Source Code license shall be included in all copies of whole or part of this source code +* and shall not imply any sub-license right. +* (c) ETSI 2019-2020 +*/ + + +Package Sip_Common { + Domain { + pics: + - NONE + - PICS_2 + - NOT_PICS_2 + ; + entities: + - SCCAS + - IMS_S_CSCF + - UE + - IUT + ; + events: + - receives + - sends + - forwards + // Initial conditions + - isTriggeredToStart + - isNotRegisteredTo + - hasAchievedFirstRegistration + - isRegisteredTo + - isNotAttachedTo + - isAttachedTo + - isNotConfiguredForTopologyHiding + - isConfiguredForTopologyHiding + - isExistingIn + - establishedSecurityRelation + - registeredIdentityTelURI + - registeredIdentitySipURI + - hasInitiatedDialogWith + - isConfiguredWithENUMentryForTelURI_E164NumberOf + - hasReceivedInitialRequestForDialog + - hasReceived200OkOnInitialRequestForDialogWith + - hasReceived180OnInitialRequest + - hasReceived200OkCancel + - hasReceivedTerminatedRequest + - registeredPublicIdsWithTelUriAndSipUri + - hasReceivedSubsequentOrTargetRefreshRequestInDialog + - previouslyEstablishedCallWith + - isRequestedToSend + - isRequestedToDeregisterUser + - isBusy + - isNoLongerAvailable + - isTriggeredToDetachUser + - isRequestedToDetachfromNetwork + - hasAchievedFirstREGISTER + - hasResponded486INVITE + - hasAchievedInitialINVITE + - hasAchievedINVITE + ; + } // End of Domain section + +// Const { +// PX_Stored_Domain_Uri, +// PX_Affected_IMPU, +// PX_Contact, +// PX_UE_A_SIP_URI, +// PX_UE_A_TEL_URI, +// PX_UE_A_CALLID, +// PX_UE_A_REALM, +// PX_UE_A_USERNAME, +// PX_UE_A_INVALID_USERNAME, +// PX_UE_A_VIA, +// PX_UE_A_AUTH_ALG, +// PX_OPERATOR_ID_A, +// PX_UE_B_SIP_URI, +// PX_UE_B_TEL_URI, +// PX_UE_B_USERNAME, +// PX_UE_B_INVALID_USERNAME, +// PX_UE_B_VIA, +// PX_UE_B_AUTH_ALG, +// PX_OPERATOR_ID_B, +// PX_P_CSCF_A_SIP_URI, +// PX_IMS_A_ICID, +// PX_IMS_A_ORIG_IOI, +// PX_S_CSCF_A_SIP_URI, +// PX_P_CSCF_A_SIP_URI, +// PX_IBCF_B_SIP_URI, +// PX_TO_BE_DEFINED +// ; +// } // End of Const section + + Data { + type SipMessage; + type EnumMessage; + + SipMessage REGISTER; + SipMessage SUBSCRIBE; + SipMessage INVITE; + SipMessage ACK; + SipMessage CANCEL; + SipMessage BYE; + // SIP Responses + SipMessage r_100_Trying; + SipMessage r_180_Ringing; + SipMessage r_200_Ok; + SipMessage r_2xx_Any; + SipMessage r_401_Unauthorized; + SipMessage r_403_Forbidden; + SipMessage r_404_NotFound; + SipMessage r_486_INVITE; + SipMessage r_4xx_Any; + } // End of Data section + + Configuration { + Interface Type defaultGT accepts SipMessage; + Component Type SipComponent with gate g of type defaultGT; + + + Test Configuration CFG_SCCAS_01 + containing + Tester component IMS_S_CSCF of type SipComponent + SUT component IUT of type SipComponent + connection between IMS_S_CSCF.g and IUT.g; + + Test Configuration CFG_SCSCF_01 + containing + Tester component SCCAS of type SipComponent + SUT component IUT of type SipComponent + connection between SCCAS.g and IUT.g; + + Test Configuration CFG_SCSCF_02 + containing + Tester component SCCAS of type SipComponent + Tester component UE of type SipComponent + SUT component IUT of type SipComponent + connection between SCCAS.g and IUT.g + connection between UE.g and IUT.g; + } + + //Type MSG (optional TCP of type CONTENT); + + //Type CONTENT; + //CONTENT tcp; + + //MSG MESSAGE; + + //Type MSG_SIZE; + + //Message_Body_Size MSG_SIZE; + +} // End of Package Sip_Common + diff --git a/test_purposes/ims/TP_SCSCF.tplan2 b/test_purposes/ims/TP_SCSCF.tplan2 new file mode 100644 index 0000000..21e2b50 --- /dev/null +++ b/test_purposes/ims/TP_SCSCF.tplan2 @@ -0,0 +1,117 @@ +/* +Copyright (c) ETSI 2019-2020. + +This software is subject to copyrights owned by ETSI. Non-exclusive permission +is hereby granted, free of charge, to copy, reproduce and amend this file +under the following conditions: It is provided "as is", without warranty of any +kind, expressed or implied. + +ETSI shall never be liable for any claim, damages, or other liability arising +from its use or inability of use.This permission does not apply to any documentation +associated with this file for which ETSI keeps all rights reserved. The present +copyright notice shall be included in all copies of whole or part of this +file and shall not imply any sub-license right. +*/ + +/* interface at SCSCF */ +Package TP_SCSCF { + + import all from Sip_Common; + + Test Purpose { + + TP Id TP_SCCAS_REGISTER_01 + + Test objective "TODO -- Verify that the P-CSCF successfully processes a first registration (Successful)." + + Reference + "TODO -ETSI TS 124 229 [1], Clauses 5.2.2.1 and 6.2" + + Config Id CFG_SCSCF_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isNotRegisteredTo the IMS_A + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a REGISTER containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_200_Ok containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Path indicating value PX_P_CSCF_A_SIP_URI, + PChargingVector containing + icid indicating value PX_TO_BE_DEFINED, + PVisitedNetworkID indicating value PX_TO_BE_DEFINED, + Require indicating value "path", + Supported indicating value "path";; + to the IMS_S_CSCF entity + } + } + } // End of TP_MW_PCSCF_REGISTER_01 + + Test Purpose { + + TP Id TP_SCCAS_INVITE_01 + + Test objective "Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg)." + + Reference + "ETSI TS 124 229 [1], Clauses 5.2.7.2 and 6.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + PAccessNetworkInfo, + MessageBody containing + SDP containing + Version indicating value "0";;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_200_Ok containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + PAccessNetworkInfo, + ContentType indicating value "application/sdp", + ContentLength, + MessageBody containing + SDP containing + Version indicating value "0";;; + to the IMS_S_CSCF entity + } + } + + } // End of TP_MW_PCSCF_INVITE_01 + +} // End of Package TP_MW_PS + diff --git a/test_purposes/sccas/TP_SCCAS.tplan2 b/test_purposes/sccas/TP_SCCAS.tplan2 new file mode 100644 index 0000000..2d5d6c2 --- /dev/null +++ b/test_purposes/sccas/TP_SCCAS.tplan2 @@ -0,0 +1,117 @@ +/* +Copyright (c) ETSI 2019-2020. + +This software is subject to copyrights owned by ETSI. Non-exclusive permission +is hereby granted, free of charge, to copy, reproduce and amend this file +under the following conditions: It is provided "as is", without warranty of any +kind, expressed or implied. + +ETSI shall never be liable for any claim, damages, or other liability arising +from its use or inability of use.This permission does not apply to any documentation +associated with this file for which ETSI keeps all rights reserved. The present +copyright notice shall be included in all copies of whole or part of this +file and shall not imply any sub-license right. +*/ + +/* interface at SCCAS */ +Package TP_SCCAS { + + import all from Sip_Common; + + Test Purpose { + + TP Id TP_SCCAS_REGISTER_01 + + Test objective "TODO -- Verify that the P-CSCF successfully processes a first registration (Successful)." + + Reference + "TODO -ETSI TS 124 229 [1], Clauses 5.2.2.1 and 6.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isNotRegisteredTo the IMS_A + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a REGISTER containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_200_Ok containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Path indicating value PX_P_CSCF_A_SIP_URI, + PChargingVector containing + icid indicating value PX_TO_BE_DEFINED, + PVisitedNetworkID indicating value PX_TO_BE_DEFINED, + Require indicating value "path", + Supported indicating value "path";; + to the IMS_S_CSCF entity + } + } + } // End of TP_MW_PCSCF_REGISTER_01 + + Test Purpose { + + TP Id TP_SCCAS_INVITE_01 + + Test objective "Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg)." + + Reference + "ETSI TS 124 229 [1], Clauses 5.2.7.2 and 6.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + PAccessNetworkInfo, + MessageBody containing + SDP containing + Version indicating value "0";;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_200_Ok containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + PAccessNetworkInfo, + ContentType indicating value "application/sdp", + ContentLength, + MessageBody containing + SDP containing + Version indicating value "0";;; + to the IMS_S_CSCF entity + } + } + + } // End of TP_MW_PCSCF_INVITE_01 + +} // End of Package TP_MW_PS + -- GitLab From b5e500e42e61e6f3aaa70cb94361ac92ec55c9d6 Mon Sep 17 00:00:00 2001 From: juvancic Date: Thu, 24 Mar 2022 08:33:53 +0100 Subject: [PATCH 002/202] added registration TPs --- test_purposes/Sip_Common.tplan2 | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/test_purposes/Sip_Common.tplan2 b/test_purposes/Sip_Common.tplan2 index d848587..1a6c4a0 100644 --- a/test_purposes/Sip_Common.tplan2 +++ b/test_purposes/Sip_Common.tplan2 @@ -30,6 +30,7 @@ Package Sip_Common { - IMS_S_CSCF - UE - IUT + - ATCF ; events: - receives @@ -105,6 +106,15 @@ Package Sip_Common { type SipMessage; type EnumMessage; + type SDP; + type XmlType; + type MimeType with + optional SDP of type SDP, + optional XML of type XmlType, + optional SipMessage of type SipMessage; + + type g3gppAtcfFeatureCapabilityIndicator; + SipMessage REGISTER; SipMessage SUBSCRIBE; SipMessage INVITE; @@ -121,6 +131,15 @@ Package Sip_Common { SipMessage r_404_NotFound; SipMessage r_486_INVITE; SipMessage r_4xx_Any; + + type SipMessageBody + with + optional SDP of type SDP, + optional XML of type XmlType, + optional MIME of type MimeType; + + + } // End of Data section Configuration { -- GitLab From b0f15d86b69ec1b509247f06a5a2c39c4e4f2b44 Mon Sep 17 00:00:00 2001 From: juvancic Date: Thu, 24 Mar 2022 08:34:31 +0100 Subject: [PATCH 003/202] added registration TPs --- .../sccas/TP_SCCAS_Chapter_6_3.tplan2 | 264 ++++++++++++++++++ 1 file changed, 264 insertions(+) create mode 100644 test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 new file mode 100644 index 0000000..57fb192 --- /dev/null +++ b/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 @@ -0,0 +1,264 @@ +/* +Copyright (c) ETSI 2019-2020. + +This software is subject to copyrights owned by ETSI. Non-exclusive permission +is hereby granted, free of charge, to copy, reproduce and amend this file +under the following conditions: It is provided "as is", without warranty of any +kind, expressed or implied. + +ETSI shall never be liable for any claim, damages, or other liability arising +from its use or inability of use.This permission does not apply to any documentation +associated with this file for which ETSI keeps all rights reserved. The present +copyright notice shall be included in all copies of whole or part of this +file and shall not imply any sub-license right. +*/ + +/* interface ISC at SCCAS */ +Package TP_SCCAS_Chapter_6_3 { + + import all from Sip_Common; + + Test Purpose { + + TP Id TP_ISC_SCCAS_REG_01 + + Test objective "Verify that the SCCAS successfully obtain/processes 3pty registration information." + + Reference + "ETSI TS 124 237 [1], Clause 6.3.1" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isNotRegisteredTo the IMS_A + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a REGISTER containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + SipMessageBody containing + MIME indicating value "REGISTER from_UE_A", + MIME indicating value "r_200_Ok to_UE_A";; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_200_Ok containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Contact indicating value PX_UE_A_SIP_URI //, + //Path indicating value PX_P_CSCF_A_SIP_URI, + //PChargingVector containing + // icid indicating value PX_TO_BE_DEFINED, + //PVisitedNetworkID indicating value PX_TO_BE_DEFINED, + //Require indicating value "path", + //Supported indicating value "path" ;; + ; + to the IMS_S_CSCF entity + } + } + } // End of TP_ISC_SCCAS_REG_01 + + Test Purpose { + + TP Id TP_ISC_SCCAS_REG_02 + + Test objective "Verify that the SCCAS successfully obtain/processes SRVCC information." + + Reference + "ETSI TS 124 237 [1], Clause 6.3.2 (1st numbered list)" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isNotRegisteredTo the IMS_A + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a REGISTER containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + FeatureCaps containing + g3gppAtcfFeatureCapabilityIndicator;, + SipMessageBody containing + MIME indicating value "REGISTER from_UE_A", + MIME indicating value "r_200_Ok to_UE_A";; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_200_Ok containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Contact indicating value PX_UE_A_SIP_URI; + to the IMS_S_CSCF entity + + } + + } + + } // End of TP_ISC_SCCAS_REG_02 + + Test Purpose { + + TP Id TP_ISC_SCCAS_REG_03 + + Test objective "Verify that the SCCAS successfully sends MESSAGE providing PS to CS SRVCC information." + + Reference + "ETSI TS 124 237 [1], Clause 6.3.3" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isNotRegisteredTo the IMS_A + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a REGISTER containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + FeatureCaps containing + g3gppAtcfFeatureCapabilityIndicator;, + SipMessageBody containing + MIME indicating value "REGISTER from_UE_A", + MIME indicating value "r_200_Ok to_UE_A";; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_200_Ok containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Contact indicating value PX_UE_A_SIP_URI //, + //Path indicating value PX_P_CSCF_A_SIP_URI, + //PChargingVector containing + // icid indicating value PX_TO_BE_DEFINED, + //PVisitedNetworkID indicating value PX_TO_BE_DEFINED, + //Require indicating value "path", + //Supported indicating value "path" ;; + ; + to the IMS_S_CSCF entity + + and the IUT entity sends a MESSAGE + to the ATCF entity + } + + } + + } // End of TP_ISC_SCCAS_REG_03 + + Test Purpose { + + TP Id TP_ISC_SCCAS_REG_04 + + Test objective "Verify that the SCCAS successfully obtain/processes de-registration information (Expires=0)." + + Reference + "ETSI TS 124 237 [1], Clause 6.3.1" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS_A + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a REGISTER containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Expires indicating value 0; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_200_Ok containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA ; + to the IMS_S_CSCF entity + } + } + } // End of TP_ISC_SCCAS_REG_04 + + Test Purpose { + + TP Id TP_SCCAS_INVITE_01 + + Test objective "Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg)." + + Reference + "ETSI TS 124 229 [1], Clauses 5.2.7.2 and 6.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + PAccessNetworkInfo, + MessageBody containing + SDP containing + Version indicating value "0";;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_200_Ok containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + PAccessNetworkInfo, + ContentType indicating value "application/sdp", + ContentLength, + MessageBody containing + SDP containing + Version indicating value "0";;; + to the IMS_S_CSCF entity + } + } + + } // End of TP_MW_PCSCF_INVITE_01 + +} // End of Package TP_MW_PS + -- GitLab From 8b41a64aae708ccbc1cbb24f14e857d4782de630 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Fri, 25 Mar 2022 12:06:44 +0100 Subject: [PATCH 004/202] initial commit for chapter 9.3.3 - SCC AS procedures for CS to PS access transfer --- test_purposes/sccas/TP_SCCAS2_FOKUS.tplan2 | 321 +++++++++++++++++++++ 1 file changed, 321 insertions(+) create mode 100644 test_purposes/sccas/TP_SCCAS2_FOKUS.tplan2 diff --git a/test_purposes/sccas/TP_SCCAS2_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS2_FOKUS.tplan2 new file mode 100644 index 0000000..e9e4855 --- /dev/null +++ b/test_purposes/sccas/TP_SCCAS2_FOKUS.tplan2 @@ -0,0 +1,321 @@ +/* +Copyright (c) ETSI 2019-2020. + +This software is subject to copyrights owned by ETSI. Non-exclusive permission +is hereby granted, free of charge, to copy, reproduce and amend this file +under the following conditions: It is provided "as is", without warranty of any +kind, expressed or implied. + +ETSI shall never be liable for any claim, damages, or other liability arising +from its use or inability of use.This permission does not apply to any documentation +associated with this file for which ETSI keeps all rights reserved. The present +copyright notice shall be included in all copies of whole or part of this +file and shall not imply any sub-license right. +*/ + +/* interface at SCCAS */ +Package TP_SCCAS { + + + // import all from Sip_Common; + + + + + Group "9.3.3 SCC AS procedures for CS to PS access transfer" + { + import all from Sip_Common; + + Test Purpose { + + // When the SCC AS receives a + // SIP INVITE request due to + // STI on the (page 20) + // Target Access Leg offering (RFC 3891 - replaces header field, + // PS media only (PS Packet Switch), + // SCC AS shall follow the procedures specified in subclause 10.3.2. + + + TP Id TP_SCCAS_CS_to_PS_access_transfer_01 + + Test objective "Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg) with dynamic STI." + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.3 and 10.3.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS // TODO + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, // this indicates dynamic STI + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + Supported indicating value "replaces", + PAccessNetworkInfo, + Replaces containing // Replaces indicating value (RFC 3891) + call_id indicating value PX_call_id, // TODO PX + from_tag indicating value PX_from_tag, // TODO PX + to_tag indicating value PX_to_tag // TODO PX + MessageBody containing + SDP containing // SDP: Session Description Protocol + Media indicating value PX_PSMediaOnly, // TODO: PX for media only + Version indicating value "0";;;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_200_Ok containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + PAccessNetworkInfo, + ContentType indicating value "application/sdp", + ContentLength, + MessageBody containing + SDP containing + Media indicating value PX_PSMediaOnly, // TODO: PX for media only + Version indicating value "0";;; + to the IMS_S_CSCF entity + } + } + + } // end TP TP_SCCAS_CS_to_PS_access_transfer_01 + + + // Testpurpose 2: When the SCC AS receives a SIP INVITE request due to static STI, the SCC AS shall: + Test Purpose { + + // When the SCC AS receives a + // SIP INVITE request due to + // STI on the (page 20) + // Target Access Leg offering (RFC 3891 - replaces header field, + // PS media only (PS Packet Switch), + // SCC AS shall follow the procedures specified in subclause 10.3.2. + + + TP Id TP_SCCAS_CS_to_PS_access_transfer_02 + + Test objective "Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg) with static STI." + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.3" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS // TODO + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_TEL_URI, // this indicates static STI + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + Supported indicating value "replaces", + PAccessNetworkInfo, + Replaces containing // Replaces indicating value (RFC 3891) + call_id indicating value PX_call_id, // TODO PX + from_tag indicating value PX_from_tag, // TODO PX + to_tag indicating value PX_to_tag // TODO PX + MessageBody containing + SDP containing // SDP: Session Description Protocol + Media indicating value PX_PSMediaOnly, // TODO: PX for media only + Version indicating value "0";;;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_200_Ok containing + From indicating value PX_UE_A_TEL_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + PAccessNetworkInfo, + ContentType indicating value "application/sdp", + ContentLength, + MessageBody containing + SDP containing + Media indicating value PX_PSMediaOnly, // TODO: PX for media only + Version indicating value "0";;; + to the IMS_S_CSCF entity + } + } + + } // end TP_SCCAS_CS_to_PS_access_transfer_02 + + + // Test puposes 3: Upon receiving the SIP 2xx response to the SIP re-INVITE request the SCC AS shall send the SIP 200 (OK) response + // to the SIP INVITE request due to static STI on the target access leg populated as follows: + Test Purpose { + + // Note: Consider alternative with: + // if the SCC AS supports CS to PS dual radio access transfer for calls in alerting phase according to operator policy + + + TP Id TP_SCCAS_CS_to_PS_access_transfer_03 + + Test objective "Verify that the P-CSCF successfully processes an re-INVITE (Originating Leg)" + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.3" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS and // TODO + the UE entity previouslyEstablishedCallWith + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing // re-invite + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + Supported indicating value "replaces", + PAccessNetworkInfo, + Replaces containing // Replaces indicating value (RFC 3891) + call_id indicating value PX_call_id, // TODO PX + from_tag indicating value PX_from_tag, // TODO PX + to_tag indicating value PX_to_tag // TODO PX + MessageBody containing + SDP containing // SDP: Session Description Protocol + Media indicating value PX_PSMediaOnly, // TODO: PX for media only + Version indicating value "0";;;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_200_Ok containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + PAccessNetworkInfo, + ContentType indicating value "application/sdp", + ContentLength, + MessageBody containing + SDP containing + Media indicating value PX_PSMediaOnly, // TODO: PX for media only + Version indicating value "0";;; + to the IMS_S_CSCF entity + } + } + + } // end TP_SCCAS_CS_to_PS_access_transfer_03 + + + // Test puposes 4: Upon receiving the SIP ACK request originated from the SC UE, the SCC AS shall: + Test Purpose { + + TP Id TP_SCCAS_CS_to_PS_access_transfer_04 + + //Upon receiving the SIP ACK request originated from the SC UE, the SCC AS shall: + //1) release the source access leg as specified in subclause 9.3.6.; and ... + + //the source access leg is an ongoing session containing only an active or inactive media component or a session in + //an early dialog phase on the terminating side, send a SIP BYE request on the source access leg in accordance + //with 3GPP TS 24.229 [2]; + + Test objective "Verify that the P-CSCF successfully processes an ACK and release the source access leg." + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.3 and 9.3.6." + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS and + the UE entity hasReceived200OkOnInitialRequestForDialogWith + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an ACK containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an BYE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE; + to the IMS_S_CSCF entity + } + } + + + } // end TP TP_SCCAS_CS_to_PS_access_transfer_04 + + + } // end Group "9.3.3 SCC AS procedures for CS to PS access transfer" + + Group "9.3.4 SCC AS procedures for CS to PS access transfer with MSC server assisted mid-call feature" + { + + + } // end Group 9.3.4 SCC AS procedures for CS to PS access transfer with MSC server assisted mid-call feature + + Group "9.3.5 SCC AS procedures for PS to CS dual radio access transfer of calls in an early dialog phase" + { + Group "9.3.5.2 SCC AS procedures for PS to CS dual radio access transfer of a originating session in the alerting phase" + { + + } // end Group "9.3.5.2 SCC AS procedures for PS to CS dual radio access transfer of a originating session in the alerting phase" + + Group "9.3.5.3 SCC AS procedures for PS to CS dual radio, access transfer of a originating session in the prealerting phase" + { + + } // end Group "9.3.5.3 SCC AS procedures for PS to CS dual radio, access transfer of a originating session in the prealerting phase" + + Group "9.3.5.4 SCC AS procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase" + { + + } // end Group "9.3.5.4 SCC AS procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase" + + Group "9.3.5.5 SCC AS procedures for PS to CS dual radio access transfer of a terminating session in the alerting phase" + { + + } // end Group "9.3.5.5 SCC AS procedures for PS to CS dual radio access transfer of a terminating session in the alerting phase" + + } // end Group "9.3.5 9.3.5 SCC AS procedures for PS to CS dual radio access transfer of calls in an early dialog phase" + + Group "9.3.6 Removal of non-transferred audio media components and release of source access legs" + { + + + } // end Group "9.3.6 Removal of non-transferred audio media components and release of source access legs" + +} // End of Package TP_SCCAS + -- GitLab From 87bd4a1f01fd1ad78c7d6f47a9b6e8dd02648f10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Mon, 6 Jun 2022 14:40:47 +0200 Subject: [PATCH 005/202] new naming conventions for TPs --- test_purposes/sccas/TP_SCCAS2_FOKUS.tplan2 | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS2_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS2_FOKUS.tplan2 index e9e4855..a0cf7be 100644 --- a/test_purposes/sccas/TP_SCCAS2_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS2_FOKUS.tplan2 @@ -16,11 +16,7 @@ file and shall not imply any sub-license right. /* interface at SCCAS */ Package TP_SCCAS { - - // import all from Sip_Common; - - - + Group "9.3.3 SCC AS procedures for CS to PS access transfer" { @@ -35,8 +31,7 @@ Package TP_SCCAS { // PS media only (PS Packet Switch), // SCC AS shall follow the procedures specified in subclause 10.3.2. - - TP Id TP_SCCAS_CS_to_PS_access_transfer_01 + TP Id TP_ISC_SCCAS_CPT_INV_01 Test objective "Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg) with dynamic STI." @@ -103,8 +98,8 @@ Package TP_SCCAS { // PS media only (PS Packet Switch), // SCC AS shall follow the procedures specified in subclause 10.3.2. - - TP Id TP_SCCAS_CS_to_PS_access_transfer_02 + // TP_ISC_SCCAS_XXX_INV_01 + TP Id TP_ISC_SCCAS_CPT_INV_02 Test objective "Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg) with static STI." @@ -168,8 +163,8 @@ Package TP_SCCAS { // Note: Consider alternative with: // if the SCC AS supports CS to PS dual radio access transfer for calls in alerting phase according to operator policy - - TP Id TP_SCCAS_CS_to_PS_access_transfer_03 + + TP Id TP_ISC_SCCAS_CPT_RIN_01 Test objective "Verify that the P-CSCF successfully processes an re-INVITE (Originating Leg)" -- GitLab From b42603a24f71f904bf5f6d6ebc455b9cf3c40a38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Mon, 6 Jun 2022 14:50:36 +0200 Subject: [PATCH 006/202] rename file --- ...{TP_SCCAS2_FOKUS.tplan2 => TP_SCCAS2_Chapter_9_3_FOKUS.tplan2} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename test_purposes/sccas/{TP_SCCAS2_FOKUS.tplan2 => TP_SCCAS2_Chapter_9_3_FOKUS.tplan2} (100%) diff --git a/test_purposes/sccas/TP_SCCAS2_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS2_Chapter_9_3_FOKUS.tplan2 similarity index 100% rename from test_purposes/sccas/TP_SCCAS2_FOKUS.tplan2 rename to test_purposes/sccas/TP_SCCAS2_Chapter_9_3_FOKUS.tplan2 -- GitLab From 84c3aa1785ddd21c39eab4677b14af639d739a49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Mon, 6 Jun 2022 14:52:04 +0200 Subject: [PATCH 007/202] rename file --- ...Chapter_9_3_FOKUS.tplan2 => TP_SCCAS_Chapter_9_3_FOKUS.tplan2} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename test_purposes/sccas/{TP_SCCAS2_Chapter_9_3_FOKUS.tplan2 => TP_SCCAS_Chapter_9_3_FOKUS.tplan2} (100%) diff --git a/test_purposes/sccas/TP_SCCAS2_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 similarity index 100% rename from test_purposes/sccas/TP_SCCAS2_Chapter_9_3_FOKUS.tplan2 rename to test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 -- GitLab From e66dc0940060575318579b3f2b7ece45e929e031 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Tue, 7 Jun 2022 10:29:19 +0200 Subject: [PATCH 008/202] first test purpose ideas for 9.3.6 --- .../sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 183 +++++++++++++++++- 1 file changed, 177 insertions(+), 6 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index a0cf7be..2049c1c 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -33,7 +33,7 @@ Package TP_SCCAS { TP Id TP_ISC_SCCAS_CPT_INV_01 - Test objective "Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg) with dynamic STI." + Test objective "Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg) with dynamic STI." Reference "ETSI TS 124 237 [1], Clauses 9.3.3 and 10.3.2" @@ -101,7 +101,7 @@ Package TP_SCCAS { // TP_ISC_SCCAS_XXX_INV_01 TP Id TP_ISC_SCCAS_CPT_INV_02 - Test objective "Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg) with static STI." + Test objective "Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg) with static STI." Reference "ETSI TS 124 237 [1], Clauses 9.3.3" @@ -166,7 +166,7 @@ Package TP_SCCAS { TP Id TP_ISC_SCCAS_CPT_RIN_01 - Test objective "Verify that the P-CSCF successfully processes an re-INVITE (Originating Leg)" + Test objective "Verify that the P-CSCF successfully processes an re-INVITE (Originating Leg)" Reference "ETSI TS 124 237 [1], Clauses 9.3.3" @@ -276,10 +276,31 @@ Package TP_SCCAS { } // end Group "9.3.3 SCC AS procedures for CS to PS access transfer" - Group "9.3.4 SCC AS procedures for CS to PS access transfer with MSC server assisted mid-call feature" + Group "9.3.4 SCC AS procedures for CS to PS access transfer with MSC server assisted mid-call feature" { + + +// 1. the Refer-Sub header field with value "false" as specified in IETF RFC 4488 [20]; +// 2. the Supported header field with value "norefersub" as specified in IETF RFC 4488 [20]; +// 3. the Refer-To header field containing the information related to the session with an audio media other than the +// session associated with the SIP INVITE request due to static STI, i.e. set to the additional transferred session +// SCC AS URI and the following URI header fields: +// A. the Target-Dialog URI header field populated as specified in IETF RFC 4538 [11], containing the dialog +// identifier of the session with the MSC Server; +// B. the Require URI header field populated with the option tag value "tdialog"; +// C. if the remote UE did not request privacy then the To URI header field populated as specified in +// IETF RFC 3261 [19], containing the P-Asserted-Identity provided by the remote UE during the session +// establishment; +// D. the From URI header field populated as specified in IETF RFC 3261 [19], containing the public user identity +// of the SC UE provided during the session establishment; +// E. the Content-Type URI header field with "application/sdp"; and +// F. the hname "body" URI header field populated with SDP describing the media streams as negotiated in the +// session with the remote UE and with directionality as used by the MSC Server; +// 4. the Content-Type header field with the value set to MIME type specified in the subclause D.1.3; and +// 5. a XML body compliant to the XML schema specified in the subclause D.1.2. + } // end Group 9.3.4 SCC AS procedures for CS to PS access transfer with MSC server assisted mid-call feature Group "9.3.5 SCC AS procedures for PS to CS dual radio access transfer of calls in an early dialog phase" @@ -306,10 +327,160 @@ Package TP_SCCAS { } // end Group "9.3.5 9.3.5 SCC AS procedures for PS to CS dual radio access transfer of calls in an early dialog phase" - Group "9.3.6 Removal of non-transferred audio media components and release of source access legs" + Group "9.3.6 Removal of non-transferred audio media components and release of source access legs" { + import all from Sip_Common; - + + Test Purpose { + + + TP Id TP_ICS_SCCAS_XXX_BYE_01 + + // When the transfer of a session is successfully completed, then the SCC AS shall release the source legs as follows: + // 1) the source access leg is an ongoing session containing only an active or inactive media component or a session in + // an early dialog phase on the terminating side, send a SIP BYE request on the source access leg in accordance + // with 3GPP TS 24.229 [2]; + + Test objective "Verify that " + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.6." + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + +// Initial conditions with { +// the UE entity isRegisteredTo the IMS and +// the UE entity hasReceived200OkOnInitialRequestForDialogWith +// } +// +// Expected behaviour +// ensure that { +// when { +// the IUT entity receives an ACK containing +// From indicating value PX_UE_A_SIP_URI, +// To indicating value PX_UE_B_SIP_URI, +// CallId indicating value PX_UE_A_CALLID, +// Via indicating value PX_UE_A_VIA, +// Route indicating value PX_UE_A_SERVICE_ROUTE; +// from the IMS_S_CSCF entity +// } +// then { +// the IUT entity sends an BYE containing +// From indicating value PX_UE_A_SIP_URI, +// To indicating value PX_UE_B_SIP_URI, +// CallId indicating value PX_UE_A_CALLID, +// Via indicating value PX_UE_A_VIA, +// Route indicating value PX_UE_A_SERVICE_ROUTE; +// to the IMS_S_CSCF entity +// } +// } + + + } // end TP_ICS_SCCAS_XXX_BYE_01 + + + + Test Purpose { + + + TP Id TP_ICS_SCCAS_XXX_BYE_02 + + // When the transfer of a session is successfully completed, then the SCC AS shall release the source legs as follows: + // 2) the session is dialog in an early dialog phase on the originating side send a SIP 480 (Temporary Unavailable) + // response on the source access leg in accordance with 3GPP TS 24.229 [2]; + + Test objective "Verify that " + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.6." + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + +// Initial conditions with { +// the UE entity isRegisteredTo the IMS and +// the UE entity hasReceived200OkOnInitialRequestForDialogWith +// } +// +// Expected behaviour +// ensure that { +// when { +// the IUT entity receives an ACK containing +// From indicating value PX_UE_A_SIP_URI, +// To indicating value PX_UE_B_SIP_URI, +// CallId indicating value PX_UE_A_CALLID, +// Via indicating value PX_UE_A_VIA, +// Route indicating value PX_UE_A_SERVICE_ROUTE; +// from the IMS_S_CSCF entity +// } +// then { +// the IUT entity sends an BYE containing +// From indicating value PX_UE_A_SIP_URI, +// To indicating value PX_UE_B_SIP_URI, +// CallId indicating value PX_UE_A_CALLID, +// Via indicating value PX_UE_A_VIA, +// Route indicating value PX_UE_A_SERVICE_ROUTE; +// to the IMS_S_CSCF entity +// } +// } + + + } // end TP_ICS_SCCAS_XXX_BYE_02 + + + + Test Purpose { + + + TP Id TP_ICS_SCCAS_XXX_BYE_03 + + // When the transfer of a session is successfully completed, then the SCC AS shall release the source legs as follows: + // 3) the source access leg contains media components other than speech media component, the SCC AS should send + // a SIP re-INVITE request to update the source access leg in accordance with 3GPP TS 24.229 [2] + + Test objective "Verify that " + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.6." + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + +// Initial conditions with { +// the UE entity isRegisteredTo the IMS and +// the UE entity hasReceived200OkOnInitialRequestForDialogWith +// } +// +// Expected behaviour +// ensure that { +// when { +// the IUT entity receives an ACK containing +// From indicating value PX_UE_A_SIP_URI, +// To indicating value PX_UE_B_SIP_URI, +// CallId indicating value PX_UE_A_CALLID, +// Via indicating value PX_UE_A_VIA, +// Route indicating value PX_UE_A_SERVICE_ROUTE; +// from the IMS_S_CSCF entity +// } +// then { +// the IUT entity sends an BYE containing +// From indicating value PX_UE_A_SIP_URI, +// To indicating value PX_UE_B_SIP_URI, +// CallId indicating value PX_UE_A_CALLID, +// Via indicating value PX_UE_A_VIA, +// Route indicating value PX_UE_A_SERVICE_ROUTE; +// to the IMS_S_CSCF entity +// } +// } + + + } // end TP_ICS_SCCAS_XXX_BYE_03 + } // end Group "9.3.6 Removal of non-transferred audio media components and release of source access legs" } // End of Package TP_SCCAS -- GitLab From c4bc824c88b7a4b7ef910091b15cee5fc1c37372 Mon Sep 17 00:00:00 2001 From: pintar Date: Fri, 1 Apr 2022 10:06:02 +0200 Subject: [PATCH 009/202] New SCCAS configuration added --- test_purposes/Sip_Common.tplan2 | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test_purposes/Sip_Common.tplan2 b/test_purposes/Sip_Common.tplan2 index de6216e..398f444 100644 --- a/test_purposes/Sip_Common.tplan2 +++ b/test_purposes/Sip_Common.tplan2 @@ -154,6 +154,15 @@ Package Sip_Common { Tester component IMS_S_CSCF of type SipComponent SUT component IUT of type SipComponent connection between IMS_S_CSCF.g and IUT.g; + + + Test Configuration CFG_SCCAS_02 + containing + Tester component IMS_S_CSCF of type SipComponent + Tester component ATCF of type SipComponent + SUT component IUT of type SipComponent + connection between IMS_S_CSCF.g and IUT.g + connection between ATCF.g and IUT.g; Test Configuration CFG_SCSCF_01 containing -- GitLab From 8a6a8ad59543539a0cee0ae61d1f89ade77b48ab Mon Sep 17 00:00:00 2001 From: juvancic Date: Mon, 9 May 2022 09:11:54 +0200 Subject: [PATCH 010/202] 6.4 chapter added --- .../sccas/TP_SCCAS_Chapter_6_3.tplan2 | 267 +++++++++++++----- 1 file changed, 190 insertions(+), 77 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 index 57fb192..ebd3571 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 @@ -18,7 +18,11 @@ Package TP_SCCAS_Chapter_6_3 { import all from Sip_Common; - Test Purpose { + Group "6.3.1 General" { + + import all from Sip_Common; + + Test Purpose { TP Id TP_ISC_SCCAS_REG_01 @@ -67,21 +71,21 @@ Package TP_SCCAS_Chapter_6_3 { } } // End of TP_ISC_SCCAS_REG_01 - Test Purpose { + Test Purpose { - TP Id TP_ISC_SCCAS_REG_02 + TP Id TP_ISC_SCCAS_REG_04 - Test objective "Verify that the SCCAS successfully obtain/processes SRVCC information." + Test objective "Verify that the SCCAS successfully obtain/processes de-registration information (Expires=0)." Reference - "ETSI TS 124 237 [1], Clause 6.3.2 (1st numbered list)" + "ETSI TS 124 237 [1], Clause 6.3.1" Config Id CFG_SCCAS_01 PICS Selection NONE Initial conditions with { - the UE entity isNotRegisteredTo the IMS_A + the UE entity isRegisteredTo the IMS_A } Expected behaviour @@ -92,11 +96,7 @@ Package TP_SCCAS_Chapter_6_3 { To indicating value PX_UE_A_SIP_URI, CallId indicating value PX_UE_A_CALLID, Via indicating value PX_UE_A_VIA, - FeatureCaps containing - g3gppAtcfFeatureCapabilityIndicator;, - SipMessageBody containing - MIME indicating value "REGISTER from_UE_A", - MIME indicating value "r_200_Ok to_UE_A";; + Expires indicating value 0; from the IMS_S_CSCF entity } then { @@ -104,24 +104,27 @@ Package TP_SCCAS_Chapter_6_3 { From indicating value PX_IMS_S_CSCF_SIP_URI, To indicating value PX_UE_A_SIP_URI, CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Contact indicating value PX_UE_A_SIP_URI; + Via indicating value PX_UE_A_VIA ; to the IMS_S_CSCF entity - } - } - - } // End of TP_ISC_SCCAS_REG_02 + } // End of TP_ISC_SCCAS_REG_04 + + } //End Group "6.3.1 General" - Test Purpose { + + Group "6.3.2 Triggers for the SCCAS providing information to ATCF"{ + + import all from Sip_Common; + + Test Purpose { - TP Id TP_ISC_SCCAS_REG_03 + TP Id TP_ISC_SCCAS_REG_02 - Test objective "Verify that the SCCAS successfully sends MESSAGE providing PS to CS SRVCC information." + Test objective "Verify that the SCCAS successfully obtain/processes SRVCC information." Reference - "ETSI TS 124 237 [1], Clause 6.3.3" + "ETSI TS 124 237 [1], Clause 6.3.2 (1st numbered list)" Config Id CFG_SCCAS_01 @@ -152,39 +155,35 @@ Package TP_SCCAS_Chapter_6_3 { To indicating value PX_UE_A_SIP_URI, CallId indicating value PX_UE_A_CALLID, Via indicating value PX_UE_A_VIA, - Contact indicating value PX_UE_A_SIP_URI //, - //Path indicating value PX_P_CSCF_A_SIP_URI, - //PChargingVector containing - // icid indicating value PX_TO_BE_DEFINED, - //PVisitedNetworkID indicating value PX_TO_BE_DEFINED, - //Require indicating value "path", - //Supported indicating value "path" ;; - ; + Contact indicating value PX_UE_A_SIP_URI; to the IMS_S_CSCF entity - - and the IUT entity sends a MESSAGE - to the ATCF entity + } } - } // End of TP_ISC_SCCAS_REG_03 - - Test Purpose { + } // End of TP_ISC_SCCAS_REG_02 + } // end Group "6.3.2 Triggers for the SCCAS providing information to ATCF" + + Group "6.3.3 SCCAS providing the PS to CS related SRVCC information to the ATCF"{ + + import all from Sip_Common; + + Test Purpose { - TP Id TP_ISC_SCCAS_REG_04 + TP Id TP_ISC_SCCAS_REG_03 - Test objective "Verify that the SCCAS successfully obtain/processes de-registration information (Expires=0)." + Test objective "Verify that the SCCAS successfully sends MESSAGE providing PS to CS SRVCC information." Reference - "ETSI TS 124 237 [1], Clause 6.3.1" + "ETSI TS 124 237 [1], Clause 6.3.3" Config Id CFG_SCCAS_01 PICS Selection NONE Initial conditions with { - the UE entity isRegisteredTo the IMS_A + the UE entity isNotRegisteredTo the IMS_A } Expected behaviour @@ -195,7 +194,11 @@ Package TP_SCCAS_Chapter_6_3 { To indicating value PX_UE_A_SIP_URI, CallId indicating value PX_UE_A_CALLID, Via indicating value PX_UE_A_VIA, - Expires indicating value 0; + FeatureCaps containing + g3gppAtcfFeatureCapabilityIndicator;, + SipMessageBody containing + MIME indicating value "REGISTER from_UE_A", + MIME indicating value "r_200_Ok to_UE_A";; from the IMS_S_CSCF entity } then { @@ -203,62 +206,172 @@ Package TP_SCCAS_Chapter_6_3 { From indicating value PX_IMS_S_CSCF_SIP_URI, To indicating value PX_UE_A_SIP_URI, CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA ; + Via indicating value PX_UE_A_VIA, + Contact indicating value PX_UE_A_SIP_URI //, + //Path indicating value PX_P_CSCF_A_SIP_URI, + //PChargingVector containing + // icid indicating value PX_TO_BE_DEFINED, + //PVisitedNetworkID indicating value PX_TO_BE_DEFINED, + //Require indicating value "path", + //Supported indicating value "path" ;; + ; to the IMS_S_CSCF entity + + and the IUT entity sends a MESSAGE + to the ATCF entity } + } - } // End of TP_ISC_SCCAS_REG_04 + + } // End of TP_ISC_SCCAS_REG_03 + } //end Group "6.3.3 SCCAS providing the PS to CS related SRVCC information to the ATCF" + - Test Purpose { + Group "6.3.4 Triggers for the SCCAS providing information to MSC server"{ + + import all from Sip_Common; + } //end Group "6.3.4 Triggers for the SCCAS providing information to MSC server" + + Group "6.3.5 SCCAS providing the CS to PS SRVCC information to the MSC server"{ + + import all from Sip_Common; + } //end Group "6.3.5 SCCAS providing the CS to PS SRVCC information to the MSC server" + + + Group "6A.4.1 Common SIP message set up procedures"{ + + import all from Sip_Common; + } // end Group "6A.4.1 Common SIP message set up procedures" + + Group "6A.4.2 SIP INVITE request"{ + + import all from Sip_Common; + + Test Purpose { - TP Id TP_SCCAS_INVITE_01 + TP Id TP_ISC_SCCAS_INI_01 - Test objective "Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg)." + Test objective "Verify that the SCCAS send INVITE for anchored user populated with ." Reference - "ETSI TS 124 229 [1], Clauses 5.2.7.2 and 6.2" + "ETSI TS 124 237 [1], Clause 6A.4.2, Clause 4.2.2" Config Id CFG_SCCAS_01 PICS Selection NONE Initial conditions with { - the UE entity isRegisteredTo the IMS + the UE entity isRegisteredTo the IMS_A } Expected behaviour ensure that { - when { - the IUT entity receives an INVITE containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - PAccessNetworkInfo, - MessageBody containing - SDP containing - Version indicating value "0";;; - from the IMS_S_CSCF entity - } - then { - the IUT entity sends an r_200_Ok containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - PAccessNetworkInfo, - ContentType indicating value "application/sdp", - ContentLength, - MessageBody containing - SDP containing - Version indicating value "0";;; - to the IMS_S_CSCF entity - } + the IUT entity sends a INVITE containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + //... + FeatureCaps containing //according to RFC6809 + g3gppFeatureCapabilityIndicator, //see Annex C + g3gppRemoteLegInfoCapabilityIndicator;, //see Annex C + Accept containing + MIME indicating value "application/vnd.3gpp.state-and-event-info.xml";, //subclause D.2.3 + RecvInfo containing + g3gppStateAndEventPackageName;; //according to RFC6086 + to the IMS_S_CSCF entity } - - } // End of TP_MW_PCSCF_INVITE_01 + } // End of TP_ISC_SCCAS_REG_04 + + } // end Group "6A.4.2 SIP INVITE request" + + Group "6A.4.3 SIP INVITE responses towards the SC UE"{ + + import all from Sip_Common; + } // end Group "6A.4.3 SIP INVITE responses towards the SC UE" + + Group "6A.4.3A SIP INVITE responses towards the MSC server"{ + + import all from Sip_Common; + } // end Group "6A.4.3A SIP INVITE responses towards the MSC server" + + Group "6A.4.4 Handling of OMR specific attributes"{ + + import all from Sip_Common; + } // end Group "6A.4.4 Handling of OMR specific attributes" + + Group "6A.4.5 Target refresh request for a dialog and associated responses"{ + + import all from Sip_Common; + } // end Group "6A.4.5 Target refresh request for a dialog and associated responses" + + Group "6A.4.6 Rejecting malicious SIP REFER requests from remote UE"{ + + import all from Sip_Common; + } // end Group "6A.4.6 Rejecting malicious SIP REFER requests from remote UE" + + Group "6A.4.7 Protecting from malicious SIP INFO requests with remote leg information from remote UE"{ + + import all from Sip_Common; + } // end roup "6A.4.7 Protecting from malicious SIP INFO requests with remote leg information from remote UE" + + Group "6A.4.8 Precondition and access transfer"{ + + import all from Sip_Common; + } // end Group "6A.4.8 Precondition and access transfer" + + +// Test Purpose { +// +// TP Id TP_SCCAS_INVITE_01 +// +// Test objective "Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg)." +// +// Reference +// "ETSI TS 124 229 [1], Clauses 5.2.7.2 and 6.2" +// +// Config Id CFG_SCCAS_01 +// +// PICS Selection NONE +// +// Initial conditions with { +// the UE entity isRegisteredTo the IMS +// } +// +// Expected behaviour +// ensure that { +// when { +// the IUT entity receives an INVITE containing +// From indicating value PX_UE_A_SIP_URI, +// To indicating value PX_UE_B_SIP_URI, +// CallId indicating value PX_UE_A_CALLID, +// Via indicating value PX_UE_A_VIA, +// Route indicating value PX_UE_A_SERVICE_ROUTE, +// PAccessNetworkInfo, +// MessageBody containing +// SDP containing +// Version indicating value "0";;; +// from the IMS_S_CSCF entity +// } +// then { +// the IUT entity sends an r_200_Ok containing +// From indicating value PX_UE_A_SIP_URI, +// To indicating value PX_UE_B_SIP_URI, +// CallId indicating value PX_UE_A_CALLID, +// Via indicating value PX_UE_A_VIA, +// Route indicating value PX_UE_A_SERVICE_ROUTE, +// PAccessNetworkInfo, +// ContentType indicating value "application/sdp", +// ContentLength, +// MessageBody containing +// SDP containing +// Version indicating value "0";;; +// to the IMS_S_CSCF entity +// } +// } +// +// } // End of TP_MW_PCSCF_INVITE_01 + } // End of Package TP_MW_PS -- GitLab From 178a7d9ec3e6803c1b97bd584f7eca3fe605c1a0 Mon Sep 17 00:00:00 2001 From: juvancic Date: Mon, 6 Jun 2022 12:27:50 +0200 Subject: [PATCH 011/202] New resp codes --- test_purposes/Sip_Common.tplan2 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test_purposes/Sip_Common.tplan2 b/test_purposes/Sip_Common.tplan2 index 1a6c4a0..de6216e 100644 --- a/test_purposes/Sip_Common.tplan2 +++ b/test_purposes/Sip_Common.tplan2 @@ -50,6 +50,7 @@ Package Sip_Common { - registeredIdentityTelURI - registeredIdentitySipURI - hasInitiatedDialogWith + - hasEstablishedDialog - isConfiguredWithENUMentryForTelURI_E164NumberOf - hasReceivedInitialRequestForDialog - hasReceived200OkOnInitialRequestForDialogWith @@ -122,6 +123,7 @@ Package Sip_Common { SipMessage CANCEL; SipMessage BYE; // SIP Responses + SipMessage r_1xx_Any; SipMessage r_100_Trying; SipMessage r_180_Ringing; SipMessage r_200_Ok; -- GitLab From 75c4206dc16591278338134b0a816ddd52b51984 Mon Sep 17 00:00:00 2001 From: juvancic Date: Mon, 6 Jun 2022 12:28:44 +0200 Subject: [PATCH 012/202] updated tests --- .../sccas/TP_SCCAS_Chapter_6_3.tplan2 | 154 +----------------- 1 file changed, 9 insertions(+), 145 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 index ebd3571..acab608 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 @@ -24,7 +24,7 @@ Package TP_SCCAS_Chapter_6_3 { Test Purpose { - TP Id TP_ISC_SCCAS_REG_01 + TP Id TP_ISC_SCCAS_RSC_REG_01 Test objective "Verify that the SCCAS successfully obtain/processes 3pty registration information." @@ -69,11 +69,11 @@ Package TP_SCCAS_Chapter_6_3 { to the IMS_S_CSCF entity } } - } // End of TP_ISC_SCCAS_REG_01 + } // End of TP_ISC_SCCAS_RSC_REG_01 Test Purpose { - TP Id TP_ISC_SCCAS_REG_04 + TP Id TP_ISC_SCCAS_RSC_REG_02 Test objective "Verify that the SCCAS successfully obtain/processes de-registration information (Expires=0)." @@ -108,7 +108,7 @@ Package TP_SCCAS_Chapter_6_3 { to the IMS_S_CSCF entity } } - } // End of TP_ISC_SCCAS_REG_04 + } // End of TP_ISC_SCCAS_RSC_REG_02 } //End Group "6.3.1 General" @@ -119,7 +119,7 @@ Package TP_SCCAS_Chapter_6_3 { Test Purpose { - TP Id TP_ISC_SCCAS_REG_02 + TP Id TP_ISC_SCCAS_RSC_REG_03 Test objective "Verify that the SCCAS successfully obtain/processes SRVCC information." @@ -162,7 +162,7 @@ Package TP_SCCAS_Chapter_6_3 { } - } // End of TP_ISC_SCCAS_REG_02 + } // End of TP_ISC_SCCAS_RSC_REG_03 } // end Group "6.3.2 Triggers for the SCCAS providing information to ATCF" Group "6.3.3 SCCAS providing the PS to CS related SRVCC information to the ATCF"{ @@ -171,7 +171,7 @@ Package TP_SCCAS_Chapter_6_3 { Test Purpose { - TP Id TP_ISC_SCCAS_REG_03 + TP Id TP_ISC_SCCAS_RSC_REG_04 Test objective "Verify that the SCCAS successfully sends MESSAGE providing PS to CS SRVCC information." @@ -223,7 +223,7 @@ Package TP_SCCAS_Chapter_6_3 { } - } // End of TP_ISC_SCCAS_REG_03 + } // End of TP_ISC_SCCAS_RSC_REG_03 } //end Group "6.3.3 SCCAS providing the PS to CS related SRVCC information to the ATCF" @@ -237,141 +237,5 @@ Package TP_SCCAS_Chapter_6_3 { import all from Sip_Common; } //end Group "6.3.5 SCCAS providing the CS to PS SRVCC information to the MSC server" - - Group "6A.4.1 Common SIP message set up procedures"{ - - import all from Sip_Common; - } // end Group "6A.4.1 Common SIP message set up procedures" - - Group "6A.4.2 SIP INVITE request"{ - - import all from Sip_Common; - - Test Purpose { - - TP Id TP_ISC_SCCAS_INI_01 - - Test objective "Verify that the SCCAS send INVITE for anchored user populated with ." - - Reference - "ETSI TS 124 237 [1], Clause 6A.4.2, Clause 4.2.2" - - Config Id CFG_SCCAS_01 - - PICS Selection NONE - - Initial conditions with { - the UE entity isRegisteredTo the IMS_A - } - - Expected behaviour - ensure that { - the IUT entity sends a INVITE containing - From indicating value PX_IMS_S_CSCF_SIP_URI, - To indicating value PX_UE_A_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - //... - FeatureCaps containing //according to RFC6809 - g3gppFeatureCapabilityIndicator, //see Annex C - g3gppRemoteLegInfoCapabilityIndicator;, //see Annex C - Accept containing - MIME indicating value "application/vnd.3gpp.state-and-event-info.xml";, //subclause D.2.3 - RecvInfo containing - g3gppStateAndEventPackageName;; //according to RFC6086 - to the IMS_S_CSCF entity - } - } // End of TP_ISC_SCCAS_REG_04 - - } // end Group "6A.4.2 SIP INVITE request" - - Group "6A.4.3 SIP INVITE responses towards the SC UE"{ - - import all from Sip_Common; - } // end Group "6A.4.3 SIP INVITE responses towards the SC UE" - - Group "6A.4.3A SIP INVITE responses towards the MSC server"{ - - import all from Sip_Common; - } // end Group "6A.4.3A SIP INVITE responses towards the MSC server" - - Group "6A.4.4 Handling of OMR specific attributes"{ - - import all from Sip_Common; - } // end Group "6A.4.4 Handling of OMR specific attributes" - - Group "6A.4.5 Target refresh request for a dialog and associated responses"{ - - import all from Sip_Common; - } // end Group "6A.4.5 Target refresh request for a dialog and associated responses" - - Group "6A.4.6 Rejecting malicious SIP REFER requests from remote UE"{ - - import all from Sip_Common; - } // end Group "6A.4.6 Rejecting malicious SIP REFER requests from remote UE" - - Group "6A.4.7 Protecting from malicious SIP INFO requests with remote leg information from remote UE"{ - - import all from Sip_Common; - } // end roup "6A.4.7 Protecting from malicious SIP INFO requests with remote leg information from remote UE" - - Group "6A.4.8 Precondition and access transfer"{ - - import all from Sip_Common; - } // end Group "6A.4.8 Precondition and access transfer" - - -// Test Purpose { -// -// TP Id TP_SCCAS_INVITE_01 -// -// Test objective "Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg)." -// -// Reference -// "ETSI TS 124 229 [1], Clauses 5.2.7.2 and 6.2" -// -// Config Id CFG_SCCAS_01 -// -// PICS Selection NONE -// -// Initial conditions with { -// the UE entity isRegisteredTo the IMS -// } -// -// Expected behaviour -// ensure that { -// when { -// the IUT entity receives an INVITE containing -// From indicating value PX_UE_A_SIP_URI, -// To indicating value PX_UE_B_SIP_URI, -// CallId indicating value PX_UE_A_CALLID, -// Via indicating value PX_UE_A_VIA, -// Route indicating value PX_UE_A_SERVICE_ROUTE, -// PAccessNetworkInfo, -// MessageBody containing -// SDP containing -// Version indicating value "0";;; -// from the IMS_S_CSCF entity -// } -// then { -// the IUT entity sends an r_200_Ok containing -// From indicating value PX_UE_A_SIP_URI, -// To indicating value PX_UE_B_SIP_URI, -// CallId indicating value PX_UE_A_CALLID, -// Via indicating value PX_UE_A_VIA, -// Route indicating value PX_UE_A_SERVICE_ROUTE, -// PAccessNetworkInfo, -// ContentType indicating value "application/sdp", -// ContentLength, -// MessageBody containing -// SDP containing -// Version indicating value "0";;; -// to the IMS_S_CSCF entity -// } -// } -// -// } // End of TP_MW_PCSCF_INVITE_01 - - -} // End of Package TP_MW_PS +} // End of Package TP_SCCAS_Chapter_6_3 -- GitLab From d6493be669ec9d147076ef836c3e934e123bc708 Mon Sep 17 00:00:00 2001 From: juvancic Date: Mon, 6 Jun 2022 12:29:29 +0200 Subject: [PATCH 013/202] updated tests --- .../sccas/TP_SCCAS_Chapter_12_3.tplan2 | 90 ++++ .../sccas/TP_SCCAS_Chapter_6A_4.tplan2 | 432 ++++++++++++++++++ .../sccas/TP_SCCAS_Chapter_7_3.tplan2 | 138 ++++++ .../sccas/TP_SCCAS_Chapter_8_3.tplan2 | 30 ++ .../sccas/TP_SCCAS_Chapter_9_3.tplan2 | 60 +++ 5 files changed, 750 insertions(+) create mode 100644 test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 create mode 100644 test_purposes/sccas/TP_SCCAS_Chapter_6A_4.tplan2 create mode 100644 test_purposes/sccas/TP_SCCAS_Chapter_7_3.tplan2 create mode 100644 test_purposes/sccas/TP_SCCAS_Chapter_8_3.tplan2 create mode 100644 test_purposes/sccas/TP_SCCAS_Chapter_9_3.tplan2 diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 new file mode 100644 index 0000000..748a3f9 --- /dev/null +++ b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 @@ -0,0 +1,90 @@ +/* +Copyright (c) ETSI 2019-2020. + +This software is subject to copyrights owned by ETSI. Non-exclusive permission +is hereby granted, free of charge, to copy, reproduce and amend this file +under the following conditions: It is provided "as is", without warranty of any +kind, expressed or implied. + +ETSI shall never be liable for any claim, damages, or other liability arising +from its use or inability of use.This permission does not apply to any documentation +associated with this file for which ETSI keeps all rights reserved. The present +copyright notice shall be included in all copies of whole or part of this +file and shall not imply any sub-license right. +*/ + +/* interface ISC at SCCAS */ +Package TP_SCCAS_Chapter_12_3 { + + Group "12.3.0 General"{ + + import all from Sip_Common; + } // end Group "12.3.0 General" + + Group "12.3.1 SCC AS procedures for PS to CS access transfer, PS to CS SRVCC"{ + + import all from Sip_Common; + } // end Group "12.3.1 SCC AS procedures for PS to CS access transfer, PS to CS SRVCC" + + Group "12.3.2 SCC AS procedures for PS to CS access transfer with MSC server assisted mid-call feature, PS to CS SRVCC"{ + + import all from Sip_Common; + } // end Group "12.3.2 SCC AS procedures for PS to CS access transfer with MSC server assisted mid-call feature, PS to CS SRVCC" + + Group "12.3.3 SCC AS procedures for PS to CS SRVCC, abnormal case"{ + + import all from Sip_Common; + Group "12.3.2.1 General"{ + + } + Group "12.3.2.2 Transfer of the first session"{ + + } + Group "12.3.2.3 Transfer of an additional session"{ + + } + + } // end Group "12.3.3 SCC AS procedures for PS to CS SRVCC, abnormal case" + +// Group "12.3.4 SCC AS procedures for PS to CS access transfer when call is in alerting phase or pre-alerting phase"{ +// +// import all from Sip_Common; +// } // end Group "12.3.4 SCC AS procedures for PS to CS access transfer when call is in alerting phase or pre-alerting phase" +// +// Group "12.3.5 SCC AS procedures for PS to CS access transfer: PS to CS SRVCC enhancement using ATCF"{ +// +// import all from Sip_Common; +// }// end Group "12.3.5 SCC AS procedures for PS to CS access transfer: PS to CS SRVCCenhancement using ATCF" +// +// Group "12.3.6 SCC AS procedures for PS to CS access transfer, vSRVCC"{ +// +// import all from Sip_Common; +// }// end Group "12.3.6 12.3.6.0 SCC AS procedures for PS to CS access transfer, vSRVCC" +// +// Group "12.3.7 SCC AS procedures for handling of SIP OPTIONS request"{ +// +// import all from Sip_Common; +// } // end Group "12.3.7 SCC AS procedures for handling of SIP OPTIONS request" +// +// Group "12.3.8 Removal of non-transferred audio media components and superfluous sessions"{ +// +// import all from Sip_Common; +// } // end Group "12.3.8 Removal of non-transferred audio media components and superfluous sessions" +// +// Group "12.3.9 Charging correlation"{ +// +// import all from Sip_Common; +// } // end Group "12.3.9 Charging correlation" +// +// Group "12.3.10 SCC AS procedures for CS to PS SRVCC"{ +// +// import all from Sip_Common; +// } // end Group "12.3.10 SCC AS procedures for CS to PS SRVCC" +// +// Group "12.3.11 SCC AS procedures when the access transfer is completed"{ +// +// import all from Sip_Common; +// } // end Group "12.3.11 SCC AS procedures when the access transfer is completed" + +}// End of Package TP_SCCAS_Chapter_9_3 + diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_6A_4.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_6A_4.tplan2 new file mode 100644 index 0000000..2d5a726 --- /dev/null +++ b/test_purposes/sccas/TP_SCCAS_Chapter_6A_4.tplan2 @@ -0,0 +1,432 @@ +/* +Copyright (c) ETSI 2019-2020. + +This software is subject to copyrights owned by ETSI. Non-exclusive permission +is hereby granted, free of charge, to copy, reproduce and amend this file +under the following conditions: It is provided "as is", without warranty of any +kind, expressed or implied. + +ETSI shall never be liable for any claim, damages, or other liability arising +from its use or inability of use.This permission does not apply to any documentation +associated with this file for which ETSI keeps all rights reserved. The present +copyright notice shall be included in all copies of whole or part of this +file and shall not imply any sub-license right. +*/ + +/* interface ISC at SCCAS */ +Package TP_SCCAS_Chapter_6A_4 { + + Group "6A.4.1 Common SIP message set up procedures"{ + + import all from Sip_Common; + } // end Group "6A.4.1 Common SIP message set up procedures" + + Group "6A.4.2 SIP INVITE request"{ + + import all from Sip_Common; + + Test Purpose { + + TP Id TP_ISC_SCCAS_GEN_INV_01 + + Test objective "Verify that the SCCAS send INVITE for anchored user populated with ." + + Reference + "ETSI TS 124 237 [1], Clause 6A.4.2, Clause 4.2.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS_A + } + + Expected behaviour + ensure that { + the IUT entity sends a INVITE containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + //... + FeatureCaps containing //according to RFC6809 + g3gppFeatureCapabilityIndicator, //see Annex C + g3gppRemoteLegInfoCapabilityIndicator;, //see Annex C + Accept containing + MIME indicating value "application/vnd.3gpp.state-and-event-info.xml";, //subclause D.2.3 + RecvInfo containing + g3gppStateAndEventPackageName;; //according to RFC6086 + to the IMS_S_CSCF entity + } + } // End of TP_ISC_SCCAS_GEN_INV_01 + + } // end Group "6A.4.2 SIP INVITE request" + + Group "6A.4.3 SIP INVITE responses towards the SC UE"{ + + import all from Sip_Common; + + Test Purpose { + + TP Id TP_ISC_SCCAS_GEN_INV_02 + + Test objective "Verify that the SCCAS sends 1xx and/or 2xx response to the SIP INVITE request towards the served user ." + + Reference + "ETSI TS 124 237 [1], Clause 6A.4.3, Clause 4.2.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE //SCCAS_PS2CS_SRVCC, SCCAS_PS2CS_SRVCC_ALERTING,SCCAS_PS2CS_SRVCC_PRE-ALERTING + + Initial conditions with { + the UE entity isRegisteredTo the IMS_A + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a INVITE containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Contact containing + g3gppMidcallMediaFeature Tag, //list -B + g3gppSrvccAlertingFeature tag, //list -C + g3gppPs2csSrvccOrigPreAlertingMediaFeature Tag, //list -D + FeatureCaps, + SipMessageBody;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_1xx_Any containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + //... + FeatureCaps containing //IETF RFC6809 + g3gppFeatureCapabilityIndicator, //see Annex C + g3gppMidcallFeatureCapabilityIndicator, //list - B + g3gppSrvccAlertingFeatureCapabilityIndicator, //list -C + g3gppPs2csSrvccOrigPreAlertingMediaIndicator, //list -D + g3gppRemoteLegInfoFeatureCapabilityIndicator //list -E + //Contact containing + Accept containing + MIME indicating value "application/vnd.3gpp.state-and-event-info.xml" //subclause D.2.3 + RecvInfo containing + g3gppStateAndEventPackageName;; //according to RFC6086 + ;; + to the IMS_S_CSCF entity + } + } + } // End of TP_ISC_SCCAS_GEN_INV_02 + + //TODO: diferent variants due to 1-4 numbered variants + + } // end Group "6A.4.3 SIP INVITE responses towards the SC UE" + + Group "6A.4.3A SIP INVITE responses towards the MSC server"{ + + import all from Sip_Common; + + Test Purpose { + + TP Id TP_ISC_SCCAS_GEN_INV_03 + + Test objective "Verify that the SCCAS sends 1xx and/or 2xx response to the SIP INVITE request due to STN-SR or STN." + + Reference + "ETSI TS 124 237 [1], Clause 6A.4.3A(1st Numbered list, item 1), Clause 4.2.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE //SCCAS_PS2CS_SRVCC, SCCAS_PS2CS_SRVCC_ALERTING,SCCAS_PS2CS_SRVCC_PRE-ALERTING + + Initial conditions with { + the UE entity isRegisteredTo the IMS_A + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a INVITE containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_STNSR_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Contact containing + g3gppMidcallMediaFeature_Tag, + g3gppSrvccAlertingFeature_Tag, + g3gppPs2csSrvccOrigPreAlertingMediaFeature_Tag + FeatureCaps, + SipMessageBody;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_2xx_Any containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + //... + Contact indicating value UE_CONTACT, + PAssertedIdentity indicating value UE_PAI, + FeatureCaps containing //according to RFC6809 + g3gppFeatureCapabilityIndicator, //see Annex C + g3gppRemoteLegInfoCapabilityIndicator //see Annex C + Accept containing + MIME indicating value "application/vnd.3gpp.state-and-event-info.xml" //subclause D.2.3 + RecvInfo containing + g3gppStateAndEventPackageName;; //according to RFC6086 + ;; + to the IMS_S_CSCF entity + } + } + } // End of TP_ISC_SCCAS_GEN_INV_03 + } // end Group "6A.4.3A SIP INVITE responses towards the MSC server" + + Group "6A.4.4 Handling of OMR specific attributes"{ + + import all from Sip_Common; + } // end Group "6A.4.4 Handling of OMR specific attributes" + + Group "6A.4.5 Target refresh request for a dialog and associated responses"{ + + import all from Sip_Common; + Test Purpose { + + TP Id TP_ISC_SCCAS_GEN_RIN_01 + + Test objective "Verify that the SCCAS sends 1xx and/or 2xx response to the SIP INVITE target refresh request towards the served user." + + Reference + "ETSI TS 124 237 [1], Clause 6A.4.5, Clause 4.2.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS_A and + the UE entity hasEstablishedDialog the SCCAS + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a INVITE containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Contact containing + g3gppMidcallMediaFeature Tag, //list -B + g3gppSrvccAlertingFeature tag, //list -C + g3gppPs2csSrvccOrigPreAlertingMediaFeature Tag, //list -D + FeatureCaps, + SipMessageBody;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_1xx_Any containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + //... + FeatureCaps containing //IETF RFC6809 + g3gppFeatureCapabilityIndicator, //see Annex C + g3gppMidcallFeatureCapabilityIndicator, //list - B + g3gppSrvccAlertingFeatureCapabilityIndicator, //list -C + g3gppPs2csSrvccOrigPreAlertingMediaIndicator, //list -D + //Contact containing + Accept containing + MIME indicating value "application/vnd.3gpp.state-and-event-info.xml" //subclause D.2.3 + RecvInfo containing + g3gppStateAndEventPackageName;; //according to RFC6086 + ;; + to the IMS_S_CSCF entity + } + } + } // End of TP_ISC_SCCAS_GEN_RIN_01 + + Test Purpose { + + TP Id TP_ISC_SCCAS_GEN_RIN_01 + + Test objective "Verify that the SCCAS sends the SIP INVITE target refresh request towards the served user." + + Reference + "ETSI TS 124 237 [1], Clause 6A.4.5, Clause 4.2.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS_A and + the UE entity hasEstablishedDialog the SCCAS + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a INVITE containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Contact containing + g3gppMidcallMediaFeature Tag, //list -B + g3gppSrvccAlertingFeature tag, //list -C + g3gppPs2csSrvccOrigPreAlertingMediaFeature Tag, //list -D + FeatureCaps, + SipMessageBody;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a INVITE containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + //... + FeatureCaps containing //IETF RFC6809 + g3gppFeatureCapabilityIndicator, //see Annex C + g3gppMidcallFeatureCapabilityIndicator, //list - B + g3gppSrvccAlertingFeatureCapabilityIndicator, //list -C + + //Contact containing + Accept containing + MIME indicating value "application/vnd.3gpp.state-and-event-info.xml" //subclause D.2.3 + RecvInfo containing + g3gppStateAndEventPackageName;; //according to RFC6086 + ;; + to the IMS_S_CSCF entity + } + } + } // End of TP_ISC_SCCAS_GEN_RIN_02 + } // end Group "6A.4.5 Target refresh request for a dialog and associated responses" + + Group "6A.4.6 Rejecting malicious SIP REFER requests from remote UE"{ + + import all from Sip_Common; + Test Purpose { + + TP Id TP_ISC_SCCAS_GEN_REF_01 + + Test objective "Verify that the SCCAS sends 403 response to the SIP REFER request from remote UE." + + Reference + "ETSI TS 124 237 [1], Clause 6A.4.6(1st Numbered list)" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE //SCCAS_PS2CS_SRVCC, SCCAS_PS2CS_SRVCC_ALERTING + + Initial conditions with { + the UE entity isRegisteredTo the IMS_A and + the UE entity hasInitiatedDialogWith the SCCAS + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a REFER containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + //Contact + ReferSub indicating value "false", + Supported indicating value "norefersub", + ReferTo containing "a SIP URI with the Target-Dialog_URI_header_field", + SipMessageBody containing + MIME indicating value "application/vnd.3gpp.state-and-event-info.xml"; //subclause D.2.3; + ;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_403_Forbidden containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA + //... + ; + to the IMS_S_CSCF entity + } + } + } // End of TP_ISC_SCCAS_GEN_REF_01 + } // end Group "6A.4.6 Rejecting malicious SIP REFER requests from remote UE" + + Group "6A.4.7 Protecting from malicious SIP INFO requests with remote leg information from remote UE"{ + + import all from Sip_Common; + Test Purpose { + + TP Id TP_ISC_SCCAS_GEN_INF_01 + + Test objective "Verify that the SCCAS not include Accept,RecvInfo towards remote UE." + + Reference + "ETSI TS 124 237 [1], Clause 6A.4.7" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE //SCCAS_PS2CS_SRVCC, SCCAS_PS2CS_SRVCC_ALERTING + + Initial conditions with { + the UE entity isRegisteredTo the IMS_A and + the UE entity hasInitiatedDialogWith the SCCAS + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a INVITE containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Contact containing + g3gppMidcallMediaFeature Tag, //list -B + g3gppSrvccAlertingFeature tag, //list -C + g3gppPs2csSrvccOrigPreAlertingMediaFeature Tag, //list -D + FeatureCaps, + SipMessageBody;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a INVITE containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + //... + FeatureCaps containing //IETF RFC6809 + g3gppFeatureCapabilityIndicator, //see Annex C + g3gppMidcallFeatureCapabilityIndicator, //list - B + g3gppSrvccAlertingFeatureCapabilityIndicator, //list -C + //Contact + Accept not indicating value "application/vnd.3gpp.state-and-event-info.xml", //subclause D.2.3 + RecvInfo not indicating value g3gppStateAndEventPackageName; //according to RFC6086 + ; + to the IMS_S_CSCF entity + } + } + } // End of TP_ISC_SCCAS_GEN_INF_01 + + } // end roup "6A.4.7 Protecting from malicious SIP INFO requests with remote leg information from remote UE" + + Group "6A.4.8 Precondition and access transfer"{ + + import all from Sip_Common; + } // end Group "6A.4.8 Precondition and access transfer" + + +} // End of Package TP_SCCAS_Chapter_6A_4 + diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_7_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_7_3.tplan2 new file mode 100644 index 0000000..9af27a6 --- /dev/null +++ b/test_purposes/sccas/TP_SCCAS_Chapter_7_3.tplan2 @@ -0,0 +1,138 @@ +/* +Copyright (c) ETSI 2019-2020. + +This software is subject to copyrights owned by ETSI. Non-exclusive permission +is hereby granted, free of charge, to copy, reproduce and amend this file +under the following conditions: It is provided "as is", without warranty of any +kind, expressed or implied. + +ETSI shall never be liable for any claim, damages, or other liability arising +from its use or inability of use.This permission does not apply to any documentation +associated with this file for which ETSI keeps all rights reserved. The present +copyright notice shall be included in all copies of whole or part of this +file and shall not imply any sub-license right. +*/ + +/* interface ISC at SCCAS */ +Package TP_SCCAS_Chapter_7_3 { + + Group "7.3.1 Distinction of requests sent to the SCC AS"{ + + import all from Sip_Common; + Test Purpose { + + TP Id TP_ISC_SCCAS_ORI_INI_01 + + Test objective "Verify that the SCCAS first receives SIP INVITE request from UE/SCSCF" + + Reference + "ETSI TS 124 237 [1], Clauses 7.3.1, 7.3.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS_A + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a INVITE containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value "sccas as topmost entry", + Contact, + FeatureCaps, + SipMessageBody; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_183_SessionProgress containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + //... + FeatureCaps + //Contact containing + ; + to the IMS_S_CSCF entity + } + } + } // End of TP_ISC_SCCAS_ORI_INI_01 + + } // end Group "7.3.1 Distinction of requests sent to the SCC AS" + + Group "7.3.2 Call origination procedures at the SCC AS"{ + + import all from Sip_Common; + Test Purpose { + + TP Id TP_ISC_SCCAS_ORI_INI_02 + + Test objective "Verify that the SCCAS sends 2xx response to the SIP INVITE request towards the served user ." + + Reference + "ETSI TS 124 237 [1], Clauses 7.3.2, 6A.4.3, 4.2.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE //SCCAS_PS2CS_SRVCC, SCCAS_PS2CS_SRVCC_ALERTING,SCCAS_PS2CS_SRVCC_PRE-ALERTING + + Initial conditions with { + the UE entity isRegisteredTo the IMS_A + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a INVITE containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Contact containing + g3gppMidcallMediaFeature Tag, //list -B + g3gppSrvccAlertingFeature tag, //list -C + g3gppPs2csSrvccOrigPreAlertingMediaFeature Tag, //list -D + FeatureCaps, + SipMessageBody;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_200_Ok containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + //... + FeatureCaps containing //IETF RFC6809 + g3gppFeatureCapabilityIndicator, //see Annex C + g3gppMidcallFeatureCapabilityIndicator, //list - B + g3gppSrvccAlertingFeatureCapabilityIndicator, //list -C + g3gppPs2csSrvccOrigPreAlertingMediaIndicator, //list -D + g3gppRemoteLegInfoFeatureCapabilityIndicator //list -E + Contact, + Supported indicating value "tdialog,replaces" + Accept containing + MIME indicating value "application/vnd.3gpp.state-and-event-info.xml" //subclause D.2.3 + RecvInfo containing + g3gppStateAndEventPackageName;; //according to RFC6086 + ;; + to the IMS_S_CSCF entity + } + } + } // End of TP_ISC_SCCAS_ORI_INI_02 + } // end Group "7.3.2 Call origination procedures at the SCC AS" + + Group "7.3.3 Subscription related procedures in the SCC AS"{ + + import all from Sip_Common; + } // end Group "7.3.3 Subscription related procedures in the SCC AS" + +}// End of Package TP_SCCAS_Chapter_7_3 + diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_8_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_8_3.tplan2 new file mode 100644 index 0000000..55eb121 --- /dev/null +++ b/test_purposes/sccas/TP_SCCAS_Chapter_8_3.tplan2 @@ -0,0 +1,30 @@ +/* +Copyright (c) ETSI 2019-2020. + +This software is subject to copyrights owned by ETSI. Non-exclusive permission +is hereby granted, free of charge, to copy, reproduce and amend this file +under the following conditions: It is provided "as is", without warranty of any +kind, expressed or implied. + +ETSI shall never be liable for any claim, damages, or other liability arising +from its use or inability of use.This permission does not apply to any documentation +associated with this file for which ETSI keeps all rights reserved. The present +copyright notice shall be included in all copies of whole or part of this +file and shall not imply any sub-license right. +*/ + +/* interface ISC at SCCAS */ +Package TP_SCCAS_Chapter_8_3 { + + Group "8.3.1 Distinction of requests sent to the SCC AS"{ + + import all from Sip_Common; + } // end Group "8.3.1 Distinction of requests sent to the SCC AS" + + Group "8.3.2 Call termination procedures in the SCC AS"{ + + import all from Sip_Common; + } // end Group "8.3.2 Call termination procedures in the SCC AS" + +}// End of Package TP_SCCAS_Chapter_8_3 + diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3.tplan2 new file mode 100644 index 0000000..60b67fc --- /dev/null +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3.tplan2 @@ -0,0 +1,60 @@ +/* +Copyright (c) ETSI 2019-2020. + +This software is subject to copyrights owned by ETSI. Non-exclusive permission +is hereby granted, free of charge, to copy, reproduce and amend this file +under the following conditions: It is provided "as is", without warranty of any +kind, expressed or implied. + +ETSI shall never be liable for any claim, damages, or other liability arising +from its use or inability of use.This permission does not apply to any documentation +associated with this file for which ETSI keeps all rights reserved. The present +copyright notice shall be included in all copies of whole or part of this +file and shall not imply any sub-license right. +*/ + +/* interface ISC at SCCAS */ +Package TP_SCCAS_Chapter_9_3 { + + Group "9.3.1 Distinction of requests sent to the SCC AS"{ + + import all from Sip_Common; + } // end Group "9.3.1 Distinction of requests sent to the SCC AS" + + Group "9.3.2 SCC AS procedures for PS to CS access transfer"{ + + import all from Sip_Common; + } // end Group "9.3.2 SCC AS procedures for PS to CS access transfer" + + Group "9.3.2A SCC AS procedures for PS to CS access transfer with MSC server assisted mid-call feature"{ + + import all from Sip_Common; + } // end Group "9.3.2A SCC AS procedures for PS to CS access transfer with MSC server assisted mid-call feature" + +// Group "9.3.3 SCC AS procedures for CS to PS access transfer"{ +// +// import all from Sip_Common; +// } // end Group "9.3.3 SCC AS procedures for CS to PS access transfer" +// +// Group "9.3.4 SCC AS procedures for CS to PS access transfer with MSC server assisted mid-call feature"{ +// +// import all from Sip_Common; +// } // end Group "9.3.4 SCC AS procedures for CS to PS access transfer with MSC server assisted mid-call feature" +// +// Group "9.3.5 SCC AS procedures for PS to CS dual radio access transfer of calls in an early dialog phase"{ +// +// import all from Sip_Common; +// }// end Group "9.3.5 SCC AS procedures for PS to CS dual radio access transfer of calls in an early dialog phase" +// +// Group "9.3.6 Removal of non-transferred audio media components and release of source access legs"{ +// +// import all from Sip_Common; +// }// end Group "9.3.6 Removal of non-transferred audio media components and release of source access legs" +// +// Group "9.3.7 SCC AS procedures for CS to PS dual radio access transfer for calls in an early phase"{ +// +// import all from Sip_Common; +// } // end Group "9.3.7 SCC AS procedures for CS to PS dual radio access transfer for calls in an early phase" + +}// End of Package TP_SCCAS_Chapter_9_3 + -- GitLab From 2a86fb923e42e523caa6242b49f63d407715fba3 Mon Sep 17 00:00:00 2001 From: juvancic Date: Mon, 6 Jun 2022 22:35:36 +0200 Subject: [PATCH 014/202] updated tests --- .../sccas/TP_SCCAS_Chapter_6_3.tplan2 | 80 +++++++++++++++++-- 1 file changed, 72 insertions(+), 8 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 index acab608..0ce1be5 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 @@ -146,7 +146,7 @@ Package TP_SCCAS_Chapter_6_3 { g3gppAtcfFeatureCapabilityIndicator;, SipMessageBody containing MIME indicating value "REGISTER from_UE_A", - MIME indicating value "r_200_Ok to_UE_A";; + MIME indicating value "r_200_Ok to_UE_A" containing Contact;;; from the IMS_S_CSCF entity } then { @@ -178,9 +178,9 @@ Package TP_SCCAS_Chapter_6_3 { Reference "ETSI TS 124 237 [1], Clause 6.3.3" - Config Id CFG_SCCAS_01 + Config Id CFG_SCCAS_ATCF_01 - PICS Selection NONE + PICS Selection NONE //PS2CSSRVCC Initial conditions with { the UE entity isNotRegisteredTo the IMS_A @@ -195,10 +195,10 @@ Package TP_SCCAS_Chapter_6_3 { CallId indicating value PX_UE_A_CALLID, Via indicating value PX_UE_A_VIA, FeatureCaps containing - g3gppAtcfFeatureCapabilityIndicator;, + g3gppAtcfFeatureCapabilityIndicator indicating value "g.3gpp.atcf-mgmt-uri";, SipMessageBody containing MIME indicating value "REGISTER from_UE_A", - MIME indicating value "r_200_Ok to_UE_A";; + MIME indicating value "r_200_Ok to_UE_A" containing Contact;;; from the IMS_S_CSCF entity } then { @@ -217,19 +217,83 @@ Package TP_SCCAS_Chapter_6_3 { ; to the IMS_S_CSCF entity - and the IUT entity sends a MESSAGE + and the IUT entity sends a MESSAGE containing + RUri indicating value "ATCFManagementUri", + PAsertedIdentity, + SipMessageBody containing + MIME indicating value "application/vnd.3gpp.SRVCC-info+xml";, + PChargingVector indicating value "type 1 orig-ioi"; to the ATCF entity } } - } // End of TP_ISC_SCCAS_RSC_REG_03 + } // End of TP_ISC_SCCAS_RSC_REG_04 } //end Group "6.3.3 SCCAS providing the PS to CS related SRVCC information to the ATCF" Group "6.3.4 Triggers for the SCCAS providing information to MSC server"{ - import all from Sip_Common; + import all from Sip_Common;Test Purpose { + + TP Id TP_ISC_SCCAS_RSC_REG_05 + + Test objective "Verify that the SCCAS successfully get CS to PS SRVCC information." + + Reference + "ETSI TS 124 237 [1], Clause 6.3.3" + + Config Id CFG_SCCAS_MSC_01 + + PICS Selection NONE //CS2PSSRVCC + + Initial conditions with { + the UE entity isNotRegisteredTo the IMS_A + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a REGISTER containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + FeatureCaps containing + g3gppAtcfFeatureCapabilityIndicator indicating value "g.3gpp.atcf-mgmt-uri";, + SipMessageBody containing + MIME indicating value "REGISTER from_UE_A", + MIME indicating value "r_200_Ok to_UE_A" containing Contact;;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_200_Ok containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Contact indicating value PX_UE_A_SIP_URI //, + //Path indicating value PX_P_CSCF_A_SIP_URI, + //PChargingVector containing + // icid indicating value PX_TO_BE_DEFINED, + //PVisitedNetworkID indicating value PX_TO_BE_DEFINED, + //Require indicating value "path", + //Supported indicating value "path" ;; + ; + to the IMS_S_CSCF entity + + and the IUT entity sends a MESSAGE containing + RUri indicating value "ATCFManagementUri", + PAsertedIdentity, + SipMessageBody containing + MIME indicating value "application/vnd.3gpp.SRVCC-info+xml";, + PChargingVector indicating value "type 1 orig-ioi"; + to the ATCF entity + } + + } + + } // End of TP_ISC_SCCAS_RSC_REG_05 } //end Group "6.3.4 Triggers for the SCCAS providing information to MSC server" Group "6.3.5 SCCAS providing the CS to PS SRVCC information to the MSC server"{ -- GitLab From b779c73d0a7e19248f983aaaf077d3506c6238fc Mon Sep 17 00:00:00 2001 From: juvancic Date: Tue, 7 Jun 2022 16:23:19 +0200 Subject: [PATCH 015/202] updated tests --- .../sccas/TP_SCCAS_Chapter_6A_4.tplan2 | 50 ++++++++++++------- .../sccas/TP_SCCAS_Chapter_6_3.tplan2 | 4 +- 2 files changed, 34 insertions(+), 20 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_6A_4.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_6A_4.tplan2 index 2d5a726..54b1aea 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_6A_4.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_6A_4.tplan2 @@ -29,7 +29,7 @@ Package TP_SCCAS_Chapter_6A_4 { TP Id TP_ISC_SCCAS_GEN_INV_01 - Test objective "Verify that the SCCAS send INVITE for anchored user populated with ." + Test objective "Verify that the SCCAS send INVITE for anchored user populated with FeatureCaps header." Reference "ETSI TS 124 237 [1], Clause 6A.4.2, Clause 4.2.2" @@ -44,6 +44,11 @@ Package TP_SCCAS_Chapter_6A_4 { Expected behaviour ensure that { + when { + the IUT entity receives a INVITE + from the IMS_S_CSCF entity + } + then { the IUT entity sends a INVITE containing From indicating value PX_IMS_S_CSCF_SIP_URI, To indicating value PX_UE_A_SIP_URI, @@ -57,7 +62,8 @@ Package TP_SCCAS_Chapter_6A_4 { MIME indicating value "application/vnd.3gpp.state-and-event-info.xml";, //subclause D.2.3 RecvInfo containing g3gppStateAndEventPackageName;; //according to RFC6086 - to the IMS_S_CSCF entity + to the IMS_S_CSCF entity + } } } // End of TP_ISC_SCCAS_GEN_INV_01 @@ -81,27 +87,28 @@ Package TP_SCCAS_Chapter_6A_4 { PICS Selection NONE //SCCAS_PS2CS_SRVCC, SCCAS_PS2CS_SRVCC_ALERTING,SCCAS_PS2CS_SRVCC_PRE-ALERTING Initial conditions with { - the UE entity isRegisteredTo the IMS_A + the UE entity isRegisteredTo the IMS_A and + the UE entity hasInitiatedDialogWith the UE_TERM } Expected behaviour ensure that { when { - the IUT entity receives a INVITE containing + the IUT entity receives a r_183_SessionProgress containing From indicating value PX_IMS_S_CSCF_SIP_URI, To indicating value PX_UE_A_SIP_URI, CallId indicating value PX_UE_A_CALLID, Via indicating value PX_UE_A_VIA, - Contact containing - g3gppMidcallMediaFeature Tag, //list -B - g3gppSrvccAlertingFeature tag, //list -C - g3gppPs2csSrvccOrigPreAlertingMediaFeature Tag, //list -D + //Contact containing + // g3gppMidcallMediaFeature Tag, //list -B + // g3gppSrvccAlertingFeature tag, //list -C + // g3gppPs2csSrvccOrigPreAlertingMediaFeature Tag, //list -D FeatureCaps, - SipMessageBody;; + SipMessageBody; from the IMS_S_CSCF entity } then { - the IUT entity sends a r_1xx_Any containing + the IUT entity sends a r_183_SessionProgress containing From indicating value PX_IMS_S_CSCF_SIP_URI, To indicating value PX_UE_A_SIP_URI, CallId indicating value PX_UE_A_CALLID, @@ -141,12 +148,13 @@ Package TP_SCCAS_Chapter_6A_4 { Reference "ETSI TS 124 237 [1], Clause 6A.4.3A(1st Numbered list, item 1), Clause 4.2.2" - Config Id CFG_SCCAS_01 + Config Id CFG_SCCAS_03 PICS Selection NONE //SCCAS_PS2CS_SRVCC, SCCAS_PS2CS_SRVCC_ALERTING,SCCAS_PS2CS_SRVCC_PRE-ALERTING Initial conditions with { - the UE entity isRegisteredTo the IMS_A + the UE entity isRegisteredTo the IMS_A and + the UE entity hasInitiatedDialogWith the UE_TERM } Expected behaviour @@ -166,9 +174,9 @@ Package TP_SCCAS_Chapter_6A_4 { from the IMS_S_CSCF entity } then { - the IUT entity sends a r_2xx_Any containing + the IUT entity sends a r_200_Ok containing From indicating value PX_IMS_S_CSCF_SIP_URI, - To indicating value PX_UE_A_SIP_URI, + To indicating value PX_STNSR_SIP_URI, CallId indicating value PX_UE_A_CALLID, Via indicating value PX_UE_A_VIA, //... @@ -230,8 +238,14 @@ Package TP_SCCAS_Chapter_6A_4 { SipMessageBody;; from the IMS_S_CSCF entity } - then { - the IUT entity sends a r_1xx_Any containing + then{ + the IUT entity sends a INVITE + to the IMS_S_CSCF entity and + + the IUT entity receives a r_183_SessionProgress + from the IMS_S_CSCF entity and + + the IUT entity sends a r_183_SessionProgress containing From indicating value PX_IMS_S_CSCF_SIP_URI, To indicating value PX_UE_A_SIP_URI, CallId indicating value PX_UE_A_CALLID, @@ -249,13 +263,13 @@ Package TP_SCCAS_Chapter_6A_4 { g3gppStateAndEventPackageName;; //according to RFC6086 ;; to the IMS_S_CSCF entity - } + } } } // End of TP_ISC_SCCAS_GEN_RIN_01 Test Purpose { - TP Id TP_ISC_SCCAS_GEN_RIN_01 + TP Id TP_ISC_SCCAS_GEN_RIN_02 Test objective "Verify that the SCCAS sends the SIP INVITE target refresh request towards the served user." diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 index 0ce1be5..7437c8c 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 @@ -178,7 +178,7 @@ Package TP_SCCAS_Chapter_6_3 { Reference "ETSI TS 124 237 [1], Clause 6.3.3" - Config Id CFG_SCCAS_ATCF_01 + Config Id CFG_SCCAS_02 PICS Selection NONE //PS2CSSRVCC @@ -243,7 +243,7 @@ Package TP_SCCAS_Chapter_6_3 { Reference "ETSI TS 124 237 [1], Clause 6.3.3" - Config Id CFG_SCCAS_MSC_01 + Config Id CFG_SCCAS_01 PICS Selection NONE //CS2PSSRVCC -- GitLab From 47c1f18dcafa91bfd68937c4277732af9844356b Mon Sep 17 00:00:00 2001 From: juvancic Date: Tue, 7 Jun 2022 16:23:31 +0200 Subject: [PATCH 016/202] New resp codes --- test_purposes/Sip_Common.tplan2 | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test_purposes/Sip_Common.tplan2 b/test_purposes/Sip_Common.tplan2 index 398f444..d1c3f20 100644 --- a/test_purposes/Sip_Common.tplan2 +++ b/test_purposes/Sip_Common.tplan2 @@ -29,8 +29,10 @@ Package Sip_Common { - SCCAS - IMS_S_CSCF - UE + - UE_TERM - IUT - ATCF + - MSC ; events: - receives @@ -126,6 +128,7 @@ Package Sip_Common { SipMessage r_1xx_Any; SipMessage r_100_Trying; SipMessage r_180_Ringing; + SipMessage r_183_SessionProgress; SipMessage r_200_Ok; SipMessage r_2xx_Any; SipMessage r_401_Unauthorized; @@ -163,6 +166,14 @@ Package Sip_Common { SUT component IUT of type SipComponent connection between IMS_S_CSCF.g and IUT.g connection between ATCF.g and IUT.g; + + Test Configuration CFG_SCCAS_03 + containing + Tester component IMS_S_CSCF of type SipComponent + Tester component MSC of type SipComponent + SUT component IUT of type SipComponent + connection between IMS_S_CSCF.g and IUT.g + connection between MSC.g and IUT.g; Test Configuration CFG_SCSCF_01 containing -- GitLab From 7042b9077f8b1000228f8dfa4b83442ea0577367 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Tue, 7 Jun 2022 17:14:17 +0200 Subject: [PATCH 017/202] collection informations --- .../sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 153 +++++++++++++++++- 1 file changed, 152 insertions(+), 1 deletion(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index 2049c1c..58bfe2d 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -308,20 +308,171 @@ Package TP_SCCAS { Group "9.3.5.2 SCC AS procedures for PS to CS dual radio access transfer of a originating session in the alerting phase" { + import all from Sip_Common; + + + Test Purpose { + + // When the SCC AS receives a SIP INVITE request due to PS to CS STN and if there are one or more dialogs in an early + // dialog phase supporting a session with active speech media component such that: + // 1) all dialogs are early dialogs created by the same SIP INVITE request; + // 2) a SIP 180 (Ringing) response to SIP INVITE request was received in at least one of those early dialogs; + // 3) a g.3gpp.drvcc-alerting feature-capability indicator as described in annex C was included in a Feature-Caps + // header field by the SCC AS in the SIP 180 (Ringing) response; and + // 4) the Contact header field in the initial SIP INVITE request sent by the SC UE towards the SCC AS included the + // g.3gpp.drvcc-alerting media feature tag as described in annex C, + // then the SCC AS shall for each early dialog send an SIP UPDATE request towards the remote UE and populate each + // SIP UPDATE request as follows: + // 1) set the Request-URI set to the URI contained in the Contact header field returned at the creation of the dialog + // with the remote UE; + // 2) the Contact header field set to the Contact header field provided by the served UE at the creation of the dialog + // with the remote UE; and + // 3) a new SDP offer, including: + // a) if the remote leg is not a precondition enabled dialog, the media characteristics as received in the SIP + // INVITE request due to PS to CS STN but excluding any precondition mechanism specific SDP attributes, by + // following the rules of 3GPP TS 24.229 [2]; + // b) if the remote leg is a precondition enabled dialog, include a new SDP offer including: + // - the media characteristics as received in the SIP INVITE request due to PS to CS STN (including any + // precondition mechanism specific SDP attributes); and + // - if the SIP INVITE request due to PS to CS STN is not a precondition enabled initial SIP INVITE request, + // indicate preconditions as met, using the segmented status type, as defined in IETF RFC 3312 [88] and + // IETF RFC 4032 [89], as well as the strength-tag value "mandatory" for the local segment and the + // strength-tag value either "optional" or as specified in RFC 3312 [88] and RFC 4032 [89] for the remote + // segment. + + TP Id TP_ICS_SCCAS_XXX_XXX_01 + + Test objective "Verify that the SCC AS " + + } + + + + Test Purpose { + + + // For each SIP 200 (OK) response to the SIP UPDATE request (triggered by the SIP INVITE request due to PS to CS + // STN) from a remote UE the SCC AS shall: + // 1) if one of the following is true: + // A) if the remote leg is not a precondition enabled dialog; + // B) if the remote leg is a precondition enabled dialog, the SIP INVITE request due to PS to CS STN is a + // precondition enabled initial SIP INVITE request and both local and remote preconditions are met: + // send a SIP provisional response to the SIP INVITE request due to PS to CS STN following the rules of + // 3GPP TS 24.229 [2] with the response code corresponding to the actual dialog state populated with: + // - an SDP answer based on the SDP answer received from the remote UE; and + // - the last received P-Early-Media header field, including the SIP 2xx response to the SIP UPDATE request, if a PEarly- + // Media has been received from the remote UE. + + // This TP: only case A + + TP Id TP_ICS + + Test objective "" + + + } + + } // end Group "9.3.5.2 SCC AS procedures for PS to CS dual radio access transfer of a originating session in the alerting phase" - Group "9.3.5.3 SCC AS procedures for PS to CS dual radio, access transfer of a originating session in the prealerting phase" + Group "9.3.5.3 SCC AS procedures for PS to CS dual radio, access transfer of a originating session in the pre-alerting phase" { + + Test Purpose { + + // When the SCC AS receives a SIP INVITE request due to PS to CS STN and if there are zero, one or more dialogs in an + // early dialog phase supporting a session with active speech media component such that: + // 1) all dialogs are early dialogs created by the same SIP INVITE request; + // 2) a SIP 180 (Ringing) response to the SIP INVITE request has not been received yet in any of the existing dialogs; + // 3) the SCC AS included a g.3gpp.ps2cs-drvcc-orig-pre-alerting feature-capability indicator as described in annex C + // in a Feature-Caps header field of SIP 18x responses; and + // 4) the Contact header field in the initial SIP INVITE request sent by the SC UE towards the SCC AS included a + // g.3gpp.ps2cs-drvcc-orig-pre-alerting media feature tag as described in annex C, + // then the SCC AS shall for each early dialog send a SIP UPDATE request towards the remote UE. + // Each SIP UPDATE request shall be populated as follows: + // 1) the Request-URI set to the URI contained in the Contact header field returned at the creation of the dialog with + // the remote UE; + // 2) the Contact header field set to the Contact header field provided by the served UE at the creation of the dialog + // with the remote UE; and + // 3) an new SDP offer, including + // a) if the remote leg is not a precondition enabled dialog, the media characteristics as received in the SIP + // INVITE request due to PS to CS STN but excluding any precondition mechanism specific SDP attributes, by + // following the rules of 3GPP TS 24.229 [2]; + // b) if the remote leg is a precondition enabled dialog, include a new SDP offer including: + // - the media characteristics as received in the SIP INVITE request due to PS to CS STN (including any + // precondition mechanism specific SDP attributes); and + // - if the SIP INVITE request due to PS to CS STN is not a precondition enabled initial SIP INVITE request, + // indicate preconditions as met, using the segmented status type, as defined in IETF RFC 3312 [88] and + // IETF RFC 4032 [89], as well as the strength-tag value "mandatory" for the local segment and the + // strength-tag value either "optional" or as specified in RFC 3312 [88] and RFC 4032 [89] for the remote + // segment. + + TP Id TP_ICS + + Test objective "" + + } + + } // end Group "9.3.5.3 SCC AS procedures for PS to CS dual radio, access transfer of a originating session in the prealerting phase" Group "9.3.5.4 SCC AS procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase" { + // Figure A.15.4-1: + } // end Group "9.3.5.4 SCC AS procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase" Group "9.3.5.5 SCC AS procedures for PS to CS dual radio access transfer of a terminating session in the alerting phase" { + import all from Sip_Common; + + + Test Purpose { + + // When the SCC AS receives a SIP 488 (Not Acceptable Here) response to the SIP INVITE request creating the session + // in the terminating alerting phase without an SDP MIME body and if the SCC AS supports PS to CS dual radio access + // transfer for calls in alerting phase then the SCC AS shall: + // 1) if a SIP 180 (Ringing) response to the SIP INVITE request has been received from the SC UE; + // 2) if the SCC AS included a g.3gpp.ps2cs-drvcc-orig-pre-alerting feature-capability indicator as described in + // annex C in the SIP INVITE request; and + // 3) if the Contact header field in the SIP 180 (Ringing) response request sent by the SC UE towards the SCC AS + // included a g.3gpp.drvcc-alerting media feature tag as described in annex C, + // terminate the call over CS as follows: + // 1) perform the actions according to the subclause 10.4.7 in 3GPP TS 24.292 [4] with the following clarifications: + // a) the URI in the Request-URI shall be set to C-MSISDN; and + // b) the P-Asserted-Identity header field set to: + // - if the SIP 180 (Ringing) response contained the g.3gpp.dynamic-stn media feature tag as described in + // annex C in the Contact header field, the dynamic STN; and + // - if the SIP 180 (Ringing) response does not contain the g.3gpp.dynamic-stn media feature tag as described + // in annex C in the Contact header field, the static STN. + + TP Id TP_ICS_SCCAS_XXX_XXX_01 + + Test objective "Verify that the SCC AS terminates the call over CS after receiving a SIP 488" + + } + + + Test Purpose { + + // When the SCC AS receives a SIP 1xx response with an SDP answer the SCC AS shall: + // a) send a SIP PRACK request towards the CS domain; and + // b) send an SIP UPDATE request to the remote UE populated as follows: + // - the Request-URI set to the URI contained in the Contact header field returned at the creation of the dialog + // with the remote UE; + // - the Contact header field set to the Contact header field provided by the served UE at the creation of the + // dialog with the remote UE; and + // - anew SDP offer, including the media characteristics as received in the SIP 1xx response with the SDP + // answer, by following the rules of 3GPP TS 24.229 [2]. + + TP Id TP_ICS_SCCAS_XXX_XXX_02 + + Test objective "Verify that the SCC AS sends a SIP PRACK and SIP UPDATE after receiving a SIP 1xx" + + } + } // end Group "9.3.5.5 SCC AS procedures for PS to CS dual radio access transfer of a terminating session in the alerting phase" -- GitLab From 0edf36552df4a14ac7fa112c35769cb76552e448 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Wed, 8 Jun 2022 09:30:19 +0200 Subject: [PATCH 018/202] new sip message REFER --- test_purposes/Sip_Common.tplan2 | 1 + 1 file changed, 1 insertion(+) diff --git a/test_purposes/Sip_Common.tplan2 b/test_purposes/Sip_Common.tplan2 index 398f444..4c02572 100644 --- a/test_purposes/Sip_Common.tplan2 +++ b/test_purposes/Sip_Common.tplan2 @@ -122,6 +122,7 @@ Package Sip_Common { SipMessage ACK; SipMessage CANCEL; SipMessage BYE; + SipMessage REFER; // SIP Responses SipMessage r_1xx_Any; SipMessage r_100_Trying; -- GitLab From 8fb7ebee3af645dbc036a01a97920ed98f4de47a Mon Sep 17 00:00:00 2001 From: juvancic Date: Tue, 7 Jun 2022 17:40:03 +0200 Subject: [PATCH 019/202] updated tests --- .../sccas/TP_SCCAS_Chapter_6_3.tplan2 | 41 ++++++++----------- 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 index 7437c8c..8ee1cae 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 @@ -243,7 +243,7 @@ Package TP_SCCAS_Chapter_6_3 { Reference "ETSI TS 124 237 [1], Clause 6.3.3" - Config Id CFG_SCCAS_01 + Config Id CFG_SCCAS_03 PICS Selection NONE //CS2PSSRVCC @@ -255,42 +255,35 @@ Package TP_SCCAS_Chapter_6_3 { ensure that { when { the IUT entity receives a REGISTER containing - From indicating value PX_IMS_S_CSCF_SIP_URI, + From indicating value PX_UE_A_SIP_URI, To indicating value PX_UE_A_SIP_URI, CallId indicating value PX_UE_A_CALLID, Via indicating value PX_UE_A_VIA, - FeatureCaps containing - g3gppAtcfFeatureCapabilityIndicator indicating value "g.3gpp.atcf-mgmt-uri";, - SipMessageBody containing - MIME indicating value "REGISTER from_UE_A", - MIME indicating value "r_200_Ok to_UE_A" containing Contact;;; + Contact containing + SipInstanceTag, + g3gppIcsiRefTag;; from the IMS_S_CSCF entity } then { the IUT entity sends a r_200_Ok containing - From indicating value PX_IMS_S_CSCF_SIP_URI, + From indicating value PPX_UE_A_SIP_URI, To indicating value PX_UE_A_SIP_URI, CallId indicating value PX_UE_A_CALLID, Via indicating value PX_UE_A_VIA, - Contact indicating value PX_UE_A_SIP_URI //, + Contact indicating value PX_UE_A_SIP_URI, + AcceptContact containing + g3gppPathMediaFeatureTag //Path indicating value PX_P_CSCF_A_SIP_URI, - //PChargingVector containing - // icid indicating value PX_TO_BE_DEFINED, + PChargingVector indicating value "type 1 orig-ioi", //PVisitedNetworkID indicating value PX_TO_BE_DEFINED, - //Require indicating value "path", + PassertedIdentity indicating value PX_SCCAS_URI //Supported indicating value "path" ;; - ; - to the IMS_S_CSCF entity - - and the IUT entity sends a MESSAGE containing - RUri indicating value "ATCFManagementUri", - PAsertedIdentity, - SipMessageBody containing - MIME indicating value "application/vnd.3gpp.SRVCC-info+xml";, - PChargingVector indicating value "type 1 orig-ioi"; - to the ATCF entity - } - + SipMessageBody containing + MIME indicating value "application/vnd.3gpp.srvcc-ext+xml" + + ;;; + to the IMS_S_CSCF entity + } } } // End of TP_ISC_SCCAS_RSC_REG_05 -- GitLab From 1a987e71b3e247436920d563f7c7b883f9a5cf9c Mon Sep 17 00:00:00 2001 From: juvancic Date: Tue, 7 Jun 2022 18:45:06 +0200 Subject: [PATCH 020/202] updated tests --- .../sccas/TP_SCCAS_Chapter_6_3.tplan2 | 64 ++++++++++++++++--- 1 file changed, 55 insertions(+), 9 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 index 8ee1cae..7a4f416 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 @@ -234,14 +234,65 @@ Package TP_SCCAS_Chapter_6_3 { Group "6.3.4 Triggers for the SCCAS providing information to MSC server"{ - import all from Sip_Common;Test Purpose { + import all from Sip_Common; + + Test Purpose { TP Id TP_ISC_SCCAS_RSC_REG_05 Test objective "Verify that the SCCAS successfully get CS to PS SRVCC information." Reference - "ETSI TS 124 237 [1], Clause 6.3.3" + "ETSI TS 124 237 [1], Clause 6.3.4" + + Config Id CFG_SCCAS_03 + + PICS Selection NONE //CS2PSSRVCC + + Initial conditions with { + the UE entity isNotRegisteredTo the IMS_A + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a REGISTER containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Contact containing + g3gppCs2psSsrvccTag, + g3gppPathTag + FeatureCaps;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_200_Ok containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Contact indicating value PX_UE_A_SIP_URI + ; + to the IMS_S_CSCF entity + } + } + + } // End of TP_ISC_SCCAS_RSC_REG_05 + } //end Group "6.3.4 Triggers for the SCCAS providing information to MSC server" + + Group "6.3.5 SCCAS providing the CS to PS SRVCC information to the MSC server"{ + + import all from Sip_Common; + Test Purpose { + + TP Id TP_ISC_SCCAS_RSC_REG_06 + + Test objective "Verify that the SCCAS successfully provide CS to PS SRVCC information." + + Reference + "ETSI TS 124 237 [1], Clause 6.3.5" Config Id CFG_SCCAS_03 @@ -266,7 +317,7 @@ Package TP_SCCAS_Chapter_6_3 { } then { the IUT entity sends a r_200_Ok containing - From indicating value PPX_UE_A_SIP_URI, + From indicating value PX_UE_A_SIP_URI, To indicating value PX_UE_A_SIP_URI, CallId indicating value PX_UE_A_CALLID, Via indicating value PX_UE_A_VIA, @@ -286,12 +337,7 @@ Package TP_SCCAS_Chapter_6_3 { } } - } // End of TP_ISC_SCCAS_RSC_REG_05 - } //end Group "6.3.4 Triggers for the SCCAS providing information to MSC server" - - Group "6.3.5 SCCAS providing the CS to PS SRVCC information to the MSC server"{ - - import all from Sip_Common; + } // End of TP_ISC_SCCAS_RSC_REG_06 } //end Group "6.3.5 SCCAS providing the CS to PS SRVCC information to the MSC server" } // End of Package TP_SCCAS_Chapter_6_3 -- GitLab From 086105d04e62abe375a1f99f63d55c6b2717c39e Mon Sep 17 00:00:00 2001 From: juvancic Date: Tue, 7 Jun 2022 20:54:27 +0200 Subject: [PATCH 021/202] updated tests --- test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 index 7a4f416..302ddea 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 @@ -330,8 +330,7 @@ Package TP_SCCAS_Chapter_6_3 { PassertedIdentity indicating value PX_SCCAS_URI //Supported indicating value "path" ;; SipMessageBody containing - MIME indicating value "application/vnd.3gpp.srvcc-ext+xml" - + MIME indicating value "application/vnd.3gpp.srvcc-ext+xml" ;;; to the IMS_S_CSCF entity } -- GitLab From 6b35dda022c00acb9a7d7ec5bc9c20255b8e8c4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Wed, 8 Jun 2022 11:53:08 +0200 Subject: [PATCH 022/202] update in 9.3.5.4 --- .../sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 92 ++++++++++++++++++- 1 file changed, 89 insertions(+), 3 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index 58bfe2d..acac688 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -280,8 +280,6 @@ Package TP_SCCAS { { - - // 1. the Refer-Sub header field with value "false" as specified in IETF RFC 4488 [20]; // 2. the Supported header field with value "norefersub" as specified in IETF RFC 4488 [20]; // 3. the Refer-To header field containing the information related to the session with an audio media other than the @@ -419,7 +417,95 @@ Package TP_SCCAS { Group "9.3.5.4 SCC AS procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase" { - // Figure A.15.4-1: + + + import all from Sip_Common; + + Test Purpose { + + TP Id TP_ICS_SCCAS_PCT_REF_01 + + Test objective "Verify that the SCC AS populate a SIP REFER request to transfer an additional session in PS to CS dual radio access" + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.5.4" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS + // TODO: initial condition SIP INVITE request to PS to CS STN + // "In order to transfer an additional session on the originating side that can be in pre-alerting phase or in an alerting phase, + // the SCC AS shall send a SIP REFER request in the + // dialog created by the SIP INVITE request due to PS to CS STN" + } + + // 1. the Refer-Sub header field with value "false" as specified in IETF RFC 4488 [20]; + // 2. the Require header field with value "norefersub" as specified in IETF RFC 4488 [20]; + // 3. the Refer-To header field containing the additional transferred session SCC AS URI for PS to CS dual radio, + // where the URI also includes the following header fields containing the information related to the additional + // transferred session: + // A. the Target-Dialog header field populated as specified in IETF RFC 4538 [11], containing the dialog identifier + // of an dialog in the early phase supporting session of the SC UE; + // B. the Require header field populated with the option tag value "tdialog"; + // C. the To header field populated as specified in IETF RFC 3261 [19], containing the value of the P-Asserted- + // Identity provided by the remote UE during the session establishment; + // D. the From header field populated as specified in IETF RFC 3261 [19], containing the value of the P-Asserted- + // Identity provided by the SC UE during the session establishment; + // E. the Content-Type header field with "application/sdp"; + // F. the URI header field with the hname "body" populated with SDP describing the media streams as negotiated + // in the session with the remote UE; and + // G. optionally the P-Asserted-Identity URI header field containing value of the P-Asserted-Identity header field + // of the received SIP INVITE request; and + // 4. application/vnd.3gpp.state-and-event-info+xml MIME body populated as follows: + // A) if a SIP 180 (Ringing) response to the SIP INVITE request has already been received in any of the early + // dialogs associated with the originating early session not accepted yet, with the state-info XML element + // containing "early" and the direction XML element containing "initiator"; and + // B) if a SIP 180 (Ringing) response to the SIP INVITE request has not been received yet in any of the early + // dialogs associated with the originating early session not accepted yet, with the state-info XML element + // containing "pre-alerting" and the direction XML element containing "initiator". + + Expected behaviour + ensure that { + when { + // TODO: Trigger unclear for this refer + the IUT entity receives an ACK containing +// From indicating value PX_UE_A_SIP_URI, +// To indicating value PX_UE_B_SIP_URI, +// CallId indicating value PX_UE_A_CALLID, +// Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an REFER containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + ReferSub indicating value false, // 1. the Refer-Sub header field with value "false" + Require indicating value "norefersub", // 2. the Require header field with value "norefersub" + ReferTo containing "a SIP URI with the Target-Dialog_URI_header_field" // 3. the Refer-To header field containing the additional transferred session SCC AS URI for PS to CS dual radio, where the URI also includes the following header fields containing the information related to the additional transferred session: + TargetDialog indicating value "TODO: dialog identifier of an dialog in the early phase supporting session of the SC UE", // A. the Target-Dialog header field populated, containing the dialog identifier of an dialog in the early phase supporting session of the SC UE; + Require indicating value "tdialog", // B. the Require header field populated with the option tag value "tdialog" + To indicating value "", // C. the To header field populated, containing the value of the P-Asserted-Identity provided by the remote UE during the session establishment; + From indicating value "", // D. the From header field populated, containing the value of the P-Asserted-Identity provided by the SC UE during the session establishment; + ContentType indicating value "application/sdp", // E. the Content-Type header field with "application/sdp"; + MessageBody containing // F. the URI header field with the hname "body" populated with SDP describing the media streams as negotiated in the session with the remote UE + SDP containing + TODO indicating value ""; + ; + ;, + PAssertedIdentity indicating value ""; // G. optionally the P-Asserted-Identity URI header field containing value of the P-Asserted-Identity header field of the received SIP INVITE request + + to the IMS_S_CSCF entity + } + } + + } // end TP_ICS_SCCAS_PCT_REF_01 } // end Group "9.3.5.4 SCC AS procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase" -- GitLab From d0fef6c36f8483e0da259e3a2e95ee4a525beec6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Wed, 8 Jun 2022 12:07:55 +0200 Subject: [PATCH 023/202] new SipMessage r_488_NotAcceptableHere --- test_purposes/Sip_Common.tplan2 | 1 + 1 file changed, 1 insertion(+) diff --git a/test_purposes/Sip_Common.tplan2 b/test_purposes/Sip_Common.tplan2 index f705297..7879657 100644 --- a/test_purposes/Sip_Common.tplan2 +++ b/test_purposes/Sip_Common.tplan2 @@ -136,6 +136,7 @@ Package Sip_Common { SipMessage r_403_Forbidden; SipMessage r_404_NotFound; SipMessage r_486_INVITE; + SipMessage r_488_NotAcceptableHere; SipMessage r_4xx_Any; type SipMessageBody -- GitLab From 98c3ce993d9f428d0c3060324b583b3a1b136997 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Wed, 8 Jun 2022 12:20:05 +0200 Subject: [PATCH 024/202] new SipMessage UPDATE and PRACK --- test_purposes/Sip_Common.tplan2 | 1 + 1 file changed, 1 insertion(+) diff --git a/test_purposes/Sip_Common.tplan2 b/test_purposes/Sip_Common.tplan2 index 7879657..8a4ff2e 100644 --- a/test_purposes/Sip_Common.tplan2 +++ b/test_purposes/Sip_Common.tplan2 @@ -125,6 +125,7 @@ Package Sip_Common { SipMessage CANCEL; SipMessage BYE; SipMessage REFER; + SipMessage UPDATE; // SIP Responses SipMessage r_1xx_Any; SipMessage r_100_Trying; -- GitLab From fc7962ed17c315c22fb98542a617f44e4c0487ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Wed, 8 Jun 2022 12:23:24 +0200 Subject: [PATCH 025/202] new Sip messages UPDATE and PRACK --- test_purposes/Sip_Common.tplan2 | 1 + 1 file changed, 1 insertion(+) diff --git a/test_purposes/Sip_Common.tplan2 b/test_purposes/Sip_Common.tplan2 index 8a4ff2e..eddfe47 100644 --- a/test_purposes/Sip_Common.tplan2 +++ b/test_purposes/Sip_Common.tplan2 @@ -125,6 +125,7 @@ Package Sip_Common { SipMessage CANCEL; SipMessage BYE; SipMessage REFER; + SipMessage PRACK; SipMessage UPDATE; // SIP Responses SipMessage r_1xx_Any; -- GitLab From a44ac28e3aa04185338cf282cc645d2c62a1813e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Wed, 8 Jun 2022 13:40:13 +0200 Subject: [PATCH 026/202] add test puposes --- .../sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 56 ++++++++++++++++++- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index acac688..c3a9744 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -536,9 +536,61 @@ Package TP_SCCAS { TP Id TP_ICS_SCCAS_XXX_XXX_01 - Test objective "Verify that the SCC AS terminates the call over CS after receiving a SIP 488" + Test objective "Verify that the SCC AS terminates the call over CS after receiving a SIP 488" + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.5.5 and 10.4.7 in 3GPP TS 24.292 [4]" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS + // 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 + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an r_488_NotAcceptableHere containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an REFER containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + ReferSub indicating value false, // 1. the Refer-Sub header field with value "false" + Require indicating value "norefersub", // 2. the Require header field with value "norefersub" + ReferTo containing "a SIP URI with the Target-Dialog_URI_header_field" // 3. the Refer-To header field containing the additional transferred session SCC AS URI for PS to CS dual radio, where the URI also includes the following header fields containing the information related to the additional transferred session: + TargetDialog indicating value "TODO: dialog identifier of an dialog in the early phase supporting session of the SC UE", // A. the Target-Dialog header field populated, containing the dialog identifier of an dialog in the early phase supporting session of the SC UE; + Require indicating value "tdialog", // B. the Require header field populated with the option tag value "tdialog" + To indicating value "", // C. the To header field populated, containing the value of the P-Asserted-Identity provided by the remote UE during the session establishment; + From indicating value "", // D. the From header field populated, containing the value of the P-Asserted-Identity provided by the SC UE during the session establishment; + ContentType indicating value "application/sdp", // E. the Content-Type header field with "application/sdp"; + MessageBody containing // F. the URI header field with the hname "body" populated with SDP describing the media streams as negotiated in the session with the remote UE + SDP containing + TODO indicating value ""; + ; + ;, + PAssertedIdentity indicating value ""; // G. optionally the P-Asserted-Identity URI header field containing value of the P-Asserted-Identity header field of the received SIP INVITE request + + to the IMS_S_CSCF entity + } + } - } + } // end Test Purpose { -- GitLab From 11ec32b45836fb49052c8d8012edb1889b085179 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Wed, 8 Jun 2022 13:46:28 +0200 Subject: [PATCH 027/202] add TPs --- test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 1 + 1 file changed, 1 insertion(+) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index c3a9744..99f11e2 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -609,6 +609,7 @@ Package TP_SCCAS { Test objective "Verify that the SCC AS sends a SIP PRACK and SIP UPDATE after receiving a SIP 1xx" + } -- GitLab From 9b9d8b2da657a935d5c174186d894acbef9515ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Wed, 8 Jun 2022 17:04:56 +0200 Subject: [PATCH 028/202] add new sip message 480 --- test_purposes/Sip_Common.tplan2 | 1 + 1 file changed, 1 insertion(+) diff --git a/test_purposes/Sip_Common.tplan2 b/test_purposes/Sip_Common.tplan2 index eddfe47..b9b38f6 100644 --- a/test_purposes/Sip_Common.tplan2 +++ b/test_purposes/Sip_Common.tplan2 @@ -137,6 +137,7 @@ Package Sip_Common { SipMessage r_401_Unauthorized; SipMessage r_403_Forbidden; SipMessage r_404_NotFound; + SipMessage r_480_TemporaryUnavailable; SipMessage r_486_INVITE; SipMessage r_488_NotAcceptableHere; SipMessage r_4xx_Any; -- GitLab From 84835aa040cc2e157a74460f4ce6e17b5bdef4ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Wed, 8 Jun 2022 17:05:19 +0200 Subject: [PATCH 029/202] add test puposes --- .../sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 146 ++++++++++++------ 1 file changed, 102 insertions(+), 44 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index 99f11e2..1d8f7af 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -534,7 +534,7 @@ Package TP_SCCAS { // - if the SIP 180 (Ringing) response does not contain the g.3gpp.dynamic-stn media feature tag as described // in annex C in the Contact header field, the static STN. - TP Id TP_ICS_SCCAS_XXX_XXX_01 + TP Id TP_ICS_SCCAS_PCT_REF_01 Test objective "Verify that the SCC AS terminates the call over CS after receiving a SIP 488" @@ -605,9 +605,59 @@ Package TP_SCCAS { // - anew SDP offer, including the media characteristics as received in the SIP 1xx response with the SDP // answer, by following the rules of 3GPP TS 24.229 [2]. - TP Id TP_ICS_SCCAS_XXX_XXX_02 + TP Id TP_ICS_SCCAS_PCT_XXX_02 - Test objective "Verify that the SCC AS sends a SIP PRACK and SIP UPDATE after receiving a SIP 1xx" + Test objective "Verify that the SCC AS sends a SIP PRACK and SIP UPDATE after receiving a SIP 1xx" + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.5.5" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS + // 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 + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an r_1xx_Any containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an PRACK containing // send a SIP PRACK request towards the CS domain + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE; + and + the IUT entity sends an UPDATE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + Contact indicating value "", // the Contact header field set to the Contact header field provided by the served UE at the creation of the dialog with the remote UE; + MessageBody containing // anew SDP offer, including the media characteristics as received in the SIP 1xx response with the SDP answer, by following the rules of 3GPP TS 24.229 [2]. + SDP containing + TODO indicating value "TODO"; + ; + ; + to the IMS_S_CSCF entity + } + } } @@ -641,32 +691,37 @@ Package TP_SCCAS { PICS Selection NONE // TODO -// Initial conditions with { -// the UE entity isRegisteredTo the IMS and -// the UE entity hasReceived200OkOnInitialRequestForDialogWith -// } + Initial conditions with { + the UE entity isRegisteredTo the IMS + // TODO +// // source access leg is an ongoing session containing only an active or inactive media component + // or + // a session in an early dialog phase on the terminating side + } // -// Expected behaviour -// ensure that { -// when { -// the IUT entity receives an ACK containing -// From indicating value PX_UE_A_SIP_URI, -// To indicating value PX_UE_B_SIP_URI, -// CallId indicating value PX_UE_A_CALLID, -// Via indicating value PX_UE_A_VIA, -// Route indicating value PX_UE_A_SERVICE_ROUTE; -// from the IMS_S_CSCF entity -// } -// then { -// the IUT entity sends an BYE containing + Expected behaviour + ensure that { + when { + the IUT entity receives an ACK + // TODO: trigger for event unclear, transfer of a session is successfully completed + // From indicating value PX_UE_A_SIP_URI, // To indicating value PX_UE_B_SIP_URI, // CallId indicating value PX_UE_A_CALLID, // Via indicating value PX_UE_A_VIA, // Route indicating value PX_UE_A_SERVICE_ROUTE; -// to the IMS_S_CSCF entity -// } -// } + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an BYE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA; + + to the IMS_S_CSCF entity + } + } } // end TP_ICS_SCCAS_XXX_BYE_01 @@ -691,32 +746,35 @@ Package TP_SCCAS { PICS Selection NONE // TODO -// Initial conditions with { -// the UE entity isRegisteredTo the IMS and -// the UE entity hasReceived200OkOnInitialRequestForDialogWith -// } -// -// Expected behaviour -// ensure that { -// when { -// the IUT entity receives an ACK containing -// From indicating value PX_UE_A_SIP_URI, -// To indicating value PX_UE_B_SIP_URI, -// CallId indicating value PX_UE_A_CALLID, -// Via indicating value PX_UE_A_VIA, -// Route indicating value PX_UE_A_SERVICE_ROUTE; -// from the IMS_S_CSCF entity -// } -// then { -// the IUT entity sends an BYE containing + Initial conditions with { + the UE entity isRegisteredTo the IMS + // TODO: session is dialog in an early dialog phase on the originating side + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an ACK + + // TODO: trigger for event unclear, transfer of a session is successfully completed + // From indicating value PX_UE_A_SIP_URI, // To indicating value PX_UE_B_SIP_URI, // CallId indicating value PX_UE_A_CALLID, // Via indicating value PX_UE_A_VIA, // Route indicating value PX_UE_A_SERVICE_ROUTE; -// to the IMS_S_CSCF entity -// } -// } + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_480_TemporaryUnavailable containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE; + to the IMS_S_CSCF entity + } + } } // end TP_ICS_SCCAS_XXX_BYE_02 -- GitLab From c6cc0ca3b529befe49a96fb1de8f857931e95714 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Thu, 9 Jun 2022 10:00:51 +0200 Subject: [PATCH 030/202] Update section 9.3.6 --- .../sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 97 ++++++++----------- 1 file changed, 43 insertions(+), 54 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index 1d8f7af..8f9ea36 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -279,25 +279,7 @@ Package TP_SCCAS { Group "9.3.4 SCC AS procedures for CS to PS access transfer with MSC server assisted mid-call feature" { - -// 1. the Refer-Sub header field with value "false" as specified in IETF RFC 4488 [20]; -// 2. the Supported header field with value "norefersub" as specified in IETF RFC 4488 [20]; -// 3. the Refer-To header field containing the information related to the session with an audio media other than the -// session associated with the SIP INVITE request due to static STI, i.e. set to the additional transferred session -// SCC AS URI and the following URI header fields: -// A. the Target-Dialog URI header field populated as specified in IETF RFC 4538 [11], containing the dialog -// identifier of the session with the MSC Server; -// B. the Require URI header field populated with the option tag value "tdialog"; -// C. if the remote UE did not request privacy then the To URI header field populated as specified in -// IETF RFC 3261 [19], containing the P-Asserted-Identity provided by the remote UE during the session -// establishment; -// D. the From URI header field populated as specified in IETF RFC 3261 [19], containing the public user identity -// of the SC UE provided during the session establishment; -// E. the Content-Type URI header field with "application/sdp"; and -// F. the hname "body" URI header field populated with SDP describing the media streams as negotiated in the -// session with the remote UE and with directionality as used by the MSC Server; -// 4. the Content-Type header field with the value set to MIME type specified in the subclause D.1.3; and -// 5. a XML body compliant to the XML schema specified in the subclause D.1.2. + } // end Group 9.3.4 SCC AS procedures for CS to PS access transfer with MSC server assisted mid-call feature @@ -682,7 +664,8 @@ Package TP_SCCAS { // an early dialog phase on the terminating side, send a SIP BYE request on the source access leg in accordance // with 3GPP TS 24.229 [2]; - Test objective "Verify that " + Test objective "Verify that the SCC AS sends a SIP BYE after transfer of a session is successfully completed and the source access leg is an ongoing session containing only an active or inactive media component" + Reference "ETSI TS 124 237 [1], Clauses 9.3.6." @@ -695,8 +678,7 @@ Package TP_SCCAS { the UE entity isRegisteredTo the IMS // TODO // // source access leg is an ongoing session containing only an active or inactive media component - // or - // a session in an early dialog phase on the terminating side + } // Expected behaviour @@ -731,13 +713,14 @@ Package TP_SCCAS { Test Purpose { - TP Id TP_ICS_SCCAS_XXX_BYE_02 + TP Id TP_ICS_SCCAS_XXX_YYY_02 // When the transfer of a session is successfully completed, then the SCC AS shall release the source legs as follows: // 2) the session is dialog in an early dialog phase on the originating side send a SIP 480 (Temporary Unavailable) // response on the source access leg in accordance with 3GPP TS 24.229 [2]; - Test objective "Verify that " + Test objective "Verify that the SCC AS sends a SIP 480 after transfer of a session is successfully completed and the session is dialog in an early dialog phase on the originating side" + Reference "ETSI TS 124 237 [1], Clauses 9.3.6." @@ -777,20 +760,20 @@ Package TP_SCCAS { } - } // end TP_ICS_SCCAS_XXX_BYE_02 + } // end TP_ICS_SCCAS_XXX_YYY_02 Test Purpose { - TP Id TP_ICS_SCCAS_XXX_BYE_03 + TP Id TP_ICS_SCCAS_MED_RIN_03 // When the transfer of a session is successfully completed, then the SCC AS shall release the source legs as follows: // 3) the source access leg contains media components other than speech media component, the SCC AS should send // a SIP re-INVITE request to update the source access leg in accordance with 3GPP TS 24.229 [2] - Test objective "Verify that " + Test objective "Verify that SCC AS sends a reINVITE after transfer of a session is successfully completed and the source access leg contains media components other than speech media component" Reference "ETSI TS 124 237 [1], Clauses 9.3.6." @@ -799,35 +782,41 @@ Package TP_SCCAS { PICS Selection NONE // TODO -// Initial conditions with { -// the UE entity isRegisteredTo the IMS and -// the UE entity hasReceived200OkOnInitialRequestForDialogWith -// } -// -// Expected behaviour -// ensure that { -// when { -// the IUT entity receives an ACK containing -// From indicating value PX_UE_A_SIP_URI, -// To indicating value PX_UE_B_SIP_URI, -// CallId indicating value PX_UE_A_CALLID, -// Via indicating value PX_UE_A_VIA, -// Route indicating value PX_UE_A_SERVICE_ROUTE; -// from the IMS_S_CSCF entity -// } -// then { -// the IUT entity sends an BYE containing -// From indicating value PX_UE_A_SIP_URI, -// To indicating value PX_UE_B_SIP_URI, -// CallId indicating value PX_UE_A_CALLID, -// Via indicating value PX_UE_A_VIA, -// Route indicating value PX_UE_A_SERVICE_ROUTE; -// to the IMS_S_CSCF entity -// } -// } + Initial conditions with { + the UE entity isRegisteredTo the IMS + // TODO: + // transfer of a session is successfully completed + // and + // the source access leg contains media components other than speech media component + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an ACK + + // TODO: trigger for event unclear, transfer of a session is successfully completed + + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an INVITE containing // reINVITE + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + ContentType indicating value "application/sdp", + ContentLength, + MessageBody containing + SDP containing + Media indicating value "TODO: the source access leg contains media components other than speech media component";;; + to the IMS_S_CSCF entity + } + } - } // end TP_ICS_SCCAS_XXX_BYE_03 + } // end TP_ICS_SCCAS_MED_RIN_03 } // end Group "9.3.6 Removal of non-transferred audio media components and release of source access legs" -- GitLab From 5f48e98ebda42a344d97af7f39812e609e0e016d Mon Sep 17 00:00:00 2001 From: juvancic Date: Thu, 9 Jun 2022 10:05:17 +0200 Subject: [PATCH 031/202] updated tests --- .../sccas/TP_SCCAS_Chapter_7_3.tplan2 | 38 +++++++++++++++---- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_7_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_7_3.tplan2 index 9af27a6..ec37819 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_7_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_7_3.tplan2 @@ -51,15 +51,11 @@ Package TP_SCCAS_Chapter_7_3 { from the IMS_S_CSCF entity } then { - the IUT entity sends a r_183_SessionProgress containing + the IUT entity sends a INVITE containing From indicating value PX_IMS_S_CSCF_SIP_URI, To indicating value PX_UE_A_SIP_URI, CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - //... - FeatureCaps - //Contact containing - ; + Via indicating value PX_UE_A_VIA; to the IMS_S_CSCF entity } } @@ -74,7 +70,7 @@ Package TP_SCCAS_Chapter_7_3 { TP Id TP_ISC_SCCAS_ORI_INI_02 - Test objective "Verify that the SCCAS sends 2xx response to the SIP INVITE request towards the served user ." + Test objective "Verify that the SCCAS sends 1xx/2xx response to the SIP INVITE request towards the served user ." Reference "ETSI TS 124 237 [1], Clauses 7.3.2, 6A.4.3, 4.2.2" @@ -104,6 +100,34 @@ Package TP_SCCAS_Chapter_7_3 { from the IMS_S_CSCF entity } then { + the IUT entity sends a INVITE + to the IMS_S_CSCF entity and + + the IUT entity receives a r_183_SessionProgress + from the IMS_S_CSCF entity and + + the IUT entity sends a r_183_SessionProgress containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + //... + FeatureCaps containing //IETF RFC6809 + g3gppFeatureCapabilityIndicator, //see Annex C + g3gppMidcallFeatureCapabilityIndicator, //list - B + g3gppSrvccAlertingFeatureCapabilityIndicator, //list -C + g3gppPs2csSrvccOrigPreAlertingMediaIndicator, //list -D + //Contact containing + Accept containing + MIME indicating value "application/vnd.3gpp.state-and-event-info.xml" //subclause D.2.3 + RecvInfo containing + g3gppStateAndEventPackageName;; //according to RFC6086 + ;; + to the IMS_S_CSCF entity and + + the IUT entity receives a r_200_Ok + from the IMS_S_CSCF entity and + the IUT entity sends a r_200_Ok containing From indicating value PX_IMS_S_CSCF_SIP_URI, To indicating value PX_UE_A_SIP_URI, -- GitLab From 5de9f21e06ac0f4b6a524b317ae09eb7d73afdcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Thu, 9 Jun 2022 11:29:03 +0200 Subject: [PATCH 032/202] update section 9.3.5.2 --- .../sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 62 +++++++++++++++++-- 1 file changed, 58 insertions(+), 4 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index 8f9ea36..7c698f0 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -319,12 +319,66 @@ Package TP_SCCAS { // IETF RFC 4032 [89], as well as the strength-tag value "mandatory" for the local segment and the // strength-tag value either "optional" or as specified in RFC 3312 [88] and RFC 4032 [89] for the remote // segment. + + // this TP: only case A - TP Id TP_ICS_SCCAS_XXX_XXX_01 + TP Id TP_ICS_SCCAS_PCT_UPD_01 - Test objective "Verify that the SCC AS " + Test objective "Verify that the SCC AS sends a SIP UPDATE after receiving a SIP INVITE request due to PS to CS STN and if there are one or more dialogs in an early dialog phase and the remote leg is not a precondition enabled dialog" - } + Reference + "ETSI TS 124 237 [1], Clauses 9.3.5.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS + // TODO: + // here are one or more dialogs in an early dialog phase supporting a session with active speech media component such that: + // 1) all dialogs are early dialogs created by the same SIP INVITE request; + // 2) a SIP 180 (Ringing) response to SIP INVITE request was received in at least one of those early dialogs; + // 3) a g.3gpp.drvcc-alerting feature-capability indicator as described in annex C was included in a Feature-Caps + // header field by the SCC AS in the SIP 180 (Ringing) response; and + // 4) the Contact header field in the initial SIP INVITE request sent by the SC UE towards the SCC AS included the + // g.3gpp.drvcc-alerting media feature tag as described in annex C, + // and + // the remote leg is not a precondition enabled dialog + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an UPDATE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + // 1) set the Request-URI set to the URI contained in the Contact header field returned at the creation of the dialog + // with the remote UE; + Contact indicating value "set to the Contact header field provided by the served UE at the creation of the dialog",// 2) the Contact header field set to the Contact header field provided by the served UE at the creation of the dialog with the remote UE + ContentType indicating value "application/sdp", + MessageBody containing // 3) a new SDP offer, including: + SDP containing + Media indicating value "the media characteristics as received in the SIP INVITE request due to PS to CS STN (including any precondition mechanism specific SDP attributes)"; + ; + ; + to the IMS_S_CSCF entity + } + } + + } // end TP_ICS_SCCAS_PCT_UPD_01 @@ -631,7 +685,7 @@ Package TP_SCCAS { CallId indicating value PX_UE_A_CALLID, Via indicating value PX_UE_A_VIA, Route indicating value PX_UE_A_SERVICE_ROUTE, - Contact indicating value "", // the Contact header field set to the Contact header field provided by the served UE at the creation of the dialog with the remote UE; + Contact indicating value "set to the Contact header field provided by the served UE at the creation of the dialog with the remote UE", // the Contact header field set to the Contact header field provided by the served UE at the creation of the dialog with the remote UE; MessageBody containing // anew SDP offer, including the media characteristics as received in the SIP 1xx response with the SDP answer, by following the rules of 3GPP TS 24.229 [2]. SDP containing TODO indicating value "TODO"; -- GitLab From 3db2e58b535f3479ab7282f4c65d35584a516e87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Thu, 9 Jun 2022 14:07:38 +0200 Subject: [PATCH 033/202] update section 9.3.5.2 --- .../sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 45 ++++++++++++++++++- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index 7c698f0..77f0be2 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -401,9 +401,50 @@ Package TP_SCCAS { TP Id TP_ICS - Test objective "" - + Test objective "Verify that the SCC AS sends SIP provisional response to the SIP INVITE request due to PS to CS STN" + Reference + "ETSI TS 124 237 [1], Clauses 9.3.5.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS + // a SIP INVITE request due to PS to CS STN tooks place + // and + // SCC AS has send a SIP UPDATE request according to TP TP_ICS_SCCAS_PCT_UPD_01 + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an r_200_Ok containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_1xx_Any containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + PEarlyMedia indicating value "the last received P-Early-Media header field", + ContentType indicating value "application/sdp", + MessageBody containing // 3) a new SDP offer, including: + SDP containing + Media indicating value "SDP answer based on the SDP answer received from the remote UE"; + ; + ; + to the IMS_S_CSCF entity + } + } } -- GitLab From 66cd4dae03777da8f3c364512590b6b013643d3e Mon Sep 17 00:00:00 2001 From: juvancic Date: Thu, 9 Jun 2022 14:37:03 +0200 Subject: [PATCH 034/202] updated tests --- test_purposes/sccas/TP_SCCAS_Chapter_7_3.tplan2 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_7_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_7_3.tplan2 index ec37819..1b8605b 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_7_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_7_3.tplan2 @@ -21,7 +21,7 @@ Package TP_SCCAS_Chapter_7_3 { import all from Sip_Common; Test Purpose { - TP Id TP_ISC_SCCAS_ORI_INI_01 + TP Id TP_ISC_SCCAS_ORI_INV_01 Test objective "Verify that the SCCAS first receives SIP INVITE request from UE/SCSCF" @@ -59,7 +59,7 @@ Package TP_SCCAS_Chapter_7_3 { to the IMS_S_CSCF entity } } - } // End of TP_ISC_SCCAS_ORI_INI_01 + } // End of TP_ISC_SCCAS_ORI_INV_01 } // end Group "7.3.1 Distinction of requests sent to the SCC AS" @@ -68,7 +68,7 @@ Package TP_SCCAS_Chapter_7_3 { import all from Sip_Common; Test Purpose { - TP Id TP_ISC_SCCAS_ORI_INI_02 + TP Id TP_ISC_SCCAS_ORI_INV_02 Test objective "Verify that the SCCAS sends 1xx/2xx response to the SIP INVITE request towards the served user ." @@ -150,7 +150,7 @@ Package TP_SCCAS_Chapter_7_3 { to the IMS_S_CSCF entity } } - } // End of TP_ISC_SCCAS_ORI_INI_02 + } // End of TP_ISC_SCCAS_ORI_INV_02 } // end Group "7.3.2 Call origination procedures at the SCC AS" Group "7.3.3 Subscription related procedures in the SCC AS"{ -- GitLab From fef191ef666b1ba384aef0cb6b7866a6ac33eac7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Thu, 9 Jun 2022 16:46:46 +0200 Subject: [PATCH 035/202] update section 9.3.5.3 --- .../sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 56 ++++++++++++++++++- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index 77f0be2..4549a99 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -415,6 +415,8 @@ Package TP_SCCAS { // a SIP INVITE request due to PS to CS STN tooks place // and // SCC AS has send a SIP UPDATE request according to TP TP_ICS_SCCAS_PCT_UPD_01 + // and + // the remote leg is not a precondition enabled dialog } Expected behaviour @@ -453,6 +455,7 @@ Package TP_SCCAS { Group "9.3.5.3 SCC AS procedures for PS to CS dual radio, access transfer of a originating session in the pre-alerting phase" { + import all from Sip_Common; Test Purpose { @@ -483,9 +486,58 @@ Package TP_SCCAS { // strength-tag value either "optional" or as specified in RFC 3312 [88] and RFC 4032 [89] for the remote // segment. - TP Id TP_ICS + TP Id TP_ICS_SCCAS_PCT_INV_01 - Test objective "" + Test objective "Verify that the SCC AS send a SIP UPDATE request towards the remote UE after receiving a SIP INVITE request due to PS to CS STN in early dialog phase supporting a session with active speech media component such" + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.5.3" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS + // one dialog is early dialog + // and + // a SIP 180 (Ringing) response to the SIP INVITE request has not been received yet in any of the existing dialogs + // and + // the SCC AS included a g.3gpp.ps2cs-drvcc-orig-pre-alerting feature-capability indicator as in a Feature-Caps header field of SIP 18x responses + // and + // the Contact header field in the initial SIP INVITE request sent by the SC UE towards the SCC AS included a g.3gpp.ps2cs-drvcc-orig-pre-alerting media feature tag as + // and + // the remote leg is not a precondition enabled dialog + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an UPDATE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + PEarlyMedia indicating value "the last received P-Early-Media header field", + ContentType indicating value "application/sdp", + MessageBody containing // 3) a new SDP offer, including: + SDP containing + Media indicating value "the media characteristics as received in the SIP INVITE request due to PS to CS STN but excluding any precondition mechanism specific SDP attributes"; + ; + ; + to the IMS_S_CSCF entity + } + } } -- GitLab From f54e607dca276b3cc9039d8232e2d6033d1577ba Mon Sep 17 00:00:00 2001 From: juvancic Date: Thu, 9 Jun 2022 20:33:48 +0200 Subject: [PATCH 036/202] updated tests --- .../sccas/TP_SCCAS_Chapter_8_3.tplan2 | 46 +++++++++++++++++++ .../sccas/TP_SCCAS_Chapter_9_3.tplan2 | 41 +++++++++++++++++ 2 files changed, 87 insertions(+) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_8_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_8_3.tplan2 index 55eb121..13f08ca 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_8_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_8_3.tplan2 @@ -19,11 +19,57 @@ Package TP_SCCAS_Chapter_8_3 { Group "8.3.1 Distinction of requests sent to the SCC AS"{ import all from Sip_Common; + + Test Purpose { + + TP Id TP_ISC_SCCAS_TER_INV_01 + + Test objective "Verify that the SCCAS last receives SIP INVITE request from UE/SCSCF" + + Reference + "ETSI TS 124 237 [1], Clauses 7.3.1, 7.3.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS_A and + the UE_TERM entity isRegisteredTo the IMS_A + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a INVITE containing + RequestUri indicating value PX_UE_TERM_SIP_URI, + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_TERM_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value "sccas as topmost entry", + PServedUser indicating value PX_UE_TERM_SIP_URI, + Contact, + FeatureCaps, + SipMessageBody; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a INVITE containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_TERM_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA; + to the IMS_S_CSCF entity + } + } + } // End of TP_ISC_SCCAS_TER_INV_01 } // end Group "8.3.1 Distinction of requests sent to the SCC AS" Group "8.3.2 Call termination procedures in the SCC AS"{ import all from Sip_Common; + } // end Group "8.3.2 Call termination procedures in the SCC AS" }// End of Package TP_SCCAS_Chapter_8_3 diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3.tplan2 index 60b67fc..5fcca93 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3.tplan2 @@ -19,6 +19,47 @@ Package TP_SCCAS_Chapter_9_3 { Group "9.3.1 Distinction of requests sent to the SCC AS"{ import all from Sip_Common; + + Test Purpose { + + TP Id TP_ISC_SCCAS_PCT_INV_01 + + Test objective "Verify that the SCCAS distinguish SIP INVITE with STI for subscribed UE due to PS to CS" + + Reference + "ETSI TS 124 237 [1], Clause 9.3.1" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE //SCCAS_PS2CS_SRVCC + + Initial conditions with { + the UE entity isRegisteredTo the IMS_A and + the UE entity hasEstablishedDialog the SCCAS_UE_TERM + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a INVITE containing + RequestUri indicating value PX_STI_URI, + From indicating value PX__SIP_URI, + To indicating value PX__SIP_URI, + CallId indicating value PX_STI_CALLID, + Via indicating value PX_STI_VIA, + Contact, + TargetDialog containing "dialog info from PS session", + Require indicating value "tdialog", + PAssertedIdentity indicating value PX_UE_CMSISDN + SipMessageBody;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a ReINVITE + to the IMS_S_CSCF entity + } + } + } // End of TP_ISC_SCCAS_PCT_INV_01 } // end Group "9.3.1 Distinction of requests sent to the SCC AS" Group "9.3.2 SCC AS procedures for PS to CS access transfer"{ -- GitLab From a67fd756176fe2137ea50e3618129cb7fc059c37 Mon Sep 17 00:00:00 2001 From: Rennoch Date: Fri, 10 Jun 2022 09:03:57 +0200 Subject: [PATCH 037/202] new TPs for 10.3 and 11.3 --- .../sccas/TP_SCCAS_Chapter_10_3.tplan2 | 393 ++++++++++++++++++ .../sccas/TP_SCCAS_Chapter_11_3.tplan2 | 164 ++++++++ 2 files changed, 557 insertions(+) create mode 100644 test_purposes/sccas/TP_SCCAS_Chapter_10_3.tplan2 create mode 100644 test_purposes/sccas/TP_SCCAS_Chapter_11_3.tplan2 diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_10_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_10_3.tplan2 new file mode 100644 index 0000000..51f37a8 --- /dev/null +++ b/test_purposes/sccas/TP_SCCAS_Chapter_10_3.tplan2 @@ -0,0 +1,393 @@ +/* +Copyright (c) ETSI 2019-2022. + +This software is subject to copyrights owned by ETSI. Non-exclusive permission +is hereby granted, free of charge, to copy, reproduce and amend this file +under the following conditions: It is provided "as is", without warranty of any +kind, expressed or implied. + +ETSI shall never be liable for any claim, damages, or other liability arising +from its use or inability of use.This permission does not apply to any documentation +associated with this file for which ETSI keeps all rights reserved. The present +copyright notice shall be included in all copies of whole or part of this +file and shall not imply any sub-license right. +*/ + +/* interface at SCCAS */ +Package TP_SCCAS { + + + + Group "10.3.2 PS to PS access transfer procedures at the SCC AS" + { + import all from Sip_Common; + + Test Purpose { + + TP Id TP_ISC_SCCAS_PPT_RIN_01 + + Test objective "Verify that the SCC AS successfully processes an INVITE on a previously esthablished dialog if the SIP INVITE request contains a Replaces header field." + + Reference + "ETSI TS 124 237 [1], Clauses 10.3.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS and // include g.3gpp.pstops-sti + the UE entity hasEstablishedDialog + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Replaces indicating value PX_UE_A_SIP_URI; // indicating access transfer procedure + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an INVITE containing // reINVITE + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Contact indicating value PX_UE_A_SIP_URI; // added by SCC AS + to the IMS_S_CSCF entity + } + } + + } // end TP TP_ISC_SCCAS_PPT_RIN_01 + + Test Purpose { + + TP Id TP_ISC_SCCAS_PPT_RIN_02 + + Test objective "Verify that the SCC AS successfully processes an UPDATE on an existing early dialog if the SIP INVITE request contains a Replaces header field." + + Reference + "ETSI TS 124 237 [1], Clauses 10.3.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS and // include g.3gpp.pstops-sti + the UE entity hasInitiatedDialogWith + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Replaces indicating value PX_UE_A_SIP_URI; // indicating access transfer procedure + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an UPDATE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Contact indicating value PX_UE_A_SIP_URI; // added by SCC AS + to the IMS_S_CSCF entity + } + } + + } // end TP TP_ISC_SCCAS_PPT_RIN_02 + + Test Purpose { + + TP Id TP_ISC_SCCAS_PPT_RIN_03 + + Test objective "Verify that the SCC AS processes an INVITE if it is unable to associate the SIP INVITE request with a confirmed dialog or on a previously esthablished dialog." + + Reference + "ETSI TS 124 237 [1], Clauses 10.3.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS and // include g.3gpp.pstops-sti + the UE entity not hasEstablishedDialog and + the UE entity not hasInitiatedDialogWith + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Replaces indicating value PX_UE_A_SIP_URI; // indicating access transfer procedure + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_480 containing // reject (Temporarily Unavailable) + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID; + to the IMS_S_CSCF entity + } + } + + } // end TP TP_ISC_SCCAS_PPT_RIN_03 + + Test Purpose { + + TP Id TP_ISC_SCCAS_PPT_RIN_04 + + Test objective "Verify that the SCC AS processes an INVITE if number of media lines in the Target Access Leg is less than the number of media lines in the Source Access Leg." + + Reference + "ETSI TS 124 237 [1], Clauses 10.3.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS and // include g.3gpp.pstops-sti + the UE entity hasEstablishedDialog + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + TargetDialog indicating value PX_UE_MediaLines; // indicating number of media lines in the Target Access Leg is less than the number of media lines in the Source Access Leg + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_480 containing // reject (Temporarily Unavailable) + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID; + to the IMS_S_CSCF entity + } + } + + } // end TP TP_ISC_SCCAS_PPT_RIN_04 + + } // end Group "10.3.2 PS to PS access transfer procedures at the SCC AS" + + + Group "10.3.4 S-CSCF releasing the source access leg during PS to PS access transfer" + { + + import all from Sip_Common; + + Test Purpose { + + TP Id TP_ISC_SCCAS_PPT_BYE_01 + + Test objective "Verify that the SCC AS successfully processes an BYE on a previously esthablished dialog, if does not receive within this time interval an initial SIP INVITE request." + + Reference + "ETSI TS 124 237 [1], Clauses 10.3.4" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS and // include g.3gpp.pstops-sti + the UE entity hasEstablishedDialog + } + + Expected behaviour + ensure that { + when { + (.) at time point t1: the IUT entity receives an BYE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + Reason indicating value 480; // status code 480 (Temporarily Unavailable) + from the IMS_S_CSCF entity + } + then { + (!) "after time interval of 8 seconds" after t1: the IUT entity sends an r_200 containing // 200 OK (BYE) to UE_B + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA; + and + the IUT entity sends an BYE containing // BYE to UE_A + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA; + to the IMS_S_CSCF entity + } + } + + } // end TP TP_ISC_SCCAS_PPT_BYE_01 + + } // end Group 10.3.4 S-CSCF releasing the source access leg during PS to PS access transfer + + + Group "10.3.5 P-CSCF releasing the source access leg during PS to PS access transfer" + { + // NOTE: see section 12.3.3.2 + + } // end Group 10.3.5 P-CSCF releasing the source access leg during PS to PS access transfer + + + Group "10.3.6 P-CSCF releasing early dialog during PS to PS access transfer" + { + + import all from Sip_Common; + + Test Purpose { + + TP Id TP_ISC_SCCAS_PPT_BYE_02 + + Test objective "Verify that the SCC AS successfully processes an CANDEL on a early dialog." + + Reference + "ETSI TS 124 237 [1], Clauses 10.3.6" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS and // include g.3gpp.pstops-sti + the UE entity hasInitiatedDialogWith + } + + Expected behaviour + ensure that { + when { + (.) at time point t1: the IUT entity receives an BYE containing // status code 503 + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE; + from the IMS_S_CSCF entity + } + then { + (!) "after time interval of 8 seconds" after t1: the IUT entity sends an r_200 containing // 200 OK (BYE) + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA; + and + the IUT entity sends an CANCEL containing // CANCEL to UE_B + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA; + to the IMS_S_CSCF entity + } + } + + } // end TP TP_ISC_SCCAS_PPT_BYE_02 + + Test Purpose { + + TP Id TP_ISC_SCCAS_PPT_CAN_01 + + Test objective "Verify that the SCC AS successfully processes an CANDEL on a early dialog." + + Reference + "ETSI TS 124 237 [1], Clauses 10.3.6" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS and // include g.3gpp.pstops-sti + the UE entity hasInitiatedDialogWith + } + + Expected behaviour + ensure that { + when { + (.) at time point t1: the IUT entity receives an CANCEL containing // status code 503 + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE; + from the IMS_S_CSCF entity + } + then { + (!) "after time interval of 8 seconds" after t1: the IUT entity sends an r_200 containing // 200 OK (CANCEL) + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA; + to the IMS_S_CSCF entity + } + } + + } // end TP TP_ISC_SCCAS_PPT_CAN_01 + + Test Purpose { + + TP Id TP_ISC_SCCAS_PPT_RES_01 + + Test objective "Verify that the SCC AS successfully processes an SIP 503 (Service Unavailable) response on a early dialog." + + Reference + "ETSI TS 124 237 [1], Clauses 10.3.6" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS and // include g.3gpp.pstops-sti + the UE entity hasInitiatedDialogWith + } + + Expected behaviour + ensure that { + when { + (.) at time point t1: the IUT entity receives an r_503 containing // from UE_B + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE; + from the IMS_S_CSCF entity + } + then { + (!) "after time interval of 8 seconds" after t1: the IUT entity sends an r_503 containing // to UE_A + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA; + to the IMS_S_CSCF entity + } + } + + } // end TP TP_ISC_SCCAS_PPT_RES_01 + + } // end Group 10.3.6 P-CSCF releasing early dialog during PS to PS access transfer + +} // End of Package TP_SCCAS + diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_11_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_11_3.tplan2 new file mode 100644 index 0000000..aa078c5 --- /dev/null +++ b/test_purposes/sccas/TP_SCCAS_Chapter_11_3.tplan2 @@ -0,0 +1,164 @@ +/* +Copyright (c) ETSI 2019-2022. + +This software is subject to copyrights owned by ETSI. Non-exclusive permission +is hereby granted, free of charge, to copy, reproduce and amend this file +under the following conditions: It is provided "as is", without warranty of any +kind, expressed or implied. + +ETSI shall never be liable for any claim, damages, or other liability arising +from its use or inability of use.This permission does not apply to any documentation +associated with this file for which ETSI keeps all rights reserved. The present +copyright notice shall be included in all copies of whole or part of this +file and shall not imply any sub-license right. +*/ + +/* interface at SCCAS */ +Package TP_SCCAS { + + + + Group "11.3.2 SCC AS procedures for PS to PS+CS access transfer" + { + import all from Sip_Common; + + Test Purpose { + + TP Id TP_ISC_SCCAS_CON_RIN_01 + + Test objective "Verify that the SCC AS successfully processes an INVITE that includes an active speech media component using CS bearer." + + Reference + "ETSI TS 124 237 [1], Clauses 11.3.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS and + the UE entity hasEstablishedDialog + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing // request active speech media component using CS bearer + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Replaces indicating value PX_UE_A_SIP_URI; // indicating access transfer procedure + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an INVITE containing // reINVITE + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Contact indicating value PX_UE_A_SIP_URI; // added by SCC AS + to the IMS_S_CSCF entity + } + } + + } // end TP TP_ISC_SCCAS_CON_RIN_01 + + + } // end Group "11.3.2 SCC AS procedures for PS to PS+CS access transfer" + + + Group "11.3.3 SCC AS procedures for PS+CS to PS access transfer" + { + + import all from Sip_Common; + + Test Purpose { + + TP Id TP_ISC_SCCAS_CON_RIN_02 + + Test objective "Verify that the SCC AS successfully processes an INVITE due to two STIs on the Target Access Leg." + + Reference + "ETSI TS 124 237 [1], Clauses 11.3.3" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS and + the UE entity hasEstablishedDialog + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing // request CS -> PS + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA; + //Replaces indicating value PX_UE_A_SIP_URI; // indicating access transfer procedure + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an INVITE containing // reINVITE + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA; + //Contact indicating value PX_UE_A_SIP_URI; // added by SCC AS + to the IMS_S_CSCF entity + } + } + + } // end TP TP_ISC_SCCAS_CON_RIN_02 + + Test Purpose { + + TP Id TP_ISC_SCCAS_CON_RIN_03 + + Test objective "Verify that the SCC AS rejects an INVITE due missing ability to associate it to an ongoing or different SIP dialog." + + Reference + "ETSI TS 124 237 [1], Clauses 11.3.3" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS and + the UE entity hasEstablishedDialog + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing // request CS -> PS + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA; + //Replaces indicating value PX_UE_A_SIP_URI; // indicating access transfer procedure + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_480 containing // reINVITE + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA; + //Contact indicating value PX_UE_A_SIP_URI; // added by SCC AS + to the IMS_S_CSCF entity + } + } + + } // end TP TP_ISC_SCCAS_CON_RIN_03 + + } // end Group 11.3.3 SCC AS procedures for PS+CS to PS access transfer + + +} // End of Package TP_SCCAS + -- GitLab From 74286aa68a8c8bcaf153d2e7289f5acdf0347b07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Fri, 10 Jun 2022 10:51:28 +0200 Subject: [PATCH 038/202] minor corrections --- .../sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 45 +++++++------------ 1 file changed, 15 insertions(+), 30 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index 4549a99..be5c44e 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -225,7 +225,7 @@ Package TP_SCCAS { // Test puposes 4: Upon receiving the SIP ACK request originated from the SC UE, the SCC AS shall: Test Purpose { - TP Id TP_SCCAS_CS_to_PS_access_transfer_04 + TP Id TP_ICS_SCCAS_XXX_YYY_04 //Upon receiving the SIP ACK request originated from the SC UE, the SCC AS shall: //1) release the source access leg as specified in subclause 9.3.6.; and ... @@ -271,7 +271,7 @@ Package TP_SCCAS { } - } // end TP TP_SCCAS_CS_to_PS_access_transfer_04 + } // end TP TP_ICS_SCCAS_XXX_YYY_04 } // end Group "9.3.3 SCC AS procedures for CS to PS access transfer" @@ -399,7 +399,7 @@ Package TP_SCCAS { // This TP: only case A - TP Id TP_ICS + TP Id TP_ICS_XXX_YYY_02 Test objective "Verify that the SCC AS sends SIP provisional response to the SIP INVITE request due to PS to CS STN" @@ -539,7 +539,7 @@ Package TP_SCCAS { } } - } + } // end TP_ICS_SCCAS_PCT_INV_01 } // end Group "9.3.5.3 SCC AS procedures for PS to CS dual radio, access transfer of a originating session in the prealerting phase" @@ -600,12 +600,8 @@ Package TP_SCCAS { ensure that { when { // TODO: Trigger unclear for this refer - the IUT entity receives an ACK containing -// From indicating value PX_UE_A_SIP_URI, -// To indicating value PX_UE_B_SIP_URI, -// CallId indicating value PX_UE_A_CALLID, -// Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE; + the IUT entity receives an ACK + from the IMS_S_CSCF entity } then { @@ -663,7 +659,7 @@ Package TP_SCCAS { // - if the SIP 180 (Ringing) response does not contain the g.3gpp.dynamic-stn media feature tag as described // in annex C in the Contact header field, the static STN. - TP Id TP_ICS_SCCAS_PCT_REF_01 + TP Id TP_ICS_SCCAS_PCT_REF_02 Test objective "Verify that the SCC AS terminates the call over CS after receiving a SIP 488" @@ -719,7 +715,7 @@ Package TP_SCCAS { } } - } // end + } // end TP_ICS_SCCAS_PCT_REF_02 Test Purpose { @@ -781,7 +777,7 @@ Package TP_SCCAS { Contact indicating value "set to the Contact header field provided by the served UE at the creation of the dialog with the remote UE", // the Contact header field set to the Contact header field provided by the served UE at the creation of the dialog with the remote UE; MessageBody containing // anew SDP offer, including the media characteristics as received in the SIP 1xx response with the SDP answer, by following the rules of 3GPP TS 24.229 [2]. SDP containing - TODO indicating value "TODO"; + Media indicating value "the same media characteristics as received in the SIP 1xx response with the SDP answer"; ; ; to the IMS_S_CSCF entity @@ -789,7 +785,7 @@ Package TP_SCCAS { } - } + } // end TP_ICS_SCCAS_PCT_XXX_02 } // end Group "9.3.5.5 SCC AS procedures for PS to CS dual radio access transfer of a terminating session in the alerting phase" @@ -811,7 +807,7 @@ Package TP_SCCAS { // an early dialog phase on the terminating side, send a SIP BYE request on the source access leg in accordance // with 3GPP TS 24.229 [2]; - Test objective "Verify that the SCC AS sends a SIP BYE after transfer of a session is successfully completed and the source access leg is an ongoing session containing only an active or inactive media component" + Test objective "Verify that the SCC AS sends a SIP BYE after transfer of a session is successfully completed and the source access leg is an ongoing session containing only an active or inactive media component" Reference @@ -824,21 +820,15 @@ Package TP_SCCAS { Initial conditions with { the UE entity isRegisteredTo the IMS // TODO -// // source access leg is an ongoing session containing only an active or inactive media component + // source access leg is an ongoing session containing only an active or inactive media component } -// + Expected behaviour ensure that { when { the IUT entity receives an ACK // TODO: trigger for event unclear, transfer of a session is successfully completed - -// From indicating value PX_UE_A_SIP_URI, -// To indicating value PX_UE_B_SIP_URI, -// CallId indicating value PX_UE_A_CALLID, -// Via indicating value PX_UE_A_VIA, -// Route indicating value PX_UE_A_SERVICE_ROUTE; from the IMS_S_CSCF entity } then { @@ -888,11 +878,6 @@ Package TP_SCCAS { // TODO: trigger for event unclear, transfer of a session is successfully completed -// From indicating value PX_UE_A_SIP_URI, -// To indicating value PX_UE_B_SIP_URI, -// CallId indicating value PX_UE_A_CALLID, -// Via indicating value PX_UE_A_VIA, -// Route indicating value PX_UE_A_SERVICE_ROUTE; from the IMS_S_CSCF entity } then { @@ -914,7 +899,7 @@ Package TP_SCCAS { Test Purpose { - TP Id TP_ICS_SCCAS_MED_RIN_03 + TP Id TP_ICS_SCCAS_MED_RIN_01 // When the transfer of a session is successfully completed, then the SCC AS shall release the source legs as follows: // 3) the source access leg contains media components other than speech media component, the SCC AS should send @@ -963,7 +948,7 @@ Package TP_SCCAS { } - } // end TP_ICS_SCCAS_MED_RIN_03 + } // end TP_ICS_SCCAS_MED_RIN_01 } // end Group "9.3.6 Removal of non-transferred audio media components and release of source access legs" -- GitLab From 70a5dbc67836622a8b8aec446ac8b3e4e788e25d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Mon, 13 Jun 2022 16:02:14 +0200 Subject: [PATCH 039/202] update TPs --- test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index be5c44e..2cda5ea 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -561,7 +561,7 @@ Package TP_SCCAS { Config Id CFG_SCCAS_01 - PICS Selection NONE // TODO + PICS Selection NONE // TODO Initial conditions with { the UE entity isRegisteredTo the IMS -- GitLab From a58d08fad8681f209c653fb647b3822149065446 Mon Sep 17 00:00:00 2001 From: juvancic Date: Fri, 17 Jun 2022 14:51:34 +0200 Subject: [PATCH 040/202] aded tests --- .../sccas/TP_SCCAS_Chapter_12_3.tplan2 | 86 ++++++++++++++++++- 1 file changed, 84 insertions(+), 2 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 index 748a3f9..62ed3d9 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 @@ -23,12 +23,94 @@ Package TP_SCCAS_Chapter_12_3 { Group "12.3.1 SCC AS procedures for PS to CS access transfer, PS to CS SRVCC"{ - import all from Sip_Common; + import all from Sip_Common; + Test Purpose { + + TP Id TP_ISC_SCCAS_SRA_INV_01 + + Test objective "Verify that the SCCAS distinguish SIP INVITE with STN-SR for nonexisting dialog" + + Reference + "ETSI TS 124 237 [1], Clause 12.3.1" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE //SCCAS_PS2CS_SRVCC + + Initial conditions with { + the UE entity isRegisteredTo the IMS_A and + the UE entity hasEstablishedDialog the SCCAS_UE_TERM + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a INVITE containing + RequestUri indicating value PX_STI_URI, + From indicating value PX__SIP_URI, + To indicating value PX__SIP_URI, + CallId indicating value PX_STI_CALLID, + Via indicating value PX_STI_VIA, + Contact, + TargetDialog containing "dialog info from nonexisting PS session", + Require indicating value "tdialog", + PAssertedIdentity indicating value PX_UE_CMSISDN + SipMessageBody;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_480_TemporaryUnavailable + to the IMS_S_CSCF entity + } + } + } // End of TP_ISC_SCCAS_SRA_INV_01 } // end Group "12.3.1 SCC AS procedures for PS to CS access transfer, PS to CS SRVCC" Group "12.3.2 SCC AS procedures for PS to CS access transfer with MSC server assisted mid-call feature, PS to CS SRVCC"{ - import all from Sip_Common; + import all from Sip_Common; + Test Purpose { + + TP Id TP_ISC_SCCAS_SRA_INV_02 + + Test objective "Verify that the SCCAS distinguish Transfer of first session" + + Reference + "ETSI TS 124 237 [1], Clauses 12.3.2.1,12.3.2.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE //SCCAS_PS2CS_SRVCC + + Initial conditions with { + the UE entity isRegisteredTo the IMS_A and + the UE entity hasEstablishedDialog the SCCAS_UE_TERM + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a INVITE containing + RequestUri indicating value PX_STI_URI, + From indicating value PX__SIP_URI, + To indicating value PX__SIP_URI, + CallId indicating value PX_STI_CALLID, + Via indicating value PX_STI_VIA, + Contact containing + g3gppMidcallMediaFeature Tag + TargetDialog containing "dialog info existing PS session", + Require indicating value "tdialog", + PAssertedIdentity indicating value PX_UE_CMSISDN + SipMessageBody;;; + from the IMS_S_CSCF entity and + the IUT entity receives a r_200_Ok + } + then { + the IUT entity sends a r_200_Ok + to the IMS_S_CSCF entity + } + } + } // End of TP_ISC_SCCAS_SRA_INV_02 } // end Group "12.3.2 SCC AS procedures for PS to CS access transfer with MSC server assisted mid-call feature, PS to CS SRVCC" Group "12.3.3 SCC AS procedures for PS to CS SRVCC, abnormal case"{ -- GitLab From d2eddaf345b71c9ee399afae2fa6991a4afadd51 Mon Sep 17 00:00:00 2001 From: juvancic Date: Tue, 21 Jun 2022 09:59:31 +0200 Subject: [PATCH 041/202] aded tests --- .../sccas/TP_SCCAS_Chapter_12_3.tplan2 | 106 +++++++++++++++++- 1 file changed, 101 insertions(+), 5 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 index 62ed3d9..39ae202 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 @@ -64,6 +64,51 @@ Package TP_SCCAS_Chapter_12_3 { } } } // End of TP_ISC_SCCAS_SRA_INV_01 + + Test Purpose { + + TP Id TP_ISC_SCCAS_SRA_INI_02 + + Test objective "Verify that the SCCAS distinguish SIP INVITE with STN-SR and informs remote UE" + + Reference + "ETSI TS 124 237 [1], Clause 12.3.1" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE //SCCAS_PS2CS_SRVCC + + Initial conditions with { + the UE entity isRegisteredTo the IMS_A and + the UE entity hasEstablishedDialog the SCCAS_UE_TERM + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a INVITE containing + RequestUri indicating value PX_STNSR_URI, + From indicating value PX__SIP_URI, + To indicating value PX__SIP_URI, + CallId indicating value PX_STI_CALLID, + Via indicating value PX_STNSR_VIA, + Contact, + TargetDialog containing "dialog info from PS session", + Require indicating value "tdialog", + PAssertedIdentity indicating value PX_UE_CMSISDN + SipMessageBody;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a ReINVITE //for remote UE leg + to the IMS_S_CSCF entity and + + the IUT entity receives a r_200_Ok and + + the IUT entity sends a r_200_Ok + } + } + } // End of TP_ISC_SCCAS_SRA_INV_02 } // end Group "12.3.1 SCC AS procedures for PS to CS access transfer, PS to CS SRVCC" Group "12.3.2 SCC AS procedures for PS to CS access transfer with MSC server assisted mid-call feature, PS to CS SRVCC"{ @@ -71,7 +116,7 @@ Package TP_SCCAS_Chapter_12_3 { import all from Sip_Common; Test Purpose { - TP Id TP_ISC_SCCAS_SRA_INV_02 + TP Id TP_ISC_SCCAS_SRA_INV_03 Test objective "Verify that the SCCAS distinguish Transfer of first session" @@ -110,19 +155,70 @@ Package TP_SCCAS_Chapter_12_3 { to the IMS_S_CSCF entity } } - } // End of TP_ISC_SCCAS_SRA_INV_02 + } // End of TP_ISC_SCCAS_SRA_INV_03 + } // end Group "12.3.2 SCC AS procedures for PS to CS access transfer with MSC server assisted mid-call feature, PS to CS SRVCC" Group "12.3.3 SCC AS procedures for PS to CS SRVCC, abnormal case"{ import all from Sip_Common; - Group "12.3.2.1 General"{ + Group "12.3.3.1 PS to CS SRVCC cancelled by MME/SGSN or failure by UE to transition to CS domain for ongoing session"{ + + import all from Sip_Common; + Test Purpose { + + TP Id TP_ISC_SCCAS_SRA_INI_04 + + Test objective "Verify that the SCCAS distinguish SIP INVITE with STN-SR and not release source leg" + + Reference + "ETSI TS 124 237 [1], Clause 12.3.1" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE //SCCAS_PS2CS_SRVCC + + Initial conditions with { + the UE entity isRegisteredTo the IMS_A and + the UE entity hasEstablishedDialog the SCCAS_UE_TERM + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a ReINVITE containing + RequestUri indicating value PX_STNSR_URI, + From indicating value PX__SIP_URI, + To indicating value PX__SIP_URI, + CallId indicating value PX_STI_CALLID, + Via indicating value PX_STNSR_VIA, + Contact, + TargetDialog containing "dialog info from PS session", + Require indicating value "tdialog", + PAssertedIdentity indicating value PX_UE_CMSISDN + SipMessageBody, + Reason containing Cause indicating value "487"; + ;; + from the IMS_S_CSCF entity + } + then { + the IUT entity not sends a BYE //for source UE leg + to the IMS_S_CSCF entity + + } + } + } // End of TP_ISC_SCCAS_SRA_INV_04 + } + Group "12.3.3.2 P-CSCF releasing the source access leg during PS to CS SRVCC"{ + + } + Group "12.3.3.3 P-CSCF releasing the source access leg when call is in alerting phase"{ } - Group "12.3.2.2 Transfer of the first session"{ + Group "12.3.3.4 PS to CS SRVCC cancelled by MME/SGSN or release of the target access leg for an ongoing session"{ } - Group "12.3.2.3 Transfer of an additional session"{ + Group "12.3.3.5 PS to CS SRVCC cancelled by MME/SGSN or release of the target access leg for a session in an early dialog phase"{ } -- GitLab From c33c278eb0a48d9fe9efafb2f3d0d116015993ed Mon Sep 17 00:00:00 2001 From: juvancic Date: Tue, 21 Jun 2022 10:02:32 +0200 Subject: [PATCH 042/202] aded tests --- .../sccas/TP_SCCAS_Chapter_12_3.tplan2 | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 index 39ae202..86eb036 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 @@ -211,6 +211,46 @@ Package TP_SCCAS_Chapter_12_3 { } Group "12.3.3.2 P-CSCF releasing the source access leg during PS to CS SRVCC"{ + import all from Sip_Common; + Test Purpose { + + TP Id TP_ISC_SCCAS_SRA_BYE_01 + + Test objective "Verify that the SCCAS distinguish SIP INVITE with STN-SR and not release source leg" + + Reference + "ETSI TS 124 237 [1], Clause 12.3.1" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE //SCCAS_PS2CS_SRVCC + + Initial conditions with { + the UE entity isRegisteredTo the IMS_A and + the UE entity hasEstablishedDialog the SCCAS_UE_TERM + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a BYE containing + From indicating value PX_IMS_S_CSCF_SIP_URI, + To indicating value PX_UE_A_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Reason containing Cause indicating value "503"; + ; + from the IMS_S_CSCF entity + } + then { + the IUT entity receives a INVITE and + the IUT entity not sends a BYE //for¸ source UE leg + to the IMS_S_CSCF entity + + } + } + } // End of TP_ISC_SCCAS_SRA_INV_04 + } Group "12.3.3.3 P-CSCF releasing the source access leg when call is in alerting phase"{ -- GitLab From d0babb240804775f61372c3876c1d6b8491c3026 Mon Sep 17 00:00:00 2001 From: garciay Date: Thu, 23 Jun 2022 07:27:41 +0200 Subject: [PATCH 043/202] TP review based on ETSI TS 124 292 --- test_purposes/Sip_Common.tplan2 | 19 ++++++++++++++++++- test_purposes/ims/TP_SCSCF.tplan2 | 8 ++++---- test_purposes/sccas/TP_SCCAS.tplan2 | 2 +- .../sccas/TP_SCCAS_Chapter_10_3.tplan2 | 10 +++++----- .../sccas/TP_SCCAS_Chapter_12_3.tplan2 | 2 +- .../sccas/TP_SCCAS_Chapter_6A_4.tplan2 | 2 +- .../sccas/TP_SCCAS_Chapter_6_3.tplan2 | 2 +- .../sccas/TP_SCCAS_Chapter_7_3.tplan2 | 19 +++++++++++++++---- .../sccas/TP_SCCAS_Chapter_8_3.tplan2 | 4 ++-- .../sccas/TP_SCCAS_Chapter_9_3.tplan2 | 2 +- .../sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 2 +- 11 files changed, 50 insertions(+), 22 deletions(-) diff --git a/test_purposes/Sip_Common.tplan2 b/test_purposes/Sip_Common.tplan2 index b9b38f6..68bd735 100644 --- a/test_purposes/Sip_Common.tplan2 +++ b/test_purposes/Sip_Common.tplan2 @@ -28,6 +28,7 @@ Package Sip_Common { entities: - SCCAS - IMS_S_CSCF + - IMS_I_CSCF - UE - UE_TERM - IUT @@ -38,8 +39,8 @@ Package Sip_Common { - receives - sends - forwards + - isRequestedToPlaceACall // Initial conditions - - isTriggeredToStart - isNotRegisteredTo - hasAchievedFirstRegistration - isRegisteredTo @@ -72,6 +73,8 @@ Package Sip_Common { - hasResponded486INVITE - hasAchievedInitialINVITE - hasAchievedINVITE + - isAttachingToNetwork + - hasDoneSubscription ; } // End of Domain section @@ -101,6 +104,14 @@ Package Sip_Common { // PX_S_CSCF_A_SIP_URI, // PX_P_CSCF_A_SIP_URI, // PX_IBCF_B_SIP_URI, + +// PX_MSC_ORIG_ICID, // ETSI TS 124 292 V16.0.0 Clause 6.3.2 Initial registration 11) +// PX_MSC_ORIG_IOI, // ETSI TS 124 292 V16.0.0 Clause 6.3.2 Initial registration 11) +// PX_MSC_VISITED_NTW // ETSI TS 124 292 V16.0.0 Clause 6.3.2 Initial registration 12) +// PX_MSC_PANI_ACCESSTYPE // ETSI TS 124 292 V16.0.0 Clause 6.3.2 Initial registration 13) +// PX_MSC_PANI_ACCESSCLASS // ETSI TS 124 292 V16.0.0 Clause 6.3.2 Initial registration 13) +// PX_MSC_FORWARD_URI // ETSI TS 124 292 V16.0.0 Clause 6.3.2 Initial registration 14) + // PX_TO_BE_DEFINED // ; // } // End of Const section @@ -193,6 +204,12 @@ Package Sip_Common { SUT component IUT of type SipComponent connection between SCCAS.g and IUT.g connection between UE.g and IUT.g; + Test Configuration CFG_MSC_01 + containing + Tester component MSC of type SipComponent + SUT component IUT of type SipComponent + connection between IMS_I_CSCF.g and IUT.g; + } //Type MSG (optional TCP of type CONTENT); diff --git a/test_purposes/ims/TP_SCSCF.tplan2 b/test_purposes/ims/TP_SCSCF.tplan2 index 21e2b50..adc7535 100644 --- a/test_purposes/ims/TP_SCSCF.tplan2 +++ b/test_purposes/ims/TP_SCSCF.tplan2 @@ -1,5 +1,5 @@ /* -Copyright (c) ETSI 2019-2020. +Copyright (c) ETSI 2019-2022. This software is subject to copyrights owned by ETSI. Non-exclusive permission is hereby granted, free of charge, to copy, reproduce and amend this file @@ -60,7 +60,7 @@ Package TP_SCSCF { to the IMS_S_CSCF entity } } - } // End of TP_MW_PCSCF_REGISTER_01 + } // End of TP_SCCAS_REGISTER_01 Test Purpose { @@ -111,7 +111,7 @@ Package TP_SCSCF { } } - } // End of TP_MW_PCSCF_INVITE_01 + } // End of TP_SCCAS_INVITE_01 -} // End of Package TP_MW_PS +} // End of Package TP_SCSCF diff --git a/test_purposes/sccas/TP_SCCAS.tplan2 b/test_purposes/sccas/TP_SCCAS.tplan2 index 2d5d6c2..e13d132 100644 --- a/test_purposes/sccas/TP_SCCAS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS.tplan2 @@ -1,5 +1,5 @@ /* -Copyright (c) ETSI 2019-2020. +Copyright (c) ETSI 2019-2022. This software is subject to copyrights owned by ETSI. Non-exclusive permission is hereby granted, free of charge, to copy, reproduce and amend this file diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_10_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_10_3.tplan2 index 51f37a8..ccf157c 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_10_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_10_3.tplan2 @@ -26,7 +26,7 @@ Package TP_SCCAS { TP Id TP_ISC_SCCAS_PPT_RIN_01 - Test objective "Verify that the SCC AS successfully processes an INVITE on a previously esthablished dialog if the SIP INVITE request contains a Replaces header field." + Test objective "Verify that the SCC AS successfully processes an INVITE on a previously established dialog if the SIP INVITE request contains a Replaces header field." Reference "ETSI TS 124 237 [1], Clauses 10.3.2" @@ -110,7 +110,7 @@ Package TP_SCCAS { TP Id TP_ISC_SCCAS_PPT_RIN_03 - Test objective "Verify that the SCC AS processes an INVITE if it is unable to associate the SIP INVITE request with a confirmed dialog or on a previously esthablished dialog." + Test objective "Verify that the SCC AS processes an INVITE if it is unable to associate the SIP INVITE request with a confirmed dialog or on a previously established dialog." Reference "ETSI TS 124 237 [1], Clauses 10.3.2" @@ -199,7 +199,7 @@ Package TP_SCCAS { TP Id TP_ISC_SCCAS_PPT_BYE_01 - Test objective "Verify that the SCC AS successfully processes an BYE on a previously esthablished dialog, if does not receive within this time interval an initial SIP INVITE request." + Test objective "Verify that the SCC AS successfully processes an BYE on a previously established dialog, if does not receive within this time interval an initial SIP INVITE request." Reference "ETSI TS 124 237 [1], Clauses 10.3.4" @@ -262,7 +262,7 @@ Package TP_SCCAS { TP Id TP_ISC_SCCAS_PPT_BYE_02 - Test objective "Verify that the SCC AS successfully processes an CANDEL on a early dialog." + Test objective "Verify that the SCC AS successfully processes an CANCEL on a early dialog." Reference "ETSI TS 124 237 [1], Clauses 10.3.6" @@ -309,7 +309,7 @@ Package TP_SCCAS { TP Id TP_ISC_SCCAS_PPT_CAN_01 - Test objective "Verify that the SCC AS successfully processes an CANDEL on a early dialog." + Test objective "Verify that the SCC AS successfully processes an CANCEL on a early dialog." Reference "ETSI TS 124 237 [1], Clauses 10.3.6" diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 index 86eb036..0385982 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 @@ -1,5 +1,5 @@ /* -Copyright (c) ETSI 2019-2020. +Copyright (c) ETSI 2019-2022. This software is subject to copyrights owned by ETSI. Non-exclusive permission is hereby granted, free of charge, to copy, reproduce and amend this file diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_6A_4.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_6A_4.tplan2 index 54b1aea..89a24a3 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_6A_4.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_6A_4.tplan2 @@ -1,5 +1,5 @@ /* -Copyright (c) ETSI 2019-2020. +Copyright (c) ETSI 2019-2022. This software is subject to copyrights owned by ETSI. Non-exclusive permission is hereby granted, free of charge, to copy, reproduce and amend this file diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 index 302ddea..71ecf3a 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_6_3.tplan2 @@ -1,5 +1,5 @@ /* -Copyright (c) ETSI 2019-2020. +Copyright (c) ETSI 2019-2022. This software is subject to copyrights owned by ETSI. Non-exclusive permission is hereby granted, free of charge, to copy, reproduce and amend this file diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_7_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_7_3.tplan2 index 1b8605b..6b59534 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_7_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_7_3.tplan2 @@ -1,5 +1,5 @@ /* -Copyright (c) ETSI 2019-2020. +Copyright (c) ETSI 2019-2022. This software is subject to copyrights owned by ETSI. Non-exclusive permission is hereby granted, free of charge, to copy, reproduce and amend this file @@ -26,7 +26,8 @@ Package TP_SCCAS_Chapter_7_3 { Test objective "Verify that the SCCAS first receives SIP INVITE request from UE/SCSCF" Reference - "ETSI TS 124 237 [1], Clauses 7.3.1, 7.3.2" + "ETSI TS 124 237 [1], Clauses 7.3.1, 7.3.2", + "ETSI TS 124 292 [1], Clauses 7.4.2" Config Id CFG_SCCAS_01 @@ -45,7 +46,11 @@ Package TP_SCCAS_Chapter_7_3 { CallId indicating value PX_UE_A_CALLID, Via indicating value PX_UE_A_VIA, Route indicating value "sccas as topmost entry", - Contact, + RecordRoute indicating value PX_UE_A_ACCEPT, + PAssertedIdentity indicating value PX_UE_A_PAS, + Accept indicating value PX_UE_A_ACCEPT, + Contact indicating value PX_UE_A_CONTACT, + AcceptContact indicating value PX_UE_A_ACCEPT_CONTACT, FeatureCaps, SipMessageBody; from the IMS_S_CSCF entity @@ -73,7 +78,8 @@ Package TP_SCCAS_Chapter_7_3 { Test objective "Verify that the SCCAS sends 1xx/2xx response to the SIP INVITE request towards the served user ." Reference - "ETSI TS 124 237 [1], Clauses 7.3.2, 6A.4.3, 4.2.2" + "ETSI TS 124 237 [1], Clauses 7.3.2, 6A.4.3, 4.2.2", + "ETSI TS 124 292 [1], Clauses 7.4.2" Config Id CFG_SCCAS_01 @@ -91,6 +97,11 @@ Package TP_SCCAS_Chapter_7_3 { To indicating value PX_UE_A_SIP_URI, CallId indicating value PX_UE_A_CALLID, Via indicating value PX_UE_A_VIA, + Route indicating value "sccas as topmost entry", + RecordRoute indicating value PX_UE_A_ACCEPT, + PAssertedIdentity indicating value PX_UE_A_PAS, + Accept indicating value PX_UE_A_ACCEPT, + AcceptContact indicating value PX_UE_A_ACCEPT_CONTACT, Contact containing g3gppMidcallMediaFeature Tag, //list -B g3gppSrvccAlertingFeature tag, //list -C diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_8_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_8_3.tplan2 index 13f08ca..38d2227 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_8_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_8_3.tplan2 @@ -1,5 +1,5 @@ /* -Copyright (c) ETSI 2019-2020. +Copyright (c) ETSI 2019-2022. This software is subject to copyrights owned by ETSI. Non-exclusive permission is hereby granted, free of charge, to copy, reproduce and amend this file @@ -27,7 +27,7 @@ Package TP_SCCAS_Chapter_8_3 { Test objective "Verify that the SCCAS last receives SIP INVITE request from UE/SCSCF" Reference - "ETSI TS 124 237 [1], Clauses 7.3.1, 7.3.2" + "ETSI TS 124 237 [1], Clauses 8.3.1, 8.3.2" Config Id CFG_SCCAS_01 diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3.tplan2 index 5fcca93..a94e515 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3.tplan2 @@ -1,5 +1,5 @@ /* -Copyright (c) ETSI 2019-2020. +Copyright (c) ETSI 2019-2022. This software is subject to copyrights owned by ETSI. Non-exclusive permission is hereby granted, free of charge, to copy, reproduce and amend this file diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index 2cda5ea..9e82321 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -1,5 +1,5 @@ /* -Copyright (c) ETSI 2019-2020. +Copyright (c) ETSI 2019-2022. This software is subject to copyrights owned by ETSI. Non-exclusive permission is hereby granted, free of charge, to copy, reproduce and amend this file -- GitLab From cc733eeec905e35660499493effffa6025452932 Mon Sep 17 00:00:00 2001 From: juvancic Date: Thu, 23 Jun 2022 09:41:50 +0200 Subject: [PATCH 044/202] aded tests --- .../sccas/TP_SCCAS_Chapter_12_3.tplan2 | 97 ++++++++++++++++++- 1 file changed, 94 insertions(+), 3 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 index 86eb036..065f9c6 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 @@ -161,7 +161,7 @@ Package TP_SCCAS_Chapter_12_3 { Group "12.3.3 SCC AS procedures for PS to CS SRVCC, abnormal case"{ - import all from Sip_Common; + //import all from Sip_Common; Group "12.3.3.1 PS to CS SRVCC cancelled by MME/SGSN or failure by UE to transition to CS domain for ongoing session"{ import all from Sip_Common; @@ -219,7 +219,7 @@ Package TP_SCCAS_Chapter_12_3 { Test objective "Verify that the SCCAS distinguish SIP INVITE with STN-SR and not release source leg" Reference - "ETSI TS 124 237 [1], Clause 12.3.1" + "ETSI TS 124 237 [1], Clause 12.3.3.2" Config Id CFG_SCCAS_01 @@ -249,7 +249,7 @@ Package TP_SCCAS_Chapter_12_3 { } } - } // End of TP_ISC_SCCAS_SRA_INV_04 + } // End of TP_ISC_SCCAS_SRA_BYE_01 } Group "12.3.3.3 P-CSCF releasing the source access leg when call is in alerting phase"{ @@ -257,7 +257,98 @@ Package TP_SCCAS_Chapter_12_3 { } Group "12.3.3.4 PS to CS SRVCC cancelled by MME/SGSN or release of the target access leg for an ongoing session"{ + import all from Sip_Common; + Test Purpose { + + TP Id TP_ISC_SCCAS_SRA_BYE_02 + + Test objective "Verify that the SCCAS distinguish SIP BYE with STN-SR and release source leg after OperatiorSpecificTimer timeout" + + Reference + "ETSI TS 124 237 [1], Clause 12.3.3.4" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE //SCCAS_PS2CS_SRVCC + + Initial conditions with { + the UE entity isRegisteredTo the IMS_A and + the UE entity hasEstablishedDialog the SCCAS_UE_TERM + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a BYE containing + RequestUri indicating value PX_STNSR_URI, + From indicating value PX__SIP_URI, + To indicating value PX__SIP_URI, + CallId indicating value PX_STI_CALLID, + Via indicating value PX_STNSR_VIA, + Contact, + TargetDialog containing "dialog info from PS session", + Require indicating value "tdialog", + PAssertedIdentity indicating value PX_UE_CMSISDN + SipMessageBody, + Reason containing Cause indicating value "Reason Q.850 31"; + ;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_200_Ok_BYE and + the IUT entity on timerOperatorSpecificTimeout sends a BYE //for source UE leg + to the IMS_S_CSCF entity + } + } + } // End of TP_ISC_SCCAS_SRA_BYE_02 + + Test Purpose { + + TP Id TP_ISC_SCCAS_SRA_BYE_03 + + Test objective "Verify that the SCCAS distinguish SIP BYE with STN-SR and release source leg on BYE Cause diferent from Cause Q850 31" + + Reference + "ETSI TS 124 237 [1], Clause 12.3.3.4" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE //SCCAS_PS2CS_SRVCC + + Initial conditions with { + the UE entity isRegisteredTo the IMS_A and + the UE entity hasEstablishedDialog the SCCAS_UE_TERM + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a BYE containing + RequestUri indicating value PX_STNSR_URI, + From indicating value PX__SIP_URI, + To indicating value PX__SIP_URI, + CallId indicating value PX_STI_CALLID, + Via indicating value PX_STNSR_VIA, + Contact, + TargetDialog containing "dialog info from PS session", + Require indicating value "tdialog", + PAssertedIdentity indicating value PX_UE_CMSISDN + SipMessageBody, + Reason containing Cause not indicating value "Reason Q.850 31"; + ;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_200_Ok_BYE and + the IUT entity sends a BYE //for source UE leg + to the IMS_S_CSCF entity + + } + } + } // End of TP_ISC_SCCAS_SRA_BYE_03 + } + Group "12.3.3.5 PS to CS SRVCC cancelled by MME/SGSN or release of the target access leg for a session in an early dialog phase"{ } -- GitLab From 60956e4c6dcd97330b06a94df224ed7ea103bbc6 Mon Sep 17 00:00:00 2001 From: juvancic Date: Thu, 23 Jun 2022 09:42:09 +0200 Subject: [PATCH 045/202] aded tests --- test_purposes/Sip_Common.tplan2 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test_purposes/Sip_Common.tplan2 b/test_purposes/Sip_Common.tplan2 index b9b38f6..597993e 100644 --- a/test_purposes/Sip_Common.tplan2 +++ b/test_purposes/Sip_Common.tplan2 @@ -72,9 +72,11 @@ Package Sip_Common { - hasResponded486INVITE - hasAchievedInitialINVITE - hasAchievedINVITE + - timerOperatorSpecificTimeout //NOTE: 8 seconds is an appropriate value for the operator policy. ; } // End of Domain section + // Const { // PX_Stored_Domain_Uri, // PX_Affected_IMPU, @@ -106,6 +108,7 @@ Package Sip_Common { // } // End of Const section Data { + type SipMessage; type EnumMessage; -- GitLab From d3fa0ab54e43f59daee441fd2c6c61b7843d5e77 Mon Sep 17 00:00:00 2001 From: juvancic Date: Mon, 27 Jun 2022 15:42:03 +0200 Subject: [PATCH 046/202] updated TPs --- .../sccas/TP_SCCAS_Chapter_12_3.tplan2 | 61 ++++++++++++++++++- 1 file changed, 58 insertions(+), 3 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 index 7f15fa4..e6d8090 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 @@ -273,7 +273,8 @@ Package TP_SCCAS_Chapter_12_3 { Initial conditions with { the UE entity isRegisteredTo the IMS_A and - the UE entity hasEstablishedDialog the SCCAS_UE_TERM + the UE entity hasEstablishedDialog the SCCAS_UE_TERM and + the UE entity hasEstablishedPS2CSDialog } Expected behaviour @@ -306,7 +307,7 @@ Package TP_SCCAS_Chapter_12_3 { TP Id TP_ISC_SCCAS_SRA_BYE_03 - Test objective "Verify that the SCCAS distinguish SIP BYE with STN-SR and release source leg on BYE Cause diferent from Cause Q850 31" + Test objective "Verify that the SCCAS distinguish SIP BYE with STN-SR and release source leg on BYE Cause different from Cause Q850 31" Reference "ETSI TS 124 237 [1], Clause 12.3.3.4" @@ -317,7 +318,8 @@ Package TP_SCCAS_Chapter_12_3 { Initial conditions with { the UE entity isRegisteredTo the IMS_A and - the UE entity hasEstablishedDialog the SCCAS_UE_TERM + the UE entity hasEstablishedDialog the SCCAS_UE_TERM and + the UE entity hasEstablishedPS2CSDialog } Expected behaviour @@ -351,6 +353,59 @@ Package TP_SCCAS_Chapter_12_3 { Group "12.3.3.5 PS to CS SRVCC cancelled by MME/SGSN or release of the target access leg for a session in an early dialog phase"{ + Group "12.3.3.5.1 SCC AS serving an originating user"{ + + import all from Sip_Common; + + Test Purpose { + + TP Id TP_ISC_SCCAS_SRA_CNL_01 + + Test objective "Verify that the SCCAS distinguish SIP CANCEL and release session transfered leg after OperatiorSpecificTimer timeout" + + Reference + "ETSI TS 124 237 [1], Clause 12.3.3.5.1" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE //SCCAS_PS2CS_SRVCC + + Initial conditions with { + the UE entity isRegisteredTo the IMS_A and + the UE entity hasInitiatedDialogWith the SCCAS_UE_TERM and + the UE entity hasInitiatedPS2CSinEarlydialog + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a CANCEL containing + RequestUri indicating value PX_STNSR_URI, + From indicating value PX__SIP_URI, + To indicating value PX__SIP_URI, + CallId indicating value PX_STI_CALLID, + Via indicating value PX_STNSR_VIA, + Contact, + TargetDialog containing "dialog info from PS session", + Require indicating value "tdialog", + PAssertedIdentity indicating value PX_UE_CMSISDN + SipMessageBody, + Reason containing Cause not indicating value "Reason Q.850 31"; + ;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_200_Ok_CANCEL and + the IUT entity on timerOperatorSpecificTimeout sends a CANCEL + to the IMS_S_CSCF entity + } + } + } // End of TP_ISC_SCCAS_SRA_CNL_01 + } + Group "12.3.3.5.2 SCC AS serving a terminating user"{ + + } + } } // end Group "12.3.3 SCC AS procedures for PS to CS SRVCC, abnormal case" -- GitLab From 7241a7a24563d1d52ba1a966c9f34bf58f32e1a3 Mon Sep 17 00:00:00 2001 From: juvancic Date: Mon, 27 Jun 2022 15:42:21 +0200 Subject: [PATCH 047/202] updated TPs --- test_purposes/Sip_Common.tplan2 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test_purposes/Sip_Common.tplan2 b/test_purposes/Sip_Common.tplan2 index 2410dc5..0e476f1 100644 --- a/test_purposes/Sip_Common.tplan2 +++ b/test_purposes/Sip_Common.tplan2 @@ -53,7 +53,9 @@ Package Sip_Common { - registeredIdentityTelURI - registeredIdentitySipURI - hasInitiatedDialogWith + - hasInitiatedPS2CSinEarlydialog - hasEstablishedDialog + - hasEstablishedPS2CSDialog - isConfiguredWithENUMentryForTelURI_E164NumberOf - hasReceivedInitialRequestForDialog - hasReceived200OkOnInitialRequestForDialogWith -- GitLab From 43aec44a21bfa08e7e536bc162b7f292b91b7a43 Mon Sep 17 00:00:00 2001 From: pintar Date: Thu, 25 Aug 2022 09:41:55 +0200 Subject: [PATCH 048/202] New AtsSccas modules added --- ttcn/AtsSccas/AtsSccas_PICS.ttcn | 21 ++ ttcn/AtsSccas/AtsSccas_PIXITS.ttcn | 21 ++ ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn | 62 ++++ ttcn/AtsSccas/AtsSccas_Templates.ttcn | 32 ++ ttcn/AtsSccas/AtsSccas_TestConfiguration.ttcn | 306 ++++++++++++++++++ ttcn/AtsSccas/AtsSccas_TestExecutions.ttcn | 10 + ttcn/AtsSccas/AtsSccas_TestSystem.ttcn | 59 ++++ ttcn/AtsSccas/AtsSccas_Testcases.ttcn | 50 +++ 8 files changed, 561 insertions(+) create mode 100644 ttcn/AtsSccas/AtsSccas_PICS.ttcn create mode 100644 ttcn/AtsSccas/AtsSccas_PIXITS.ttcn create mode 100644 ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn create mode 100644 ttcn/AtsSccas/AtsSccas_Templates.ttcn create mode 100644 ttcn/AtsSccas/AtsSccas_TestConfiguration.ttcn create mode 100644 ttcn/AtsSccas/AtsSccas_TestExecutions.ttcn create mode 100644 ttcn/AtsSccas/AtsSccas_TestSystem.ttcn create mode 100644 ttcn/AtsSccas/AtsSccas_Testcases.ttcn diff --git a/ttcn/AtsSccas/AtsSccas_PICS.ttcn b/ttcn/AtsSccas/AtsSccas_PICS.ttcn new file mode 100644 index 0000000..327a929 --- /dev/null +++ b/ttcn/AtsSccas/AtsSccas_PICS.ttcn @@ -0,0 +1,21 @@ +/* + *@author TTF T016 + *@version $Id$ + *@desc This module provides the PICS used for the SCCAS_IMS tests. +*/ + +module AtsSccas_PICS +{ +modulepar { + +/* **************************************************************************************************** +PICS used for test case selection +*************************************************************************************************** */ + + /** @desc boolean PICS ref: A-3/5 + True, if SUT/SCSCF requires ... + */ + boolean PC_SCCAS_TODO := false; + +} +} // end module AtsSccas_PICS diff --git a/ttcn/AtsSccas/AtsSccas_PIXITS.ttcn b/ttcn/AtsSccas/AtsSccas_PIXITS.ttcn new file mode 100644 index 0000000..2fe4084 --- /dev/null +++ b/ttcn/AtsSccas/AtsSccas_PIXITS.ttcn @@ -0,0 +1,21 @@ +/* + * @author TTF T016 + * @version $Id$ + * @desc This module provides the PIXIT used for the SIP-IMS tests. + */ + +module AtsSccas_PIXITS +{ + + +// SUT specific implementation variants + +modulepar { + + /** @desc boolean for SUT working mode due to + */ + boolean PX_SCCAS__ := true; + +} + +} // end module AtsSccas_PIXITS diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn new file mode 100644 index 0000000..e966274 --- /dev/null +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn @@ -0,0 +1,62 @@ +/* + * @author TTF T016 + * @version $Id$ + * @desc This module provides the TCfunctions used by the test component + * for SCCAS tests. + */ +module AtsSccas_TCFunctions { + // LibCommon + import from LibCommon_Sync all; + import from LibCommon_VerdictControl all; + import from LibCommon_DataStrings all; + // LibSip + import from LibSip_SIPTypesAndValues all; + import from LibSip_SDPTypes all; + import from LibSip_Templates all; + import from LibSip_Steps all; + import from LibSip_Interface all; + import from LibSip_PIXITS all; + // LibIms + import from LibIms_Templates all; + import from LibIms_Steps all; + import from LibIms_SIPTypesAndValues all; + import from LibIms_Interface all; + + // AtsIms + // import from AtsIms_TestSystem all; + import from AtsSccas_PICS all; + import from AtsSccas_PIXITS all; + + + group Group_6_3 { + group TP_6_3_1_General { + + /* + * @desc This is the test case function for TC_ISC_SCCAS_RSC_REG_01 + * @param p_cSeq_s + */ + function f_TC_ISC_SCCAS_RSC_REG_01(in CSeq p_cSeq_s) + runs on ImsComponent { + + var template 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)); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync + + // deregistration + + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // end function f_TC_ISC_SCCAS_RSC_REG_01 + + }//group TP_6_3_1_General + + }//Group_6_3 +} // end module AtsSccas_TCFunctions \ No newline at end of file diff --git a/ttcn/AtsSccas/AtsSccas_Templates.ttcn b/ttcn/AtsSccas/AtsSccas_Templates.ttcn new file mode 100644 index 0000000..6ef8091 --- /dev/null +++ b/ttcn/AtsSccas/AtsSccas_Templates.ttcn @@ -0,0 +1,32 @@ +/* + * @author TTF T016 + * @version $Id: AtsIms_Templates.ttcn + * @desc This module provides the templates used by the SCCAS + */ + +module AtsSccas_Templates +{ + + //LibSip + import from LibSip_SIPTypesAndValues all; + import from LibSip_Templates all; + + group HeaderTemplates + { + + + }//end group HeaderTemplates + + group MessageTemplates { + group modified_templates { + group request_sent { + + + }//end group request_sent + + group request_receive { + }//end group request_receive + }//end group modified_templates + }//end group MessageTemplates + +} // end module AtsSccas_Templates \ No newline at end of file diff --git a/ttcn/AtsSccas/AtsSccas_TestConfiguration.ttcn b/ttcn/AtsSccas/AtsSccas_TestConfiguration.ttcn new file mode 100644 index 0000000..515b54b --- /dev/null +++ b/ttcn/AtsSccas/AtsSccas_TestConfiguration.ttcn @@ -0,0 +1,306 @@ +/* + * @author TTF T016 + * @version $Id$ + * @desc This module provides test component configurations for SCCAS tests. + */ + +module AtsSccas_TestConfiguration +{ + //LibCommon + import from LibCommon_Sync all ; + import from LibCommon_VerdictControl all; + //LibSip + import from LibSip_Interface all; + import from LibSip_SIPTypesAndValues all; + import from LibSip_PIXITS all; + //LibIms + import from LibIms_SIPTypesAndValues all; + import from LibIms_Interface all; + //AtsIms + import from AtsSccas_TestSystem all; + import from AtsSccas_PIXITS all; + +group auxSipFunction { + + /* + ** @desc f_IncCSeq returns an input parameter incremented by 1000 + ** reason is to run the next testcase with a higher CSeq value + */ + function f_IncCSeq(inout CSeq loc_CSeq) + runs on ServerSyncComp + { loc_CSeq.seqNumber := loc_CSeq.seqNumber + 1000; + return + }; + // end f_IncCSeq + +}//end group auxSipFunction + + group cfUp { + + + /** + * + * @desc Creates test configuration of CF_1Isc + * @param p_imsComponent_ims - ims component + */ + function f_cf_1IscUp(out ImsComponent p_imsComponent_ueims) + runs on ServerSyncComp + { + //Variables + var FncRetCode v_ret := e_success; + + //Create + p_imsComponent_ueims := ImsComponent.create("UEIMS") ; + + //Connect + connect(p_imsComponent_ueims:syncPort, self:syncPort) ; + + //Map + map(p_imsComponent_ueims:SIPP, system:UEIMS);// Init test Configuration + + f_setVerdict(v_ret); + }//end f_cf_1IscUp + + /** + * + * @desc Creates test configuration of CF_1Isc1AtcfUp + * @param p_imsComponent_ueims - ueims component + * @param p_imsComponent_atcf - atcf component + */ + function f_cf_1Isc1AtcfUp(out ImsComponent p_imsComponent_ueims, + out ImsComponent p_imsComponent_atcf) + runs on ServerSyncComp + { + //Variables + var FncRetCode v_ret := e_success; + + //Create + p_imsComponent_ueims := ImsComponent.create("UEIMS") ; + p_imsComponent_atcf := ImsComponent.create("ATCF") ; + + //Connect + connect(p_imsComponent_ueims:syncPort, self:syncPort) ; + connect(p_imsComponent_atcf:syncPort, self:syncPort) ; + //Map + map(p_imsComponent_ueims:SIPP, system:UEIMS);// Init test Configuration + map(p_imsComponent_atcf:SIPP, system:ATCF);// Init test Configuration + + f_setVerdict(v_ret); + }//end f_cf_1Isc1AtcfUp + + /** + * + * @desc Creates test configuration of CF_1Isc1MscfUp + * @param p_imsComponent_ueims - ueims component + * @param p_imsComponent_msc - msc component + */ + function f_cf_1Isc1MscUp(out ImsComponent p_imsComponent_ueims, + out ImsComponent p_imsComponent_msc) + runs on ServerSyncComp + { + //Variables + var FncRetCode v_ret := e_success; + + //Create + p_imsComponent_ueims := ImsComponent.create("UEIMS") ; + p_imsComponent_msc := ImsComponent.create("MSC") ; + + //Connect + connect(p_imsComponent_ueims:syncPort, self:syncPort) ; + connect(p_imsComponent_msc:syncPort, self:syncPort) ; + //Map + map(p_imsComponent_ueims:SIPP, system:UEIMS);// Init test Configuration + map(p_imsComponent_msc:SIPP, system:MSC);// Init test Configuration + + f_setVerdict(v_ret); + }//end f_cf_1Isc1MscUp + + /** + * + * @desc Creates test configuration of CF_1Gm1SccasUp + * @param p_imsComponent_ue - ue component + * @param p_imsComponent_sccas - sccas component + */ + function f_cf_1Gm1SccasUp(out ImsComponent p_imsComponent_ue, + out ImsComponent p_imsComponent_sccas) + runs on ServerSyncComp + { + //Variables + var FncRetCode v_ret := e_success; + + //Create + p_imsComponent_ue := ImsComponent.create("UE") ; + p_imsComponent_sccas := ImsComponent.create("SCCAS") ; + + //Connect + connect(p_imsComponent_ue:syncPort, self:syncPort) ; + connect(p_imsComponent_sccas:syncPort, self:syncPort) ; + //Map + map(p_imsComponent_ue:SIPP, system:UE);// Init test Configuration + map(p_imsComponent_sccas:SIPP, system:SCCAS);// Init test Configuration + + f_setVerdict(v_ret); + }//end f_cf_1Gm1SccasfUp + + }//end group cfUp + + group cfDown { + + /** + * + * @desc Deletes configuration of CF_1Isc + * @param p_imsComponent_ueims ueims component + */ + function f_cf_1IscDown(in ImsComponent p_imsComponent_ueims) + runs on ServerSyncComp + { + f_serverWaitForAllClientsToStop(); + + //Disconnect + disconnect(p_imsComponent_ueims:syncPort, self:syncPort) ; + //Unmap + unmap(p_imsComponent_ueims:SIPP, system:UEIMS); + }//end f_cf_1IscDown + + /** + * + * @desc Deletes configuration of CF_1Isc1Atcf + * @param p_imsComponent_ueims - ueims component + * @param p_imsComponent_atcf - atcf component + */ + function f_cf_1Isc1AtcfDown(in ImsComponent p_imsComponent_ueims, + in ImsComponent p_imsComponent_atcf) + runs on ServerSyncComp + { + f_serverWaitForAllClientsToStop(); + + //Disconnect + disconnect(p_imsComponent_ueims:syncPort, self:syncPort); + disconnect(p_imsComponent_atcf:syncPort, self:syncPort); + //Unmap + unmap(p_imsComponent_ueims:SIPP, system:UEIMS); + unmap(p_imsComponent_atcf:SIPP, system:ATCF); + }//end f_cf_1Isc1AtcfDown + + /** + * + * @desc Deletes configuration of CF_1Isc1Msc + * @param p_imsComponent_ueims - ueims component + * @param p_imsComponent_msc - msc component + */ + function f_cf_1Isc1MscDown(in ImsComponent p_imsComponent_ueims, + in ImsComponent p_imsComponent_msc) + runs on ServerSyncComp + { + f_serverWaitForAllClientsToStop(); + + //Disconnect + disconnect(p_imsComponent_ueims:syncPort, self:syncPort); + disconnect(p_imsComponent_msc:syncPort, self:syncPort); + //Unmap + unmap(p_imsComponent_ueims:SIPP, system:UEIMS); + unmap(p_imsComponent_msc:SIPP, system:MSC); + }//end f_cf_1Isc1MscDown + + /** + * + * @desc Deletes configuration of CF_1Isc1Msc + * @param p_imsComponent_ueims - ueims component + * @param p_imsComponent_msc - msc component + */ + function f_cf_1Gm1SccasDown(in ImsComponent p_imsComponent_ue, + in ImsComponent p_imsComponent_sccas) + runs on ServerSyncComp + { + f_serverWaitForAllClientsToStop(); + + //Disconnect + disconnect(p_imsComponent_ue:syncPort, self:syncPort); + disconnect(p_imsComponent_sccas:syncPort, self:syncPort); + //Unmap + unmap(p_imsComponent_ue:SIPP, system:UE); + unmap(p_imsComponent_sccas:SIPP, system:SCCAS); + }//end f_cf_1Gm1SccasDown + + + } //end group cfDown + + group syncNoStop // Same functions as in LibCommon but without call of f_serverWaitForAllClientsToStop() + { + /* @desc Implements synchronization of client from server side + * on one or more synchronization points. + * If problem occurs, then server sends STOP to client. + * Waits for PX_TSYNC_TIME_LIMIT to let client + * finish executing behavior until this + * synchronization point. + * @remark The use of this function requires prior connection of + * the server sync ports! + * @param p_syncPointIds list of synchronization point name/ids + * @return execution status + */ + function f_serverSync1Client( in SyncPointList p_syncPointIds ) + runs on ServerSyncComp { + var integer i, v_noOfSyncIds := sizeof(p_syncPointIds); + for ( i := 0; i < v_noOfSyncIds; i := i+1 ) { + f_serverSyncClientsTimed(1,p_syncPointIds[i], PX_TSYNC_TIME_LIMIT); + } + } + + /* @desc Implements synchronization of 2 clients from server side + * on one or more synchronization points. + * If problem occurs, then server sends STOP to all clients. + * Waits for PX_TSYNC_TIME_LIMIT to let clients + * finish executing their behavior until this + * synchronization point. + * @remark The use of this function requires prior connection of + * the server sync ports! + * @param p_syncPointIds list of synchronization point name/ids + * @return execution status + */ + function f_serverSync2Clients( in SyncPointList p_syncPointIds ) + runs on ServerSyncComp { + var integer i, v_noOfSyncIds := sizeof(p_syncPointIds); + for ( i := 0; i < v_noOfSyncIds; i := i+1 ) { + f_serverSyncClientsTimed(2,p_syncPointIds[i], PX_TSYNC_TIME_LIMIT); + } + } + + /* @desc Implements synchronization of 3 clients from server side + * on one or more synchronization points. + * If problem occurs, then server sends STOP to all clients. + * Waits for PX_TSYNC_TIME_LIMIT to let clients + * finish executing their behavior until this + * synchronization point. + * @remark The use of this function requires prior connection of + * the server sync ports! + * @param p_syncPointIds list of synchronization point name/ids + * @return execution status + */ + function f_serverSync3Clients( in SyncPointList p_syncPointIds ) + runs on ServerSyncComp { + var integer i, v_noOfSyncIds := sizeof(p_syncPointIds); + for ( i := 0; i < v_noOfSyncIds; i := i+1 ) { + f_serverSyncClientsTimed(3,p_syncPointIds[i], PX_TSYNC_TIME_LIMIT); + } + } + + /* @desc Implements synchronization of 4 clients from server side + * on one or more synchronization points. + * If problem occurs, then server sends STOP to all clients. + * Waits for PX_TSYNC_TIME_LIMIT to let clients + * finish executing their behavior until this + * synchronization point. + * @remark The use of this function requires prior connection of + * the server sync ports! + * @param p_syncPointIds list of synchronization point name/ids + * @return execution status + */ + function f_serverSync4Clients( in SyncPointList p_syncPointIds ) + runs on ServerSyncComp { + var integer i, v_noOfSyncIds := sizeof(p_syncPointIds); + for ( i := 0; i < v_noOfSyncIds; i := i+1 ) { + f_serverSyncClientsTimed(4,p_syncPointIds[i], PX_TSYNC_TIME_LIMIT); + } + } + } //end group syncNoStop +} // end module AtsSccas_TestConfiguration diff --git a/ttcn/AtsSccas/AtsSccas_TestExecutions.ttcn b/ttcn/AtsSccas/AtsSccas_TestExecutions.ttcn new file mode 100644 index 0000000..6d24f1d --- /dev/null +++ b/ttcn/AtsSccas/AtsSccas_TestExecutions.ttcn @@ -0,0 +1,10 @@ +/* + * @author TTF T016 + * @version $Id$ + * @desc + */ + +module AtsSccas_TestExecutions +{ + +} // end module AtsSccas_TestExecutions diff --git a/ttcn/AtsSccas/AtsSccas_TestSystem.ttcn b/ttcn/AtsSccas/AtsSccas_TestSystem.ttcn new file mode 100644 index 0000000..6a0d31e --- /dev/null +++ b/ttcn/AtsSccas/AtsSccas_TestSystem.ttcn @@ -0,0 +1,59 @@ +/* + * @author TTF T016 + * @version $Id$ + * @desc This module provides test system types used by the test component + * for SCCAS tests. + */ + +module AtsSccas_TestSystem +{ + //LibCommon + import from LibCommon_Sync all; + import from LibCommon_AbstractData all; + import from LibCommon_BasicTypesAndValues all; + import from LibCommon_DataStrings all; + //LibSip + import from LibSip_SIPTypesAndValues all; + import from LibSip_SDPTypes all; + import from LibSip_Templates all; + import from LibSip_PIXITS all; + import from LibSip_Interface all; + //AtsIms + //import from AtsSccas_PIXITS all; + + group CMTypes { + type charstring CM_Message; + } // end group CMTypes + + group Signatures { + signature s_SIP_conversation (in charstring text, out boolean answer); + signature s_SIP_ringing (in charstring text, out boolean answer); + } // end group Signatures + + group SystemConfiguration { + group Ports { + + type port operatorPort_SIP procedure { + inout s_SIP_conversation; + inout s_SIP_ringing}; + + type port Coordination message { + inout CM_Message} with {extension "internal"}; + } // End Group Ports + + group TestComponents { + group TestSystemInterfaces { + /* + ** @desc The test system interface + */ + type component TestAdapter { + port SipPort UEIMS, SCCAS, ATCF, MSC, UE1; + port operatorPort_SIP opPortS; + } + } // end Group TestSystemInterfaces + + + } //end group TestComponents + } //end group SystemConfiguration + +} // end module AtsSccas_TestSystem diff --git a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn new file mode 100644 index 0000000..fdcdac2 --- /dev/null +++ b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn @@ -0,0 +1,50 @@ +/* + * @author TTF T016 + * @version $Id$ + * @desc This module provides the Test Cases for SCCAS. + */ + +module AtsSccas_Testcases +{ + //LibCommon + import from LibCommon_Sync all ; + import from LibCommon_VerdictControl all; + //LibSip + import from LibSip_Interface all; + import from LibSip_SIPTypesAndValues all; + //LibIms + import from LibIms_SIPTypesAndValues all; + import from LibIms_Interface all; + //AtsIms + import from AtsSccas_TestConfiguration all; + import from AtsSccas_TestSystem all; + import from AtsSccas_TCFunctions all; + import from AtsSccas_PICS all; + + group Group_6_3 { + group TP_6_3_1_General { + /* + * @desc TC_IMST2_GM_GEN_01 + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_RSC_REG_01(inout CSeq p_cSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var ImsComponent v_imsComponent_ueims; + f_cf_1IscUp(v_imsComponent_ueims); + + //Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_RSC_REG_01(p_cSeq_s)); + + // synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // end TC_ISC_SCCAS_RSC_REG_01 + }//group TP_6_3_1_General + + }//Group_6_3 + +} // end module AtsSccas_Testcases -- GitLab From 545050dbd725e99b2c94d79d5727597b5f7ac400 Mon Sep 17 00:00:00 2001 From: YannGarcia Date: Thu, 25 Aug 2022 14:09:17 +0200 Subject: [PATCH 049/202] Add required submodules --- .gitmodules | 12 ++++++++++++ ttcn/LibCommon | 1 + ttcn/LibIms | 1 + ttcn/LibSip | 1 + 4 files changed, 15 insertions(+) create mode 100644 .gitmodules create mode 160000 ttcn/LibCommon create mode 160000 ttcn/LibIms create mode 160000 ttcn/LibSip diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..0199d02 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,12 @@ +[submodule "ttcn/LibCommon"] + path = ttcn/LibCommon + url = https://forge.etsi.org/rep/LIBS/LibCommon.git + branch = STF574 +[submodule "ttcn/LibSip"] + path = ttcn/LibSip + url = https://forge.etsi.org/rep/LIBS/LibSip.git + branch = STF574 +[submodule "ttcn/LibIms"] + path = ttcn/LibIms + url = https://forge.etsi.org/rep/LIBS/LibIms.git + branch = STF574 diff --git a/ttcn/LibCommon b/ttcn/LibCommon new file mode 160000 index 0000000..22cc04e --- /dev/null +++ b/ttcn/LibCommon @@ -0,0 +1 @@ +Subproject commit 22cc04e32b0e37f70a7df30df12727a6546e2916 diff --git a/ttcn/LibIms b/ttcn/LibIms new file mode 160000 index 0000000..d640fce --- /dev/null +++ b/ttcn/LibIms @@ -0,0 +1 @@ +Subproject commit d640fce7b8bd65dbb77c93a98f80c53a73bb2a24 diff --git a/ttcn/LibSip b/ttcn/LibSip new file mode 160000 index 0000000..7d79616 --- /dev/null +++ b/ttcn/LibSip @@ -0,0 +1 @@ +Subproject commit 7d796164eb9b23fc5d6f06eb0be3be5a3743861d -- GitLab From 2941e595aee22f1a56fcadd13cc32b26c54c0603 Mon Sep 17 00:00:00 2001 From: YannGarcia Date: Mon, 29 Aug 2022 07:47:21 +0200 Subject: [PATCH 050/202] Add module AtsSccas_Testcases_TS124292.ttcn --- .../AtsSccas/AtsSccas_Testcases_TS124292.ttcn | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 ttcn/AtsSccas/AtsSccas_Testcases_TS124292.ttcn diff --git a/ttcn/AtsSccas/AtsSccas_Testcases_TS124292.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases_TS124292.ttcn new file mode 100644 index 0000000..796c144 --- /dev/null +++ b/ttcn/AtsSccas/AtsSccas_Testcases_TS124292.ttcn @@ -0,0 +1,49 @@ +/* + * @author TTF T016 + * @version $Id$ + * @desc This module provides the Test Cases for SCCAS ETSI TS 124 292 v1.6.0. + */ + +module AtsSccas_TS124292_Testcases +{ + //LibCommon + import from LibCommon_Sync all ; + import from LibCommon_VerdictControl all; + //LibSip + import from LibSip_Interface all; + import from LibSip_SIPTypesAndValues all; + //LibIms + import from LibIms_SIPTypesAndValues all; + import from LibIms_Interface all; + //AtsIms + import from AtsSccas_TestConfiguration all; + import from AtsSccas_TestSystem all; + import from AtsSccas_TCFunctions all; + import from AtsSccas_PICS all; + + group isc_registration { + + /* + * @desc TC_IMST2_GM_GEN_01 + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_MSC_REG_01(inout CSeq p_cSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var ImsComponent v_imsComponent_ueims; + f_cf_1IscUp(v_imsComponent_ueims); + + //Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_REG_01(p_cSeq_s)); + + // synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_MSC_REG_01 + + } // End of isc_registration + +} // End of module AtsSccas_TS124292_Testcases -- GitLab From 65d29a8c21da840114c973a13fefbf71033a8fc4 Mon Sep 17 00:00:00 2001 From: YannGarcia Date: Mon, 29 Aug 2022 07:54:04 +0200 Subject: [PATCH 051/202] Add module AtsSccas_Testcases_TS124292.ttcn --- .../AtsSccas_TCFunctions_TS124292.ttcn | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn new file mode 100644 index 0000000..875e508 --- /dev/null +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn @@ -0,0 +1,59 @@ +/* + * @author TTF T016 + * @version $Id$ + * @desc This module provides the TCfunctions used by the test component + * for SCCAS tests. + */ +module AtsSccas_TCFunctions { + // LibCommon + import from LibCommon_Sync all; + import from LibCommon_VerdictControl all; + import from LibCommon_DataStrings all; + // LibSip + import from LibSip_SIPTypesAndValues all; + import from LibSip_SDPTypes all; + import from LibSip_Templates all; + import from LibSip_Steps all; + import from LibSip_Interface all; + import from LibSip_PIXITS all; + // LibIms + import from LibIms_Templates all; + import from LibIms_Steps all; + import from LibIms_SIPTypesAndValues all; + import from LibIms_Interface all; + + // AtsIms + // import from AtsIms_TestSystem all; + import from AtsSccas_PICS all; + import from AtsSccas_PIXITS all; + + + group isc_registration { + + /* + * @desc This is the test case function for TC_ISC_SCCAS_MSC_REG_01 + * @param p_cSeq_s + */ + function f_TC_ISC_SCCAS_MSC_REG_01(in CSeq p_cSeq_s) runs on ImsComponent { + + var template 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)); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync + + // deregistration + + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_RSC_REG_01 + + } // End of group isc_registration + +} // End of module AtsSccas_TCFunctions \ No newline at end of file -- GitLab From 656dbf3a33e37ddf535003b07ec15c375cfe1bc8 Mon Sep 17 00:00:00 2001 From: YannGarcia Date: Mon, 29 Aug 2022 08:02:27 +0200 Subject: [PATCH 052/202] Reorganize modules --- ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn | 7 +++---- ttcn/AtsSccas/AtsSccas_Testcases_TS124292.ttcn | 10 ++++------ 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn index 875e508..2e27965 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn @@ -4,7 +4,7 @@ * @desc This module provides the TCfunctions used by the test component * for SCCAS tests. */ -module AtsSccas_TCFunctions { +module AtsSccas_TCFunctions_TS124292 { // LibCommon import from LibCommon_Sync all; import from LibCommon_VerdictControl all; @@ -27,11 +27,10 @@ module AtsSccas_TCFunctions { import from AtsSccas_PICS all; import from AtsSccas_PIXITS all; - group isc_registration { /* - * @desc This is the test case function for TC_ISC_SCCAS_MSC_REG_01 + * @desc This is the test case function for TC_ISC_SCCAS_MSC_REG_01 * @param p_cSeq_s */ function f_TC_ISC_SCCAS_MSC_REG_01(in CSeq p_cSeq_s) runs on ImsComponent { @@ -56,4 +55,4 @@ module AtsSccas_TCFunctions { } // End of group isc_registration -} // End of module AtsSccas_TCFunctions \ No newline at end of file +} // End of module AtsSccas_TCFunctions_TS124292 \ No newline at end of file diff --git a/ttcn/AtsSccas/AtsSccas_Testcases_TS124292.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases_TS124292.ttcn index 796c144..b52e680 100644 --- a/ttcn/AtsSccas/AtsSccas_Testcases_TS124292.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Testcases_TS124292.ttcn @@ -4,7 +4,7 @@ * @desc This module provides the Test Cases for SCCAS ETSI TS 124 292 v1.6.0. */ -module AtsSccas_TS124292_Testcases +module AtsSccas_Testcases_TS124292 { //LibCommon import from LibCommon_Sync all ; @@ -24,12 +24,10 @@ module AtsSccas_TS124292_Testcases group isc_registration { /* - * @desc TC_IMST2_GM_GEN_01 + * @desc Verify that the MSC successfully register to the IM CN Subsystem * @param p_cSeq_s Transaction Id */ - testcase TC_ISC_SCCAS_MSC_REG_01(inout CSeq p_cSeq_s) - runs on ServerSyncComp - system TestAdapter { + testcase TC_ISC_SCCAS_MSC_REG_01(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { //Variables var ImsComponent v_imsComponent_ueims; f_cf_1IscUp(v_imsComponent_ueims); @@ -46,4 +44,4 @@ module AtsSccas_TS124292_Testcases } // End of isc_registration -} // End of module AtsSccas_TS124292_Testcases +} // End of module AtsSccas_Testcases_TS124292 -- GitLab From 2ba45bfb69405605ba79792df0534e90db7ef57a Mon Sep 17 00:00:00 2001 From: YannGarcia Date: Mon, 29 Aug 2022 08:45:38 +0200 Subject: [PATCH 053/202] Add testcase templates for the MSC modules --- .../AtsSccas_TCFunctions_TS124292.ttcn | 216 ++++++++++++++++- .../AtsSccas/AtsSccas_Testcases_TS124292.ttcn | 219 +++++++++++++++++- 2 files changed, 424 insertions(+), 11 deletions(-) diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn index 2e27965..fce3f42 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn @@ -34,25 +34,229 @@ module AtsSccas_TCFunctions_TS124292 { * @param p_cSeq_s */ function f_TC_ISC_SCCAS_MSC_REG_01(in CSeq p_cSeq_s) runs on ImsComponent { - + // Local variables var template 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)); - + // Preambule + 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 + )); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync // Registration f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync - // deregistration + // Deregistration f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // End of function f_TC_ISC_SCCAS_RSC_REG_01 + /* + * @desc This is the test case function for TC_ISC_SCCAS_MSC_REG_02 + * @param p_cSeq_s + */ + function f_TC_ISC_SCCAS_MSC_REG_02(in CSeq p_cSeq_s) runs on ImsComponent { + // Local variables + var template REGISTER_Request v_register; + + // Preambule + 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 + )); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync + + // Deregistration + + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_RSC_REG_02 + } // End of group isc_registration + group isc_subscribe { + + /* + * @desc This is the test case function for TC_ISC_SCCAS_MSC_SUB_01 + * @param p_cSeq_s + */ + function f_TC_ISC_SCCAS_MSC_SUB_01(in CSeq p_cSeq_s) runs on ImsComponent { + // Local variables + var template REGISTER_Request v_register; + + // Preambule + 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 + )); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync + + // Deregistration + + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_RSC_SUB_01 + + /* + * @desc This is the test case function for TC_ISC_SCCAS_MSC_SUB_02 + * @param p_cSeq_s + */ + function f_TC_ISC_SCCAS_MSC_SUB_02(in CSeq p_cSeq_s) runs on ImsComponent { + // Local variables + var template REGISTER_Request v_register; + + // Preambule + 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 + )); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync + + // Deregistration + + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_RSC_SUB_02 + + } // End of isc_subscribe + + group isc_reregistration { + + /* + * @desc This is the test case function for TC_ISC_SCCAS_MSC_REREG_01 + * @param p_cSeq_s + */ + function f_TC_ISC_SCCAS_MSC_REREG_01(in CSeq p_cSeq_s) runs on ImsComponent { + // Local variables + var template REGISTER_Request v_register; + + // Preambule + 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 + )); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync + + // Deregistration + + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_RSC_REREG_01 + + /* + * @desc This is the test case function for TC_ISC_SCCAS_MSC_REREG_02 + * @param p_cSeq_s + */ + function f_TC_ISC_SCCAS_MSC_REREG_02(in CSeq p_cSeq_s) runs on ImsComponent { + // Local variables + var template REGISTER_Request v_register; + + // Preambule + 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 + )); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync + + // Deregistration + + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_RSC_REREG_02 + + } // End of isc_reregistration + + group call_origination { + + /* + * @desc This is the test case function for TC_ISC_SCCAS_MSC_CALL_ORG_01 + * @param p_cSeq_s + */ + function f_TC_ISC_SCCAS_MSC_CALL_ORG_01(in CSeq p_cSeq_s) runs on ImsComponent { + // Local variables + var template REGISTER_Request v_register; + + // Preambule + 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 + )); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync + + // Deregistration + + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_RSC_CALL_ORG_01 + + /* + * @desc This is the test case function for TC_ISC_SCCAS_MSC_CALL_ORG_02 + * @param p_cSeq_s + */ + function f_TC_ISC_SCCAS_MSC_CALL_ORG_02(in CSeq p_cSeq_s) runs on ImsComponent { + // Local variables + var template REGISTER_Request v_register; + + // Preambule + 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 + )); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync + + // Deregistration + + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_RSC_CALL_ORG_02 + + } // End of call_origination + } // End of module AtsSccas_TCFunctions_TS124292 \ No newline at end of file diff --git a/ttcn/AtsSccas/AtsSccas_Testcases_TS124292.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases_TS124292.ttcn index b52e680..428ac5c 100644 --- a/ttcn/AtsSccas/AtsSccas_Testcases_TS124292.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Testcases_TS124292.ttcn @@ -18,7 +18,7 @@ module AtsSccas_Testcases_TS124292 //AtsIms import from AtsSccas_TestConfiguration all; import from AtsSccas_TestSystem all; - import from AtsSccas_TCFunctions all; + import from AtsSccas_TCFunctions_TS124292 all; import from AtsSccas_PICS all; group isc_registration { @@ -28,20 +28,229 @@ module AtsSccas_Testcases_TS124292 * @param p_cSeq_s Transaction Id */ testcase TC_ISC_SCCAS_MSC_REG_01(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { - //Variables + // Local variables var ImsComponent v_imsComponent_ueims; + + // Test control + if (not PICS_MSC_GM) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); + stop; + } + + // Test component configuration f_cf_1IscUp(v_imsComponent_ueims); - //Start + // Start f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_REG_01(p_cSeq_s)); - // synchronize both PTCs on 3 sychronization points + // Synchronize both PTCs on 3 sychronization points f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); f_cf_1IscDown(v_imsComponent_ueims); } // End of TC_ISC_SCCAS_MSC_REG_01 - + + /* + * @desc Verify that the MSC successfully register to the IM CN Subsystem + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_MSC_REG_02(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { + // Local variables + var ImsComponent v_imsComponent_ueims; + + // Test control + if (not PICS_MSC_GM) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1IscUp(v_imsComponent_ueims); + + // Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_REG_02(p_cSeq_s)); + + // Synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_MSC_REG_02 + } // End of isc_registration + group isc_subscribe { + + /* + * @desc Verify that the MSC successfully subscribe to the IM CN Subsystem + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_MSC_SUB_01(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { + // Local variables + var ImsComponent v_imsComponent_ueims; + + // Test control + if (not PICS_MSC_GM) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1IscUp(v_imsComponent_ueims); + + // Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_SUB_01(p_cSeq_s)); + + // Synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_MSC_SUB_01 + + /* + * @desc Verify that the MSC receive NOTIFY on successfully subscription to the IM CN Subsystem + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_MSC_SUB_02(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { + // Local variables + var ImsComponent v_imsComponent_ueims; + + // Test control + if (not PICS_MSC_GM) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1IscUp(v_imsComponent_ueims); + + // Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_SUB_02(p_cSeq_s)); + + // Synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_MSC_SUB_02 + + } // End of group isc_subscribe + + group isc_reregistration { + + /* + * @desc Verify that the MSC successfully re-register to the IM CN Subsystem + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_MSC_REREG_01(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { + // Local variables + var ImsComponent v_imsComponent_ueims; + + // Test control + if (not PICS_MSC_GM) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1IscUp(v_imsComponent_ueims); + + // Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_REREG_01(p_cSeq_s)); + + // Synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_MSC_REREG_01 + + /* + * @desc Verify that the MSC successfully register to the IM CN Subsystem + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_MSC_REREG_02(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { + // Local variables + var ImsComponent v_imsComponent_ueims; + + // Test control + if (not PICS_MSC_GM) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1IscUp(v_imsComponent_ueims); + + // Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_REREG_02(p_cSeq_s)); + + // Synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_MSC_REREG_02 + + } // End of group isc_reregistration + + group call_origination { + + /* + * @desc Verify that the MSC successfully sends INVITE to the IM CN Subsystem + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_MSC_CALL_ORG_01(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { + // Local variables + var ImsComponent v_imsComponent_ueims; + + // Test control + if (not PICS_MSC_GM) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1IscUp(v_imsComponent_ueims); + + // Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_CALL_ORG_01(p_cSeq_s)); + + // Synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_MSC_CALL_ORG_01 + + /* + * @desc Verify that the MSC successfully sends INVITE to the IM CN Subsystem + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_MSC_CALL_ORG_02(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { + // Local variables + var ImsComponent v_imsComponent_ueims; + + // Test control + if (not PICS_MSC_GM) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1IscUp(v_imsComponent_ueims); + + // Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_CALL_ORG_02(p_cSeq_s)); + + // Synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_MSC_CALL_ORG_02 + + } // End of group call_origination + } // End of module AtsSccas_Testcases_TS124292 -- GitLab From c679227fa5677709ad69d65f69935820302d3792 Mon Sep 17 00:00:00 2001 From: YannGarcia Date: Mon, 29 Aug 2022 11:35:29 +0200 Subject: [PATCH 054/202] Add PICS for module MSC --- ttcn/AtsSccas/AtsSccas_PICS.ttcn | 1 + .../AtsSccas_TCFunctions_TS124292.ttcn | 542 +++++++++--------- .../AtsSccas/AtsSccas_Testcases_TS124292.ttcn | 2 +- 3 files changed, 283 insertions(+), 262 deletions(-) diff --git a/ttcn/AtsSccas/AtsSccas_PICS.ttcn b/ttcn/AtsSccas/AtsSccas_PICS.ttcn index 327a929..a5921e7 100644 --- a/ttcn/AtsSccas/AtsSccas_PICS.ttcn +++ b/ttcn/AtsSccas/AtsSccas_PICS.ttcn @@ -17,5 +17,6 @@ PICS used for test case selection */ boolean PC_SCCAS_TODO := false; + boolean PICS_MSC_GM := false; } } // end module AtsSccas_PICS diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn index fce3f42..0830d04 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn @@ -1,262 +1,282 @@ -/* - * @author TTF T016 - * @version $Id$ - * @desc This module provides the TCfunctions used by the test component - * for SCCAS tests. - */ -module AtsSccas_TCFunctions_TS124292 { - // LibCommon - import from LibCommon_Sync all; - import from LibCommon_VerdictControl all; - import from LibCommon_DataStrings all; - // LibSip - import from LibSip_SIPTypesAndValues all; - import from LibSip_SDPTypes all; - import from LibSip_Templates all; - import from LibSip_Steps all; - import from LibSip_Interface all; - import from LibSip_PIXITS all; - // LibIms - import from LibIms_Templates all; - import from LibIms_Steps all; - import from LibIms_SIPTypesAndValues all; - import from LibIms_Interface all; - - // AtsIms - // import from AtsIms_TestSystem all; - import from AtsSccas_PICS all; - import from AtsSccas_PIXITS all; - - group isc_registration { - - /* - * @desc This is the test case function for TC_ISC_SCCAS_MSC_REG_01 - * @param p_cSeq_s - */ - function f_TC_ISC_SCCAS_MSC_REG_01(in CSeq p_cSeq_s) runs on ImsComponent { - // Local variables - var template REGISTER_Request v_register; - - // Preambule - 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 - )); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync - - // Registration - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync - - // Deregistration - - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_RSC_REG_01 - - /* - * @desc This is the test case function for TC_ISC_SCCAS_MSC_REG_02 - * @param p_cSeq_s - */ - function f_TC_ISC_SCCAS_MSC_REG_02(in CSeq p_cSeq_s) runs on ImsComponent { - // Local variables - var template REGISTER_Request v_register; - - // Preambule - 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 - )); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync - - // Registration - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync - - // Deregistration - - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_RSC_REG_02 - - } // End of group isc_registration - - group isc_subscribe { - - /* - * @desc This is the test case function for TC_ISC_SCCAS_MSC_SUB_01 - * @param p_cSeq_s - */ - function f_TC_ISC_SCCAS_MSC_SUB_01(in CSeq p_cSeq_s) runs on ImsComponent { - // Local variables - var template REGISTER_Request v_register; - - // Preambule - 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 - )); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync - - // Registration - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync - - // Deregistration - - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_RSC_SUB_01 - - /* - * @desc This is the test case function for TC_ISC_SCCAS_MSC_SUB_02 - * @param p_cSeq_s - */ - function f_TC_ISC_SCCAS_MSC_SUB_02(in CSeq p_cSeq_s) runs on ImsComponent { - // Local variables - var template REGISTER_Request v_register; - - // Preambule - 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 - )); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync - - // Registration - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync - - // Deregistration - - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_RSC_SUB_02 - - } // End of isc_subscribe - - group isc_reregistration { - - /* - * @desc This is the test case function for TC_ISC_SCCAS_MSC_REREG_01 - * @param p_cSeq_s - */ - function f_TC_ISC_SCCAS_MSC_REREG_01(in CSeq p_cSeq_s) runs on ImsComponent { - // Local variables - var template REGISTER_Request v_register; - - // Preambule - 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 - )); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync - - // Registration - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync - - // Deregistration - - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_RSC_REREG_01 - - /* - * @desc This is the test case function for TC_ISC_SCCAS_MSC_REREG_02 - * @param p_cSeq_s - */ - function f_TC_ISC_SCCAS_MSC_REREG_02(in CSeq p_cSeq_s) runs on ImsComponent { - // Local variables - var template REGISTER_Request v_register; - - // Preambule - 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 - )); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync - - // Registration - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync - - // Deregistration - - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_RSC_REREG_02 - - } // End of isc_reregistration - - group call_origination { - - /* - * @desc This is the test case function for TC_ISC_SCCAS_MSC_CALL_ORG_01 - * @param p_cSeq_s - */ - function f_TC_ISC_SCCAS_MSC_CALL_ORG_01(in CSeq p_cSeq_s) runs on ImsComponent { - // Local variables - var template REGISTER_Request v_register; - - // Preambule - 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 - )); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync - - // Registration - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync - - // Deregistration - - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_RSC_CALL_ORG_01 - - /* - * @desc This is the test case function for TC_ISC_SCCAS_MSC_CALL_ORG_02 - * @param p_cSeq_s - */ - function f_TC_ISC_SCCAS_MSC_CALL_ORG_02(in CSeq p_cSeq_s) runs on ImsComponent { - // Local variables - var template REGISTER_Request v_register; - - // Preambule - 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 - )); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync - - // Registration - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync - - // Deregistration - - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_RSC_CALL_ORG_02 - - } // End of call_origination - +/* + * @author TTF T016 + * @version $Id$ + * @desc This module provides the TCfunctions used by the test component + * for SCCAS tests. + */ +module AtsSccas_TCFunctions_TS124292 { + // XSD support + import from XSD all; + + // LibCommon + import from LibCommon_Sync all; + import from LibCommon_VerdictControl all; + import from LibCommon_DataStrings all; + // LibSip + import from LibSip_SIPTypesAndValues all; + import from LibSip_SDPTypes all; + import from LibSip_Templates all; + import from LibSip_Steps all; + import from LibSip_Interface all; + import from LibSip_PIXITS all; + // LibIms + import from LibIms_Templates all; + import from LibIms_Steps all; + import from LibIms_SIPTypesAndValues all; + import from LibIms_Interface all; + + // AtsSccas + // import from AtsSccas_TestSystem all; + import from AtsSccas_PICS all; + import from AtsSccas_PIXITS all; + + group isc_registration { + + /* + * @desc This is the test case function for TC_ISC_SCCAS_MSC_REG_01 + * @param p_cSeq_s + */ + function f_TC_ISC_SCCAS_MSC_REG_01(in CSeq p_cSeq_s) runs on ImsComponent { + // Local variables + var template REGISTER_Request v_register; + + // Preambule + 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 + )); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync + + // Deregistration + + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_MSC_REG_01 + + /* + * @desc This is the test case function for TC_ISC_SCCAS_MSC_REG_02 + * @param p_cSeq_s + */ + function f_TC_ISC_SCCAS_MSC_REG_02(in CSeq p_cSeq_s) runs on ImsComponent { + // Local variables + var template REGISTER_Request v_register; + + // Preambule + 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 + )); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync + + // Deregistration + + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_MSC_REG_02 + + } // End of group isc_registration + + group isc_subscribe { + + /* + * @desc This is the test case function for TC_ISC_SCCAS_MSC_SUB_01 + * @param p_cSeq_s + */ + function f_TC_ISC_SCCAS_MSC_SUB_01(in CSeq p_cSeq_s) runs on ImsComponent { + // Local variables + var template SUBSCRIBE_Request v_subscibe; + + // Preambule + v_register := valueof( + m_SUBSCRIBE_Request_Base( + vc_requestUri, + vc_callId, + p_cSeq_s, + vc_from, vc_to, vc_via_REG + )); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync + + // Deregistration + + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_MSC_SUB_01 + + /* + * @desc This is the test case function for TC_ISC_SCCAS_MSC_SUB_02 + * @param p_cSeq_s + */ + function f_TC_ISC_SCCAS_MSC_SUB_02(in CSeq p_cSeq_s) runs on ImsComponent { + // Local variables + var template SUBSCRIBE_Request v_subscibe; + + // Preambule + v_register := valueof( + m_SUBSCRIBE_Request_Base( + vc_requestUri, + vc_callId, + p_cSeq_s, + vc_from, vc_to, vc_via_REG + )); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync + + // Deregistration + + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_MSC_SUB_02 + + } // End of isc_subscribe + + group isc_reregistration { + + /* + * @desc This is the test case function for TC_ISC_SCCAS_MSC_REREG_01 + * @param p_cSeq_s + */ + function f_TC_ISC_SCCAS_MSC_REREG_01(in CSeq p_cSeq_s) runs on ImsComponent { + // Local variables + var template REGISTER_Request v_register; + + // Preambule + 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 + )); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync + + // Deregistration + + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_MSC_REREG_01 + + /* + * @desc This is the test case function for TC_ISC_SCCAS_MSC_REREG_02 + * @param p_cSeq_s + */ + function f_TC_ISC_SCCAS_MSC_REREG_02(in CSeq p_cSeq_s) runs on ImsComponent { + // Local variables + var template REGISTER_Request v_register; + + // Preambule + 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 + )); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync + + // Deregistration + + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_MSC_REREG_02 + + } // End of isc_reregistration + + group call_origination { + + /* + * @desc This is the test case function for TC_ISC_SCCAS_MSC_CALL_ORG_01 + * @param p_cSeq_s + */ + function f_TC_ISC_SCCAS_MSC_CALL_ORG_01(in CSeq p_cSeq_s) runs on ImsComponent { + // Local variables + var template INVITE_Request v_invite; + + // Preambule + /*f_init_userprofile(c_userProfile_UE1atSUThome); + f_initSipUrl(c_userProfile_UE1atSUThome); + f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_BCF); + LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); + f_init_sdp_userprofile(vc_sdp_local, c_userProfile_UE1atSUThome, c_userProfile_Huawei); + v_register := valueof( + m_INVITE_Request_sdp( + vc_requestUri, + vc_callId, + p_cSeq_s, + vc_from, vc_to, vc_via_REG, + vc_contact, + vc_authorization, + m_MBody_SDP(vc_sdp_local) + ));*/ + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync + + // Deregistration + + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_MSC_CALL_ORG_01 + + /* + * @desc This is the test case function for TC_ISC_SCCAS_MSC_CALL_ORG_02 + * @param p_cSeq_s + */ + function f_TC_ISC_SCCAS_MSC_CALL_ORG_02(in CSeq p_cSeq_s) runs on ImsComponent { + // Local variables + var template INVITE_Request v_invite; + + // Preambule + 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 + )); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync + + // Deregistration + + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_MSC_CALL_ORG_02 + + } // End of call_origination + } // End of module AtsSccas_TCFunctions_TS124292 \ No newline at end of file diff --git a/ttcn/AtsSccas/AtsSccas_Testcases_TS124292.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases_TS124292.ttcn index 428ac5c..b1fca4e 100644 --- a/ttcn/AtsSccas/AtsSccas_Testcases_TS124292.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Testcases_TS124292.ttcn @@ -15,7 +15,7 @@ module AtsSccas_Testcases_TS124292 //LibIms import from LibIms_SIPTypesAndValues all; import from LibIms_Interface all; - //AtsIms + //AtsSccas import from AtsSccas_TestConfiguration all; import from AtsSccas_TestSystem all; import from AtsSccas_TCFunctions_TS124292 all; -- GitLab From d10e28ccc39094160a52e5981dcdabb3c2bcbb09 Mon Sep 17 00:00:00 2001 From: YannGarcia Date: Mon, 29 Aug 2022 11:39:16 +0200 Subject: [PATCH 055/202] Add PICS for module MSC --- ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn index 0830d04..71a7657 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn @@ -105,7 +105,7 @@ module AtsSccas_TCFunctions_TS124292 { var template SUBSCRIBE_Request v_subscibe; // Preambule - v_register := valueof( + v_subscibe := valueof( m_SUBSCRIBE_Request_Base( vc_requestUri, vc_callId, @@ -133,7 +133,7 @@ module AtsSccas_TCFunctions_TS124292 { var template SUBSCRIBE_Request v_subscibe; // Preambule - v_register := valueof( + v_subscibe := valueof( m_SUBSCRIBE_Request_Base( vc_requestUri, vc_callId, @@ -228,7 +228,7 @@ module AtsSccas_TCFunctions_TS124292 { f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_BCF); LibIms_Steps.f_setHeadersINVITE(p_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); f_init_sdp_userprofile(vc_sdp_local, c_userProfile_UE1atSUThome, c_userProfile_Huawei); - v_register := valueof( + v_invite := valueof( m_INVITE_Request_sdp( vc_requestUri, vc_callId, @@ -259,12 +259,12 @@ module AtsSccas_TCFunctions_TS124292 { var template INVITE_Request v_invite; // Preambule - v_register := valueof( + /*v_invite := valueof( m_REGISTER_Request_Base( vc_requestUri, vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG, vc_contact, vc_authorization - )); + ));*/ f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync // Registration -- GitLab From 48e728f80bf1e127bc3424c2fbc42b08e4814d61 Mon Sep 17 00:00:00 2001 From: Bostjan Date: Mon, 29 Aug 2022 12:26:54 +0200 Subject: [PATCH 056/202] Groups added --- ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn | 19 +++++++++++++++++++ ttcn/AtsSccas/AtsSccas_Testcases.ttcn | 19 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn index e966274..f3bdf93 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn @@ -59,4 +59,23 @@ module AtsSccas_TCFunctions { }//group TP_6_3_1_General }//Group_6_3 + + group Group_6A_4 { + }//Group_6A_4 + + group Group_7_3 { + }//Group_7_3 + + group Group_8_3 { + }//Group_8_3 + + group Group_9_3 { + }//Group_9_3 + + group Group_10_3 { + }//Group_10_3 + + group Group_11_3 { + }//Group_11_3 + } // end module AtsSccas_TCFunctions \ No newline at end of file diff --git a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn index fdcdac2..ed84c62 100644 --- a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn @@ -46,5 +46,24 @@ module AtsSccas_Testcases }//group TP_6_3_1_General }//Group_6_3 + + group Group_6A_4 { + }//Group_6A_4 + + group Group_7_3 { + }//Group_7_3 + + group Group_8_3 { + }//Group_8_3 + + group Group_9_3 { + }//Group_9_3 + + group Group_10_3 { + }//Group_10_3 + + group Group_11_3 { + }//Group_11_3 + } // end module AtsSccas_Testcases -- GitLab From f9c0f04a858d7b7073a2c0e5687945d184265bb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Mon, 29 Aug 2022 14:54:06 +0200 Subject: [PATCH 057/202] rename test purposes --- .../sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index 9e82321..a5e0abc 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -85,7 +85,7 @@ Package TP_SCCAS { } } - } // end TP TP_SCCAS_CS_to_PS_access_transfer_01 + } // end TP TP_ISC_SCCAS_CPT_INV_01 // Testpurpose 2: When the SCC AS receives a SIP INVITE request due to static STI, the SCC AS shall: @@ -153,7 +153,7 @@ Package TP_SCCAS { } } - } // end TP_SCCAS_CS_to_PS_access_transfer_02 + } // end TP_ISC_SCCAS_CPT_INV_02 // Test puposes 3: Upon receiving the SIP 2xx response to the SIP re-INVITE request the SCC AS shall send the SIP 200 (OK) response @@ -219,13 +219,13 @@ Package TP_SCCAS { } } - } // end TP_SCCAS_CS_to_PS_access_transfer_03 + } // end TP_ISC_SCCAS_CPT_RIN_01 // Test puposes 4: Upon receiving the SIP ACK request originated from the SC UE, the SCC AS shall: Test Purpose { - TP Id TP_ICS_SCCAS_XXX_YYY_04 + TP Id TP_ISC_SCCAS_CPT_ACK_01 //Upon receiving the SIP ACK request originated from the SC UE, the SCC AS shall: //1) release the source access leg as specified in subclause 9.3.6.; and ... @@ -271,7 +271,7 @@ Package TP_SCCAS { } - } // end TP TP_ICS_SCCAS_XXX_YYY_04 + } // end TP TP_ISC_SCCAS_CPT_ACK_01 } // end Group "9.3.3 SCC AS procedures for CS to PS access transfer" @@ -322,7 +322,7 @@ Package TP_SCCAS { // this TP: only case A - TP Id TP_ICS_SCCAS_PCT_UPD_01 + TP Id TP_ISC_SCCAS_PCT_UPD_01 Test objective "Verify that the SCC AS sends a SIP UPDATE after receiving a SIP INVITE request due to PS to CS STN and if there are one or more dialogs in an early dialog phase and the remote leg is not a precondition enabled dialog" @@ -378,7 +378,7 @@ Package TP_SCCAS { } } - } // end TP_ICS_SCCAS_PCT_UPD_01 + } // end TP_ISC_SCCAS_PCT_UPD_01 @@ -399,7 +399,7 @@ Package TP_SCCAS { // This TP: only case A - TP Id TP_ICS_XXX_YYY_02 + TP Id TP_ISC_PCT_RES_02 Test objective "Verify that the SCC AS sends SIP provisional response to the SIP INVITE request due to PS to CS STN" @@ -414,7 +414,7 @@ Package TP_SCCAS { the UE entity isRegisteredTo the IMS // a SIP INVITE request due to PS to CS STN tooks place // and - // SCC AS has send a SIP UPDATE request according to TP TP_ICS_SCCAS_PCT_UPD_01 + // SCC AS has send a SIP UPDATE request according to TP TP_ISC_SCCAS_PCT_UPD_01 // and // the remote leg is not a precondition enabled dialog } @@ -447,7 +447,7 @@ Package TP_SCCAS { to the IMS_S_CSCF entity } } - } + } // end TP TP_ISC_PCT_RES_02 } // end Group "9.3.5.2 SCC AS procedures for PS to CS dual radio access transfer of a originating session in the alerting phase" @@ -486,7 +486,7 @@ Package TP_SCCAS { // strength-tag value either "optional" or as specified in RFC 3312 [88] and RFC 4032 [89] for the remote // segment. - TP Id TP_ICS_SCCAS_PCT_INV_01 + TP Id TP_ISC_SCCAS_PCT_INV_01 Test objective "Verify that the SCC AS send a SIP UPDATE request towards the remote UE after receiving a SIP INVITE request due to PS to CS STN in early dialog phase supporting a session with active speech media component such" @@ -539,7 +539,7 @@ Package TP_SCCAS { } } - } // end TP_ICS_SCCAS_PCT_INV_01 + } // end TP_ISC_SCCAS_PCT_INV_01 } // end Group "9.3.5.3 SCC AS procedures for PS to CS dual radio, access transfer of a originating session in the prealerting phase" @@ -552,7 +552,7 @@ Package TP_SCCAS { Test Purpose { - TP Id TP_ICS_SCCAS_PCT_REF_01 + TP Id TP_ISC_SCCAS_PCT_REF_01 Test objective "Verify that the SCC AS populate a SIP REFER request to transfer an additional session in PS to CS dual radio access" @@ -630,7 +630,7 @@ Package TP_SCCAS { } } - } // end TP_ICS_SCCAS_PCT_REF_01 + } // end TP_ISC_SCCAS_PCT_REF_01 } // end Group "9.3.5.4 SCC AS procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase" @@ -659,7 +659,7 @@ Package TP_SCCAS { // - if the SIP 180 (Ringing) response does not contain the g.3gpp.dynamic-stn media feature tag as described // in annex C in the Contact header field, the static STN. - TP Id TP_ICS_SCCAS_PCT_REF_02 + TP Id TP_ISC_SCCAS_PCT_REF_01 Test objective "Verify that the SCC AS terminates the call over CS after receiving a SIP 488" @@ -715,7 +715,7 @@ Package TP_SCCAS { } } - } // end TP_ICS_SCCAS_PCT_REF_02 + } // end TP_ISC_SCCAS_PCT_REF_02 Test Purpose { @@ -730,7 +730,7 @@ Package TP_SCCAS { // - anew SDP offer, including the media characteristics as received in the SIP 1xx response with the SDP // answer, by following the rules of 3GPP TS 24.229 [2]. - TP Id TP_ICS_SCCAS_PCT_XXX_02 + TP Id TP_ISC_SCCAS_PCT_RES_01 Test objective "Verify that the SCC AS sends a SIP PRACK and SIP UPDATE after receiving a SIP 1xx" @@ -785,7 +785,7 @@ Package TP_SCCAS { } - } // end TP_ICS_SCCAS_PCT_XXX_02 + } // end TP_ISC_SCCAS_PCT_RES_01 } // end Group "9.3.5.5 SCC AS procedures for PS to CS dual radio access transfer of a terminating session in the alerting phase" @@ -800,7 +800,7 @@ Package TP_SCCAS { Test Purpose { - TP Id TP_ICS_SCCAS_XXX_BYE_01 + TP Id TP_ISC_SCCAS_MED_BYE_01 // When the transfer of a session is successfully completed, then the SCC AS shall release the source legs as follows: // 1) the source access leg is an ongoing session containing only an active or inactive media component or a session in @@ -843,14 +843,14 @@ Package TP_SCCAS { } - } // end TP_ICS_SCCAS_XXX_BYE_01 + } // end TP_ISC_SCCAS_MED_BYE_01 Test Purpose { - TP Id TP_ICS_SCCAS_XXX_YYY_02 + TP Id TP_ISC_SCCAS_MED_RES_01 // When the transfer of a session is successfully completed, then the SCC AS shall release the source legs as follows: // 2) the session is dialog in an early dialog phase on the originating side send a SIP 480 (Temporary Unavailable) @@ -892,14 +892,14 @@ Package TP_SCCAS { } - } // end TP_ICS_SCCAS_XXX_YYY_02 + } // end TP_ISC_SCCAS_MED_RES_01 Test Purpose { - TP Id TP_ICS_SCCAS_MED_RIN_01 + TP Id TP_ISC_SCCAS_MED_RIN_01 // When the transfer of a session is successfully completed, then the SCC AS shall release the source legs as follows: // 3) the source access leg contains media components other than speech media component, the SCC AS should send @@ -948,7 +948,7 @@ Package TP_SCCAS { } - } // end TP_ICS_SCCAS_MED_RIN_01 + } // end TP_ISC_SCCAS_MED_RIN_01 } // end Group "9.3.6 Removal of non-transferred audio media components and release of source access legs" -- GitLab From e932b5ba8a245d63143da666bb2a035855b02bcf Mon Sep 17 00:00:00 2001 From: YannGarcia Date: Mon, 29 Aug 2022 15:01:51 +0200 Subject: [PATCH 058/202] Add AtsSccas_Steps.ttcn module and update PIXITs --- ttcn/AtsSccas/AtsSccas_PIXITS.ttcn | 363 +++++++++++++++++++++++++++++ ttcn/AtsSccas/AtsSccas_Steps.ttcn | 351 ++++++++++++++++++++++++++++ 2 files changed, 714 insertions(+) create mode 100644 ttcn/AtsSccas/AtsSccas_Steps.ttcn diff --git a/ttcn/AtsSccas/AtsSccas_PIXITS.ttcn b/ttcn/AtsSccas/AtsSccas_PIXITS.ttcn index 2fe4084..9e69710 100644 --- a/ttcn/AtsSccas/AtsSccas_PIXITS.ttcn +++ b/ttcn/AtsSccas/AtsSccas_PIXITS.ttcn @@ -18,4 +18,367 @@ modulepar { } + group SUT { + + group SUT_UE { + /** @desc charstring for SUT - UE IP address to exchange SIP messages - connection point for PCSCF + */ + modulepar charstring PX_IMS_SUT_UE_IPADDR := "10.100.0.6"; + + /** @desc integer for SUT - UE port number to exchange SIP messages - connection point for PCSCF + */ + modulepar integer PX_IMS_SUT_UE_PORT := 5060; + } // End of group SUT_UE1 + + group SUT_UE1 { + /** @desc charstring for SUT - PCSCF1 IP address to exchange SIP messages - connection point for UE1 + */ + modulepar charstring PX_IMS_SUT_PCSCF1_IPADDR := "10.100.0.6"; + + /** @desc integer for SUT - PCSCF1 port number to exchange SIP messages - connection point for UE1 + */ + modulepar integer PX_IMS_SUT_PCSCF1_PORT := 5060; + + /** @desc charstring for SUT/PCSCF1 domain - connection point for UE1 + */ + modulepar charstring PX_IMS_SUT_PCSCF1_HOME_DOMAIN := "plugtests.net"; + + /** @desc charstring for IP address used by the TS to exchange media streams for UE1 + */ + modulepar charstring PX_IMS_SUT_UE1_BEARER_IPADDR := "conftest.plugtests.net"; + + /** @desc charstring for identity of the tester UE1 local domain + */ + modulepar charstring PX_IMS_SUT_UE1_HOME_DOMAIN := "plugtests.net"; + + /** @desc charstring for identity of the tester UE1 local user + */ + modulepar charstring PX_IMS_SUT_UE1_PUBLIC_USER := "alice-06"; + + /** @desc charstring for RFC 2617 clause 3-2-2 username of UE1: + * The name of user in the specified realm + */ + modulepar charstring PX_IMS_SUT_UE1_PRIVAT_USERNAME := "alice-06"; + + /** @desc charstring for RFC 2617 clause 3-2-2-2 passwd of UE1: A known shared secret, the password of user of the specified username + */ + modulepar charstring PX_IMS_SUT_UE1_PRIVAT_PASSWD := "alice-05@1234"; + + /** @desc charstring for RFC 2617 clause 3-2-1 qop options of UE1: + * Quoted string of one or more tokens indicating the "quality of protection" values supported by the server; the + * value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection. + */ + modulepar charstring PX_IMS_SUT_UE1_QOP := "auth"; + + /** @desc charstring for home(SUT) REGISTRAR domain of UE1 + */ + modulepar charstring PX_IMS_SUT_UE1_REGISTRAR := "registrar.sut.net"; + + /** @desc charstring for UE1 display name + */ + modulepar charstring PX_IMS_SUT_UE1_DISPLAY := "alice-05@plugtest.net"; + } // End of group SUT_UE1 + + group SUT_UE2 { + /** @desc charstring for SUT - PCSCF2 IP address to exchange SIP messages - connection point for UE2 + */ + modulepar charstring PX_IMS_SUT_PCSCF2_IPADDR := "esrp1.frequentis.plugtests.net"; + + /** @desc integer for SUT - PCSCF2 port number to exchange SIP messages - connection point for UE2 + */ + modulepar integer PX_IMS_SUT_PCSCF2_PORT := 5060; + + /** @desc charstring for SUT/PCSCF2 domain - connection point for UE2 + */ + modulepar charstring PX_IMS_SUT_PCSCF2_HOME_DOMAIN := "plugtests.net"; + + /** @desc charstring for IP address used by the TS to exchange media streams for UE2 + */ + modulepar charstring PX_IMS_SUT_UE2_BEARER_IPADDR := "esrp1.frequentis.plugtests.net"; + + /** @desc charstring for identity of the tester UE2 local domain + */ + modulepar charstring PX_IMS_SUT_UE2_HOME_DOMAIN := "plugtests.net"; + + /** @desc charstring for identity of the tester UE2 local user + */ + modulepar charstring PX_IMS_SUT_UE2_PUBLIC_USER := "2910"; + + /** @desc charstring for RFC 2617 clause 3-2-2 username of UE2: + * The name of user in the specified realm + */ + modulepar charstring PX_IMS_SUT_UE2_PRIVAT_USERNAME := "abcd"; + + /** @desc charstring for RFC 2617 clause 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2 + */ + modulepar charstring PX_IMS_SUT_UE2_PRIVAT_PASSWD := "1234"; + + /** @desc charstring for RFC 2617 clause 3-2-1 qop options UE2: + * Quoted string of one or more tokens indicating the "quality of protection" values supported by the server, the + * value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection. + */ + modulepar charstring PX_IMS_SUT_UE2_QOP := "auth"; + + /** @desc charstring for home(SUT) REGISTRAR domain of UE2 + */ + modulepar charstring PX_IMS_SUT_UE2_REGISTRAR := "plugtests.net"; + } // End of group SUT_UE2 + + group SUT_UE3 { + /** @desc charstring for SUT - PCSCF3 IP address to exchange SIP messages - connection point for UE3 + */ + modulepar charstring PX_IMS_SUT_PCSCF3_IPADDR := "172.31.10.2"; + + /** @desc integer for SUT - PCSCF3 port number to exchange SIP messages - connection point for UE3 + */ + modulepar integer PX_IMS_SUT_PCSCF3_PORT := 5060; + + /** @desc charstring for SUT/PCSCF3 domain - connection point for UE3 + */ + modulepar charstring PX_IMS_SUT_PCSCF3_HOME_DOMAIN := "pcscf3.home.net"; + + /** @desc charstring for IP address used by the TS to exchange media streams for UE3 + */ + modulepar charstring PX_IMS_SUT_UE3_BEARER_IPADDR := "172.31.10.2"; + + /** @desc charstring for identity of the tester UE2 local domain + */ + modulepar charstring PX_IMS_SUT_UE3_HOME_DOMAIN := "sut.net"; + + /** @desc charstring for identity of the tester UE3 local user + */ + modulepar charstring PX_IMS_SUT_UE3_PUBLIC_USER := "2910"; + + /** @desc charstring for RFC 2617 clause 3-2-2 username of UE3: + * The name of user in the specified realm + */ + modulepar charstring PX_IMS_SUT_UE3_PRIVAT_USERNAME := "abcd"; + + /** @desc charstring for RFC 2617 clause 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE3 + */ + modulepar charstring PX_IMS_SUT_UE3_PRIVAT_PASSWD := "1234"; + + /** @desc charstring for RFC 2617 clause 3-2-1 qop options UE3: + * Quoted string of one or more tokens indicating the "quality of protection" values supported by the server, the + * value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection. + */ + modulepar charstring PX_IMS_SUT_UE3_QOP := "auth"; + + /** @desc charstring for home(SUT) REGISTRAR domain of UE3 + */ + modulepar charstring PX_IMS_SUT_UE3_REGISTRAR := "registrar.sut.net"; + } // End of group SUT_UE3 + + group SUT_UE4 {//UE4 can be used as UE1Visited + /** @desc charstring for SUT - PCSCF4 IP address to exchange SIP messages - connection point for UE4 + */ + modulepar charstring PX_IMS_SUT_PCSCF4_IPADDR := "172.31.10.2"; + + /** @desc integer for SUT - PCSCF4 port number to exchange SIP messages - connection point for UE4 + */ + modulepar integer PX_IMS_SUT_PCSCF4_PORT := 5060; + + /** @desc charstring for SUT/PCSCF4 domain - connection point for UE4 + */ + modulepar charstring PX_IMS_SUT_PCSCF4_HOME_DOMAIN := "pcscf4.home.net"; + + /** @desc charstring for IP address used by the TS to exchange media streams for UE4 + */ + modulepar charstring PX_IMS_SUT_UE4_BEARER_IPADDR := "172.31.10.2"; + + /** @desc charstring for identity of the tester UE2 local domain + */ + modulepar charstring PX_IMS_SUT_UE4_HOME_DOMAIN := "sut.net"; + + /** @desc charstring for identity of the tester UE4 local user + */ + modulepar charstring PX_IMS_SUT_UE4_PUBLIC_USER := "2910"; + + /** @desc charstring for RFC 2617 clause 3-2-2 username of UE4: + * The name of user in the specified realm + */ + modulepar charstring PX_IMS_SUT_UE4_PRIVAT_USERNAME := "abcd"; + + /** @desc charstring for RFC 2617 clause 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2 + */ + modulepar charstring PX_IMS_SUT_UE4_PRIVAT_PASSWD := "1234"; + + /** @desc charstring for RFC 2617 clause 3-2-1 qop options UE4: + * Quoted string of one or more tokens indicating the "quality of protection" values supported by the server, the + * value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection. + */ + modulepar charstring PX_IMS_SUT_UE4_QOP := "auth"; + + /** @desc charstring for home(SUT) REGISTRAR domain of UE4 + */ + modulepar charstring PX_IMS_SUT_UE4_REGISTRAR := "registrar.sut.net"; + } // End of group SUT_UE4 + + group SUT_unknown { + /** @desc charstring for identity of unknown UE public user + */ + modulepar charstring PX_IMS_SUT_unknownUE_PUBLIC_USER := "0007"; + } // End of group SUT_unknown + + group EMERGENCY{ + /** @desc charstring for identity of emergency service local domain + */ + modulepar charstring PX_IMS_SUT_EMERGENCY_HOME_DOMAIN := "plugtests.net"; + + /** @desc charstring for identity of the emergency service + */ + modulepar charstring PX_IMS_SUT_EMERGENCY_SERVICE := "112"; + + /** @desc charstring for identity of the invalid emergency service + */ + modulepar charstring PX_IMS_SUT_EMERGENCY_SERVICE_INVALID := "service.sos.invalid"; + } // End of group EMERGENCY service + + group SUT_IBCF { + /** @desc charstring for SUT/IBCF1 IP address to exchange SIP messages + */ + modulepar charstring PX_IMS_SUT_IBCF1_IPADDR := "172.31.10.5"; + + /** @desc integer for SUT/IBCF1 port number to exchange SIP messages + */ + modulepar integer PX_IMS_SUT_IBCF1_PORT := 5060; + + /** @desc charstring for SUT/IBCF1 domain + */ + modulepar charstring PX_IMS_SUT_IBCF1_HOME_DOMAIN := "ibcf1.sut.net"; + + /** @desc charstring for SUT/IBCF2 IP address to exchange SIP messages + */ + modulepar charstring PX_IMS_SUT_IBCF2_IPADDR := "172.31.10.6"; + + /** @desc integer for SUT/IBCF2 port number to exchange SIP messages + */ + modulepar integer PX_IMS_SUT_IBCF2_PORT := 5060; + + /** @desc charstring for SUT/IBCF2 domain + */ + modulepar charstring PX_IMS_SUT_IBCF2_HOME_DOMAIN := "ibcf2.sut.net"; + } // End of group SUT_IBCF + + group SUT_PCSCF { + /** @desc charstring for SUT/P-CSCF IP address to exchange SIP messages + */ + modulepar charstring PX_IMS_SUT_PCSCF_IPADDR := "172.31.10.2"; + + /** @desc integer for SUT/P-CSCF port number to exchange SIP messages + */ + modulepar integer PX_IMS_SUT_PCSCF_PORT := 5060; + + /** @desc charstring for SUT/P-CSCFdomain + */ + modulepar charstring PX_IMS_SUT_PCSCF_HOME_DOMAIN := "pcscf.sut.net"; + + /** @desc charstring for SUT/P-CSCF P_VisitedNetwork ID header (see RFC3455) + */ + modulepar charstring PX_IMS_SUT_PCSCF_VisitedNetworkID := "sut token"; + + /** @desc charstring for SUT/P-CSCF Min-SE header lower bound for the session refresh interval (see RFC4028) + */ + modulepar charstring PX_IMS_SUT_PCSCF_MinSE := "100"; + } // End of group SUT_PCSCF + + group SUT_SCSCF { + /** @desc charstring for SUT/S-CSCF IP address to exchange SIP messages + */ + modulepar charstring PX_IMS_SUT_SCSCF_IPADDR := "172.31.10.4"; + + /** @desc integer for SUT/S-CSCF port number to exchange SIP messages + */ + modulepar integer PX_IMS_SUT_SCSCF_PORT := 5060; + + /** @desc charstring for SUT/S-CSCFdomain + */ + modulepar charstring PX_IMS_SUT_SCSCF_HOME_DOMAIN := "scscf.sut.net"; + + /** @desc charstring for SUT/S-CSCF globally used realm name of IUT S-CSCF + */ + modulepar charstring PX_IMS_SUT_SCSCF_REALM := "realm.scscf"; + } // End of group SUT_SCSCF + + group SUT_ICSCF { + /** @desc charstring for SUT/I-CSCF IP address to exchange SIP messages + */ + modulepar charstring PX_IMS_SUT_ICSCF_IPADDR := "172.31.10.3"; + + /** @desc integer for SUT/I-CSCF port number to exchange SIP messages + */ + modulepar integer PX_IMS_SUT_ICSCF_PORT := 5060; + + /** @desc charstring for SUT/I-CSCFdomain + */ + modulepar charstring PX_IMS_SUT_ICSCF_HOME_DOMAIN := "icscf.sut.net"; + } // End of group SUT_ICSCF + + group SUT_AS { + /** @desc charstring for SUT - AS IP address to exchange SIP messages - connection point for SCSCF + */ + modulepar charstring PX_IMS_SUT_AS_IPADDR := "172.31.10.7"; + + /** @desc integer for SUT - AS port number to exchange SIP messages - connection point for SCSCF + */ + modulepar integer PX_IMS_SUT_AS_PORT := 5060; + + /** @desc charstring for SUT/AS domain + */ + modulepar charstring PX_IMS_SUT_AS_HOME_DOMAIN := "as.sut.net"; + + } // End of group SUT_AS + + group SUT_IMGCF { + /** @desc charstring for SUT/I-MGCF IP address to exchange SIP messages + */ + modulepar charstring PX_IMS_SUT_IMGCF_IPADDR := "172.31.10.10"; + + /** @desc integer for SUT/I-MGCF port number to exchange SIP messages + */ + modulepar integer PX_IMS_SUT_IMGCF_PORT := 5060; + + /** @desc charstring for SUT/I-MGCFdomain + */ + modulepar charstring PX_IMS_SUT_IMGCF_HOME_DOMAIN := "imgcf.sut.net"; + } // End of group SUT_IMGCF + + group SUT_CONF { + /** + * @desc + * charstring for SUT/conference IP address to exchange SIP messages + */ + modulepar charstring PX_IMS_SUT_CONF_IPADDR := "172.31.10.10"; + /** + * @desc integer for SUT/conference port number to exchange SIP messages + */ + modulepar integer PX_IMS_SUT_CONF_PORT := 5060; + /** + * @desc charstring for SUT/conference domain + */ + modulepar charstring PX_IMS_SUT_CONF_HOME_DOMAIN := "conf.sut.net"; + /** + * @desc charstring for conference factory URI name + */ + modulepar charstring PX_IMS_SUT_CONF_FACTORY_NAME := "factory.uri.name"; + } // End of group SUT_CONF + + } // End of group SUT + + group ts_ue1 { + + /** @desc charstring for IP address used by the UE1 to exchange SIP messages + */ + modulepar charstring PX_IMS_TS_UE1_IPADDR := "conftest.plugtests.net"; + + /** @desc integer for port number used by the UE1 to exchange SIP messages + */ + modulepar integer PX_IMS_TS_UE1_PORT := 5060; + + /** @desc charstring for visited(TS) REGISTRAR domain + */ + modulepar charstring PX_IMS_TS_UE1_REGISTRAR := "plugtests.net"; + + } // End of group ts_ue1 + } // end module AtsSccas_PIXITS diff --git a/ttcn/AtsSccas/AtsSccas_Steps.ttcn b/ttcn/AtsSccas/AtsSccas_Steps.ttcn new file mode 100644 index 0000000..c7aae9a --- /dev/null +++ b/ttcn/AtsSccas/AtsSccas_Steps.ttcn @@ -0,0 +1,351 @@ +module AtsSccas_Steps { + // LibSip + import from LibSip_SIPTypesAndValues all; + import from LibSip_SDPTypes all; + import from LibSip_Steps all; + import from LibSip_Templates all; + import from LibSip_Interface all; + import from LibSip_PIXITS all; + + // LibIms + import from LibIms_SIPTypesAndValues all; + import from LibIms_Steps all; + import from LibIms_Templates all; + import from LibIms_Interface all; + + // AtsSccas + import from AtsSccas_PIXITS all; + + group Constants { + + group SdpUserProfileConstants { + + const integer c_userProfile_Vendor1 := 1; + + } // End of group SdpUserProfileConstants + + group UserProfileConstants { + // number of user profile (RESERVED: from 1-10 for SIP profile) + const integer c_userProfile_UE1atSUThome := 11; // location is SUT domain + const integer c_userProfile_UE2atSUThome := 12; // location is SUT domain + const integer c_userProfile_UE3atSUThome := 13; // location is SUT domain + const integer c_userProfile_UE4atSUThome := 14; // location is SUT domain + const integer c_userProfile_UE1atSUTvisiting := 21; // location is SUT domain + //const integer c_userProfile_UE2atSUTvisiting := 22; // location is SUT domain + const integer c_userProfile_IBCFwithUnknownUE := 28; // location is IMS1 domain + const integer c_userProfile_IBCFwithHomeUE := 29; // location is IMS1 domain + const integer c_userProfile_IBCFwithVisitingUE := 31; // location is IMS1 domain + const integer c_userProfile_PCSCFwithHomeUE := 41; // location is IMS1 domain + const integer c_userProfile_PCSCFwithVisitingUE := 42; // location is IMS1 domain + const integer c_userProfile_PCSCFwithVisitingUE2 := 43; // location is IMS1 domain + const integer c_userProfile_PCSCFwithUnknownVisitingUE := 44; // location is IMS1 domain + const integer c_userProfile_ICSCFwithHomeUE := 45; // location is IMS1 domain + const integer c_userProfile_SCSCFwithHomeUE := 46; // location is IMS1 domain + const integer c_userProfile_SCSCFwithHomeUE_domain :=55; + const integer c_userProfile_ECSCFwithHomeUE := 47; // location is IMS1 domain + const integer c_userProfile_ISUP := 49; // + const integer c_userProfile_AS1 := 51; // Isc userProfile at AS1 + const integer c_userProfile_AS2 := 52; // Isc userProfile at AS2 + + const integer c_userProfile_ESINetSubscriber := 53; + const integer c_userProfile_ESINetPSAP := 54; + const integer c_userProfile_ESINetUpstreamElement := 55; + + // number of interface profile + const integer c_interfaceProfile_IMS_SUT_IBCF1 := 100; // Ic interface at IBCF1 located in SUT + const integer c_interfaceProfile_IMS_SUT_IBCF2 := 101; // Ic interface at IBCF2 located in SUT + const integer c_interfaceProfile_IMS_SUT_PCSCF1 := 110; // Gm interface towards UE1 located in SUT + const integer c_interfaceProfile_IMS_SUT_PCSCF2 := 111; // Gm interface towards UE2 located in SUT + const integer c_interfaceProfile_IMS_SUT_PCSCF := 112; // Mw interface at P-CSCF located in SUT + const integer c_interfaceProfile_IMS_SUT_SCSCF := 113; // Mw interface at S-CSCF located in SUT + const integer c_interfaceProfile_IMS_SUT_ICSCF := 114; // Mw interface at I-CSCF located in SUT + const integer c_interfaceProfile_IMS_SUT_MGCF := 115; // Mw interface at MGCF located in SUT + const integer c_interfaceProfile_IMS_SUT_AS := 116; // Isc interface at AS located in SUT + const integer c_interfaceProfile_IMS_SUT_ECSCF := 117; // Mw interface at E-CSCF located in SUT + const integer c_interfaceProfile_IMS_SUT_BCF := 118; // SIP interface at BCF located in SUT + const integer c_interfaceProfile_SUT_LIS := 119; + const integer c_interfaceProfile_SUT_ECRF := 120; + const integer c_interfaceProfile_SUT_ESRP := 121; + + // number of conference profile + const integer c_conferenceProfile_factoryURI := 800; // conference factory URI + + // number of service profile + const integer c_serviceProfile_EMERGENCY := 112; + const integer c_serviceProfile_EMERGENCY_INVALID := 666; + const integer c_serviceProfile_SUBSCRIBER := 115; + const integer c_serviceProfile_SUBSCRIPTION_SERVICE := 116; + + // number of SIPURL identifiers + const integer c_interfaceSIPURL_IMS_SUT_PCSCF1_domain := 1101; // c_interfaceProfile_IMS_SUT_PCSCF1 + const integer c_interfaceSIPURL_IMS_SUT_PCSCF1_ip := 1102; // c_interfaceProfile_IMS_SUT_PCSCF1 + + } // End of group UserProfileConstants + + } // End of group Constants + + group globalSteps { + + /* + * + * @desc sets user parameters with PIXIT values + * @param p_user identifies the selected user configuration and location + * @verdict + */ + function f_init_sdp_userprofile( + inout SDP_Message p_loc_SDP, + in integer p_user, // TODO To be removed + in integer p_sdp_user + ) runs on ImsComponent { + + select(p_sdp_user){ + case (c_userProfile_UE1atSUThome) { // variant c_userProfile_UE1atSUThome + p_loc_SDP := valueof( + m_SDP_mediaList( + { + { { c_audio, { 20000, omit}, "RTP/AVP", {"0"} }, omit, omit, omit, omit, omit }, + { { c_video, { 20002, omit}, "RTP/AVP", {"31"} }, omit, omit, omit, omit, omit } + }, + vc_userprofile + ) + ); + vc_sdp_local.origin.user_name := PX_IMS_SUT_UE1_PUBLIC_USER; + vc_sdp_local.origin.session_id := "2890844526"; + vc_sdp_local.origin.session_version := "2890842807"; + vc_sdp_local.origin.addr := "atlanta.example.com"; + vc_sdp_local.session_name := "c_userProfile_UE1atSUThome"; + f_append_media_attribute(vc_sdp_local, { rtpmap := {"0", {"PCMU", "8000", omit} } } ); + f_append_media_attribute(vc_sdp_local, { rtpmap := {"31", {"H261", "90000", omit} } } ); + f_append_media_attribute(vc_sdp_local, { sendrecv := { } } ); + } // c_userProfile_UE1atSUThome + case (c_userProfile_Vendor1) { //variant c_userProfile_Vendor1 + p_loc_SDP := valueof( + m_SDP_mediaList( + { + { { c_audio, { 10500, omit}, "RTP/AVP", {"8", "0", "18", "4", "96", "97"} }, omit, omit, omit, omit, omit } + }, + vc_userprofile + ) + ); + vc_sdp_local.origin.user_name := "FAST_V2R1"; + vc_sdp_local.origin.session_id := "2006"; + vc_sdp_local.origin.session_version := "2007"; + vc_sdp_local.origin.addr := "155.11.49.64"; + vc_sdp_local.session_name := "-"; + f_append_media_attribute(vc_sdp_local, { rtpmap := {"0", {"PCMU", "8000", omit} } } ); + f_append_media_attribute(vc_sdp_local, { rtpmap := {"18", {"G729", "8000", omit} } } ); + f_append_media_attribute(vc_sdp_local, { rtpmap := {"4", {"G723", "8000", omit} } } ); + f_append_media_attribute(vc_sdp_local, { rtpmap := {"96", {"AMR", "8000", omit} } } ); + f_append_media_attribute(vc_sdp_local, { rtpmap := {"97", {"telephone-event", "8000", omit} } } ); + f_append_media_attribute(vc_sdp_local, { fmtp := { "97", { unstructured := "0-15" } } } ); + f_append_media_attribute(vc_sdp_local, { sendrecv := { } } ); + } // c_userProfile_Huawei + } // End of 'select' statement + + log("<<< f_init_sdp_userprofile: p_loc_SDP= ", p_loc_SDP); + } // End of function f_init_sdp_userprofile + + /* + * + * @desc sets user parameters with PIXIT values + * @param p_user identifies the selected user configuration and location + * @verdict + */ + function f_init_userprofile( + in integer p_user + ) runs on ImsComponent { + + select(p_user){ + case (c_userProfile_UE1atSUThome) { //variant c_userProfile_UE1atSUThome + vc_userprofile.id := p_user; + vc_userprofile.currPort := PX_IMS_TS_UE1_PORT; + vc_userprofile.currIpaddr := PX_IMS_TS_UE1_IPADDR; + vc_userprofile.contactPort := PX_IMS_TS_UE1_PORT; + vc_userprofile.contactIpaddr := PX_IMS_TS_UE1_IPADDR; + vc_userprofile.bearerIpaddr := PX_IMS_SUT_UE1_BEARER_IPADDR; + vc_userprofile.homeDomain := PX_IMS_SUT_UE1_HOME_DOMAIN; + vc_userprofile.publUsername := PX_IMS_SUT_UE1_PUBLIC_USER; + vc_userprofile.qop := PX_IMS_SUT_UE1_QOP; + vc_userprofile.privUsername := PX_IMS_SUT_UE1_PRIVAT_USERNAME; + vc_userprofile.passwd := PX_IMS_SUT_UE1_PRIVAT_PASSWD; + vc_userprofile.registrarDomain := PX_IMS_SUT_UE1_REGISTRAR; + } + } // End of 'select' statement + + } // End of function f_init_userprofile + + function f_initSipUrlFromCharstring(charstring p_uri) return SipUrl { + var charstring v_scheme := regexp(p_uri, charstring:"(sip[s]#(0,1)):([^@\\s]+)@?+", 0); + var charstring v_user := regexp(p_uri, charstring:"(sip[s]#(0,1)):([^@\\s]+)@?+", 1); + var charstring v_host_port := regexp(p_uri, charstring:"(sip[s]#(0,1)):([^@\\s]+)@(?+)", 2); + var charstring v_host := ""; + var charstring v_port := ""; + + template charstring t_has_port := pattern "?+:?+"; + if (match(v_host_port,t_has_port)) { + v_host := regexp(v_host_port, charstring:"(?+):(?+)",0); + v_port := regexp(v_host_port, charstring:"(?+):(?+)",1); + } else { + v_host := v_host_port; + v_port := "5060"; + } + + var SipUrl p_sipUrl := { + scheme := v_scheme, // contains "sip" + components := { + sip := { + userInfo := {userOrTelephoneSubscriber:=v_user, password:=omit}, + hostPort := { + host := v_host, // hostname, IPv4 or IPv6 + portField := str2int(v_port) // represented as an integer + } + } + }, + urlParameters := omit, + headers := omit + }; + + return(p_sipUrl) + } + + function f_initSipUrl( + in integer p_user + ) return SipUrl { + var SipUrl p_sipUrl := { + scheme := c_sipScheme, // contains "sip" + components := { + sip := { + userInfo := omit, + hostPort := { + host := omit, // hostname, IPv4 or IPv6 + portField := omit // represented as an integer + } + } + }, + urlParameters := omit, + headers := omit + }; + + select(p_user) { + case (c_userProfile_UE1atSUThome) { + p_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE1_PUBLIC_USER, password:=omit}; + p_sipUrl.components.sip.hostPort := {host := PX_IMS_SUT_UE1_HOME_DOMAIN, portField :=omit} + } + case (c_userProfile_UE2atSUThome) { + p_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_UE2_PUBLIC_USER, password:=omit}; + p_sipUrl.components.sip.hostPort := {host := PX_IMS_SUT_UE2_HOME_DOMAIN, portField :=omit} + } + case (c_serviceProfile_EMERGENCY) { + p_sipUrl.components.sip.userInfo := {userOrTelephoneSubscriber:=PX_IMS_SUT_EMERGENCY_SERVICE, password:=omit}; + p_sipUrl.components.sip.hostPort := {host := PX_IMS_SUT_EMERGENCY_HOME_DOMAIN, portField :=omit} + } + case (c_serviceProfile_SUBSCRIBER) { + p_sipUrl.components.sip.userInfo := { userOrTelephoneSubscriber := PX_IMS_SUT_UE1_PUBLIC_USER, password := omit}; + p_sipUrl.components.sip.hostPort := {host := PX_IMS_SUT_UE1_HOME_DOMAIN, portField :=omit} + } + + }; // End of 'select' statement + + return(p_sipUrl) + } // End of function f_initSipUrl + + + function f_initTelUrl( + in charstring p_subscriber + ) return SipUrl { + var SipUrl p_sipUrl := { + scheme := c_telScheme, // contains "tel" + components := { + tel := { + subscriber := p_subscriber + } + }, + urlParameters := omit, + headers := omit + }; + + return(p_sipUrl) + } // End of function f_initTelUrl + + function f_initUrnUrl( + in charstring p_namespaceId, + in charstring p_namespaceSpecificString + ) return SipUrl { + var SipUrl p_sipUrl := { + scheme := c_urnScheme, // contains "urn" + components := { + urn := { + namespaceId := p_namespaceId, + namespaceSpecificString := p_namespaceSpecificString + } + }, + urlParameters := omit, + headers := omit + }; + + return(p_sipUrl) + } // End of function f_initUrnUrl + + /* + * @desc sets user parameters with PIXIT values + * @param p_user identifies the selected user configuration and location + * @verdict + */ + function f_init_interfaceprofile( + in integer p_interface + ) runs on ImsComponent { + + vc_sent_label := { host := PX_IMS_SUT_UE_IPADDR, portField := PX_IMS_SUT_UE_PORT }; + + select(p_interface){ + case (c_interfaceProfile_IMS_SUT_IBCF1) { //variant c_interfaceProfile_IMS_SUT_IBCF1 + vc_interfaceprofile.SUTPort := PX_IMS_SUT_IBCF1_PORT; + vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_IBCF1_IPADDR; + vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_IBCF1_HOME_DOMAIN; + } + case (c_interfaceProfile_IMS_SUT_IBCF2) { //variant c_interfaceProfile_IMS_SUT_IBCF2 + vc_interfaceprofile.SUTPort := PX_IMS_SUT_IBCF2_PORT; + vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_IBCF2_IPADDR; + vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_IBCF2_HOME_DOMAIN; + } + case (c_interfaceProfile_IMS_SUT_PCSCF1) { //variant c_interfaceProfile_IMS_SUT_PCSCF1 + vc_interfaceprofile.SUTPort := PX_IMS_SUT_PCSCF1_PORT; + vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_PCSCF1_IPADDR; + vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_PCSCF1_HOME_DOMAIN; + } + case (c_interfaceProfile_IMS_SUT_PCSCF2) { //variant c_interfaceProfile_IMS_SUT_PCSCF2 + vc_interfaceprofile.SUTPort := PX_IMS_SUT_PCSCF2_PORT; + vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_PCSCF2_IPADDR; + vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_PCSCF2_HOME_DOMAIN; + } + case (c_interfaceProfile_IMS_SUT_PCSCF) { //variant c_interfaceProfile_IMS_SUT_PCSCF + vc_interfaceprofile.SUTPort := PX_IMS_SUT_PCSCF_PORT; + vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_PCSCF_IPADDR; + vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_PCSCF_HOME_DOMAIN; + } + case (c_interfaceProfile_IMS_SUT_SCSCF) { //variant c_interfaceProfile_IMS_SUT_SCSCF + vc_interfaceprofile.SUTPort := PX_IMS_SUT_SCSCF_PORT; + vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_SCSCF_IPADDR; + vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_SCSCF_HOME_DOMAIN; + } + case (c_interfaceProfile_IMS_SUT_ICSCF) { //variant c_interfaceProfile_IMS_SUT_ICSCF + vc_interfaceprofile.SUTPort := PX_IMS_SUT_ICSCF_PORT; + vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_ICSCF_IPADDR; + vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_ICSCF_HOME_DOMAIN; + } + case (c_interfaceProfile_IMS_SUT_MGCF) { //variant c_interfaceProfile_IMS_SUT_MGCF + vc_interfaceprofile.SUTPort := PX_IMS_SUT_IMGCF_PORT; + vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_IMGCF_IPADDR; + vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_IMGCF_HOME_DOMAIN; + } + case (c_interfaceProfile_IMS_SUT_AS) { //variant c_interfaceProfile_IMS_SUT_AS + vc_interfaceprofile.SUTPort := PX_IMS_SUT_AS_PORT; + vc_interfaceprofile.SUTIpaddr := PX_IMS_SUT_AS_IPADDR; + vc_interfaceprofile.SUTHomeDomain := PX_IMS_SUT_AS_HOME_DOMAIN; + } + } + } // End of function f_init_interfaceprofile + + } // End of group globalSteps + +} // End of module AtsSccas_Steps -- GitLab From a69019518df635332d3415bcb24c0dc93e9df875 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Tue, 30 Aug 2022 09:59:58 +0200 Subject: [PATCH 059/202] new TP TP_ISC_SCCAS_CPT_INV_03 --- .../sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index a5e0abc..c786264 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -278,6 +278,56 @@ Package TP_SCCAS { Group "9.3.4 SCC AS procedures for CS to PS access transfer with MSC server assisted mid-call feature" { + import all from Sip_Common; + + + Test Purpose { + TP Id TP_ISC_SCCAS_CPT_INV_03 + + Test objective "Verify that the SCC AS applys the MSC Server assisted mid-call" + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.4 and 6A.4.3" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS + // TODO: SCC AS supports the MSC Server assisted mid-call feature according to operator policy + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + Contact containing + g3gppMidcallMediaFeature Tag;; + + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_2xx_Any containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + FeatureCaps containing g3gppMidcallMediaFeature;; // 6A.4.3 + + to the IMS_S_CSCF entity + } + + } + + } // end TP TP_ISC_SCCAS_CPT_INV_03 + -- GitLab From a0073e2167eec9a0fa79777aef8ffda42cb06a2d Mon Sep 17 00:00:00 2001 From: YannGarcia Date: Tue, 30 Aug 2022 10:27:13 +0200 Subject: [PATCH 060/202] Update AtsSccas_Templates.ttcn module --- .../AtsSccas_TCFunctions_TS124292.ttcn | 35 ++++++++++++------- ttcn/AtsSccas/AtsSccas_Templates.ttcn | 25 +++++++++++++ 2 files changed, 47 insertions(+), 13 deletions(-) diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn index 71a7657..76f5693 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn @@ -27,7 +27,9 @@ module AtsSccas_TCFunctions_TS124292 { // AtsSccas // import from AtsSccas_TestSystem all; - import from AtsSccas_PICS all; + import from AtsSccas_Templates all; + import from AtsSccas_Steps all; + import from AtsSccas_PICS all; import from AtsSccas_PIXITS all; group isc_registration { @@ -38,26 +40,33 @@ module AtsSccas_TCFunctions_TS124292 { */ function f_TC_ISC_SCCAS_MSC_REG_01(in CSeq p_cSeq_s) runs on ImsComponent { // Local variables - var template REGISTER_Request v_register; + var CSeq v_cSeq_s; // Preambule - 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 - )); + f_init_userprofile(c_userProfile_UE1atSUThome); + f_initSipUrl(c_serviceProfile_EMERGENCY); + f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync // Registration - + f_awaitingRegistration_IMS( + v_cSeq_s, + valueof(m_SipUrl_currDomain(vc_userprofile)), + PX_IMS_SUT_UE1_QOP, + mw_msc_register( + -, -, -, -, + mw_Authorization_digest( + mw_digestResponse( + ( + {"username", {tokenOrHost := PX_IMS_SUT_UE1_PRIVAT_USERNAME}}, + c_Integrity_protected_yes, + c_Integrity_protected_ip_assoc_pending + ) + )))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // Deregistration - + f_IMS_postamble_withDeRegistration(p_cSeq_s); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // End of function f_TC_ISC_SCCAS_MSC_REG_01 diff --git a/ttcn/AtsSccas/AtsSccas_Templates.ttcn b/ttcn/AtsSccas/AtsSccas_Templates.ttcn index 6ef8091..97e884a 100644 --- a/ttcn/AtsSccas/AtsSccas_Templates.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Templates.ttcn @@ -10,6 +10,8 @@ module AtsSccas_Templates //LibSip import from LibSip_SIPTypesAndValues all; import from LibSip_Templates all; + //LibIms + import from LibIms_Templates all; group HeaderTemplates { @@ -25,6 +27,29 @@ module AtsSccas_Templates }//end group request_sent group request_receive { + + + group msc { + + template (present) LibSip_SIPTypesAndValues.Contact mw_sccas_contact( + template (present) ContactBody p_contact_body := ? + ) := { + contactBody := p_contact_body + } // End of template mw_sccas_contact + + template (present) REGISTER_Request mw_msc_register( + template (present) Path p_Path := ?, + template (present) PChargingVector p_pChargingVector := ?, + template (present) PVisitedNetworkID p_pVisitedNetworkID := ?, + template (present) LibSip_SIPTypesAndValues.Contact p_contact := mw_sccas_contact, + template (present) Authorization p_authorization := mw_Authorization_digest + ) modifies mw_REGISTER_Request_IMS := { + msgHeader := { + contact := p_contact, + authorization := p_authorization + } + } // End of template mw_msc_register + } }//end group request_receive }//end group modified_templates }//end group MessageTemplates -- GitLab From 3541dc53412432c58e5ecd675aa6c345d095992e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Tue, 30 Aug 2022 12:06:10 +0200 Subject: [PATCH 061/202] new TP for 9.3.5.1 --- .../sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 66 ++++++++++++++++++- 1 file changed, 63 insertions(+), 3 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index c786264..036ccf4 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -284,7 +284,7 @@ Package TP_SCCAS { Test Purpose { TP Id TP_ISC_SCCAS_CPT_INV_03 - Test objective "Verify that the SCC AS applys the MSC Server assisted mid-call" + Test objective "Verify that the SCC AS Conditions for selecting a sessions in an early dialog phase" Reference "ETSI TS 124 237 [1], Clauses 9.3.4 and 6A.4.3" @@ -308,7 +308,7 @@ Package TP_SCCAS { Via indicating value PX_UE_A_VIA, Route indicating value PX_UE_A_SERVICE_ROUTE, Contact containing - g3gppMidcallMediaFeature Tag;; + g3gppSrvccAlertingFeatureCapabilityIndicator Tag;; from the IMS_S_CSCF entity } @@ -319,7 +319,8 @@ Package TP_SCCAS { CallId indicating value PX_UE_A_CALLID, Via indicating value PX_UE_A_VIA, Route indicating value PX_UE_A_SERVICE_ROUTE, - FeatureCaps containing g3gppMidcallMediaFeature;; // 6A.4.3 + FeatureCaps containing + g3gppMidcallFeatureCapabilityIndicator;; to the IMS_S_CSCF entity } @@ -335,6 +336,65 @@ Package TP_SCCAS { Group "9.3.5 SCC AS procedures for PS to CS dual radio access transfer of calls in an early dialog phase" { + + Group "9.3.5.1 Conditions for selecting a sessions in an early dialog phase" + { + import all from Sip_Common; + + + Test Purpose { + TP Id TP_ISC_SCCAS_CPT_INV_04 + + // An early session is subject for PS to CS dual radio access transfer when one of the following conditions is fulfilled: + // d. the Contact header field provided by the SC UE towards the SCC AS in the initial SIP INVITE request + // included the g.3gpp.drvcc-alerting media feature tag field as described in annex C; + + Test objective "Verify that the SCC AS accepts conditions in an early dialog phase" + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.5.1" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS + // TODO: SCC AS supports the MSC Server g.3gpp.drvcc-alerting feature + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + Contact containing + g3gppDrvccAlertingFeature tag;; //Annex C.15 + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_2xx_Any containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + FeatureCaps containing + g3gppDrvccAlertingFeatureCapabilityIndicator;; + to the IMS_S_CSCF entity + } + + } + + } // end TP TP_ISC_SCCAS_CPT_INV_04 + } // end group 9.3.5.1 Conditions for selecting a sessions in an early dialog phase + + + Group "9.3.5.2 SCC AS procedures for PS to CS dual radio access transfer of a originating session in the alerting phase" { -- GitLab From 9f40f882a55aab61737d6b2304472c546ffdfd19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Tue, 30 Aug 2022 13:25:04 +0200 Subject: [PATCH 062/202] added TP 9.3.5.1 --- test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index 036ccf4..433a86a 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -282,7 +282,7 @@ Package TP_SCCAS { Test Purpose { - TP Id TP_ISC_SCCAS_CPT_INV_03 + TP Id TP_ISC_SCCAS_CPT_INV_05 Test objective "Verify that the SCC AS Conditions for selecting a sessions in an early dialog phase" -- GitLab From 1a8798f67ca8e906d2aa9713265e281b5ded4509 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Tue, 30 Aug 2022 16:34:18 +0200 Subject: [PATCH 063/202] new group 9.3.7 --- .../sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 75 ++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index 433a86a..9e5b98a 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -282,7 +282,7 @@ Package TP_SCCAS { Test Purpose { - TP Id TP_ISC_SCCAS_CPT_INV_05 + TP Id TP_ISC_SCCAS_CPT_INV_03 Test objective "Verify that the SCC AS Conditions for selecting a sessions in an early dialog phase" @@ -1062,5 +1062,78 @@ Package TP_SCCAS { } // end Group "9.3.6 Removal of non-transferred audio media components and release of source access legs" + + Group "9.3.7 SCC AS procedures for CS to PS dual radio access transfer for calls in an early phase" + { + + Group "9.3.7.2 SCC AS procedures for CS to PS dual radio access transfer for originating calls in pre-alerting phase or in alerting phase on the originating side" + { + + import all from Sip_Common; + + Test Purpose { + + TP Id TP_ISC_SCCAS_xxx_yyy_01 + + + + Test objective "Verify that ..." + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.7.2." + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS + + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an r_180_Ringing + + + + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an UPDATE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + ContentType indicating value "application/sdp", + ContentLength, + MessageBody containing + SDP containing + Media indicating value "TODO: the source access leg contains media components other than speech media component";;; + to the IMS_S_CSCF entity + } + } + + + } + } // end Group 9.3.7.2 SCC AS procedures for CS to PS dual radio access transfer for originating calls in pre-alerting phase or in alerting phase on the originating side" + + + Group "9.3.7.3 SCC AS procedures for CS to PS dual radio access transfer for a call in the alerting phase on the terminating side" + { + + } // end Group"9.3.7.3 SCC AS procedures for CS to PS dual radio access transfer for a call in the alerting phase on the terminating side + + + Group "9.3.7.4 SCC AS procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase" + { + + } // end Group 9.3.7.4 SCC AS procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase + + + } // end Group 9.3.7 SCC AS procedures for CS to PS dual radio access transfer for calls in an early phase + } // End of Package TP_SCCAS -- GitLab From 04e9c4d2cdd5e4c4c58b3b0706f9cc275f14b0da Mon Sep 17 00:00:00 2001 From: YannGarcia Date: Wed, 31 Aug 2022 10:04:22 +0200 Subject: [PATCH 064/202] Update f_TC_ISC_SCCAS_MSC_REG_01 and f_TC_ISC_SCCAS_MSC_REG_02 functions --- .../AtsSccas_TCFunctions_TS124292.ttcn | 132 +++++++++++++++--- ttcn/AtsSccas/AtsSccas_Templates.ttcn | 24 +++- 2 files changed, 133 insertions(+), 23 deletions(-) diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn index 76f5693..847f1e6 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn @@ -46,6 +46,7 @@ module AtsSccas_TCFunctions_TS124292 { f_init_userprofile(c_userProfile_UE1atSUThome); f_initSipUrl(c_serviceProfile_EMERGENCY); f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1); + action("Please register UE") f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync // Registration @@ -54,19 +55,30 @@ module AtsSccas_TCFunctions_TS124292 { valueof(m_SipUrl_currDomain(vc_userprofile)), PX_IMS_SUT_UE1_QOP, mw_msc_register( - -, -, -, -, - mw_Authorization_digest( + -, + mw_pChargingVector(-, *), // TODO To be refined during validation - Clause 6.3.2 Initial registration Point 11 + mw_pVisitedNetworkID(?), // TODO To be refined during validation - Clause 6.3.2 Initial registration Point 12 + -, // See helper f_check_contact_msc + mw_Authorization_digest( // Clause 6.3.2 Initial registration Point 4 mw_digestResponse( ( {"username", {tokenOrHost := PX_IMS_SUT_UE1_PRIVAT_USERNAME}}, - c_Integrity_protected_yes, - c_Integrity_protected_ip_assoc_pending - ) - )))); + {"realm", {tokenOrHost := PX_IMS_SUT_UE1_PUBLIC_USER}}, + {"integrity-protected", {tokenOrHost := "auth-done"}}, + {"nonce", {tokenOrHost := ""}} + )) + ), + m_expires(600000), // Clause 6.3.2 Initial registration Point 7 + mw_supported_gruu, // Clause 6.3.2 Initial registration Point 8 + mw_require_path, // Clause 6.3.2 Initial registration Point 9 + mw_pAccessNetworkInfo // TODO To be refined during validation - Clause 6.3.2 Initial registration Point 13 + )); + // Check vc_request.msgHeader.contact for 3GPP requirement + f_check_contact_msc(vc_request.msgHeader.contact); // Clause 6.3.2 Initial registration Point 5 + f_check_via_msc(vc_request.msgHeader.via); // Clause 6.3.2 Initial registration Point 6 f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // Deregistration - f_IMS_postamble_withDeRegistration(p_cSeq_s); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // End of function f_TC_ISC_SCCAS_MSC_REG_01 @@ -77,26 +89,45 @@ module AtsSccas_TCFunctions_TS124292 { */ function f_TC_ISC_SCCAS_MSC_REG_02(in CSeq p_cSeq_s) runs on ImsComponent { // Local variables - var template REGISTER_Request v_register; + var CSeq v_cSeq_s; // Preambule - 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 - )); + f_init_userprofile(c_userProfile_UE1atSUThome); + f_initSipUrl(c_serviceProfile_EMERGENCY); + f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1); + action("Please register UE") f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync // Registration - + f_awaitingRegistration_IMS( + v_cSeq_s, + valueof(m_SipUrl_currDomain(vc_userprofile)), + PX_IMS_SUT_UE1_QOP, + mw_msc_register( + -, + mw_pChargingVector(-, *), // TODO To be refined during validation - Clause 6.3.2 Initial registration Point 11 + mw_pVisitedNetworkID(?), // TODO To be refined during validation - Clause 6.3.2 Initial registration Point 12 + -, // See helper f_check_contact_msc + mw_Authorization_digest( // Clause 6.3.2 Initial registration Point 4 + mw_digestResponse( + ( + {"username", {tokenOrHost := PX_IMS_SUT_UE1_PRIVAT_USERNAME}}, + {"realm", {tokenOrHost := PX_IMS_SUT_UE1_PUBLIC_USER}}, + {"integrity-protected", {tokenOrHost := "auth-done"}}, + {"nonce", {tokenOrHost := ""}} + )) + ), + m_expires(600000), // Clause 6.3.2 Initial registration Point 7 + mw_supported_gruu, // Clause 6.3.2 Initial registration Point 8 + mw_require_path, // Clause 6.3.2 Initial registration Point 9 + mw_pAccessNetworkInfo // TODO To be refined during validation - Clause 6.3.2 Initial registration Point 13 + )); + // Check vc_request.msgHeader.contact for 3GPP requirement + f_check_contact_msc(vc_request.msgHeader.contact); // Clause 6.3.2 Initial registration Point 5 + f_check_via_msc(vc_request.msgHeader.via); // Clause 6.3.2 Initial registration Point 6 f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // Deregistration - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // End of function f_TC_ISC_SCCAS_MSC_REG_02 @@ -286,6 +317,67 @@ module AtsSccas_TCFunctions_TS124292 { } // End of function f_TC_ISC_SCCAS_MSC_CALL_ORG_02 - } // End of call_origination + } // End of group call_origination + + group helpers { + + // Check vc_request.msgHeader.contact for 3GPP requirement + function f_check_contact_msc(in Contact p_contact) runs on ImsComponent { + + if (ispresent(p_contact.contactBody.wildcard) == false) { + log("f_check_contact_msc: FAIL: Invalid contact content") + f_setVerdict(e_error); + return; + } + + // Looking for g.3gpp.icsi-ref + var template charstring m_found_pattern := pattern "*g.3gpp.icsi-ref*"; + if (regexp(p_contact.contactBody.wildcard, m_found_pattern, 0) == "") { + log("f_check_contact_msc: FAIL: g.3gpp.icsi-ref is not present") + f_setVerdict(e_error); // g.3gpp.icsi-ref is not present + return; + } + + // Looking for g.3gpp.icsi-ref media + m_found_pattern := pattern "*g.3gpp.icsi-ref media*"; + if (regexp(p_contact.contactBody.wildcard, m_found_pattern, 0) == "") { + log("f_check_contact_msc: FAIL: g.3gpp.icsi-ref media is not present") + f_setVerdict(e_error); // g.3gpp.icsi-ref media is not present + return; + } + + // not containing "reg-id" + m_found_pattern := pattern "*reg-id*"; + if (regexp(p_contact.contactBody.wildcard, m_found_pattern, 0) != "") { + log("f_check_contact_msc: FAIL: reg-id should not be present") + f_setVerdict(e_error); // reg-id should not be present + return; + } + + // Checking succeed, keep current status + } // End of f_check_contact_msc + + // Check vc_request.msgHeader.via for IP address or FQDN of the MSC Server + function f_check_via_msc(in Via p_via) runs on ImsComponent { + + for (var integer i := 0; i < lengthof(p_via.viaBody); i := i + 1) { + // TODO: check + /*record ViaBody { + SentProtocol sentProtocol, + HostPort sentBy, + SemicolonParam_List viaParams optional + } + record SentProtocol { + charstring protocolName, + charstring protocolVersion, + charstring transport + } +*/ + } // End of 'for' statement + + // Checking succeed, keep current status + } // End of function f_check_via_msc + + } // End of group helpers } // End of module AtsSccas_TCFunctions_TS124292 \ No newline at end of file diff --git a/ttcn/AtsSccas/AtsSccas_Templates.ttcn b/ttcn/AtsSccas/AtsSccas_Templates.ttcn index 97e884a..e5418eb 100644 --- a/ttcn/AtsSccas/AtsSccas_Templates.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Templates.ttcn @@ -37,16 +37,34 @@ module AtsSccas_Templates contactBody := p_contact_body } // End of template mw_sccas_contact + template(value) Supported mw_supported_gruu + modifies m_supported := { + optionsTags := {"gruu"} + } // End of template mw_supported_gruu + + template (present) PAccessNetworkInfo mw_pAccessNetworkInfo := { // TODO To be refined + fieldName := P_ACCESS_NETWORK_INFO_E, + accessType := ?, + genericParams := ? + } // End of template mw_pAccessNetworkInfo + template (present) REGISTER_Request mw_msc_register( template (present) Path p_Path := ?, template (present) PChargingVector p_pChargingVector := ?, template (present) PVisitedNetworkID p_pVisitedNetworkID := ?, template (present) LibSip_SIPTypesAndValues.Contact p_contact := mw_sccas_contact, - template (present) Authorization p_authorization := mw_Authorization_digest + template (present) Authorization p_authorization := mw_Authorization_digest, + template (present) Expires p_expires := ?, + template (present) Supported p_supported := ?, + template (present) Require p_require := ?, + template (present) PAccessNetworkInfo p_pPAccessNetworkInfo := ? ) modifies mw_REGISTER_Request_IMS := { msgHeader := { - contact := p_contact, - authorization := p_authorization + contact := p_contact, + authorization := p_authorization, + expires := p_expires, + supported := p_supported, + pAccessNetworkInfo := p_pPAccessNetworkInfo } } // End of template mw_msc_register } -- GitLab From 1d89faa23b7d92ce53fc6c6a61441a740bec5a81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Wed, 31 Aug 2022 11:40:54 +0200 Subject: [PATCH 065/202] new TP for 9.3.7.2 --- .../sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 69 +++++++++++++------ 1 file changed, 49 insertions(+), 20 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index 9e5b98a..827cdab 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -320,8 +320,10 @@ Package TP_SCCAS { Via indicating value PX_UE_A_VIA, Route indicating value PX_UE_A_SERVICE_ROUTE, FeatureCaps containing - g3gppMidcallFeatureCapabilityIndicator;; - + g3gppMidcallFeatureCapabilityIndicator;, + MessageBody containing + SDP containing + Media indicating value PX_PSMediaOnly;;; // TODO: PX for media only to the IMS_S_CSCF entity } @@ -1073,51 +1075,78 @@ Package TP_SCCAS { Test Purpose { - TP Id TP_ISC_SCCAS_xxx_yyy_01 + TP Id TP_ISC_SCCAS_CPT_INV_05 - + // When the SCC AS receives a SIP INVITE request due to static STI and if the SCC AS supports CS to PS dual radio + // access transfer for calls in alerting phase or CS to PS dual radio access transfer for originating calls in pre-alerting phase + // and: + // 2) if there are zero, one or more dialog in an early dialog phase such that: + // a) all dialogs are early dialogs created by the same SIP INVITE request; + // b) a SIP 180 (Ringing) response to the SIP INVITE request has not been received yet in any of the existing + // dialogs; + // c) a g.3gpp.drvcc-orig-pre-alerting media feature tag as described in annex C in the Contact header field was + // included in the SIP INVITE due to static STI; and + // d) the SCC AS supports CS to PS dual radio access transfer for originating calls in pre-alerting phase, + // then the SCC AS shall + // A) for each existing early dialog towards remote UEs send an SIP UPDATE request and populate as follows: + // a) the Contact header field set to the Contact header field provided on the source leg at the creation of the dialog + // with the remote UE; and + // b) a new SDP offer, including the media characteristics as received in the SIP INVITE request due to static STI, + // by following the rules of 3GPP TS 24.229 [2] - Test objective "Verify that ..." + Test objective "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" Reference "ETSI TS 124 237 [1], Clauses 9.3.7.2." Config Id CFG_SCCAS_01 - PICS Selection NONE // TODO + PICS Selection NONE Initial conditions with { the UE entity isRegisteredTo the IMS - + // the SCC AS supports CS to PS dual radio access transfer for originating calls in pre-alerting phase } Expected behaviour ensure that { - when { - the IUT entity receives an r_180_Ringing - - - + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + Contact containing + g3gppDrvccOrigPreAlertingFeature Tag;, // a g.3gpp.drvcc-orig-pre-alerting media feature tag as described in annex C in the Contact header field was + // included in the SIP INVITE due to static STI + MessageBody containing + SDP containing + Media indicating value PX_PSMedia;;; // TODO: PIX for media from the IMS_S_CSCF entity } then { - the IUT entity sends an UPDATE containing + the IUT entity sends an UPDATE containing From indicating value PX_UE_A_SIP_URI, To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, + CallId indicating value PX_UE_A_CALLID, Via indicating value PX_UE_A_VIA, Route indicating value PX_UE_A_SERVICE_ROUTE, - ContentType indicating value "application/sdp", - ContentLength, - MessageBody containing - SDP containing - Media indicating value "TODO: the source access leg contains media components other than speech media component";;; + // 1) set the Request-URI set to the URI contained in the Contact header field returned at the creation of the dialog + // with the remote UE; + Contact indicating value "set to the Contact header field provided on the source leg at the creation of the dialog",// a) the Contact header field set to the Contact header field provided on the source leg at the creation of the dialog with the remote UE; + ContentType indicating value "application/sdp", + MessageBody containing // 3) a new SDP offer, including: + SDP containing + Media indicating value PX_PSMedia; // TODO: PIX for media + ; + ; to the IMS_S_CSCF entity } } - } + } // end TP TP_ISC_SCCAS_CPT_INV_05 } // end Group 9.3.7.2 SCC AS procedures for CS to PS dual radio access transfer for originating calls in pre-alerting phase or in alerting phase on the originating side" -- GitLab From 6b9139446c8cb29c16b9f87a37bb8f837fda12cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Wed, 31 Aug 2022 13:17:51 +0200 Subject: [PATCH 066/202] added group 12.3.4 --- test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 index 7f15fa4..2e0f3f0 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 @@ -355,10 +355,13 @@ Package TP_SCCAS_Chapter_12_3 { } // end Group "12.3.3 SCC AS procedures for PS to CS SRVCC, abnormal case" -// Group "12.3.4 SCC AS procedures for PS to CS access transfer when call is in alerting phase or pre-alerting phase"{ -// -// import all from Sip_Common; -// } // end Group "12.3.4 SCC AS procedures for PS to CS access transfer when call is in alerting phase or pre-alerting phase" + Group "12.3.4 SCC AS procedures for PS to CS access transfer when call is in alerting phase or pre-alerting phase"{ + + import all from Sip_Common; + + + + } // end Group "12.3.4 SCC AS procedures for PS to CS access transfer when call is in alerting phase or pre-alerting phase" // // Group "12.3.5 SCC AS procedures for PS to CS access transfer: PS to CS SRVCC enhancement using ATCF"{ // -- GitLab From 3b285c29f4a23c582a5d1144b372027756f5fb03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Wed, 31 Aug 2022 14:02:37 +0200 Subject: [PATCH 067/202] new TPs for chapter 12.3.4 --- .../sccas/TP_SCCAS_Chapter_12_3.tplan2 | 137 +++++++++++++++++- 1 file changed, 134 insertions(+), 3 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 index 2e0f3f0..b585b04 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 @@ -356,10 +356,141 @@ Package TP_SCCAS_Chapter_12_3 { } // end Group "12.3.3 SCC AS procedures for PS to CS SRVCC, abnormal case" Group "12.3.4 SCC AS procedures for PS to CS access transfer when call is in alerting phase or pre-alerting phase"{ + + Group "12.3.4.2 SCC AS procedures for PS to CS access transfer for terminating call in alerting phase or pre-alerting phase using PS to CS SRVCC procedure" + { + import all from Sip_Common; - import all from Sip_Common; - - + Test Purpose { + + TP Id TP_ISC_SCCAS_PCT_INV_01 + + Test objective "Verify that SCC AS correctly recognizes and initiated for PS to CS access transfer for terminating call in pre-alerting phase using PS to CS SRVCC procedure" + + Reference + "ETSI TS 124 237 [1], Clause 12.3.4.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + Contact containing + g3gppps2csSrvccTermPreAlerting;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_183_SessionProgress + to the IMS_S_CSCF entity + + } + } + } // End of TP_ISC_SCCAS_PCT_INV_01 + + } // end Group "12.3.4.2 SCC AS procedures for PS to CS access transfer for terminating call in alerting phase or pre-alerting phase using PS to CS SRVCC procedure" + + Group "12.3.4.3 SCC AS procedures for PS to CS access transfer for originating call in alerting phase or pre-alerting phase using PS to CS SRVCC procedure" + { + + import all from Sip_Common; + + Test Purpose { + + TP Id TP_ISC_SCCAS_PCT_INV_02 + + Test objective "Verify that SCC AS correctly recognizes and initiated for PS to CS access transfer for originating call in pre-alerting phase using PS to CS SRVCC procedure" + + Reference + "ETSI TS 124 237 [1], Clause 12.3.4.3" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + Contact containing + g3gppPs2csSrvccOrigPreAlerting;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_183_SessionProgress // possible r_18x + to the IMS_S_CSCF entity + + } + } + } // End of TP_ISC_SCCAS_PCT_INV_02 + + } // end Group "12.3.4.3 SCC AS procedures for PS to CS access transfer for originating call in alerting phase or pre-alerting phase using PS to CS SRVCC procedure" + + Group "12.3.4.4 SCC AS procedures for PS to CS access transfer of additional call" + { + + import all from Sip_Common; + + Test Purpose { + + TP Id TP_ISC_SCCAS_PCT_INV_03 + + Test objective "Verify that SCC AS correctly procedures for PS to CS access transfer of additional call" + + Reference + "ETSI TS 124 237 [1], Clause 12.3.4.4" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS and + the IUT entity hasAchievedInitialINVITE // TODO: INVITE contains: g3gppSrvccAlerting + // TODO: and more conditions to distinguish subchapter from 12.3.4.2, 12.3.4.3 + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an r_180_Ringing + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an REFER containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + ReferSub indicating value false, + Supported indicating value "norefersub"; + to the IMS_S_CSCF entity + } + } + } // End of TP TP_ISC_SCCAS_PCT_INV_03 + + } // end Group 12.3.4.4 SCC AS procedures for PS to CS access transfer of additional call } // end Group "12.3.4 SCC AS procedures for PS to CS access transfer when call is in alerting phase or pre-alerting phase" // -- GitLab From c7aec3d6b40e38ca44b59c0b3295e6be5dc99f4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Wed, 31 Aug 2022 15:22:46 +0200 Subject: [PATCH 068/202] new TP 9.3.7.3 --- .../sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 64 ++++++++++++++++++- 1 file changed, 61 insertions(+), 3 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index 827cdab..649565e 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -1132,13 +1132,11 @@ Package TP_SCCAS { CallId indicating value PX_UE_A_CALLID, Via indicating value PX_UE_A_VIA, Route indicating value PX_UE_A_SERVICE_ROUTE, - // 1) set the Request-URI set to the URI contained in the Contact header field returned at the creation of the dialog - // with the remote UE; Contact indicating value "set to the Contact header field provided on the source leg at the creation of the dialog",// a) the Contact header field set to the Contact header field provided on the source leg at the creation of the dialog with the remote UE; ContentType indicating value "application/sdp", MessageBody containing // 3) a new SDP offer, including: SDP containing - Media indicating value PX_PSMedia; // TODO: PIX for media + Media indicating value PX_PSMedia; // TODO: PIX for media, media characteristics as received in the SIP INVITE request ; ; to the IMS_S_CSCF entity @@ -1152,7 +1150,67 @@ Package TP_SCCAS { Group "9.3.7.3 SCC AS procedures for CS to PS dual radio access transfer for a call in the alerting phase on the terminating side" { + import all from Sip_Common; + Test Purpose { + + // When the SCC AS receives a SIP INVITE request due to static STI and if SCC AS supports CS to PS dual radio access + // transfer for calls in alerting phase and: + // 1) if there is one dialog in an early dialog phase such that: + // a) a SIP 180 (Ringing) response to the SIP INVITE request has been received from the SC UE; and + // b) a g.3gpp.drvcc-alerting media feature tag as described in annex C in the Contact header field was included in + // the SIP INVITE request due to static STI, + // then the SCC AS shall send a SIP UPDATE request towards the remote UE populated as follows: + // 1) include the Contact header field set to the Contact header field provided on the source leg at the creation of the + // dialog with the remote UE; and + // 2) include a new SDP offer, including the media characteristics as received in the SIP INVITE request due to static + // STI, by following the rules of 3GPP TS 24.229 [2]. + + TP Id TP_ISC_SCCAS_CPT_INV_06 + + Test objective "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 " + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.7.3." + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS and + the IUT entity hasAchievedInitialINVITE // TODO: INVITE contains: g3gppDrvccAlerting + // SCC AS supports CS to PS dual radio access transfer for calls in alerting phase + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an r_180_Ringing + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an UPDATE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + Contact indicating value "set to the Contact header field provided on the source leg at the creation of the dialog",// a) the Contact header field set to the Contact header field provided on the source leg at the creation of the dialog with the remote UE; + ContentType indicating value "application/sdp", + MessageBody containing // 3) a new SDP offer, including: + SDP containing + Media indicating value PX_PSMedia; // TODO: PIX for media, media characteristics as received in the SIP INVITE request + ; + ; + to the IMS_S_CSCF entity + } + + } + + + } // end TP TP_ISC_SCCAS_CPT_INV_06 + } // end Group"9.3.7.3 SCC AS procedures for CS to PS dual radio access transfer for a call in the alerting phase on the terminating side -- GitLab From ae2ee70eb029a85c34487b2fe89b3fe09c51dfd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Wed, 31 Aug 2022 16:50:45 +0200 Subject: [PATCH 069/202] new TP TP_ISC_SCCAS_TER_BYE_01 --- .../sccas/TP_SCCAS_Chapter_12_3.tplan2 | 55 +++++++++++++++++-- 1 file changed, 51 insertions(+), 4 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 index b585b04..3ce354d 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 @@ -524,10 +524,57 @@ Package TP_SCCAS_Chapter_12_3 { // import all from Sip_Common; // } // end Group "12.3.10 SCC AS procedures for CS to PS SRVCC" // -// Group "12.3.11 SCC AS procedures when the access transfer is completed"{ -// -// import all from Sip_Common; -// } // end Group "12.3.11 SCC AS procedures when the access transfer is completed" + Group "12.3.11 SCC AS procedures when the access transfer is completed"{ + + import all from Sip_Common; + + + Test Purpose { + + TP Id TP_ISC_SCCAS_PCT_INV_03 + + Test objective "Verify that l" + + Reference + "ETSI TS 124 237 [1], Clause 12.3.4.4" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS and + the IUT entity hasAchievedInitialINVITE // TODO: INVITE contains: g3gppSrvccAlerting + // TODO: and more conditions to distinguish subchapter from 12.3.4.2, 12.3.4.3 + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a BYE containing + RequestUri indicating value PX_STNSR_URI, + From indicating value PX__SIP_URI, + To indicating value PX__SIP_URI, + CallId indicating value PX_STI_CALLID, + Via indicating value PX_STNSR_VIA, + Contact, + TargetDialog containing "dialog info from PS session", + Require indicating value "tdialog", + PAssertedIdentity indicating value PX_UE_CMSISDN + SipMessageBody, + Reason containing Cause indicating value "Reason Q.850 1"; // should be different then 31 + ;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_200_Ok_BYE and + the IUT entity on timerOperatorSpecificTimeout sends a BYE //for source UE leg + to the IMS_S_CSCF entity + } + } + } // End of TP TP_ISC_SCCAS_PCT_INV_03 + + } // end Group "12.3.11 SCC AS procedures when the access transfer is completed" }// End of Package TP_SCCAS_Chapter_9_3 -- GitLab From 3d3f9d852118815b968a2ff7603e503eb50b6a29 Mon Sep 17 00:00:00 2001 From: juvancic Date: Mon, 27 Jun 2022 20:27:04 +0200 Subject: [PATCH 070/202] updated TPs --- test_purposes/Sip_Common.tplan2 | 1 + 1 file changed, 1 insertion(+) diff --git a/test_purposes/Sip_Common.tplan2 b/test_purposes/Sip_Common.tplan2 index 0e476f1..1a38d5f 100644 --- a/test_purposes/Sip_Common.tplan2 +++ b/test_purposes/Sip_Common.tplan2 @@ -54,6 +54,7 @@ Package Sip_Common { - registeredIdentitySipURI - hasInitiatedDialogWith - hasInitiatedPS2CSinEarlydialog + - hasInitiatedPS2CSinAlertingState - hasEstablishedDialog - hasEstablishedPS2CSDialog - isConfiguredWithENUMentryForTelURI_E164NumberOf -- GitLab From bf83c330de1fa2ea1b84662cfd76fb806a2d0bbf Mon Sep 17 00:00:00 2001 From: juvancic Date: Mon, 27 Jun 2022 20:27:09 +0200 Subject: [PATCH 071/202] updated TPs --- .../sccas/TP_SCCAS_Chapter_12_3.tplan2 | 48 ++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 index ef7827b..981f1d0 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 @@ -364,7 +364,7 @@ Package TP_SCCAS_Chapter_12_3 { Test objective "Verify that the SCCAS distinguish SIP CANCEL and release session transfered leg after OperatiorSpecificTimer timeout" Reference - "ETSI TS 124 237 [1], Clause 12.3.3.5.1" + "ETSI TS 124 237 [1], Clause 12.3.3.5.1, 1A" Config Id CFG_SCCAS_01 @@ -404,6 +404,52 @@ Package TP_SCCAS_Chapter_12_3 { } Group "12.3.3.5.2 SCC AS serving a terminating user"{ + import all from Sip_Common; + + Test Purpose { + + TP Id TP_ISC_SCCAS_SRA_CNL_02 + + Test objective "Verify that the SCCAS send 200Ok_CANCEL and release PStoCS session transfered leg in alerting state for terminating user" + + Reference + "ETSI TS 124 237 [1], Clause 12.3.3.5.2, 1A" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE //SCCAS_PS2CS_SRVCC + + Initial conditions with { + the UE entity isRegisteredTo the IMS_A and + the UE entity hasInitiatedDialogWith the SCCAS_UE_TERM and + the UE entity hasInitiatedPS2CSinAlertingState + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a CANCEL containing + RequestUri indicating value PX_STNSR_URI, + From indicating value PX__SIP_URI, + To indicating value PX__SIP_URI, + CallId indicating value PX_STI_CALLID, + Via indicating value PX_STNSR_VIA, + Contact, + TargetDialog containing "dialog info from PS session", + Require indicating value "tdialog", + PAssertedIdentity indicating value PX_UE_CMSISDN + SipMessageBody, + Reason containing Cause not indicating value "Reason Q.850 31"; + ;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_200_Ok_CANCEL //and + //the IUT entity on timerOperatorSpecificTimeout sends a CANCEL + //to the IMS_S_CSCF entity + } + } + } // End of TP_ISC_SCCAS_SRA_CNL_02 } } -- GitLab From 13bc8ce2f40d539c2b12d36b00b0b263369e49e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Thu, 1 Sep 2022 10:13:48 +0200 Subject: [PATCH 072/202] new TP for 9.3.7.4 --- .../sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index 649565e..4c8eb21 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -1217,6 +1217,103 @@ Package TP_SCCAS { Group "9.3.7.4 SCC AS procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase" { + import all from Sip_Common; + + Test Purpose { + // In order to transfer of an additional session that can be in originating pre-alerting phase or in an alerting phase, the + // SCC AS supporting CS to PS dual radio access transfer for calls in an early phase, shall send a SIP REFER request + // according to 3GPP TS 24.229 [2], IETF RFC 4488 [20] and IETF RFC 3515 [13] as updated by IETF RFC 6665 [81] + // and IETF RFC 7647 [90] in the dialog created by the SIP INVITE request due to static STI populated as follows: + // 1) include a Refer-Sub header field with value "false" as specified in IETF RFC 4488 [20]; + // 2) include a Require header field with value "norefersub" as specified in IETF RFC 4488 [20]; + // 3) include a Refer-To header field containing the additional transferred session SCC AS URI for PS to CS dual + // radio, where the URI also includes the following URI header fields containing the information related to the + // additional transferred session: + // a) if an early dialog supporting the additional transferred session exists, the Target-Dialog header field + // populated as specified in IETF RFC 4538 [11], containing the dialog identifier of the dialog in the early + // phase; + // b) if the SCC AS supports the PS to CS dual radio access transfer for originating calls in pre-alerting phase, if + // no early dialog supporting the additional transferred session exists, there is a SIP INVITE request from the + // served user for which a final SIP response has not been received yet and if an early dialog supporting the + // additional transferred session existed and was terminated, the Target-Dialog header field populated as + // specified in IETF RFC 4538 [11], containing the dialog identifier on the source access leg of the early dialog + // supporting the additional transferred session which existed and was terminated; + // c) the Require header field populated with the option tag value "tdialog"; + // d) if an early dialog supporting the additional transferred session exists, the To header field populated as + // specified in IETF RFC 3261 [19], containing the value of the P-Asserted-Identity provided by the remote UE + // during the session establishment; + // e) the From header field populated as specified in IETF RFC 3261 [19], containing the value of the P-Asserted- + // Identity provided by the SC UE during the session establishment; + // f) the Content-Type header field with "application/sdp"; + // g) if an early dialog supporting the additional transferred session exists, the URI header field with hname + // "body" populated with SDP describing the media streams as negotiated in the session with the remote UE; + // and + // h) if the SCC AS supports the PS to CS dual radio access transfer for originating calls in pre-alerting phase, no + // early dialog supporting the additional transferred session exists, there is a SIP INVITE request from the + // served user for which a final SIP response has not been received yet, the URI header field with the hname + // "body" populated with the SDP offer received in the SIP INVITE request from the served user; and + // 4) application/vnd.3gpp.state-and-event-info+xml MIME with: + // a) if a SIP 180 (Ringing) response to the SIP INVITE request has already been received from the remote UE in + // any of the early dialogs associated with the originating early session not accepted yet, the state-info XML + // element containing "early" and the direction XML element containing "initiator"; + // b) if a SIP 180 (Ringing) response to the SIP INVITE request has not been received yet from the remote UE in + // any of the early dialogs associated with the originating early session not accepted yet and the additional + // transferred session was originated by the SC UE, the state-info XML element containing "pre-alerting" and + // the direction XML element containing "initiator"; and + // c) if a SIP 180 (Ringing) response to the INVITE request has already been received on the source access leg, + // the state-info XML element containing "early" and the direction XML element containing "receiver" + + TP Id TP_ISC_SCCAS_CPT_INV_06 + + Test objective "Verify that SCC AS correctly recognizes and initiated procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase " + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.7.4." + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS and + the IUT entity hasAchievedInitialINVITE + // SCC AS the SCC AS supporting CS to PS dual radio access transfer for calls in an early phase + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an r_180_Ringing + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an REFER containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + ReferSub indicating value false, // 1) include a Refer-Sub header field with value "false" as specified in IETF RFC 4488 [20]; + Supported indicating value "norefersub", // 2) include a Require header field with value "norefersub" as specified in IETF RFC 4488 [20]; + ReferTo containing // 3) include a Refer-To header field + TargetDialog indicating value "Target-Dialog header field containing the dialog identifier of the dialog in the early phase, if exist", // a) if an early dialog supporting the additional transferred session exists, the Target-Dialog header field + Require indicating value "tdialog", // c) the Require header field populated with the option tag value "tdialog"; + From indicating value "value of the P-Asserted-Identity provided by the SC UE during the session establishment", //the From header field populated as specified in IETF RFC 3261 [19], containing the value of the P-Asserted-Identity provided by the SC UE during the session establishment + ContentType indicating value "application/sdp", // E. the Content-Type header field with "application/sdp"; + MessageBody containing // F. the URI header field with the hname "body" populated with SDP describing the media streams as negotiated in the session with the remote UE + SDP containing + TODO indicating value "";;; + , + Accept containing // if a SIP 180 (Ringing) response to the INVITE request has already been received on the source access leg, the state-info XML element containing "early" and the direction XML element containing "receiver" + MIME indicating value "application/vnd.3gpp.state-and-event-info.xml";; //subclause D.2.3 + + to the IMS_S_CSCF entity + } + } + + } // end TP + + } // end Group 9.3.7.4 SCC AS procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase -- GitLab From 9af32887cd7e35683b1a5189eb0d030872d41dad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Thu, 1 Sep 2022 10:15:59 +0200 Subject: [PATCH 073/202] new TP for 9.3.7.4 --- test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index 4c8eb21..c870f34 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -1272,7 +1272,7 @@ Package TP_SCCAS { Config Id CFG_SCCAS_01 - PICS Selection NONE + PICS Selection NONE // TODO Initial conditions with { the UE entity isRegisteredTo the IMS and -- GitLab From 7b20a99bf323fc974728ec6bb97d560703274220 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Thu, 1 Sep 2022 10:18:14 +0200 Subject: [PATCH 074/202] new TP for 9.3.7.4 --- test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index c870f34..b892fa0 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -1272,7 +1272,7 @@ Package TP_SCCAS { Config Id CFG_SCCAS_01 - PICS Selection NONE // TODO + PICS Selection NONE Initial conditions with { the UE entity isRegisteredTo the IMS and -- GitLab From 80db9e20abd9f008661c2ecebf532326f446575d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Thu, 1 Sep 2022 10:27:47 +0200 Subject: [PATCH 075/202] new TP for 12.3.11 --- test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 index ef7827b..b34dcf7 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 @@ -586,12 +586,12 @@ Package TP_SCCAS_Chapter_12_3 { Test Purpose { - TP Id TP_ISC_SCCAS_PCT_INV_03 + TP Id TP_ISC_SCCAS_TER_BYE_01 - Test objective "Verify that l" + Test objective "Verify that the SCC AS correctly behave procedures when the access transfer is completed" Reference - "ETSI TS 124 237 [1], Clause 12.3.4.4" + "ETSI TS 124 237 [1], Clause 12.3.11" Config Id CFG_SCCAS_01 @@ -599,8 +599,7 @@ Package TP_SCCAS_Chapter_12_3 { Initial conditions with { the UE entity isRegisteredTo the IMS and - the IUT entity hasAchievedInitialINVITE // TODO: INVITE contains: g3gppSrvccAlerting - // TODO: and more conditions to distinguish subchapter from 12.3.4.2, 12.3.4.3 + the IUT entity hasAchievedInitialINVITE } Expected behaviour @@ -623,11 +622,12 @@ Package TP_SCCAS_Chapter_12_3 { } then { the IUT entity sends a r_200_Ok_BYE and - the IUT entity on timerOperatorSpecificTimeout sends a BYE //for source UE leg + the IUT entity sends a r_404_NotFound //according to 3GPP TS 29.292 table 5.4.8.1.1 and table 5.4.8.1.2 to the IMS_S_CSCF entity + } } - } // End of TP TP_ISC_SCCAS_PCT_INV_03 + } // End of TP TP_ISC_SCCAS_TER_BYE_01 } // end Group "12.3.11 SCC AS procedures when the access transfer is completed" -- GitLab From 146cd3a7b02a4be4a03b945c3600bd73210dde25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Thu, 1 Sep 2022 10:28:35 +0200 Subject: [PATCH 076/202] new TP 9.3.7.4 --- test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index b892fa0..c870f34 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -1272,7 +1272,7 @@ Package TP_SCCAS { Config Id CFG_SCCAS_01 - PICS Selection NONE + PICS Selection NONE // TODO Initial conditions with { the UE entity isRegisteredTo the IMS and -- GitLab From 1f119a537dee66acf5ab3b4e7b96b715f98cebe0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Thu, 1 Sep 2022 11:20:48 +0200 Subject: [PATCH 077/202] rename TP for 9.3.7.4 --- test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index c870f34..0fd7ded 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -1263,7 +1263,7 @@ Package TP_SCCAS { // c) if a SIP 180 (Ringing) response to the INVITE request has already been received on the source access leg, // the state-info XML element containing "early" and the direction XML element containing "receiver" - TP Id TP_ISC_SCCAS_CPT_INV_06 + TP Id TP_ISC_SCCAS_PCT_INV_06 Test objective "Verify that SCC AS correctly recognizes and initiated procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase " -- GitLab From f461ebf0511bd1df92b8db3f6e0cb4b9f777bb83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Thu, 1 Sep 2022 14:33:47 +0200 Subject: [PATCH 078/202] new TPs for 12.3.10.2 and 12.3.10.3 and renaming --- test_purposes/Sip_Common.tplan2 | 1 + .../sccas/TP_SCCAS_Chapter_12_3.tplan2 | 326 +++++++++++++++++- .../sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 10 +- 3 files changed, 325 insertions(+), 12 deletions(-) diff --git a/test_purposes/Sip_Common.tplan2 b/test_purposes/Sip_Common.tplan2 index 0e476f1..e45b5c4 100644 --- a/test_purposes/Sip_Common.tplan2 +++ b/test_purposes/Sip_Common.tplan2 @@ -75,6 +75,7 @@ Package Sip_Common { - hasResponded486INVITE - hasAchievedInitialINVITE - hasAchievedINVITE + - hasAchievedUPDATEuponINVITE - timerOperatorSpecificTimeout //NOTE: 8 seconds is an appropriate value for the operator policy. - isAttachingToNetwork - hasDoneSubscription diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 index b34dcf7..47b6ac8 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 @@ -418,7 +418,7 @@ Package TP_SCCAS_Chapter_12_3 { Test Purpose { - TP Id TP_ISC_SCCAS_PCT_INV_01 + TP Id TP_ISC_SCCAS_PCT_INV_06 Test objective "Verify that SCC AS correctly recognizes and initiated for PS to CS access transfer for terminating call in pre-alerting phase using PS to CS SRVCC procedure" @@ -452,7 +452,7 @@ Package TP_SCCAS_Chapter_12_3 { } } - } // End of TP_ISC_SCCAS_PCT_INV_01 + } // End of TP_ISC_SCCAS_PCT_INV_06 } // end Group "12.3.4.2 SCC AS procedures for PS to CS access transfer for terminating call in alerting phase or pre-alerting phase using PS to CS SRVCC procedure" @@ -574,11 +574,323 @@ Package TP_SCCAS_Chapter_12_3 { // import all from Sip_Common; // } // end Group "12.3.9 Charging correlation" // -// Group "12.3.10 SCC AS procedures for CS to PS SRVCC"{ -// -// import all from Sip_Common; -// } // end Group "12.3.10 SCC AS procedures for CS to PS SRVCC" -// + Group "12.3.10 SCC AS procedures for CS to PS SRVCC"{ + + + Group "12.3.10.2 First session transfer" + { + import all from Sip_Common; + + + Test Purpose { + + TP Id TP_ISC_SCCAS_CPT_INV_07 + + Test objective "Verify that the SCC AS handles correctly the transfer of session with active speech media component" + + Reference + "ETSI TS 124 237 [1], Clause 12.3.10.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + TargetDialog; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_200_Ok // + to the IMS_S_CSCF entity + + } + } + + } // end TP TP_ISC_SCCAS_CPT_INV_07 + + Test Purpose { + + TP Id TP_ISC_SCCAS_CPT_INV_08 + + Test objective "Verify that the SCC AS handles correctly the transfer of session with inactive speech media component " + + Reference + "ETSI TS 124 237 [1], Clause 12.3.10.3" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + TargetDialog; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an INVITE containing // reINVITE + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA; + + to the IMS_S_CSCF entity + } + } + + } // end TP TP_ISC_SCCAS_CPT_INV_08 + + Test Purpose { + + TP Id TP_ISC_SCCAS_CPT_INV_09 + + Test objective "Verify that the SCC AS handles correctly the transfer of originating session in alerting phase" + + Reference + "ETSI TS 124 237 [1], Clause 12.3.10.2.4" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS and + the IUT entity hasAchievedInitialINVITE and // INVITE contains TargetDialog header field + the IUT entity hasAchievedUPDATEuponINVITE + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an r_200_Ok + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_180_Ringing + to the IMS_S_CSCF entity + } + } + + + } // end TP TP_ISC_SCCAS_CPT_INV_09 + + Test Purpose { + + TP Id TP_ISC_SCCAS_CPT_INV_10 + + Test objective "Verify that the SCC AS handles correctly the transfer of terminating session in alerting phase" + + Reference + "ETSI TS 124 237 [1], Clause 12.3.10.2.5" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS and + the IUT entity hasAchievedInitialINVITE and // INVITE contains TargetDialog header field + the IUT entity hasAchievedUPDATEuponINVITE + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an r_200_Ok + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_183_SessionProgress + to the IMS_S_CSCF entity + } + } + + } // end TP TP_ISC_SCCAS_CPT_INV_10 + + + } // end Group "12.3.10.2 First session transfer" + + Group "12.3.10.3 Additional session transfer" + { + import all from Sip_Common; + + + Test Purpose { + + TP Id TP_ISC_SCCAS_CPT_INV_11 + + Test objective "Verify that the SCC AS handles correctly additional session transfer initiation" + + Reference + "ETSI TS 124 237 [1], Clause 12.3.10.3.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + Accept containing + MIME indicating value "application/vnd.3gpp.mid-call+xml";; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_200_Ok + to the IMS_S_CSCF entity + + } + } + + } // end TP TP_ISC_SCCAS_CPT_INV_11 + + Test Purpose { + + TP Id TP_ISC_SCCAS_CPT_INV_12 + + Test objective "Verify that the SCC AS handles correctly transfer of session with inactive speech media component" + + Reference + "ETSI TS 124 237 [1], Clause 12.3.10.3.3" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + Accept containing + MIME indicating value "application/vnd.3gpp.mid-call+xml";; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an INVITE containing // reINVITE + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA; + + to the IMS_S_CSCF entity + } + } + + } // end TP TP_ISC_SCCAS_CPT_INV_12 + + Test Purpose { + + TP Id TP_ISC_SCCAS_CPT_INV_13 + + Test objective "Verify that the SCC AS handles correctly transfer of originating session in alerting phase" + + Reference + "ETSI TS 124 237 [1], Clause 12.3.10.3.4" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS and + the IUT entity hasAchievedInitialINVITE and // INVITE contains Accept containing MIME indicating value "application/vnd.3gpp.mid-call+xml" + the IUT entity hasAchievedUPDATEuponINVITE + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an r_200_Ok + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_180_Ringing + to the IMS_S_CSCF entity + } + } + + } // end TP TP_ISC_SCCAS_CPT_INV_13 + + Test Purpose { + + TP Id TP_ISC_SCCAS_CPT_INV_14 + + Test objective "Verify that the SCC AS handles correctly transfer of terminating session in alerting phase" + + Reference + "ETSI TS 124 237 [1], Clause 12.3.10.3.5" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS and + the IUT entity hasAchievedInitialINVITE and // INVITE contains Accept containing MIME indicating value "application/vnd.3gpp.mid-call+xml" + the IUT entity hasAchievedUPDATEuponINVITE + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an r_200_Ok + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_183_SessionProgress + to the IMS_S_CSCF entity + } + } + + } // end TP TP_ISC_SCCAS_CPT_INV_14 + + + } // end Group "12.3.10.3 Additional session transfer" + + + } // end Group "12.3.10 SCC AS procedures for CS to PS SRVCC" + Group "12.3.11 SCC AS procedures when the access transfer is completed"{ import all from Sip_Common; diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 index 0fd7ded..22a26aa 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 @@ -598,7 +598,7 @@ Package TP_SCCAS { // strength-tag value either "optional" or as specified in RFC 3312 [88] and RFC 4032 [89] for the remote // segment. - TP Id TP_ISC_SCCAS_PCT_INV_01 + TP Id TP_ISC_SCCAS_PCT_INV_05 Test objective "Verify that the SCC AS send a SIP UPDATE request towards the remote UE after receiving a SIP INVITE request due to PS to CS STN in early dialog phase supporting a session with active speech media component such" @@ -651,7 +651,7 @@ Package TP_SCCAS { } } - } // end TP_ISC_SCCAS_PCT_INV_01 + } // end TP_ISC_SCCAS_PCT_INV_05 } // end Group "9.3.5.3 SCC AS procedures for PS to CS dual radio, access transfer of a originating session in the prealerting phase" @@ -771,7 +771,7 @@ Package TP_SCCAS { // - if the SIP 180 (Ringing) response does not contain the g.3gpp.dynamic-stn media feature tag as described // in annex C in the Contact header field, the static STN. - TP Id TP_ISC_SCCAS_PCT_REF_01 + TP Id TP_ISC_SCCAS_PCT_REF_02 Test objective "Verify that the SCC AS terminates the call over CS after receiving a SIP 488" @@ -1263,7 +1263,7 @@ Package TP_SCCAS { // c) if a SIP 180 (Ringing) response to the INVITE request has already been received on the source access leg, // the state-info XML element containing "early" and the direction XML element containing "receiver" - TP Id TP_ISC_SCCAS_PCT_INV_06 + TP Id TP_ISC_SCCAS_PCT_INV_04 Test objective "Verify that SCC AS correctly recognizes and initiated procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase " @@ -1311,7 +1311,7 @@ Package TP_SCCAS { } } - } // end TP + } // end TP TP_ISC_SCCAS_PCT_INV_04 } // end Group 9.3.7.4 SCC AS procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase -- GitLab From 4be19b7a383834d784c49bf70c1005183246b74b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Thu, 1 Sep 2022 16:36:50 +0200 Subject: [PATCH 079/202] bugfixing --- test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 index 469ccfa..72be14c 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 @@ -723,7 +723,7 @@ Package TP_SCCAS_Chapter_12_3 { Initial conditions with { the UE entity isRegisteredTo the IMS and - the IUT entity hasAchievedInitialINVITE and // INVITE contains TargetDialog header field + the IUT entity hasAchievedInitialINVITE and // INVITE initiated by served User and contains TargetDialog header field the IUT entity hasAchievedUPDATEuponINVITE } @@ -757,7 +757,7 @@ Package TP_SCCAS_Chapter_12_3 { Initial conditions with { the UE entity isRegisteredTo the IMS and - the IUT entity hasAchievedInitialINVITE and // INVITE contains TargetDialog header field + the IUT entity hasAchievedInitialINVITE and // INVITE initiated by remote user and contains TargetDialog header field the IUT entity hasAchievedUPDATEuponINVITE } @@ -880,7 +880,7 @@ Package TP_SCCAS_Chapter_12_3 { Initial conditions with { the UE entity isRegisteredTo the IMS and - the IUT entity hasAchievedInitialINVITE and // INVITE contains Accept containing MIME indicating value "application/vnd.3gpp.mid-call+xml" + the IUT entity hasAchievedInitialINVITE and // INVITE initiated by served User and contains Accept containing MIME indicating value "application/vnd.3gpp.mid-call+xml" the IUT entity hasAchievedUPDATEuponINVITE } @@ -902,7 +902,7 @@ Package TP_SCCAS_Chapter_12_3 { TP Id TP_ISC_SCCAS_CPT_INV_14 - Test objective "Verify that the SCC AS handles correctly transfer of terminating session in alerting phase" + Test objective "Verify that the SCC AS handles correctly transfer of terminating session in alerting phase" Reference "ETSI TS 124 237 [1], Clause 12.3.10.3.5" @@ -913,7 +913,7 @@ Package TP_SCCAS_Chapter_12_3 { Initial conditions with { the UE entity isRegisteredTo the IMS and - the IUT entity hasAchievedInitialINVITE and // INVITE contains Accept containing MIME indicating value "application/vnd.3gpp.mid-call+xml" + the IUT entity hasAchievedInitialINVITE and // INVITE initiated by remote user and contains Accept containing MIME indicating value "application/vnd.3gpp.mid-call+xml" the IUT entity hasAchievedUPDATEuponINVITE } -- GitLab From 534a631d5f8eaabbf41b35caa2f03a9b1c666ff6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Fri, 2 Sep 2022 10:05:15 +0200 Subject: [PATCH 080/202] new TP 12.3.7 --- test_purposes/Sip_Common.tplan2 | 1 + .../sccas/TP_SCCAS_Chapter_12_3.tplan2 | 54 +++++++++++++++++-- 2 files changed, 51 insertions(+), 4 deletions(-) diff --git a/test_purposes/Sip_Common.tplan2 b/test_purposes/Sip_Common.tplan2 index 5467680..e4c656a 100644 --- a/test_purposes/Sip_Common.tplan2 +++ b/test_purposes/Sip_Common.tplan2 @@ -145,6 +145,7 @@ Package Sip_Common { SipMessage REFER; SipMessage PRACK; SipMessage UPDATE; + SipMessage OPTIONS; // SIP Responses SipMessage r_1xx_Any; SipMessage r_100_Trying; diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 index 72be14c..e75b73c 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 @@ -605,10 +605,56 @@ Package TP_SCCAS_Chapter_12_3 { // import all from Sip_Common; // }// end Group "12.3.6 12.3.6.0 SCC AS procedures for PS to CS access transfer, vSRVCC" // -// Group "12.3.7 SCC AS procedures for handling of SIP OPTIONS request"{ -// -// import all from Sip_Common; -// } // end Group "12.3.7 SCC AS procedures for handling of SIP OPTIONS request" + Group "12.3.7 SCC AS procedures for handling of SIP OPTIONS request"{ + + import all from Sip_Common; + + Test Purpose { + + TP Id TP_ISC_SCCAS_MED_OPT_01 + + Test objective "Verify that the SCC AS handles correctly the procedures for handling of SIP OPTIONS request" + + Reference + "ETSI TS 124 237 [1], Clause 12.3.7" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an OPTIONS containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + ReferTo containing + PAssertedIdentity indicating value "the C-MSISDN in the P-Asserted-Identity header field that the session that was most recently made";; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends a r_200_Ok containing + ContentType indicating value "application/sdp", + ContentLength, + MessageBody containing + SDP containing + Media indicating valuee "audio and video";;; + to the IMS_S_CSCF entity + + } + } + + } // end TP TP_ISC_SCCAS_MED_OPT_01 + + + } // end Group "12.3.7 SCC AS procedures for handling of SIP OPTIONS request" // // Group "12.3.8 Removal of non-transferred audio media components and superfluous sessions"{ // -- GitLab From 99e0f4b8eb87cf9f23ecc980c6cae5a2433dd5c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Fri, 2 Sep 2022 11:03:50 +0200 Subject: [PATCH 081/202] minor changes --- test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 index e75b73c..7c86939 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 @@ -629,7 +629,7 @@ Package TP_SCCAS_Chapter_12_3 { Expected behaviour ensure that { when { - the IUT entity receives an OPTIONS containing + the IUT entity receives an OPTIONS containing From indicating value PX_UE_A_SIP_URI, To indicating value PX_UE_B_SIP_URI, CallId indicating value PX_UE_A_CALLID, -- GitLab From e0c8a9eb4a57f9bda8e5d843f76a2387d241c167 Mon Sep 17 00:00:00 2001 From: juvancic Date: Tue, 28 Jun 2022 02:31:46 +0200 Subject: [PATCH 082/202] copied TPs to commonchapter module --- .../sccas/TP_SCCAS_Chapter_9_3.tplan2 | 1324 ++++++++++++++++- 1 file changed, 1300 insertions(+), 24 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3.tplan2 index a94e515..97de144 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3.tplan2 @@ -72,30 +72,1306 @@ Package TP_SCCAS_Chapter_9_3 { import all from Sip_Common; } // end Group "9.3.2A SCC AS procedures for PS to CS access transfer with MSC server assisted mid-call feature" -// Group "9.3.3 SCC AS procedures for CS to PS access transfer"{ -// -// import all from Sip_Common; -// } // end Group "9.3.3 SCC AS procedures for CS to PS access transfer" -// -// Group "9.3.4 SCC AS procedures for CS to PS access transfer with MSC server assisted mid-call feature"{ -// -// import all from Sip_Common; -// } // end Group "9.3.4 SCC AS procedures for CS to PS access transfer with MSC server assisted mid-call feature" -// -// Group "9.3.5 SCC AS procedures for PS to CS dual radio access transfer of calls in an early dialog phase"{ -// -// import all from Sip_Common; -// }// end Group "9.3.5 SCC AS procedures for PS to CS dual radio access transfer of calls in an early dialog phase" -// -// Group "9.3.6 Removal of non-transferred audio media components and release of source access legs"{ -// -// import all from Sip_Common; -// }// end Group "9.3.6 Removal of non-transferred audio media components and release of source access legs" -// -// Group "9.3.7 SCC AS procedures for CS to PS dual radio access transfer for calls in an early phase"{ -// -// import all from Sip_Common; -// } // end Group "9.3.7 SCC AS procedures for CS to PS dual radio access transfer for calls in an early phase" + Group "9.3.3 SCC AS procedures for CS to PS access transfer" + { + import all from Sip_Common; + + Test Purpose { + + // When the SCC AS receives a + // SIP INVITE request due to + // STI on the (page 20) + // Target Access Leg offering (RFC 3891 - replaces header field, + // PS media only (PS Packet Switch), + // SCC AS shall follow the procedures specified in subclause 10.3.2. + + TP Id TP_ISC_SCCAS_CPT_INV_01 + + Test objective "Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg) with dynamic STI." + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.3 and 10.3.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS // TODO + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, // this indicates dynamic STI + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + Supported indicating value "replaces", + PAccessNetworkInfo, + Replaces containing // Replaces indicating value (RFC 3891) + call_id indicating value PX_call_id, // TODO PX + from_tag indicating value PX_from_tag, // TODO PX + to_tag indicating value PX_to_tag // TODO PX + MessageBody containing + SDP containing // SDP: Session Description Protocol + Media indicating value PX_PSMediaOnly, // TODO: PX for media only + Version indicating value "0";;;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_200_Ok containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + PAccessNetworkInfo, + ContentType indicating value "application/sdp", + ContentLength, + MessageBody containing + SDP containing + Media indicating value PX_PSMediaOnly, // TODO: PX for media only + Version indicating value "0";;; + to the IMS_S_CSCF entity + } + } + + } // end TP TP_ISC_SCCAS_CPT_INV_01 + + + // Testpurpose 2: When the SCC AS receives a SIP INVITE request due to static STI, the SCC AS shall: + Test Purpose { + + // When the SCC AS receives a + // SIP INVITE request due to + // STI on the (page 20) + // Target Access Leg offering (RFC 3891 - replaces header field, + // PS media only (PS Packet Switch), + // SCC AS shall follow the procedures specified in subclause 10.3.2. + + // TP_ISC_SCCAS_XXX_INV_01 + TP Id TP_ISC_SCCAS_CPT_INV_02 + + Test objective "Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg) with static STI." + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.3" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS // TODO + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_TEL_URI, // this indicates static STI + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + Supported indicating value "replaces", + PAccessNetworkInfo, + Replaces containing // Replaces indicating value (RFC 3891) + call_id indicating value PX_call_id, // TODO PX + from_tag indicating value PX_from_tag, // TODO PX + to_tag indicating value PX_to_tag // TODO PX + MessageBody containing + SDP containing // SDP: Session Description Protocol + Media indicating value PX_PSMediaOnly, // TODO: PX for media only + Version indicating value "0";;;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_200_Ok containing + From indicating value PX_UE_A_TEL_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + PAccessNetworkInfo, + ContentType indicating value "application/sdp", + ContentLength, + MessageBody containing + SDP containing + Media indicating value PX_PSMediaOnly, // TODO: PX for media only + Version indicating value "0";;; + to the IMS_S_CSCF entity + } + } + + } // end TP_ISC_SCCAS_CPT_INV_02 + + + // Test puposes 3: Upon receiving the SIP 2xx response to the SIP re-INVITE request the SCC AS shall send the SIP 200 (OK) response + // to the SIP INVITE request due to static STI on the target access leg populated as follows: + Test Purpose { + + // Note: Consider alternative with: + // if the SCC AS supports CS to PS dual radio access transfer for calls in alerting phase according to operator policy + + + TP Id TP_ISC_SCCAS_CPT_RIN_01 + + Test objective "Verify that the P-CSCF successfully processes an re-INVITE (Originating Leg)" + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.3" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS and // TODO + the UE entity previouslyEstablishedCallWith + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing // re-invite + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + Supported indicating value "replaces", + PAccessNetworkInfo, + Replaces containing // Replaces indicating value (RFC 3891) + call_id indicating value PX_call_id, // TODO PX + from_tag indicating value PX_from_tag, // TODO PX + to_tag indicating value PX_to_tag // TODO PX + MessageBody containing + SDP containing // SDP: Session Description Protocol + Media indicating value PX_PSMediaOnly, // TODO: PX for media only + Version indicating value "0";;;; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_200_Ok containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + PAccessNetworkInfo, + ContentType indicating value "application/sdp", + ContentLength, + MessageBody containing + SDP containing + Media indicating value PX_PSMediaOnly, // TODO: PX for media only + Version indicating value "0";;; + to the IMS_S_CSCF entity + } + } + + } // end TP_ISC_SCCAS_CPT_RIN_01 + + + // Test puposes 4: Upon receiving the SIP ACK request originated from the SC UE, the SCC AS shall: + Test Purpose { + + TP Id TP_ISC_SCCAS_CPT_ACK_01 + + //Upon receiving the SIP ACK request originated from the SC UE, the SCC AS shall: + //1) release the source access leg as specified in subclause 9.3.6.; and ... + + //the source access leg is an ongoing session containing only an active or inactive media component or a session in + //an early dialog phase on the terminating side, send a SIP BYE request on the source access leg in accordance + //with 3GPP TS 24.229 [2]; + + Test objective "Verify that the P-CSCF successfully processes an ACK and release the source access leg." + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.3 and 9.3.6." + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS and + the UE entity hasReceived200OkOnInitialRequestForDialogWith + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an ACK containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an BYE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE; + to the IMS_S_CSCF entity + } + } + + + } // end TP TP_ISC_SCCAS_CPT_ACK_01 + + + } // end Group "9.3.3 SCC AS procedures for CS to PS access transfer" + + Group "9.3.4 SCC AS procedures for CS to PS access transfer with MSC server assisted mid-call feature" + { + import all from Sip_Common; + + + Test Purpose { + TP Id TP_ISC_SCCAS_CPT_INV_03 + + Test objective "Verify that the SCC AS Conditions for selecting a sessions in an early dialog phase" + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.4 and 6A.4.3" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS + // TODO: SCC AS supports the MSC Server assisted mid-call feature according to operator policy + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + Contact containing + g3gppSrvccAlertingFeatureCapabilityIndicator Tag;; + + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_2xx_Any containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + FeatureCaps containing + g3gppMidcallFeatureCapabilityIndicator;, + MessageBody containing + SDP containing + Media indicating value PX_PSMediaOnly;;; // TODO: PX for media only + to the IMS_S_CSCF entity + } + + } + + } // end TP TP_ISC_SCCAS_CPT_INV_03 + + + + + } // end Group 9.3.4 SCC AS procedures for CS to PS access transfer with MSC server assisted mid-call feature + Group "9.3.5 SCC AS procedures for PS to CS dual radio access transfer of calls in an early dialog phase" + { + + Group "9.3.5.1 Conditions for selecting a sessions in an early dialog phase" + { + import all from Sip_Common; + + + Test Purpose { + TP Id TP_ISC_SCCAS_CPT_INV_04 + + // An early session is subject for PS to CS dual radio access transfer when one of the following conditions is fulfilled: + // d. the Contact header field provided by the SC UE towards the SCC AS in the initial SIP INVITE request + // included the g.3gpp.drvcc-alerting media feature tag field as described in annex C; + + Test objective "Verify that the SCC AS accepts conditions in an early dialog phase" + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.5.1" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS + // TODO: SCC AS supports the MSC Server g.3gpp.drvcc-alerting feature + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + Contact containing + g3gppDrvccAlertingFeature tag;; //Annex C.15 + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_2xx_Any containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + FeatureCaps containing + g3gppDrvccAlertingFeatureCapabilityIndicator;; + to the IMS_S_CSCF entity + } + + } + + } // end TP TP_ISC_SCCAS_CPT_INV_04 + } // end group 9.3.5.1 Conditions for selecting a sessions in an early dialog phase + + + + Group "9.3.5.2 SCC AS procedures for PS to CS dual radio access transfer of a originating session in the alerting phase" + { + + import all from Sip_Common; + + + Test Purpose { + + // When the SCC AS receives a SIP INVITE request due to PS to CS STN and if there are one or more dialogs in an early + // dialog phase supporting a session with active speech media component such that: + // 1) all dialogs are early dialogs created by the same SIP INVITE request; + // 2) a SIP 180 (Ringing) response to SIP INVITE request was received in at least one of those early dialogs; + // 3) a g.3gpp.drvcc-alerting feature-capability indicator as described in annex C was included in a Feature-Caps + // header field by the SCC AS in the SIP 180 (Ringing) response; and + // 4) the Contact header field in the initial SIP INVITE request sent by the SC UE towards the SCC AS included the + // g.3gpp.drvcc-alerting media feature tag as described in annex C, + // then the SCC AS shall for each early dialog send an SIP UPDATE request towards the remote UE and populate each + // SIP UPDATE request as follows: + // 1) set the Request-URI set to the URI contained in the Contact header field returned at the creation of the dialog + // with the remote UE; + // 2) the Contact header field set to the Contact header field provided by the served UE at the creation of the dialog + // with the remote UE; and + // 3) a new SDP offer, including: + // a) if the remote leg is not a precondition enabled dialog, the media characteristics as received in the SIP + // INVITE request due to PS to CS STN but excluding any precondition mechanism specific SDP attributes, by + // following the rules of 3GPP TS 24.229 [2]; + // b) if the remote leg is a precondition enabled dialog, include a new SDP offer including: + // - the media characteristics as received in the SIP INVITE request due to PS to CS STN (including any + // precondition mechanism specific SDP attributes); and + // - if the SIP INVITE request due to PS to CS STN is not a precondition enabled initial SIP INVITE request, + // indicate preconditions as met, using the segmented status type, as defined in IETF RFC 3312 [88] and + // IETF RFC 4032 [89], as well as the strength-tag value "mandatory" for the local segment and the + // strength-tag value either "optional" or as specified in RFC 3312 [88] and RFC 4032 [89] for the remote + // segment. + + // this TP: only case A + + TP Id TP_ISC_SCCAS_PCT_UPD_01 + + Test objective "Verify that the SCC AS sends a SIP UPDATE after receiving a SIP INVITE request due to PS to CS STN and if there are one or more dialogs in an early dialog phase and the remote leg is not a precondition enabled dialog" + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.5.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS + // TODO: + // here are one or more dialogs in an early dialog phase supporting a session with active speech media component such that: + // 1) all dialogs are early dialogs created by the same SIP INVITE request; + // 2) a SIP 180 (Ringing) response to SIP INVITE request was received in at least one of those early dialogs; + // 3) a g.3gpp.drvcc-alerting feature-capability indicator as described in annex C was included in a Feature-Caps + // header field by the SCC AS in the SIP 180 (Ringing) response; and + // 4) the Contact header field in the initial SIP INVITE request sent by the SC UE towards the SCC AS included the + // g.3gpp.drvcc-alerting media feature tag as described in annex C, + // and + // the remote leg is not a precondition enabled dialog + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an UPDATE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + // 1) set the Request-URI set to the URI contained in the Contact header field returned at the creation of the dialog + // with the remote UE; + Contact indicating value "set to the Contact header field provided by the served UE at the creation of the dialog",// 2) the Contact header field set to the Contact header field provided by the served UE at the creation of the dialog with the remote UE + ContentType indicating value "application/sdp", + MessageBody containing // 3) a new SDP offer, including: + SDP containing + Media indicating value "the media characteristics as received in the SIP INVITE request due to PS to CS STN (including any precondition mechanism specific SDP attributes)"; + ; + ; + to the IMS_S_CSCF entity + } + } + + } // end TP_ISC_SCCAS_PCT_UPD_01 + + + + Test Purpose { + + + // For each SIP 200 (OK) response to the SIP UPDATE request (triggered by the SIP INVITE request due to PS to CS + // STN) from a remote UE the SCC AS shall: + // 1) if one of the following is true: + // A) if the remote leg is not a precondition enabled dialog; + // B) if the remote leg is a precondition enabled dialog, the SIP INVITE request due to PS to CS STN is a + // precondition enabled initial SIP INVITE request and both local and remote preconditions are met: + // send a SIP provisional response to the SIP INVITE request due to PS to CS STN following the rules of + // 3GPP TS 24.229 [2] with the response code corresponding to the actual dialog state populated with: + // - an SDP answer based on the SDP answer received from the remote UE; and + // - the last received P-Early-Media header field, including the SIP 2xx response to the SIP UPDATE request, if a PEarly- + // Media has been received from the remote UE. + + // This TP: only case A + + TP Id TP_ISC_PCT_RES_02 + + Test objective "Verify that the SCC AS sends SIP provisional response to the SIP INVITE request due to PS to CS STN" + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.5.2" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS + // a SIP INVITE request due to PS to CS STN tooks place + // and + // SCC AS has send a SIP UPDATE request according to TP TP_ISC_SCCAS_PCT_UPD_01 + // and + // the remote leg is not a precondition enabled dialog + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an r_200_Ok containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_1xx_Any containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + PEarlyMedia indicating value "the last received P-Early-Media header field", + ContentType indicating value "application/sdp", + MessageBody containing // 3) a new SDP offer, including: + SDP containing + Media indicating value "SDP answer based on the SDP answer received from the remote UE"; + ; + ; + to the IMS_S_CSCF entity + } + } + } // end TP TP_ISC_PCT_RES_02 + + + } // end Group "9.3.5.2 SCC AS procedures for PS to CS dual radio access transfer of a originating session in the alerting phase" + + Group "9.3.5.3 SCC AS procedures for PS to CS dual radio, access transfer of a originating session in the pre-alerting phase" + { + + import all from Sip_Common; + + Test Purpose { + + // When the SCC AS receives a SIP INVITE request due to PS to CS STN and if there are zero, one or more dialogs in an + // early dialog phase supporting a session with active speech media component such that: + // 1) all dialogs are early dialogs created by the same SIP INVITE request; + // 2) a SIP 180 (Ringing) response to the SIP INVITE request has not been received yet in any of the existing dialogs; + // 3) the SCC AS included a g.3gpp.ps2cs-drvcc-orig-pre-alerting feature-capability indicator as described in annex C + // in a Feature-Caps header field of SIP 18x responses; and + // 4) the Contact header field in the initial SIP INVITE request sent by the SC UE towards the SCC AS included a + // g.3gpp.ps2cs-drvcc-orig-pre-alerting media feature tag as described in annex C, + // then the SCC AS shall for each early dialog send a SIP UPDATE request towards the remote UE. + // Each SIP UPDATE request shall be populated as follows: + // 1) the Request-URI set to the URI contained in the Contact header field returned at the creation of the dialog with + // the remote UE; + // 2) the Contact header field set to the Contact header field provided by the served UE at the creation of the dialog + // with the remote UE; and + // 3) an new SDP offer, including + // a) if the remote leg is not a precondition enabled dialog, the media characteristics as received in the SIP + // INVITE request due to PS to CS STN but excluding any precondition mechanism specific SDP attributes, by + // following the rules of 3GPP TS 24.229 [2]; + // b) if the remote leg is a precondition enabled dialog, include a new SDP offer including: + // - the media characteristics as received in the SIP INVITE request due to PS to CS STN (including any + // precondition mechanism specific SDP attributes); and + // - if the SIP INVITE request due to PS to CS STN is not a precondition enabled initial SIP INVITE request, + // indicate preconditions as met, using the segmented status type, as defined in IETF RFC 3312 [88] and + // IETF RFC 4032 [89], as well as the strength-tag value "mandatory" for the local segment and the + // strength-tag value either "optional" or as specified in RFC 3312 [88] and RFC 4032 [89] for the remote + // segment. + + TP Id TP_ISC_SCCAS_PCT_INV_05 + + Test objective "Verify that the SCC AS send a SIP UPDATE request towards the remote UE after receiving a SIP INVITE request due to PS to CS STN in early dialog phase supporting a session with active speech media component such" + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.5.3" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS + // one dialog is early dialog + // and + // a SIP 180 (Ringing) response to the SIP INVITE request has not been received yet in any of the existing dialogs + // and + // the SCC AS included a g.3gpp.ps2cs-drvcc-orig-pre-alerting feature-capability indicator as in a Feature-Caps header field of SIP 18x responses + // and + // the Contact header field in the initial SIP INVITE request sent by the SC UE towards the SCC AS included a g.3gpp.ps2cs-drvcc-orig-pre-alerting media feature tag as + // and + // the remote leg is not a precondition enabled dialog + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an UPDATE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + PEarlyMedia indicating value "the last received P-Early-Media header field", + ContentType indicating value "application/sdp", + MessageBody containing // 3) a new SDP offer, including: + SDP containing + Media indicating value "the media characteristics as received in the SIP INVITE request due to PS to CS STN but excluding any precondition mechanism specific SDP attributes"; + ; + ; + to the IMS_S_CSCF entity + } + } + + } // end TP_ISC_SCCAS_PCT_INV_05 + + + } // end Group "9.3.5.3 SCC AS procedures for PS to CS dual radio, access transfer of a originating session in the prealerting phase" + + Group "9.3.5.4 SCC AS procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase" + { + + + import all from Sip_Common; + + Test Purpose { + + TP Id TP_ISC_SCCAS_PCT_REF_01 + + Test objective "Verify that the SCC AS populate a SIP REFER request to transfer an additional session in PS to CS dual radio access" + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.5.4" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS + // TODO: initial condition SIP INVITE request to PS to CS STN + // "In order to transfer an additional session on the originating side that can be in pre-alerting phase or in an alerting phase, + // the SCC AS shall send a SIP REFER request in the + // dialog created by the SIP INVITE request due to PS to CS STN" + } + + // 1. the Refer-Sub header field with value "false" as specified in IETF RFC 4488 [20]; + // 2. the Require header field with value "norefersub" as specified in IETF RFC 4488 [20]; + // 3. the Refer-To header field containing the additional transferred session SCC AS URI for PS to CS dual radio, + // where the URI also includes the following header fields containing the information related to the additional + // transferred session: + // A. the Target-Dialog header field populated as specified in IETF RFC 4538 [11], containing the dialog identifier + // of an dialog in the early phase supporting session of the SC UE; + // B. the Require header field populated with the option tag value "tdialog"; + // C. the To header field populated as specified in IETF RFC 3261 [19], containing the value of the P-Asserted- + // Identity provided by the remote UE during the session establishment; + // D. the From header field populated as specified in IETF RFC 3261 [19], containing the value of the P-Asserted- + // Identity provided by the SC UE during the session establishment; + // E. the Content-Type header field with "application/sdp"; + // F. the URI header field with the hname "body" populated with SDP describing the media streams as negotiated + // in the session with the remote UE; and + // G. optionally the P-Asserted-Identity URI header field containing value of the P-Asserted-Identity header field + // of the received SIP INVITE request; and + // 4. application/vnd.3gpp.state-and-event-info+xml MIME body populated as follows: + // A) if a SIP 180 (Ringing) response to the SIP INVITE request has already been received in any of the early + // dialogs associated with the originating early session not accepted yet, with the state-info XML element + // containing "early" and the direction XML element containing "initiator"; and + // B) if a SIP 180 (Ringing) response to the SIP INVITE request has not been received yet in any of the early + // dialogs associated with the originating early session not accepted yet, with the state-info XML element + // containing "pre-alerting" and the direction XML element containing "initiator". + + Expected behaviour + ensure that { + when { + // TODO: Trigger unclear for this refer + the IUT entity receives an ACK + + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an REFER containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + ReferSub indicating value false, // 1. the Refer-Sub header field with value "false" + Require indicating value "norefersub", // 2. the Require header field with value "norefersub" + ReferTo containing "a SIP URI with the Target-Dialog_URI_header_field" // 3. the Refer-To header field containing the additional transferred session SCC AS URI for PS to CS dual radio, where the URI also includes the following header fields containing the information related to the additional transferred session: + TargetDialog indicating value "TODO: dialog identifier of an dialog in the early phase supporting session of the SC UE", // A. the Target-Dialog header field populated, containing the dialog identifier of an dialog in the early phase supporting session of the SC UE; + Require indicating value "tdialog", // B. the Require header field populated with the option tag value "tdialog" + To indicating value "", // C. the To header field populated, containing the value of the P-Asserted-Identity provided by the remote UE during the session establishment; + From indicating value "", // D. the From header field populated, containing the value of the P-Asserted-Identity provided by the SC UE during the session establishment; + ContentType indicating value "application/sdp", // E. the Content-Type header field with "application/sdp"; + MessageBody containing // F. the URI header field with the hname "body" populated with SDP describing the media streams as negotiated in the session with the remote UE + SDP containing + TODO indicating value ""; + ; + ;, + PAssertedIdentity indicating value ""; // G. optionally the P-Asserted-Identity URI header field containing value of the P-Asserted-Identity header field of the received SIP INVITE request + + to the IMS_S_CSCF entity + } + } + + } // end TP_ISC_SCCAS_PCT_REF_01 + + + } // end Group "9.3.5.4 SCC AS procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase" + + Group "9.3.5.5 SCC AS procedures for PS to CS dual radio access transfer of a terminating session in the alerting phase" + { + import all from Sip_Common; + + + Test Purpose { + + // When the SCC AS receives a SIP 488 (Not Acceptable Here) response to the SIP INVITE request creating the session + // in the terminating alerting phase without an SDP MIME body and if the SCC AS supports PS to CS dual radio access + // transfer for calls in alerting phase then the SCC AS shall: + // 1) if a SIP 180 (Ringing) response to the SIP INVITE request has been received from the SC UE; + // 2) if the SCC AS included a g.3gpp.ps2cs-drvcc-orig-pre-alerting feature-capability indicator as described in + // annex C in the SIP INVITE request; and + // 3) if the Contact header field in the SIP 180 (Ringing) response request sent by the SC UE towards the SCC AS + // included a g.3gpp.drvcc-alerting media feature tag as described in annex C, + // terminate the call over CS as follows: + // 1) perform the actions according to the subclause 10.4.7 in 3GPP TS 24.292 [4] with the following clarifications: + // a) the URI in the Request-URI shall be set to C-MSISDN; and + // b) the P-Asserted-Identity header field set to: + // - if the SIP 180 (Ringing) response contained the g.3gpp.dynamic-stn media feature tag as described in + // annex C in the Contact header field, the dynamic STN; and + // - if the SIP 180 (Ringing) response does not contain the g.3gpp.dynamic-stn media feature tag as described + // in annex C in the Contact header field, the static STN. + + TP Id TP_ISC_SCCAS_PCT_REF_02 + + Test objective "Verify that the SCC AS terminates the call over CS after receiving a SIP 488" + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.5.5 and 10.4.7 in 3GPP TS 24.292 [4]" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS + // 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 + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an r_488_NotAcceptableHere containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an REFER containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + ReferSub indicating value false, // 1. the Refer-Sub header field with value "false" + Require indicating value "norefersub", // 2. the Require header field with value "norefersub" + ReferTo containing "a SIP URI with the Target-Dialog_URI_header_field" // 3. the Refer-To header field containing the additional transferred session SCC AS URI for PS to CS dual radio, where the URI also includes the following header fields containing the information related to the additional transferred session: + TargetDialog indicating value "TODO: dialog identifier of an dialog in the early phase supporting session of the SC UE", // A. the Target-Dialog header field populated, containing the dialog identifier of an dialog in the early phase supporting session of the SC UE; + Require indicating value "tdialog", // B. the Require header field populated with the option tag value "tdialog" + To indicating value "", // C. the To header field populated, containing the value of the P-Asserted-Identity provided by the remote UE during the session establishment; + From indicating value "", // D. the From header field populated, containing the value of the P-Asserted-Identity provided by the SC UE during the session establishment; + ContentType indicating value "application/sdp", // E. the Content-Type header field with "application/sdp"; + MessageBody containing // F. the URI header field with the hname "body" populated with SDP describing the media streams as negotiated in the session with the remote UE + SDP containing + TODO indicating value ""; + ; + ;, + PAssertedIdentity indicating value ""; // G. optionally the P-Asserted-Identity URI header field containing value of the P-Asserted-Identity header field of the received SIP INVITE request + + to the IMS_S_CSCF entity + } + } + + } // end TP_ISC_SCCAS_PCT_REF_02 + + + Test Purpose { + + // When the SCC AS receives a SIP 1xx response with an SDP answer the SCC AS shall: + // a) send a SIP PRACK request towards the CS domain; and + // b) send an SIP UPDATE request to the remote UE populated as follows: + // - the Request-URI set to the URI contained in the Contact header field returned at the creation of the dialog + // with the remote UE; + // - the Contact header field set to the Contact header field provided by the served UE at the creation of the + // dialog with the remote UE; and + // - anew SDP offer, including the media characteristics as received in the SIP 1xx response with the SDP + // answer, by following the rules of 3GPP TS 24.229 [2]. + + TP Id TP_ISC_SCCAS_PCT_RES_01 + + Test objective "Verify that the SCC AS sends a SIP PRACK and SIP UPDATE after receiving a SIP 1xx" + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.5.5" + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS + // 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 + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an r_1xx_Any containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE; + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an PRACK containing // send a SIP PRACK request towards the CS domain + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE; + and + the IUT entity sends an UPDATE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + Contact indicating value "set to the Contact header field provided by the served UE at the creation of the dialog with the remote UE", // the Contact header field set to the Contact header field provided by the served UE at the creation of the dialog with the remote UE; + MessageBody containing // anew SDP offer, including the media characteristics as received in the SIP 1xx response with the SDP answer, by following the rules of 3GPP TS 24.229 [2]. + SDP containing + Media indicating value "the same media characteristics as received in the SIP 1xx response with the SDP answer"; + ; + ; + to the IMS_S_CSCF entity + } + } + + + } // end TP_ISC_SCCAS_PCT_RES_01 + + + } // end Group "9.3.5.5 SCC AS procedures for PS to CS dual radio access transfer of a terminating session in the alerting phase" + + } // end Group "9.3.5 9.3.5 SCC AS procedures for PS to CS dual radio access transfer of calls in an early dialog phase" + + Group "9.3.6 Removal of non-transferred audio media components and release of source access legs" + { + import all from Sip_Common; + + + Test Purpose { + + + TP Id TP_ISC_SCCAS_MED_BYE_01 + + // When the transfer of a session is successfully completed, then the SCC AS shall release the source legs as follows: + // 1) the source access leg is an ongoing session containing only an active or inactive media component or a session in + // an early dialog phase on the terminating side, send a SIP BYE request on the source access leg in accordance + // with 3GPP TS 24.229 [2]; + + Test objective "Verify that the SCC AS sends a SIP BYE after transfer of a session is successfully completed and the source access leg is an ongoing session containing only an active or inactive media component" + + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.6." + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS + // TODO + // source access leg is an ongoing session containing only an active or inactive media component + + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an ACK + // TODO: trigger for event unclear, transfer of a session is successfully completed + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an BYE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA; + + to the IMS_S_CSCF entity + } + } + + + } // end TP_ISC_SCCAS_MED_BYE_01 + + + + Test Purpose { + + + TP Id TP_ISC_SCCAS_MED_RES_01 + + // When the transfer of a session is successfully completed, then the SCC AS shall release the source legs as follows: + // 2) the session is dialog in an early dialog phase on the originating side send a SIP 480 (Temporary Unavailable) + // response on the source access leg in accordance with 3GPP TS 24.229 [2]; + + Test objective "Verify that the SCC AS sends a SIP 480 after transfer of a session is successfully completed and the session is dialog in an early dialog phase on the originating side" + + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.6." + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS + // TODO: session is dialog in an early dialog phase on the originating side + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an ACK + + // TODO: trigger for event unclear, transfer of a session is successfully completed + + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an r_480_TemporaryUnavailable containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE; + to the IMS_S_CSCF entity + } + } + + + } // end TP_ISC_SCCAS_MED_RES_01 + + + + Test Purpose { + + + TP Id TP_ISC_SCCAS_MED_RIN_01 + + // When the transfer of a session is successfully completed, then the SCC AS shall release the source legs as follows: + // 3) the source access leg contains media components other than speech media component, the SCC AS should send + // a SIP re-INVITE request to update the source access leg in accordance with 3GPP TS 24.229 [2] + + Test objective "Verify that SCC AS sends a reINVITE after transfer of a session is successfully completed and the source access leg contains media components other than speech media component" + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.6." + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS + // TODO: + // transfer of a session is successfully completed + // and + // the source access leg contains media components other than speech media component + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an ACK + + // TODO: trigger for event unclear, transfer of a session is successfully completed + + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an INVITE containing // reINVITE + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + ContentType indicating value "application/sdp", + ContentLength, + MessageBody containing + SDP containing + Media indicating value "TODO: the source access leg contains media components other than speech media component";;; + to the IMS_S_CSCF entity + } + } + + + } // end TP_ISC_SCCAS_MED_RIN_01 + + } // end Group "9.3.6 Removal of non-transferred audio media components and release of source access legs" + + + Group "9.3.7 SCC AS procedures for CS to PS dual radio access transfer for calls in an early phase" + { + + Group "9.3.7.2 SCC AS procedures for CS to PS dual radio access transfer for originating calls in pre-alerting phase or in alerting phase on the originating side" + { + + import all from Sip_Common; + + Test Purpose { + + TP Id TP_ISC_SCCAS_CPT_INV_05 + + // When the SCC AS receives a SIP INVITE request due to static STI and if the SCC AS supports CS to PS dual radio + // access transfer for calls in alerting phase or CS to PS dual radio access transfer for originating calls in pre-alerting phase + // and: + // 2) if there are zero, one or more dialog in an early dialog phase such that: + // a) all dialogs are early dialogs created by the same SIP INVITE request; + // b) a SIP 180 (Ringing) response to the SIP INVITE request has not been received yet in any of the existing + // dialogs; + // c) a g.3gpp.drvcc-orig-pre-alerting media feature tag as described in annex C in the Contact header field was + // included in the SIP INVITE due to static STI; and + // d) the SCC AS supports CS to PS dual radio access transfer for originating calls in pre-alerting phase, + // then the SCC AS shall + // A) for each existing early dialog towards remote UEs send an SIP UPDATE request and populate as follows: + // a) the Contact header field set to the Contact header field provided on the source leg at the creation of the dialog + // with the remote UE; and + // b) a new SDP offer, including the media characteristics as received in the SIP INVITE request due to static STI, + // by following the rules of 3GPP TS 24.229 [2] + + Test objective "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" + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.7.2." + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS + // the SCC AS supports CS to PS dual radio access transfer for originating calls in pre-alerting phase + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an INVITE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + Contact containing + g3gppDrvccOrigPreAlertingFeature Tag;, // a g.3gpp.drvcc-orig-pre-alerting media feature tag as described in annex C in the Contact header field was + // included in the SIP INVITE due to static STI + MessageBody containing + SDP containing + Media indicating value PX_PSMedia;;; // TODO: PIX for media + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an UPDATE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + Contact indicating value "set to the Contact header field provided on the source leg at the creation of the dialog",// a) the Contact header field set to the Contact header field provided on the source leg at the creation of the dialog with the remote UE; + ContentType indicating value "application/sdp", + MessageBody containing // 3) a new SDP offer, including: + SDP containing + Media indicating value PX_PSMedia; // TODO: PIX for media, media characteristics as received in the SIP INVITE request + ; + ; + to the IMS_S_CSCF entity + } + } + + + } // end TP TP_ISC_SCCAS_CPT_INV_05 + } // end Group 9.3.7.2 SCC AS procedures for CS to PS dual radio access transfer for originating calls in pre-alerting phase or in alerting phase on the originating side" + + + Group "9.3.7.3 SCC AS procedures for CS to PS dual radio access transfer for a call in the alerting phase on the terminating side" + { + import all from Sip_Common; + + Test Purpose { + + // When the SCC AS receives a SIP INVITE request due to static STI and if SCC AS supports CS to PS dual radio access + // transfer for calls in alerting phase and: + // 1) if there is one dialog in an early dialog phase such that: + // a) a SIP 180 (Ringing) response to the SIP INVITE request has been received from the SC UE; and + // b) a g.3gpp.drvcc-alerting media feature tag as described in annex C in the Contact header field was included in + // the SIP INVITE request due to static STI, + // then the SCC AS shall send a SIP UPDATE request towards the remote UE populated as follows: + // 1) include the Contact header field set to the Contact header field provided on the source leg at the creation of the + // dialog with the remote UE; and + // 2) include a new SDP offer, including the media characteristics as received in the SIP INVITE request due to static + // STI, by following the rules of 3GPP TS 24.229 [2]. + + TP Id TP_ISC_SCCAS_CPT_INV_06 + + Test objective "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 " + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.7.3." + + Config Id CFG_SCCAS_01 + + PICS Selection NONE + + Initial conditions with { + the UE entity isRegisteredTo the IMS and + the IUT entity hasAchievedInitialINVITE // TODO: INVITE contains: g3gppDrvccAlerting + // SCC AS supports CS to PS dual radio access transfer for calls in alerting phase + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an r_180_Ringing + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an UPDATE containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + Contact indicating value "set to the Contact header field provided on the source leg at the creation of the dialog",// a) the Contact header field set to the Contact header field provided on the source leg at the creation of the dialog with the remote UE; + ContentType indicating value "application/sdp", + MessageBody containing // 3) a new SDP offer, including: + SDP containing + Media indicating value PX_PSMedia; // TODO: PIX for media, media characteristics as received in the SIP INVITE request + ; + ; + to the IMS_S_CSCF entity + } + + } + + + } // end TP TP_ISC_SCCAS_CPT_INV_06 + + } // end Group"9.3.7.3 SCC AS procedures for CS to PS dual radio access transfer for a call in the alerting phase on the terminating side + + + Group "9.3.7.4 SCC AS procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase" + { + + import all from Sip_Common; + + Test Purpose { + // In order to transfer of an additional session that can be in originating pre-alerting phase or in an alerting phase, the + // SCC AS supporting CS to PS dual radio access transfer for calls in an early phase, shall send a SIP REFER request + // according to 3GPP TS 24.229 [2], IETF RFC 4488 [20] and IETF RFC 3515 [13] as updated by IETF RFC 6665 [81] + // and IETF RFC 7647 [90] in the dialog created by the SIP INVITE request due to static STI populated as follows: + // 1) include a Refer-Sub header field with value "false" as specified in IETF RFC 4488 [20]; + // 2) include a Require header field with value "norefersub" as specified in IETF RFC 4488 [20]; + // 3) include a Refer-To header field containing the additional transferred session SCC AS URI for PS to CS dual + // radio, where the URI also includes the following URI header fields containing the information related to the + // additional transferred session: + // a) if an early dialog supporting the additional transferred session exists, the Target-Dialog header field + // populated as specified in IETF RFC 4538 [11], containing the dialog identifier of the dialog in the early + // phase; + // b) if the SCC AS supports the PS to CS dual radio access transfer for originating calls in pre-alerting phase, if + // no early dialog supporting the additional transferred session exists, there is a SIP INVITE request from the + // served user for which a final SIP response has not been received yet and if an early dialog supporting the + // additional transferred session existed and was terminated, the Target-Dialog header field populated as + // specified in IETF RFC 4538 [11], containing the dialog identifier on the source access leg of the early dialog + // supporting the additional transferred session which existed and was terminated; + // c) the Require header field populated with the option tag value "tdialog"; + // d) if an early dialog supporting the additional transferred session exists, the To header field populated as + // specified in IETF RFC 3261 [19], containing the value of the P-Asserted-Identity provided by the remote UE + // during the session establishment; + // e) the From header field populated as specified in IETF RFC 3261 [19], containing the value of the P-Asserted- + // Identity provided by the SC UE during the session establishment; + // f) the Content-Type header field with "application/sdp"; + // g) if an early dialog supporting the additional transferred session exists, the URI header field with hname + // "body" populated with SDP describing the media streams as negotiated in the session with the remote UE; + // and + // h) if the SCC AS supports the PS to CS dual radio access transfer for originating calls in pre-alerting phase, no + // early dialog supporting the additional transferred session exists, there is a SIP INVITE request from the + // served user for which a final SIP response has not been received yet, the URI header field with the hname + // "body" populated with the SDP offer received in the SIP INVITE request from the served user; and + // 4) application/vnd.3gpp.state-and-event-info+xml MIME with: + // a) if a SIP 180 (Ringing) response to the SIP INVITE request has already been received from the remote UE in + // any of the early dialogs associated with the originating early session not accepted yet, the state-info XML + // element containing "early" and the direction XML element containing "initiator"; + // b) if a SIP 180 (Ringing) response to the SIP INVITE request has not been received yet from the remote UE in + // any of the early dialogs associated with the originating early session not accepted yet and the additional + // transferred session was originated by the SC UE, the state-info XML element containing "pre-alerting" and + // the direction XML element containing "initiator"; and + // c) if a SIP 180 (Ringing) response to the INVITE request has already been received on the source access leg, + // the state-info XML element containing "early" and the direction XML element containing "receiver" + + TP Id TP_ISC_SCCAS_PCT_INV_04 + + Test objective "Verify that SCC AS correctly recognizes and initiated procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase " + + Reference + "ETSI TS 124 237 [1], Clauses 9.3.7.4." + + Config Id CFG_SCCAS_01 + + PICS Selection NONE // TODO + + Initial conditions with { + the UE entity isRegisteredTo the IMS and + the IUT entity hasAchievedInitialINVITE + // SCC AS the SCC AS supporting CS to PS dual radio access transfer for calls in an early phase + } + + Expected behaviour + ensure that { + when { + the IUT entity receives an r_180_Ringing + from the IMS_S_CSCF entity + } + then { + the IUT entity sends an REFER containing + From indicating value PX_UE_A_SIP_URI, + To indicating value PX_UE_B_SIP_URI, + CallId indicating value PX_UE_A_CALLID, + Via indicating value PX_UE_A_VIA, + Route indicating value PX_UE_A_SERVICE_ROUTE, + ReferSub indicating value false, // 1) include a Refer-Sub header field with value "false" as specified in IETF RFC 4488 [20]; + Supported indicating value "norefersub", // 2) include a Require header field with value "norefersub" as specified in IETF RFC 4488 [20]; + ReferTo containing // 3) include a Refer-To header field + TargetDialog indicating value "Target-Dialog header field containing the dialog identifier of the dialog in the early phase, if exist", // a) if an early dialog supporting the additional transferred session exists, the Target-Dialog header field + Require indicating value "tdialog", // c) the Require header field populated with the option tag value "tdialog"; + From indicating value "value of the P-Asserted-Identity provided by the SC UE during the session establishment", //the From header field populated as specified in IETF RFC 3261 [19], containing the value of the P-Asserted-Identity provided by the SC UE during the session establishment + ContentType indicating value "application/sdp", // E. the Content-Type header field with "application/sdp"; + MessageBody containing // F. the URI header field with the hname "body" populated with SDP describing the media streams as negotiated in the session with the remote UE + SDP containing + TODO indicating value "";;; + , + Accept containing // if a SIP 180 (Ringing) response to the INVITE request has already been received on the source access leg, the state-info XML element containing "early" and the direction XML element containing "receiver" + MIME indicating value "application/vnd.3gpp.state-and-event-info.xml";; //subclause D.2.3 + + to the IMS_S_CSCF entity + } + } + + } // end TP TP_ISC_SCCAS_PCT_INV_04 + + + } // end Group 9.3.7.4 SCC AS procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase + + + } // end Group 9.3.7 SCC AS procedures for CS to PS dual radio access transfer for calls in an early phase + }// End of Package TP_SCCAS_Chapter_9_3 -- GitLab From 495a8a2d6eb8ab967dab8dd6c777379aa50d9c1c Mon Sep 17 00:00:00 2001 From: pintar Date: Mon, 5 Sep 2022 12:34:57 +0200 Subject: [PATCH 083/202] Minor TP ID updates done --- test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 | 12 ++++++------ test_purposes/sccas/TP_SCCAS_Chapter_9_3.tplan2 | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 index 7c86939..3742d53 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_12_3.tplan2 @@ -67,7 +67,7 @@ Package TP_SCCAS_Chapter_12_3 { Test Purpose { - TP Id TP_ISC_SCCAS_SRA_INI_02 + TP Id TP_ISC_SCCAS_SRA_INV_02 Test objective "Verify that the SCCAS distinguish SIP INVITE with STN-SR and informs remote UE" @@ -167,7 +167,7 @@ Package TP_SCCAS_Chapter_12_3 { import all from Sip_Common; Test Purpose { - TP Id TP_ISC_SCCAS_SRA_INI_04 + TP Id TP_ISC_SCCAS_SRA_INV_04 Test objective "Verify that the SCCAS distinguish SIP INVITE with STN-SR and not release source leg" @@ -359,7 +359,7 @@ Package TP_SCCAS_Chapter_12_3 { Test Purpose { - TP Id TP_ISC_SCCAS_SRA_CNL_01 + TP Id TP_ISC_SCCAS_SRA_CAN_01 Test objective "Verify that the SCCAS distinguish SIP CANCEL and release session transfered leg after OperatiorSpecificTimer timeout" @@ -400,7 +400,7 @@ Package TP_SCCAS_Chapter_12_3 { to the IMS_S_CSCF entity } } - } // End of TP_ISC_SCCAS_SRA_CNL_01 + } // End of TP_ISC_SCCAS_SRA_CAN_01 } Group "12.3.3.5.2 SCC AS serving a terminating user"{ @@ -408,7 +408,7 @@ Package TP_SCCAS_Chapter_12_3 { Test Purpose { - TP Id TP_ISC_SCCAS_SRA_CNL_02 + TP Id TP_ISC_SCCAS_SRA_CAN_02 Test objective "Verify that the SCCAS send 200Ok_CANCEL and release PStoCS session transfered leg in alerting state for terminating user" @@ -449,7 +449,7 @@ Package TP_SCCAS_Chapter_12_3 { //to the IMS_S_CSCF entity } } - } // End of TP_ISC_SCCAS_SRA_CNL_02 + } // End of TP_ISC_SCCAS_SRA_CAN_02 } } diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3.tplan2 index 97de144..76b731a 100644 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3.tplan2 +++ b/test_purposes/sccas/TP_SCCAS_Chapter_9_3.tplan2 @@ -565,7 +565,7 @@ Package TP_SCCAS_Chapter_9_3 { // This TP: only case A - TP Id TP_ISC_PCT_RES_02 + TP Id TP_ISC_SCCAS_PCT_RES_02 Test objective "Verify that the SCC AS sends SIP provisional response to the SIP INVITE request due to PS to CS STN" @@ -613,7 +613,7 @@ Package TP_SCCAS_Chapter_9_3 { to the IMS_S_CSCF entity } } - } // end TP TP_ISC_PCT_RES_02 + } // end TP TP_ISC_SCCAS_PCT_RES_02 } // end Group "9.3.5.2 SCC AS procedures for PS to CS dual radio access transfer of a originating session in the alerting phase" -- GitLab From dedbff368edc8c43f584907e7ecb2dd394437d20 Mon Sep 17 00:00:00 2001 From: pintar Date: Mon, 5 Sep 2022 12:44:40 +0200 Subject: [PATCH 084/202] References updated --- test_purposes/References.txt | 26 +++++++------------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/test_purposes/References.txt b/test_purposes/References.txt index 0569619..47a5379 100644 --- a/test_purposes/References.txt +++ b/test_purposes/References.txt @@ -1,19 +1,7 @@ -TODO - -[1] ETSI ES 203 119-4: "TDL: Structured Test Objective Specification (Extension)" -[2] ETSI TS 124 229: "Digital cellular telecommunications system (Phase 2+) (GSM); Universal Mobile Telecommunications System (UMTS); LTE; IP multimedia call control protocol based on Session Initiation Protocol (SIP) and Session Description Protocol (SDP); Stage 3 (3GPP TS 24.229 Release 15)". -[3] ETSI TS 129 165: "Digital cellular telecommunications system (Phase 2+) (GSM); Universal Mobile Telecommunications System (UMTS); LTE; Inter-IMS Network to Network Interface (NNI) (3GPP TS 29.165 Release 15)". -[4] ETSI TS 129 228: "Digital cellular telecommunications system (Phase 2+) (GSM); Universal Mobile Telecommunications System (UMTS); LTE; IP Multimedia (IM) Subsystem Cx and Dx Interfaces; Signalling flows and message contents (3GPP TS 29.228 Release 15)". -[5] ETSI TS 129 229: "Digital cellular telecommunications system (Phase 2+) (GSM); Universal Mobile Telecommunications System (UMTS); LTE; Cx and Dx interfaces based on the Diameter protocol; Protocol details (3GPP TS 29.229 Release 15)". -[6] ETSI TS 132 260: "Digital cellular telecommunications system (Phase 2+) (GSM); Universal Mobile Telecommunications System (UMTS); LTE; Telecommunication management;Charging management;IP Multimedia Subsystem (IMS) charging (3GPP TS 32.260 Release 15)". -[7] ETSI TS 132 299: "Digital cellular telecommunications system (Phase 2+) (GSM); Universal Mobile Telecommunications System (UMTS); LTE; Telecommunication management; Charging management; Diameter charging applications (3GPP TS 32.299 Release 15)". -[8] ETSI TS 129 214: "Universal Mobile Telecommunications System (UMTS); LTE; Policy and charging control over Rx reference point (3GPP TS 29.214 Release 15)". -[9] ETSI TS 129 212: "Universal Mobile Telecommunications System (UMTS); LTE; Policy and Charging Control (PCC); Reference points (3GPP TS 29.212 Release 15)". -[10] ETSI TS 129 272: "Universal Mobile Telecommunications System (UMTS); LTE; Evolved Packet System (EPS); Mobility Management Entity (MME) and Serving GPRS Support Node (SGSN) related interfaces based on Diameter protocol (3GPP TS 29.272 Release 15)". -[11] ETSI TS 129 215: "Digital cellular telecommunications system (Phase 2+) (GSM); Universal Mobile Telecommunications System (UMTS); LTE; Policy and Charging Control (PCC) over S9 reference point; Stage 3 (3GPP TS 29.215 Release 15)". -[12] ETSI TS 129 328: "Digital cellular telecommunications system (Phase 2+) (GSM); Universal Mobile Telecommunications System (UMTS); LTE; IP Multimedia (IM) Subsystem Sh interface; Signalling flows and message contents (3GPP TS 29.328 Release 15)". -[13] ETSI TS 129 329: "Digital cellular telecommunications system (Phase 2+) (GSM); Universal Mobile Telecommunications System (UMTS); LTE; Sh interface based on the Diameter protocol; Protocol details (3GPP TS 29.329 Release 15)". -[14] ISO/IEC 9646-1: "Information technology -- Open Systems Interconnection -- Conformance testing methodology and framework -- Part 1: General concepts". -[15] ISO/IEC 9646-7: "Information technology -- Open Systems Interconnection -- Conformance testing methodology and framework -- Part 7: Implementation Conformance Statements". -[16] ETSI ETS 300 406: "Methods for testing and Specification (MTS); Protocol and profile conformance testing specifications; Standardization methodology". -[17] IETF RFC 3588: "Diameter Base Protocol". \ No newline at end of file +[1] ETSI TS 124 237: "Universal Mobile Telecommunications System (UMTS); LTE; IP Multimedia (IM) Core Network (CN) subsystem IP Multimedia Subsystem (IMS) service continuity; Stage 3 (3GPP TS 24.237 Release 16)". +[2] ETSI TS 124 292: "Universal Mobile Telecommunications System (UMTS); LTE; IP Multimedia (IM) Core Network (CN) subsystem Centralized Services (ICS); Stage 3 (3GPP TS 24.292 Release 16)". +[3] ETSI TS 103 833-1: "Core Network and Interoperability Testing (INT); Conformance Test Specifications for the SCC-AS Services; (3GPP™ Release 16); Part 1: Protocol Implementation Conformance Statement (PICS)". +[4] ISO/IEC 9646-1: "Information technology -- Open Systems Interconnection -- Conformance testing methodology and framework -- Part 1: General concepts". +[5] ISO/IEC 9646-7: "Information technology -- Open Systems Interconnection -- Conformance testing methodology and framework -- Part 7: Implementation Conformance Statements". +[6] ETSI ETS 300 406: "Methods for testing and Specification (MTS); Protocol and profile conformance testing specifications; Standardization methodology". +[7] ETSI ES 203 119-4: "Methods for Testing and Specification (MTS); The Test Description Language (TDL); Part 4: Structured Test Objective Specification (Extension)". \ No newline at end of file -- GitLab From ee3f9182ad71fd848708d21bfbe29a75cc26b024 Mon Sep 17 00:00:00 2001 From: pintar Date: Mon, 5 Sep 2022 12:47:35 +0200 Subject: [PATCH 085/202] Not needed modules removed --- test_purposes/sccas/TP_SCCAS.tplan2 | 117 -- .../sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 | 1323 ----------------- 2 files changed, 1440 deletions(-) delete mode 100644 test_purposes/sccas/TP_SCCAS.tplan2 delete mode 100644 test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 diff --git a/test_purposes/sccas/TP_SCCAS.tplan2 b/test_purposes/sccas/TP_SCCAS.tplan2 deleted file mode 100644 index e13d132..0000000 --- a/test_purposes/sccas/TP_SCCAS.tplan2 +++ /dev/null @@ -1,117 +0,0 @@ -/* -Copyright (c) ETSI 2019-2022. - -This software is subject to copyrights owned by ETSI. Non-exclusive permission -is hereby granted, free of charge, to copy, reproduce and amend this file -under the following conditions: It is provided "as is", without warranty of any -kind, expressed or implied. - -ETSI shall never be liable for any claim, damages, or other liability arising -from its use or inability of use.This permission does not apply to any documentation -associated with this file for which ETSI keeps all rights reserved. The present -copyright notice shall be included in all copies of whole or part of this -file and shall not imply any sub-license right. -*/ - -/* interface at SCCAS */ -Package TP_SCCAS { - - import all from Sip_Common; - - Test Purpose { - - TP Id TP_SCCAS_REGISTER_01 - - Test objective "TODO -- Verify that the P-CSCF successfully processes a first registration (Successful)." - - Reference - "TODO -ETSI TS 124 229 [1], Clauses 5.2.2.1 and 6.2" - - Config Id CFG_SCCAS_01 - - PICS Selection NONE - - Initial conditions with { - the UE entity isNotRegisteredTo the IMS_A - } - - Expected behaviour - ensure that { - when { - the IUT entity receives a REGISTER containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_A_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA; - from the IMS_S_CSCF entity - } - then { - the IUT entity sends a r_200_Ok containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_A_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Path indicating value PX_P_CSCF_A_SIP_URI, - PChargingVector containing - icid indicating value PX_TO_BE_DEFINED, - PVisitedNetworkID indicating value PX_TO_BE_DEFINED, - Require indicating value "path", - Supported indicating value "path";; - to the IMS_S_CSCF entity - } - } - } // End of TP_MW_PCSCF_REGISTER_01 - - Test Purpose { - - TP Id TP_SCCAS_INVITE_01 - - Test objective "Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg)." - - Reference - "ETSI TS 124 229 [1], Clauses 5.2.7.2 and 6.2" - - Config Id CFG_SCCAS_01 - - PICS Selection NONE - - Initial conditions with { - the UE entity isRegisteredTo the IMS - } - - Expected behaviour - ensure that { - when { - the IUT entity receives an INVITE containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - PAccessNetworkInfo, - MessageBody containing - SDP containing - Version indicating value "0";;; - from the IMS_S_CSCF entity - } - then { - the IUT entity sends an r_200_Ok containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - PAccessNetworkInfo, - ContentType indicating value "application/sdp", - ContentLength, - MessageBody containing - SDP containing - Version indicating value "0";;; - to the IMS_S_CSCF entity - } - } - - } // End of TP_MW_PCSCF_INVITE_01 - -} // End of Package TP_MW_PS - diff --git a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 b/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 deleted file mode 100644 index 22a26aa..0000000 --- a/test_purposes/sccas/TP_SCCAS_Chapter_9_3_FOKUS.tplan2 +++ /dev/null @@ -1,1323 +0,0 @@ -/* -Copyright (c) ETSI 2019-2022. - -This software is subject to copyrights owned by ETSI. Non-exclusive permission -is hereby granted, free of charge, to copy, reproduce and amend this file -under the following conditions: It is provided "as is", without warranty of any -kind, expressed or implied. - -ETSI shall never be liable for any claim, damages, or other liability arising -from its use or inability of use.This permission does not apply to any documentation -associated with this file for which ETSI keeps all rights reserved. The present -copyright notice shall be included in all copies of whole or part of this -file and shall not imply any sub-license right. -*/ - -/* interface at SCCAS */ -Package TP_SCCAS { - - - - Group "9.3.3 SCC AS procedures for CS to PS access transfer" - { - import all from Sip_Common; - - Test Purpose { - - // When the SCC AS receives a - // SIP INVITE request due to - // STI on the (page 20) - // Target Access Leg offering (RFC 3891 - replaces header field, - // PS media only (PS Packet Switch), - // SCC AS shall follow the procedures specified in subclause 10.3.2. - - TP Id TP_ISC_SCCAS_CPT_INV_01 - - Test objective "Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg) with dynamic STI." - - Reference - "ETSI TS 124 237 [1], Clauses 9.3.3 and 10.3.2" - - Config Id CFG_SCCAS_01 - - PICS Selection NONE // TODO - - Initial conditions with { - the UE entity isRegisteredTo the IMS // TODO - } - - Expected behaviour - ensure that { - when { - the IUT entity receives an INVITE containing - From indicating value PX_UE_A_SIP_URI, // this indicates dynamic STI - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - Supported indicating value "replaces", - PAccessNetworkInfo, - Replaces containing // Replaces indicating value (RFC 3891) - call_id indicating value PX_call_id, // TODO PX - from_tag indicating value PX_from_tag, // TODO PX - to_tag indicating value PX_to_tag // TODO PX - MessageBody containing - SDP containing // SDP: Session Description Protocol - Media indicating value PX_PSMediaOnly, // TODO: PX for media only - Version indicating value "0";;;; - from the IMS_S_CSCF entity - } - then { - the IUT entity sends an r_200_Ok containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - PAccessNetworkInfo, - ContentType indicating value "application/sdp", - ContentLength, - MessageBody containing - SDP containing - Media indicating value PX_PSMediaOnly, // TODO: PX for media only - Version indicating value "0";;; - to the IMS_S_CSCF entity - } - } - - } // end TP TP_ISC_SCCAS_CPT_INV_01 - - - // Testpurpose 2: When the SCC AS receives a SIP INVITE request due to static STI, the SCC AS shall: - Test Purpose { - - // When the SCC AS receives a - // SIP INVITE request due to - // STI on the (page 20) - // Target Access Leg offering (RFC 3891 - replaces header field, - // PS media only (PS Packet Switch), - // SCC AS shall follow the procedures specified in subclause 10.3.2. - - // TP_ISC_SCCAS_XXX_INV_01 - TP Id TP_ISC_SCCAS_CPT_INV_02 - - Test objective "Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg) with static STI." - - Reference - "ETSI TS 124 237 [1], Clauses 9.3.3" - - Config Id CFG_SCCAS_01 - - PICS Selection NONE // TODO - - Initial conditions with { - the UE entity isRegisteredTo the IMS // TODO - } - - Expected behaviour - ensure that { - when { - the IUT entity receives an INVITE containing - From indicating value PX_UE_A_TEL_URI, // this indicates static STI - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - Supported indicating value "replaces", - PAccessNetworkInfo, - Replaces containing // Replaces indicating value (RFC 3891) - call_id indicating value PX_call_id, // TODO PX - from_tag indicating value PX_from_tag, // TODO PX - to_tag indicating value PX_to_tag // TODO PX - MessageBody containing - SDP containing // SDP: Session Description Protocol - Media indicating value PX_PSMediaOnly, // TODO: PX for media only - Version indicating value "0";;;; - from the IMS_S_CSCF entity - } - then { - the IUT entity sends an r_200_Ok containing - From indicating value PX_UE_A_TEL_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - PAccessNetworkInfo, - ContentType indicating value "application/sdp", - ContentLength, - MessageBody containing - SDP containing - Media indicating value PX_PSMediaOnly, // TODO: PX for media only - Version indicating value "0";;; - to the IMS_S_CSCF entity - } - } - - } // end TP_ISC_SCCAS_CPT_INV_02 - - - // Test puposes 3: Upon receiving the SIP 2xx response to the SIP re-INVITE request the SCC AS shall send the SIP 200 (OK) response - // to the SIP INVITE request due to static STI on the target access leg populated as follows: - Test Purpose { - - // Note: Consider alternative with: - // if the SCC AS supports CS to PS dual radio access transfer for calls in alerting phase according to operator policy - - - TP Id TP_ISC_SCCAS_CPT_RIN_01 - - Test objective "Verify that the P-CSCF successfully processes an re-INVITE (Originating Leg)" - - Reference - "ETSI TS 124 237 [1], Clauses 9.3.3" - - Config Id CFG_SCCAS_01 - - PICS Selection NONE // TODO - - Initial conditions with { - the UE entity isRegisteredTo the IMS and // TODO - the UE entity previouslyEstablishedCallWith - } - - Expected behaviour - ensure that { - when { - the IUT entity receives an INVITE containing // re-invite - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - Supported indicating value "replaces", - PAccessNetworkInfo, - Replaces containing // Replaces indicating value (RFC 3891) - call_id indicating value PX_call_id, // TODO PX - from_tag indicating value PX_from_tag, // TODO PX - to_tag indicating value PX_to_tag // TODO PX - MessageBody containing - SDP containing // SDP: Session Description Protocol - Media indicating value PX_PSMediaOnly, // TODO: PX for media only - Version indicating value "0";;;; - from the IMS_S_CSCF entity - } - then { - the IUT entity sends an r_200_Ok containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - PAccessNetworkInfo, - ContentType indicating value "application/sdp", - ContentLength, - MessageBody containing - SDP containing - Media indicating value PX_PSMediaOnly, // TODO: PX for media only - Version indicating value "0";;; - to the IMS_S_CSCF entity - } - } - - } // end TP_ISC_SCCAS_CPT_RIN_01 - - - // Test puposes 4: Upon receiving the SIP ACK request originated from the SC UE, the SCC AS shall: - Test Purpose { - - TP Id TP_ISC_SCCAS_CPT_ACK_01 - - //Upon receiving the SIP ACK request originated from the SC UE, the SCC AS shall: - //1) release the source access leg as specified in subclause 9.3.6.; and ... - - //the source access leg is an ongoing session containing only an active or inactive media component or a session in - //an early dialog phase on the terminating side, send a SIP BYE request on the source access leg in accordance - //with 3GPP TS 24.229 [2]; - - Test objective "Verify that the P-CSCF successfully processes an ACK and release the source access leg." - - Reference - "ETSI TS 124 237 [1], Clauses 9.3.3 and 9.3.6." - - Config Id CFG_SCCAS_01 - - PICS Selection NONE // TODO - - Initial conditions with { - the UE entity isRegisteredTo the IMS and - the UE entity hasReceived200OkOnInitialRequestForDialogWith - } - - Expected behaviour - ensure that { - when { - the IUT entity receives an ACK containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE; - from the IMS_S_CSCF entity - } - then { - the IUT entity sends an BYE containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE; - to the IMS_S_CSCF entity - } - } - - - } // end TP TP_ISC_SCCAS_CPT_ACK_01 - - - } // end Group "9.3.3 SCC AS procedures for CS to PS access transfer" - - Group "9.3.4 SCC AS procedures for CS to PS access transfer with MSC server assisted mid-call feature" - { - import all from Sip_Common; - - - Test Purpose { - TP Id TP_ISC_SCCAS_CPT_INV_03 - - Test objective "Verify that the SCC AS Conditions for selecting a sessions in an early dialog phase" - - Reference - "ETSI TS 124 237 [1], Clauses 9.3.4 and 6A.4.3" - - Config Id CFG_SCCAS_01 - - PICS Selection NONE // TODO - - Initial conditions with { - the UE entity isRegisteredTo the IMS - // TODO: SCC AS supports the MSC Server assisted mid-call feature according to operator policy - } - - Expected behaviour - ensure that { - when { - the IUT entity receives an INVITE containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - Contact containing - g3gppSrvccAlertingFeatureCapabilityIndicator Tag;; - - from the IMS_S_CSCF entity - } - then { - the IUT entity sends an r_2xx_Any containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - FeatureCaps containing - g3gppMidcallFeatureCapabilityIndicator;, - MessageBody containing - SDP containing - Media indicating value PX_PSMediaOnly;;; // TODO: PX for media only - to the IMS_S_CSCF entity - } - - } - - } // end TP TP_ISC_SCCAS_CPT_INV_03 - - - - - } // end Group 9.3.4 SCC AS procedures for CS to PS access transfer with MSC server assisted mid-call feature - - Group "9.3.5 SCC AS procedures for PS to CS dual radio access transfer of calls in an early dialog phase" - { - - Group "9.3.5.1 Conditions for selecting a sessions in an early dialog phase" - { - import all from Sip_Common; - - - Test Purpose { - TP Id TP_ISC_SCCAS_CPT_INV_04 - - // An early session is subject for PS to CS dual radio access transfer when one of the following conditions is fulfilled: - // d. the Contact header field provided by the SC UE towards the SCC AS in the initial SIP INVITE request - // included the g.3gpp.drvcc-alerting media feature tag field as described in annex C; - - Test objective "Verify that the SCC AS accepts conditions in an early dialog phase" - - Reference - "ETSI TS 124 237 [1], Clauses 9.3.5.1" - - Config Id CFG_SCCAS_01 - - PICS Selection NONE // TODO - - Initial conditions with { - the UE entity isRegisteredTo the IMS - // TODO: SCC AS supports the MSC Server g.3gpp.drvcc-alerting feature - } - - Expected behaviour - ensure that { - when { - the IUT entity receives an INVITE containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - Contact containing - g3gppDrvccAlertingFeature tag;; //Annex C.15 - from the IMS_S_CSCF entity - } - then { - the IUT entity sends an r_2xx_Any containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - FeatureCaps containing - g3gppDrvccAlertingFeatureCapabilityIndicator;; - to the IMS_S_CSCF entity - } - - } - - } // end TP TP_ISC_SCCAS_CPT_INV_04 - } // end group 9.3.5.1 Conditions for selecting a sessions in an early dialog phase - - - - Group "9.3.5.2 SCC AS procedures for PS to CS dual radio access transfer of a originating session in the alerting phase" - { - - import all from Sip_Common; - - - Test Purpose { - - // When the SCC AS receives a SIP INVITE request due to PS to CS STN and if there are one or more dialogs in an early - // dialog phase supporting a session with active speech media component such that: - // 1) all dialogs are early dialogs created by the same SIP INVITE request; - // 2) a SIP 180 (Ringing) response to SIP INVITE request was received in at least one of those early dialogs; - // 3) a g.3gpp.drvcc-alerting feature-capability indicator as described in annex C was included in a Feature-Caps - // header field by the SCC AS in the SIP 180 (Ringing) response; and - // 4) the Contact header field in the initial SIP INVITE request sent by the SC UE towards the SCC AS included the - // g.3gpp.drvcc-alerting media feature tag as described in annex C, - // then the SCC AS shall for each early dialog send an SIP UPDATE request towards the remote UE and populate each - // SIP UPDATE request as follows: - // 1) set the Request-URI set to the URI contained in the Contact header field returned at the creation of the dialog - // with the remote UE; - // 2) the Contact header field set to the Contact header field provided by the served UE at the creation of the dialog - // with the remote UE; and - // 3) a new SDP offer, including: - // a) if the remote leg is not a precondition enabled dialog, the media characteristics as received in the SIP - // INVITE request due to PS to CS STN but excluding any precondition mechanism specific SDP attributes, by - // following the rules of 3GPP TS 24.229 [2]; - // b) if the remote leg is a precondition enabled dialog, include a new SDP offer including: - // - the media characteristics as received in the SIP INVITE request due to PS to CS STN (including any - // precondition mechanism specific SDP attributes); and - // - if the SIP INVITE request due to PS to CS STN is not a precondition enabled initial SIP INVITE request, - // indicate preconditions as met, using the segmented status type, as defined in IETF RFC 3312 [88] and - // IETF RFC 4032 [89], as well as the strength-tag value "mandatory" for the local segment and the - // strength-tag value either "optional" or as specified in RFC 3312 [88] and RFC 4032 [89] for the remote - // segment. - - // this TP: only case A - - TP Id TP_ISC_SCCAS_PCT_UPD_01 - - Test objective "Verify that the SCC AS sends a SIP UPDATE after receiving a SIP INVITE request due to PS to CS STN and if there are one or more dialogs in an early dialog phase and the remote leg is not a precondition enabled dialog" - - Reference - "ETSI TS 124 237 [1], Clauses 9.3.5.2" - - Config Id CFG_SCCAS_01 - - PICS Selection NONE // TODO - - Initial conditions with { - the UE entity isRegisteredTo the IMS - // TODO: - // here are one or more dialogs in an early dialog phase supporting a session with active speech media component such that: - // 1) all dialogs are early dialogs created by the same SIP INVITE request; - // 2) a SIP 180 (Ringing) response to SIP INVITE request was received in at least one of those early dialogs; - // 3) a g.3gpp.drvcc-alerting feature-capability indicator as described in annex C was included in a Feature-Caps - // header field by the SCC AS in the SIP 180 (Ringing) response; and - // 4) the Contact header field in the initial SIP INVITE request sent by the SC UE towards the SCC AS included the - // g.3gpp.drvcc-alerting media feature tag as described in annex C, - // and - // the remote leg is not a precondition enabled dialog - } - - Expected behaviour - ensure that { - when { - the IUT entity receives an INVITE containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE; - from the IMS_S_CSCF entity - } - then { - the IUT entity sends an UPDATE containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - // 1) set the Request-URI set to the URI contained in the Contact header field returned at the creation of the dialog - // with the remote UE; - Contact indicating value "set to the Contact header field provided by the served UE at the creation of the dialog",// 2) the Contact header field set to the Contact header field provided by the served UE at the creation of the dialog with the remote UE - ContentType indicating value "application/sdp", - MessageBody containing // 3) a new SDP offer, including: - SDP containing - Media indicating value "the media characteristics as received in the SIP INVITE request due to PS to CS STN (including any precondition mechanism specific SDP attributes)"; - ; - ; - to the IMS_S_CSCF entity - } - } - - } // end TP_ISC_SCCAS_PCT_UPD_01 - - - - Test Purpose { - - - // For each SIP 200 (OK) response to the SIP UPDATE request (triggered by the SIP INVITE request due to PS to CS - // STN) from a remote UE the SCC AS shall: - // 1) if one of the following is true: - // A) if the remote leg is not a precondition enabled dialog; - // B) if the remote leg is a precondition enabled dialog, the SIP INVITE request due to PS to CS STN is a - // precondition enabled initial SIP INVITE request and both local and remote preconditions are met: - // send a SIP provisional response to the SIP INVITE request due to PS to CS STN following the rules of - // 3GPP TS 24.229 [2] with the response code corresponding to the actual dialog state populated with: - // - an SDP answer based on the SDP answer received from the remote UE; and - // - the last received P-Early-Media header field, including the SIP 2xx response to the SIP UPDATE request, if a PEarly- - // Media has been received from the remote UE. - - // This TP: only case A - - TP Id TP_ISC_PCT_RES_02 - - Test objective "Verify that the SCC AS sends SIP provisional response to the SIP INVITE request due to PS to CS STN" - - Reference - "ETSI TS 124 237 [1], Clauses 9.3.5.2" - - Config Id CFG_SCCAS_01 - - PICS Selection NONE // TODO - - Initial conditions with { - the UE entity isRegisteredTo the IMS - // a SIP INVITE request due to PS to CS STN tooks place - // and - // SCC AS has send a SIP UPDATE request according to TP TP_ISC_SCCAS_PCT_UPD_01 - // and - // the remote leg is not a precondition enabled dialog - } - - Expected behaviour - ensure that { - when { - the IUT entity receives an r_200_Ok containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE; - from the IMS_S_CSCF entity - } - then { - the IUT entity sends an r_1xx_Any containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - PEarlyMedia indicating value "the last received P-Early-Media header field", - ContentType indicating value "application/sdp", - MessageBody containing // 3) a new SDP offer, including: - SDP containing - Media indicating value "SDP answer based on the SDP answer received from the remote UE"; - ; - ; - to the IMS_S_CSCF entity - } - } - } // end TP TP_ISC_PCT_RES_02 - - - } // end Group "9.3.5.2 SCC AS procedures for PS to CS dual radio access transfer of a originating session in the alerting phase" - - Group "9.3.5.3 SCC AS procedures for PS to CS dual radio, access transfer of a originating session in the pre-alerting phase" - { - - import all from Sip_Common; - - Test Purpose { - - // When the SCC AS receives a SIP INVITE request due to PS to CS STN and if there are zero, one or more dialogs in an - // early dialog phase supporting a session with active speech media component such that: - // 1) all dialogs are early dialogs created by the same SIP INVITE request; - // 2) a SIP 180 (Ringing) response to the SIP INVITE request has not been received yet in any of the existing dialogs; - // 3) the SCC AS included a g.3gpp.ps2cs-drvcc-orig-pre-alerting feature-capability indicator as described in annex C - // in a Feature-Caps header field of SIP 18x responses; and - // 4) the Contact header field in the initial SIP INVITE request sent by the SC UE towards the SCC AS included a - // g.3gpp.ps2cs-drvcc-orig-pre-alerting media feature tag as described in annex C, - // then the SCC AS shall for each early dialog send a SIP UPDATE request towards the remote UE. - // Each SIP UPDATE request shall be populated as follows: - // 1) the Request-URI set to the URI contained in the Contact header field returned at the creation of the dialog with - // the remote UE; - // 2) the Contact header field set to the Contact header field provided by the served UE at the creation of the dialog - // with the remote UE; and - // 3) an new SDP offer, including - // a) if the remote leg is not a precondition enabled dialog, the media characteristics as received in the SIP - // INVITE request due to PS to CS STN but excluding any precondition mechanism specific SDP attributes, by - // following the rules of 3GPP TS 24.229 [2]; - // b) if the remote leg is a precondition enabled dialog, include a new SDP offer including: - // - the media characteristics as received in the SIP INVITE request due to PS to CS STN (including any - // precondition mechanism specific SDP attributes); and - // - if the SIP INVITE request due to PS to CS STN is not a precondition enabled initial SIP INVITE request, - // indicate preconditions as met, using the segmented status type, as defined in IETF RFC 3312 [88] and - // IETF RFC 4032 [89], as well as the strength-tag value "mandatory" for the local segment and the - // strength-tag value either "optional" or as specified in RFC 3312 [88] and RFC 4032 [89] for the remote - // segment. - - TP Id TP_ISC_SCCAS_PCT_INV_05 - - Test objective "Verify that the SCC AS send a SIP UPDATE request towards the remote UE after receiving a SIP INVITE request due to PS to CS STN in early dialog phase supporting a session with active speech media component such" - - Reference - "ETSI TS 124 237 [1], Clauses 9.3.5.3" - - Config Id CFG_SCCAS_01 - - PICS Selection NONE // TODO - - Initial conditions with { - the UE entity isRegisteredTo the IMS - // one dialog is early dialog - // and - // a SIP 180 (Ringing) response to the SIP INVITE request has not been received yet in any of the existing dialogs - // and - // the SCC AS included a g.3gpp.ps2cs-drvcc-orig-pre-alerting feature-capability indicator as in a Feature-Caps header field of SIP 18x responses - // and - // the Contact header field in the initial SIP INVITE request sent by the SC UE towards the SCC AS included a g.3gpp.ps2cs-drvcc-orig-pre-alerting media feature tag as - // and - // the remote leg is not a precondition enabled dialog - } - - Expected behaviour - ensure that { - when { - the IUT entity receives an INVITE containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE; - from the IMS_S_CSCF entity - } - then { - the IUT entity sends an UPDATE containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - PEarlyMedia indicating value "the last received P-Early-Media header field", - ContentType indicating value "application/sdp", - MessageBody containing // 3) a new SDP offer, including: - SDP containing - Media indicating value "the media characteristics as received in the SIP INVITE request due to PS to CS STN but excluding any precondition mechanism specific SDP attributes"; - ; - ; - to the IMS_S_CSCF entity - } - } - - } // end TP_ISC_SCCAS_PCT_INV_05 - - - } // end Group "9.3.5.3 SCC AS procedures for PS to CS dual radio, access transfer of a originating session in the prealerting phase" - - Group "9.3.5.4 SCC AS procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase" - { - - - import all from Sip_Common; - - Test Purpose { - - TP Id TP_ISC_SCCAS_PCT_REF_01 - - Test objective "Verify that the SCC AS populate a SIP REFER request to transfer an additional session in PS to CS dual radio access" - - Reference - "ETSI TS 124 237 [1], Clauses 9.3.5.4" - - Config Id CFG_SCCAS_01 - - PICS Selection NONE // TODO - - Initial conditions with { - the UE entity isRegisteredTo the IMS - // TODO: initial condition SIP INVITE request to PS to CS STN - // "In order to transfer an additional session on the originating side that can be in pre-alerting phase or in an alerting phase, - // the SCC AS shall send a SIP REFER request in the - // dialog created by the SIP INVITE request due to PS to CS STN" - } - - // 1. the Refer-Sub header field with value "false" as specified in IETF RFC 4488 [20]; - // 2. the Require header field with value "norefersub" as specified in IETF RFC 4488 [20]; - // 3. the Refer-To header field containing the additional transferred session SCC AS URI for PS to CS dual radio, - // where the URI also includes the following header fields containing the information related to the additional - // transferred session: - // A. the Target-Dialog header field populated as specified in IETF RFC 4538 [11], containing the dialog identifier - // of an dialog in the early phase supporting session of the SC UE; - // B. the Require header field populated with the option tag value "tdialog"; - // C. the To header field populated as specified in IETF RFC 3261 [19], containing the value of the P-Asserted- - // Identity provided by the remote UE during the session establishment; - // D. the From header field populated as specified in IETF RFC 3261 [19], containing the value of the P-Asserted- - // Identity provided by the SC UE during the session establishment; - // E. the Content-Type header field with "application/sdp"; - // F. the URI header field with the hname "body" populated with SDP describing the media streams as negotiated - // in the session with the remote UE; and - // G. optionally the P-Asserted-Identity URI header field containing value of the P-Asserted-Identity header field - // of the received SIP INVITE request; and - // 4. application/vnd.3gpp.state-and-event-info+xml MIME body populated as follows: - // A) if a SIP 180 (Ringing) response to the SIP INVITE request has already been received in any of the early - // dialogs associated with the originating early session not accepted yet, with the state-info XML element - // containing "early" and the direction XML element containing "initiator"; and - // B) if a SIP 180 (Ringing) response to the SIP INVITE request has not been received yet in any of the early - // dialogs associated with the originating early session not accepted yet, with the state-info XML element - // containing "pre-alerting" and the direction XML element containing "initiator". - - Expected behaviour - ensure that { - when { - // TODO: Trigger unclear for this refer - the IUT entity receives an ACK - - from the IMS_S_CSCF entity - } - then { - the IUT entity sends an REFER containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - ReferSub indicating value false, // 1. the Refer-Sub header field with value "false" - Require indicating value "norefersub", // 2. the Require header field with value "norefersub" - ReferTo containing "a SIP URI with the Target-Dialog_URI_header_field" // 3. the Refer-To header field containing the additional transferred session SCC AS URI for PS to CS dual radio, where the URI also includes the following header fields containing the information related to the additional transferred session: - TargetDialog indicating value "TODO: dialog identifier of an dialog in the early phase supporting session of the SC UE", // A. the Target-Dialog header field populated, containing the dialog identifier of an dialog in the early phase supporting session of the SC UE; - Require indicating value "tdialog", // B. the Require header field populated with the option tag value "tdialog" - To indicating value "", // C. the To header field populated, containing the value of the P-Asserted-Identity provided by the remote UE during the session establishment; - From indicating value "", // D. the From header field populated, containing the value of the P-Asserted-Identity provided by the SC UE during the session establishment; - ContentType indicating value "application/sdp", // E. the Content-Type header field with "application/sdp"; - MessageBody containing // F. the URI header field with the hname "body" populated with SDP describing the media streams as negotiated in the session with the remote UE - SDP containing - TODO indicating value ""; - ; - ;, - PAssertedIdentity indicating value ""; // G. optionally the P-Asserted-Identity URI header field containing value of the P-Asserted-Identity header field of the received SIP INVITE request - - to the IMS_S_CSCF entity - } - } - - } // end TP_ISC_SCCAS_PCT_REF_01 - - - } // end Group "9.3.5.4 SCC AS procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase" - - Group "9.3.5.5 SCC AS procedures for PS to CS dual radio access transfer of a terminating session in the alerting phase" - { - import all from Sip_Common; - - - Test Purpose { - - // When the SCC AS receives a SIP 488 (Not Acceptable Here) response to the SIP INVITE request creating the session - // in the terminating alerting phase without an SDP MIME body and if the SCC AS supports PS to CS dual radio access - // transfer for calls in alerting phase then the SCC AS shall: - // 1) if a SIP 180 (Ringing) response to the SIP INVITE request has been received from the SC UE; - // 2) if the SCC AS included a g.3gpp.ps2cs-drvcc-orig-pre-alerting feature-capability indicator as described in - // annex C in the SIP INVITE request; and - // 3) if the Contact header field in the SIP 180 (Ringing) response request sent by the SC UE towards the SCC AS - // included a g.3gpp.drvcc-alerting media feature tag as described in annex C, - // terminate the call over CS as follows: - // 1) perform the actions according to the subclause 10.4.7 in 3GPP TS 24.292 [4] with the following clarifications: - // a) the URI in the Request-URI shall be set to C-MSISDN; and - // b) the P-Asserted-Identity header field set to: - // - if the SIP 180 (Ringing) response contained the g.3gpp.dynamic-stn media feature tag as described in - // annex C in the Contact header field, the dynamic STN; and - // - if the SIP 180 (Ringing) response does not contain the g.3gpp.dynamic-stn media feature tag as described - // in annex C in the Contact header field, the static STN. - - TP Id TP_ISC_SCCAS_PCT_REF_02 - - Test objective "Verify that the SCC AS terminates the call over CS after receiving a SIP 488" - - Reference - "ETSI TS 124 237 [1], Clauses 9.3.5.5 and 10.4.7 in 3GPP TS 24.292 [4]" - - Config Id CFG_SCCAS_01 - - PICS Selection NONE // TODO - - Initial conditions with { - the UE entity isRegisteredTo the IMS - // 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 - } - - Expected behaviour - ensure that { - when { - the IUT entity receives an r_488_NotAcceptableHere containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE; - from the IMS_S_CSCF entity - } - then { - the IUT entity sends an REFER containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - ReferSub indicating value false, // 1. the Refer-Sub header field with value "false" - Require indicating value "norefersub", // 2. the Require header field with value "norefersub" - ReferTo containing "a SIP URI with the Target-Dialog_URI_header_field" // 3. the Refer-To header field containing the additional transferred session SCC AS URI for PS to CS dual radio, where the URI also includes the following header fields containing the information related to the additional transferred session: - TargetDialog indicating value "TODO: dialog identifier of an dialog in the early phase supporting session of the SC UE", // A. the Target-Dialog header field populated, containing the dialog identifier of an dialog in the early phase supporting session of the SC UE; - Require indicating value "tdialog", // B. the Require header field populated with the option tag value "tdialog" - To indicating value "", // C. the To header field populated, containing the value of the P-Asserted-Identity provided by the remote UE during the session establishment; - From indicating value "", // D. the From header field populated, containing the value of the P-Asserted-Identity provided by the SC UE during the session establishment; - ContentType indicating value "application/sdp", // E. the Content-Type header field with "application/sdp"; - MessageBody containing // F. the URI header field with the hname "body" populated with SDP describing the media streams as negotiated in the session with the remote UE - SDP containing - TODO indicating value ""; - ; - ;, - PAssertedIdentity indicating value ""; // G. optionally the P-Asserted-Identity URI header field containing value of the P-Asserted-Identity header field of the received SIP INVITE request - - to the IMS_S_CSCF entity - } - } - - } // end TP_ISC_SCCAS_PCT_REF_02 - - - Test Purpose { - - // When the SCC AS receives a SIP 1xx response with an SDP answer the SCC AS shall: - // a) send a SIP PRACK request towards the CS domain; and - // b) send an SIP UPDATE request to the remote UE populated as follows: - // - the Request-URI set to the URI contained in the Contact header field returned at the creation of the dialog - // with the remote UE; - // - the Contact header field set to the Contact header field provided by the served UE at the creation of the - // dialog with the remote UE; and - // - anew SDP offer, including the media characteristics as received in the SIP 1xx response with the SDP - // answer, by following the rules of 3GPP TS 24.229 [2]. - - TP Id TP_ISC_SCCAS_PCT_RES_01 - - Test objective "Verify that the SCC AS sends a SIP PRACK and SIP UPDATE after receiving a SIP 1xx" - - Reference - "ETSI TS 124 237 [1], Clauses 9.3.5.5" - - Config Id CFG_SCCAS_01 - - PICS Selection NONE // TODO - - Initial conditions with { - the UE entity isRegisteredTo the IMS - // 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 - } - - Expected behaviour - ensure that { - when { - the IUT entity receives an r_1xx_Any containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE; - from the IMS_S_CSCF entity - } - then { - the IUT entity sends an PRACK containing // send a SIP PRACK request towards the CS domain - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE; - and - the IUT entity sends an UPDATE containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - Contact indicating value "set to the Contact header field provided by the served UE at the creation of the dialog with the remote UE", // the Contact header field set to the Contact header field provided by the served UE at the creation of the dialog with the remote UE; - MessageBody containing // anew SDP offer, including the media characteristics as received in the SIP 1xx response with the SDP answer, by following the rules of 3GPP TS 24.229 [2]. - SDP containing - Media indicating value "the same media characteristics as received in the SIP 1xx response with the SDP answer"; - ; - ; - to the IMS_S_CSCF entity - } - } - - - } // end TP_ISC_SCCAS_PCT_RES_01 - - - } // end Group "9.3.5.5 SCC AS procedures for PS to CS dual radio access transfer of a terminating session in the alerting phase" - - } // end Group "9.3.5 9.3.5 SCC AS procedures for PS to CS dual radio access transfer of calls in an early dialog phase" - - Group "9.3.6 Removal of non-transferred audio media components and release of source access legs" - { - import all from Sip_Common; - - - Test Purpose { - - - TP Id TP_ISC_SCCAS_MED_BYE_01 - - // When the transfer of a session is successfully completed, then the SCC AS shall release the source legs as follows: - // 1) the source access leg is an ongoing session containing only an active or inactive media component or a session in - // an early dialog phase on the terminating side, send a SIP BYE request on the source access leg in accordance - // with 3GPP TS 24.229 [2]; - - Test objective "Verify that the SCC AS sends a SIP BYE after transfer of a session is successfully completed and the source access leg is an ongoing session containing only an active or inactive media component" - - - Reference - "ETSI TS 124 237 [1], Clauses 9.3.6." - - Config Id CFG_SCCAS_01 - - PICS Selection NONE // TODO - - Initial conditions with { - the UE entity isRegisteredTo the IMS - // TODO - // source access leg is an ongoing session containing only an active or inactive media component - - } - - Expected behaviour - ensure that { - when { - the IUT entity receives an ACK - // TODO: trigger for event unclear, transfer of a session is successfully completed - from the IMS_S_CSCF entity - } - then { - the IUT entity sends an BYE containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA; - - to the IMS_S_CSCF entity - } - } - - - } // end TP_ISC_SCCAS_MED_BYE_01 - - - - Test Purpose { - - - TP Id TP_ISC_SCCAS_MED_RES_01 - - // When the transfer of a session is successfully completed, then the SCC AS shall release the source legs as follows: - // 2) the session is dialog in an early dialog phase on the originating side send a SIP 480 (Temporary Unavailable) - // response on the source access leg in accordance with 3GPP TS 24.229 [2]; - - Test objective "Verify that the SCC AS sends a SIP 480 after transfer of a session is successfully completed and the session is dialog in an early dialog phase on the originating side" - - - Reference - "ETSI TS 124 237 [1], Clauses 9.3.6." - - Config Id CFG_SCCAS_01 - - PICS Selection NONE // TODO - - Initial conditions with { - the UE entity isRegisteredTo the IMS - // TODO: session is dialog in an early dialog phase on the originating side - } - - Expected behaviour - ensure that { - when { - the IUT entity receives an ACK - - // TODO: trigger for event unclear, transfer of a session is successfully completed - - from the IMS_S_CSCF entity - } - then { - the IUT entity sends an r_480_TemporaryUnavailable containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE; - to the IMS_S_CSCF entity - } - } - - - } // end TP_ISC_SCCAS_MED_RES_01 - - - - Test Purpose { - - - TP Id TP_ISC_SCCAS_MED_RIN_01 - - // When the transfer of a session is successfully completed, then the SCC AS shall release the source legs as follows: - // 3) the source access leg contains media components other than speech media component, the SCC AS should send - // a SIP re-INVITE request to update the source access leg in accordance with 3GPP TS 24.229 [2] - - Test objective "Verify that SCC AS sends a reINVITE after transfer of a session is successfully completed and the source access leg contains media components other than speech media component" - - Reference - "ETSI TS 124 237 [1], Clauses 9.3.6." - - Config Id CFG_SCCAS_01 - - PICS Selection NONE // TODO - - Initial conditions with { - the UE entity isRegisteredTo the IMS - // TODO: - // transfer of a session is successfully completed - // and - // the source access leg contains media components other than speech media component - } - - Expected behaviour - ensure that { - when { - the IUT entity receives an ACK - - // TODO: trigger for event unclear, transfer of a session is successfully completed - - from the IMS_S_CSCF entity - } - then { - the IUT entity sends an INVITE containing // reINVITE - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - ContentType indicating value "application/sdp", - ContentLength, - MessageBody containing - SDP containing - Media indicating value "TODO: the source access leg contains media components other than speech media component";;; - to the IMS_S_CSCF entity - } - } - - - } // end TP_ISC_SCCAS_MED_RIN_01 - - } // end Group "9.3.6 Removal of non-transferred audio media components and release of source access legs" - - - Group "9.3.7 SCC AS procedures for CS to PS dual radio access transfer for calls in an early phase" - { - - Group "9.3.7.2 SCC AS procedures for CS to PS dual radio access transfer for originating calls in pre-alerting phase or in alerting phase on the originating side" - { - - import all from Sip_Common; - - Test Purpose { - - TP Id TP_ISC_SCCAS_CPT_INV_05 - - // When the SCC AS receives a SIP INVITE request due to static STI and if the SCC AS supports CS to PS dual radio - // access transfer for calls in alerting phase or CS to PS dual radio access transfer for originating calls in pre-alerting phase - // and: - // 2) if there are zero, one or more dialog in an early dialog phase such that: - // a) all dialogs are early dialogs created by the same SIP INVITE request; - // b) a SIP 180 (Ringing) response to the SIP INVITE request has not been received yet in any of the existing - // dialogs; - // c) a g.3gpp.drvcc-orig-pre-alerting media feature tag as described in annex C in the Contact header field was - // included in the SIP INVITE due to static STI; and - // d) the SCC AS supports CS to PS dual radio access transfer for originating calls in pre-alerting phase, - // then the SCC AS shall - // A) for each existing early dialog towards remote UEs send an SIP UPDATE request and populate as follows: - // a) the Contact header field set to the Contact header field provided on the source leg at the creation of the dialog - // with the remote UE; and - // b) a new SDP offer, including the media characteristics as received in the SIP INVITE request due to static STI, - // by following the rules of 3GPP TS 24.229 [2] - - Test objective "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" - - Reference - "ETSI TS 124 237 [1], Clauses 9.3.7.2." - - Config Id CFG_SCCAS_01 - - PICS Selection NONE - - Initial conditions with { - the UE entity isRegisteredTo the IMS - // the SCC AS supports CS to PS dual radio access transfer for originating calls in pre-alerting phase - } - - Expected behaviour - ensure that { - when { - the IUT entity receives an INVITE containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - Contact containing - g3gppDrvccOrigPreAlertingFeature Tag;, // a g.3gpp.drvcc-orig-pre-alerting media feature tag as described in annex C in the Contact header field was - // included in the SIP INVITE due to static STI - MessageBody containing - SDP containing - Media indicating value PX_PSMedia;;; // TODO: PIX for media - from the IMS_S_CSCF entity - } - then { - the IUT entity sends an UPDATE containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - Contact indicating value "set to the Contact header field provided on the source leg at the creation of the dialog",// a) the Contact header field set to the Contact header field provided on the source leg at the creation of the dialog with the remote UE; - ContentType indicating value "application/sdp", - MessageBody containing // 3) a new SDP offer, including: - SDP containing - Media indicating value PX_PSMedia; // TODO: PIX for media, media characteristics as received in the SIP INVITE request - ; - ; - to the IMS_S_CSCF entity - } - } - - - } // end TP TP_ISC_SCCAS_CPT_INV_05 - } // end Group 9.3.7.2 SCC AS procedures for CS to PS dual radio access transfer for originating calls in pre-alerting phase or in alerting phase on the originating side" - - - Group "9.3.7.3 SCC AS procedures for CS to PS dual radio access transfer for a call in the alerting phase on the terminating side" - { - import all from Sip_Common; - - Test Purpose { - - // When the SCC AS receives a SIP INVITE request due to static STI and if SCC AS supports CS to PS dual radio access - // transfer for calls in alerting phase and: - // 1) if there is one dialog in an early dialog phase such that: - // a) a SIP 180 (Ringing) response to the SIP INVITE request has been received from the SC UE; and - // b) a g.3gpp.drvcc-alerting media feature tag as described in annex C in the Contact header field was included in - // the SIP INVITE request due to static STI, - // then the SCC AS shall send a SIP UPDATE request towards the remote UE populated as follows: - // 1) include the Contact header field set to the Contact header field provided on the source leg at the creation of the - // dialog with the remote UE; and - // 2) include a new SDP offer, including the media characteristics as received in the SIP INVITE request due to static - // STI, by following the rules of 3GPP TS 24.229 [2]. - - TP Id TP_ISC_SCCAS_CPT_INV_06 - - Test objective "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 " - - Reference - "ETSI TS 124 237 [1], Clauses 9.3.7.3." - - Config Id CFG_SCCAS_01 - - PICS Selection NONE - - Initial conditions with { - the UE entity isRegisteredTo the IMS and - the IUT entity hasAchievedInitialINVITE // TODO: INVITE contains: g3gppDrvccAlerting - // SCC AS supports CS to PS dual radio access transfer for calls in alerting phase - } - - Expected behaviour - ensure that { - when { - the IUT entity receives an r_180_Ringing - from the IMS_S_CSCF entity - } - then { - the IUT entity sends an UPDATE containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - Contact indicating value "set to the Contact header field provided on the source leg at the creation of the dialog",// a) the Contact header field set to the Contact header field provided on the source leg at the creation of the dialog with the remote UE; - ContentType indicating value "application/sdp", - MessageBody containing // 3) a new SDP offer, including: - SDP containing - Media indicating value PX_PSMedia; // TODO: PIX for media, media characteristics as received in the SIP INVITE request - ; - ; - to the IMS_S_CSCF entity - } - - } - - - } // end TP TP_ISC_SCCAS_CPT_INV_06 - - } // end Group"9.3.7.3 SCC AS procedures for CS to PS dual radio access transfer for a call in the alerting phase on the terminating side - - - Group "9.3.7.4 SCC AS procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase" - { - - import all from Sip_Common; - - Test Purpose { - // In order to transfer of an additional session that can be in originating pre-alerting phase or in an alerting phase, the - // SCC AS supporting CS to PS dual radio access transfer for calls in an early phase, shall send a SIP REFER request - // according to 3GPP TS 24.229 [2], IETF RFC 4488 [20] and IETF RFC 3515 [13] as updated by IETF RFC 6665 [81] - // and IETF RFC 7647 [90] in the dialog created by the SIP INVITE request due to static STI populated as follows: - // 1) include a Refer-Sub header field with value "false" as specified in IETF RFC 4488 [20]; - // 2) include a Require header field with value "norefersub" as specified in IETF RFC 4488 [20]; - // 3) include a Refer-To header field containing the additional transferred session SCC AS URI for PS to CS dual - // radio, where the URI also includes the following URI header fields containing the information related to the - // additional transferred session: - // a) if an early dialog supporting the additional transferred session exists, the Target-Dialog header field - // populated as specified in IETF RFC 4538 [11], containing the dialog identifier of the dialog in the early - // phase; - // b) if the SCC AS supports the PS to CS dual radio access transfer for originating calls in pre-alerting phase, if - // no early dialog supporting the additional transferred session exists, there is a SIP INVITE request from the - // served user for which a final SIP response has not been received yet and if an early dialog supporting the - // additional transferred session existed and was terminated, the Target-Dialog header field populated as - // specified in IETF RFC 4538 [11], containing the dialog identifier on the source access leg of the early dialog - // supporting the additional transferred session which existed and was terminated; - // c) the Require header field populated with the option tag value "tdialog"; - // d) if an early dialog supporting the additional transferred session exists, the To header field populated as - // specified in IETF RFC 3261 [19], containing the value of the P-Asserted-Identity provided by the remote UE - // during the session establishment; - // e) the From header field populated as specified in IETF RFC 3261 [19], containing the value of the P-Asserted- - // Identity provided by the SC UE during the session establishment; - // f) the Content-Type header field with "application/sdp"; - // g) if an early dialog supporting the additional transferred session exists, the URI header field with hname - // "body" populated with SDP describing the media streams as negotiated in the session with the remote UE; - // and - // h) if the SCC AS supports the PS to CS dual radio access transfer for originating calls in pre-alerting phase, no - // early dialog supporting the additional transferred session exists, there is a SIP INVITE request from the - // served user for which a final SIP response has not been received yet, the URI header field with the hname - // "body" populated with the SDP offer received in the SIP INVITE request from the served user; and - // 4) application/vnd.3gpp.state-and-event-info+xml MIME with: - // a) if a SIP 180 (Ringing) response to the SIP INVITE request has already been received from the remote UE in - // any of the early dialogs associated with the originating early session not accepted yet, the state-info XML - // element containing "early" and the direction XML element containing "initiator"; - // b) if a SIP 180 (Ringing) response to the SIP INVITE request has not been received yet from the remote UE in - // any of the early dialogs associated with the originating early session not accepted yet and the additional - // transferred session was originated by the SC UE, the state-info XML element containing "pre-alerting" and - // the direction XML element containing "initiator"; and - // c) if a SIP 180 (Ringing) response to the INVITE request has already been received on the source access leg, - // the state-info XML element containing "early" and the direction XML element containing "receiver" - - TP Id TP_ISC_SCCAS_PCT_INV_04 - - Test objective "Verify that SCC AS correctly recognizes and initiated procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase " - - Reference - "ETSI TS 124 237 [1], Clauses 9.3.7.4." - - Config Id CFG_SCCAS_01 - - PICS Selection NONE // TODO - - Initial conditions with { - the UE entity isRegisteredTo the IMS and - the IUT entity hasAchievedInitialINVITE - // SCC AS the SCC AS supporting CS to PS dual radio access transfer for calls in an early phase - } - - Expected behaviour - ensure that { - when { - the IUT entity receives an r_180_Ringing - from the IMS_S_CSCF entity - } - then { - the IUT entity sends an REFER containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - ReferSub indicating value false, // 1) include a Refer-Sub header field with value "false" as specified in IETF RFC 4488 [20]; - Supported indicating value "norefersub", // 2) include a Require header field with value "norefersub" as specified in IETF RFC 4488 [20]; - ReferTo containing // 3) include a Refer-To header field - TargetDialog indicating value "Target-Dialog header field containing the dialog identifier of the dialog in the early phase, if exist", // a) if an early dialog supporting the additional transferred session exists, the Target-Dialog header field - Require indicating value "tdialog", // c) the Require header field populated with the option tag value "tdialog"; - From indicating value "value of the P-Asserted-Identity provided by the SC UE during the session establishment", //the From header field populated as specified in IETF RFC 3261 [19], containing the value of the P-Asserted-Identity provided by the SC UE during the session establishment - ContentType indicating value "application/sdp", // E. the Content-Type header field with "application/sdp"; - MessageBody containing // F. the URI header field with the hname "body" populated with SDP describing the media streams as negotiated in the session with the remote UE - SDP containing - TODO indicating value "";;; - , - Accept containing // if a SIP 180 (Ringing) response to the INVITE request has already been received on the source access leg, the state-info XML element containing "early" and the direction XML element containing "receiver" - MIME indicating value "application/vnd.3gpp.state-and-event-info.xml";; //subclause D.2.3 - - to the IMS_S_CSCF entity - } - } - - } // end TP TP_ISC_SCCAS_PCT_INV_04 - - - } // end Group 9.3.7.4 SCC AS procedures for PS to CS dual radio access transfer of an additional session in an early dialog phase - - - } // end Group 9.3.7 SCC AS procedures for CS to PS dual radio access transfer for calls in an early phase - -} // End of Package TP_SCCAS - -- GitLab From 59e77c0ed7971a9d3b7be668fbd738ce4ec56f8f Mon Sep 17 00:00:00 2001 From: pintar Date: Mon, 5 Sep 2022 12:48:34 +0200 Subject: [PATCH 086/202] Not needed module removed --- test_purposes/ims/TP_SCSCF.tplan2 | 117 ------------------------------ 1 file changed, 117 deletions(-) delete mode 100644 test_purposes/ims/TP_SCSCF.tplan2 diff --git a/test_purposes/ims/TP_SCSCF.tplan2 b/test_purposes/ims/TP_SCSCF.tplan2 deleted file mode 100644 index adc7535..0000000 --- a/test_purposes/ims/TP_SCSCF.tplan2 +++ /dev/null @@ -1,117 +0,0 @@ -/* -Copyright (c) ETSI 2019-2022. - -This software is subject to copyrights owned by ETSI. Non-exclusive permission -is hereby granted, free of charge, to copy, reproduce and amend this file -under the following conditions: It is provided "as is", without warranty of any -kind, expressed or implied. - -ETSI shall never be liable for any claim, damages, or other liability arising -from its use or inability of use.This permission does not apply to any documentation -associated with this file for which ETSI keeps all rights reserved. The present -copyright notice shall be included in all copies of whole or part of this -file and shall not imply any sub-license right. -*/ - -/* interface at SCSCF */ -Package TP_SCSCF { - - import all from Sip_Common; - - Test Purpose { - - TP Id TP_SCCAS_REGISTER_01 - - Test objective "TODO -- Verify that the P-CSCF successfully processes a first registration (Successful)." - - Reference - "TODO -ETSI TS 124 229 [1], Clauses 5.2.2.1 and 6.2" - - Config Id CFG_SCSCF_01 - - PICS Selection NONE - - Initial conditions with { - the UE entity isNotRegisteredTo the IMS_A - } - - Expected behaviour - ensure that { - when { - the IUT entity receives a REGISTER containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_A_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA; - from the IMS_S_CSCF entity - } - then { - the IUT entity sends a r_200_Ok containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_A_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Path indicating value PX_P_CSCF_A_SIP_URI, - PChargingVector containing - icid indicating value PX_TO_BE_DEFINED, - PVisitedNetworkID indicating value PX_TO_BE_DEFINED, - Require indicating value "path", - Supported indicating value "path";; - to the IMS_S_CSCF entity - } - } - } // End of TP_SCCAS_REGISTER_01 - - Test Purpose { - - TP Id TP_SCCAS_INVITE_01 - - Test objective "Verify that the P-CSCF successfully processes an initial INVITE (Originating Leg)." - - Reference - "ETSI TS 124 229 [1], Clauses 5.2.7.2 and 6.2" - - Config Id CFG_SCCAS_01 - - PICS Selection NONE - - Initial conditions with { - the UE entity isRegisteredTo the IMS - } - - Expected behaviour - ensure that { - when { - the IUT entity receives an INVITE containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - PAccessNetworkInfo, - MessageBody containing - SDP containing - Version indicating value "0";;; - from the IMS_S_CSCF entity - } - then { - the IUT entity sends an r_200_Ok containing - From indicating value PX_UE_A_SIP_URI, - To indicating value PX_UE_B_SIP_URI, - CallId indicating value PX_UE_A_CALLID, - Via indicating value PX_UE_A_VIA, - Route indicating value PX_UE_A_SERVICE_ROUTE, - PAccessNetworkInfo, - ContentType indicating value "application/sdp", - ContentLength, - MessageBody containing - SDP containing - Version indicating value "0";;; - to the IMS_S_CSCF entity - } - } - - } // End of TP_SCCAS_INVITE_01 - -} // End of Package TP_SCSCF - -- GitLab From 75dc3b9a986c90a1f1b95127ba5e5531f6f7a95f Mon Sep 17 00:00:00 2001 From: YannGarcia Date: Tue, 11 Oct 2022 14:48:52 +0200 Subject: [PATCH 087/202] Start REGISTER implementation --- ttcn/AtsSccas/AtsSccas_PICS.ttcn | 44 +- ttcn/AtsSccas/AtsSccas_PIXITS.ttcn | 770 +++++++++--------- ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn | 482 +++++++++-- .../AtsSccas_TCFunctions_TS124292.ttcn | 8 +- ttcn/AtsSccas/AtsSccas_Templates.ttcn | 201 +++-- ttcn/AtsSccas/AtsSccas_TestConfiguration.ttcn | 612 +++++++------- ttcn/AtsSccas/AtsSccas_TestExecutions.ttcn | 20 +- ttcn/AtsSccas/AtsSccas_TestSystem.ttcn | 118 +-- ttcn/AtsSccas/AtsSccas_Testcases.ttcn | 241 ++++-- .../AtsSccas/AtsSccas_Testcases_TS124292.ttcn | 512 ++++++------ 10 files changed, 1769 insertions(+), 1239 deletions(-) diff --git a/ttcn/AtsSccas/AtsSccas_PICS.ttcn b/ttcn/AtsSccas/AtsSccas_PICS.ttcn index a5921e7..0e2df8c 100644 --- a/ttcn/AtsSccas/AtsSccas_PICS.ttcn +++ b/ttcn/AtsSccas/AtsSccas_PICS.ttcn @@ -1,22 +1,22 @@ -/* - *@author TTF T016 - *@version $Id$ - *@desc This module provides the PICS used for the SCCAS_IMS tests. -*/ - -module AtsSccas_PICS -{ -modulepar { - -/* **************************************************************************************************** -PICS used for test case selection -*************************************************************************************************** */ - - /** @desc boolean PICS ref: A-3/5 - True, if SUT/SCSCF requires ... - */ - boolean PC_SCCAS_TODO := false; - - boolean PICS_MSC_GM := false; -} -} // end module AtsSccas_PICS +/* + *@author TTF T016 + *@version $Id$ + *@desc This module provides the PICS used for the SCCAS_IMS tests. +*/ + +module AtsSccas_PICS +{ +modulepar { + +/* **************************************************************************************************** +PICS used for test case selection +*************************************************************************************************** */ + + /** @desc boolean PICS ref: A-3/5 + True, if SUT/SCSCF requires ... + */ + boolean PC_SCCAS_TODO := false; + + boolean PICS_MSC_GM := false; +} +} // end module AtsSccas_PICS diff --git a/ttcn/AtsSccas/AtsSccas_PIXITS.ttcn b/ttcn/AtsSccas/AtsSccas_PIXITS.ttcn index 9e69710..51fa338 100644 --- a/ttcn/AtsSccas/AtsSccas_PIXITS.ttcn +++ b/ttcn/AtsSccas/AtsSccas_PIXITS.ttcn @@ -1,384 +1,386 @@ -/* - * @author TTF T016 - * @version $Id$ - * @desc This module provides the PIXIT used for the SIP-IMS tests. - */ - -module AtsSccas_PIXITS -{ - - -// SUT specific implementation variants - -modulepar { - - /** @desc boolean for SUT working mode due to - */ - boolean PX_SCCAS__ := true; - -} - - group SUT { - - group SUT_UE { - /** @desc charstring for SUT - UE IP address to exchange SIP messages - connection point for PCSCF - */ - modulepar charstring PX_IMS_SUT_UE_IPADDR := "10.100.0.6"; - - /** @desc integer for SUT - UE port number to exchange SIP messages - connection point for PCSCF - */ - modulepar integer PX_IMS_SUT_UE_PORT := 5060; - } // End of group SUT_UE1 - - group SUT_UE1 { - /** @desc charstring for SUT - PCSCF1 IP address to exchange SIP messages - connection point for UE1 - */ - modulepar charstring PX_IMS_SUT_PCSCF1_IPADDR := "10.100.0.6"; - - /** @desc integer for SUT - PCSCF1 port number to exchange SIP messages - connection point for UE1 - */ - modulepar integer PX_IMS_SUT_PCSCF1_PORT := 5060; - - /** @desc charstring for SUT/PCSCF1 domain - connection point for UE1 - */ - modulepar charstring PX_IMS_SUT_PCSCF1_HOME_DOMAIN := "plugtests.net"; - - /** @desc charstring for IP address used by the TS to exchange media streams for UE1 - */ - modulepar charstring PX_IMS_SUT_UE1_BEARER_IPADDR := "conftest.plugtests.net"; - - /** @desc charstring for identity of the tester UE1 local domain - */ - modulepar charstring PX_IMS_SUT_UE1_HOME_DOMAIN := "plugtests.net"; - - /** @desc charstring for identity of the tester UE1 local user - */ - modulepar charstring PX_IMS_SUT_UE1_PUBLIC_USER := "alice-06"; - - /** @desc charstring for RFC 2617 clause 3-2-2 username of UE1: - * The name of user in the specified realm - */ - modulepar charstring PX_IMS_SUT_UE1_PRIVAT_USERNAME := "alice-06"; - - /** @desc charstring for RFC 2617 clause 3-2-2-2 passwd of UE1: A known shared secret, the password of user of the specified username - */ - modulepar charstring PX_IMS_SUT_UE1_PRIVAT_PASSWD := "alice-05@1234"; - - /** @desc charstring for RFC 2617 clause 3-2-1 qop options of UE1: - * Quoted string of one or more tokens indicating the "quality of protection" values supported by the server; the - * value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection. - */ - modulepar charstring PX_IMS_SUT_UE1_QOP := "auth"; - - /** @desc charstring for home(SUT) REGISTRAR domain of UE1 - */ - modulepar charstring PX_IMS_SUT_UE1_REGISTRAR := "registrar.sut.net"; - - /** @desc charstring for UE1 display name - */ - modulepar charstring PX_IMS_SUT_UE1_DISPLAY := "alice-05@plugtest.net"; - } // End of group SUT_UE1 - - group SUT_UE2 { - /** @desc charstring for SUT - PCSCF2 IP address to exchange SIP messages - connection point for UE2 - */ - modulepar charstring PX_IMS_SUT_PCSCF2_IPADDR := "esrp1.frequentis.plugtests.net"; - - /** @desc integer for SUT - PCSCF2 port number to exchange SIP messages - connection point for UE2 - */ - modulepar integer PX_IMS_SUT_PCSCF2_PORT := 5060; - - /** @desc charstring for SUT/PCSCF2 domain - connection point for UE2 - */ - modulepar charstring PX_IMS_SUT_PCSCF2_HOME_DOMAIN := "plugtests.net"; - - /** @desc charstring for IP address used by the TS to exchange media streams for UE2 - */ - modulepar charstring PX_IMS_SUT_UE2_BEARER_IPADDR := "esrp1.frequentis.plugtests.net"; - - /** @desc charstring for identity of the tester UE2 local domain - */ - modulepar charstring PX_IMS_SUT_UE2_HOME_DOMAIN := "plugtests.net"; - - /** @desc charstring for identity of the tester UE2 local user - */ - modulepar charstring PX_IMS_SUT_UE2_PUBLIC_USER := "2910"; - - /** @desc charstring for RFC 2617 clause 3-2-2 username of UE2: - * The name of user in the specified realm - */ - modulepar charstring PX_IMS_SUT_UE2_PRIVAT_USERNAME := "abcd"; - - /** @desc charstring for RFC 2617 clause 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2 - */ - modulepar charstring PX_IMS_SUT_UE2_PRIVAT_PASSWD := "1234"; - - /** @desc charstring for RFC 2617 clause 3-2-1 qop options UE2: - * Quoted string of one or more tokens indicating the "quality of protection" values supported by the server, the - * value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection. - */ - modulepar charstring PX_IMS_SUT_UE2_QOP := "auth"; - - /** @desc charstring for home(SUT) REGISTRAR domain of UE2 - */ - modulepar charstring PX_IMS_SUT_UE2_REGISTRAR := "plugtests.net"; - } // End of group SUT_UE2 - - group SUT_UE3 { - /** @desc charstring for SUT - PCSCF3 IP address to exchange SIP messages - connection point for UE3 - */ - modulepar charstring PX_IMS_SUT_PCSCF3_IPADDR := "172.31.10.2"; - - /** @desc integer for SUT - PCSCF3 port number to exchange SIP messages - connection point for UE3 - */ - modulepar integer PX_IMS_SUT_PCSCF3_PORT := 5060; - - /** @desc charstring for SUT/PCSCF3 domain - connection point for UE3 - */ - modulepar charstring PX_IMS_SUT_PCSCF3_HOME_DOMAIN := "pcscf3.home.net"; - - /** @desc charstring for IP address used by the TS to exchange media streams for UE3 - */ - modulepar charstring PX_IMS_SUT_UE3_BEARER_IPADDR := "172.31.10.2"; - - /** @desc charstring for identity of the tester UE2 local domain - */ - modulepar charstring PX_IMS_SUT_UE3_HOME_DOMAIN := "sut.net"; - - /** @desc charstring for identity of the tester UE3 local user - */ - modulepar charstring PX_IMS_SUT_UE3_PUBLIC_USER := "2910"; - - /** @desc charstring for RFC 2617 clause 3-2-2 username of UE3: - * The name of user in the specified realm - */ - modulepar charstring PX_IMS_SUT_UE3_PRIVAT_USERNAME := "abcd"; - - /** @desc charstring for RFC 2617 clause 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE3 - */ - modulepar charstring PX_IMS_SUT_UE3_PRIVAT_PASSWD := "1234"; - - /** @desc charstring for RFC 2617 clause 3-2-1 qop options UE3: - * Quoted string of one or more tokens indicating the "quality of protection" values supported by the server, the - * value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection. - */ - modulepar charstring PX_IMS_SUT_UE3_QOP := "auth"; - - /** @desc charstring for home(SUT) REGISTRAR domain of UE3 - */ - modulepar charstring PX_IMS_SUT_UE3_REGISTRAR := "registrar.sut.net"; - } // End of group SUT_UE3 - - group SUT_UE4 {//UE4 can be used as UE1Visited - /** @desc charstring for SUT - PCSCF4 IP address to exchange SIP messages - connection point for UE4 - */ - modulepar charstring PX_IMS_SUT_PCSCF4_IPADDR := "172.31.10.2"; - - /** @desc integer for SUT - PCSCF4 port number to exchange SIP messages - connection point for UE4 - */ - modulepar integer PX_IMS_SUT_PCSCF4_PORT := 5060; - - /** @desc charstring for SUT/PCSCF4 domain - connection point for UE4 - */ - modulepar charstring PX_IMS_SUT_PCSCF4_HOME_DOMAIN := "pcscf4.home.net"; - - /** @desc charstring for IP address used by the TS to exchange media streams for UE4 - */ - modulepar charstring PX_IMS_SUT_UE4_BEARER_IPADDR := "172.31.10.2"; - - /** @desc charstring for identity of the tester UE2 local domain - */ - modulepar charstring PX_IMS_SUT_UE4_HOME_DOMAIN := "sut.net"; - - /** @desc charstring for identity of the tester UE4 local user - */ - modulepar charstring PX_IMS_SUT_UE4_PUBLIC_USER := "2910"; - - /** @desc charstring for RFC 2617 clause 3-2-2 username of UE4: - * The name of user in the specified realm - */ - modulepar charstring PX_IMS_SUT_UE4_PRIVAT_USERNAME := "abcd"; - - /** @desc charstring for RFC 2617 clause 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2 - */ - modulepar charstring PX_IMS_SUT_UE4_PRIVAT_PASSWD := "1234"; - - /** @desc charstring for RFC 2617 clause 3-2-1 qop options UE4: - * Quoted string of one or more tokens indicating the "quality of protection" values supported by the server, the - * value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection. - */ - modulepar charstring PX_IMS_SUT_UE4_QOP := "auth"; - - /** @desc charstring for home(SUT) REGISTRAR domain of UE4 - */ - modulepar charstring PX_IMS_SUT_UE4_REGISTRAR := "registrar.sut.net"; - } // End of group SUT_UE4 - - group SUT_unknown { - /** @desc charstring for identity of unknown UE public user - */ - modulepar charstring PX_IMS_SUT_unknownUE_PUBLIC_USER := "0007"; - } // End of group SUT_unknown - - group EMERGENCY{ - /** @desc charstring for identity of emergency service local domain - */ - modulepar charstring PX_IMS_SUT_EMERGENCY_HOME_DOMAIN := "plugtests.net"; - - /** @desc charstring for identity of the emergency service - */ - modulepar charstring PX_IMS_SUT_EMERGENCY_SERVICE := "112"; - - /** @desc charstring for identity of the invalid emergency service - */ - modulepar charstring PX_IMS_SUT_EMERGENCY_SERVICE_INVALID := "service.sos.invalid"; - } // End of group EMERGENCY service - - group SUT_IBCF { - /** @desc charstring for SUT/IBCF1 IP address to exchange SIP messages - */ - modulepar charstring PX_IMS_SUT_IBCF1_IPADDR := "172.31.10.5"; - - /** @desc integer for SUT/IBCF1 port number to exchange SIP messages - */ - modulepar integer PX_IMS_SUT_IBCF1_PORT := 5060; - - /** @desc charstring for SUT/IBCF1 domain - */ - modulepar charstring PX_IMS_SUT_IBCF1_HOME_DOMAIN := "ibcf1.sut.net"; - - /** @desc charstring for SUT/IBCF2 IP address to exchange SIP messages - */ - modulepar charstring PX_IMS_SUT_IBCF2_IPADDR := "172.31.10.6"; - - /** @desc integer for SUT/IBCF2 port number to exchange SIP messages - */ - modulepar integer PX_IMS_SUT_IBCF2_PORT := 5060; - - /** @desc charstring for SUT/IBCF2 domain - */ - modulepar charstring PX_IMS_SUT_IBCF2_HOME_DOMAIN := "ibcf2.sut.net"; - } // End of group SUT_IBCF - - group SUT_PCSCF { - /** @desc charstring for SUT/P-CSCF IP address to exchange SIP messages - */ - modulepar charstring PX_IMS_SUT_PCSCF_IPADDR := "172.31.10.2"; - - /** @desc integer for SUT/P-CSCF port number to exchange SIP messages - */ - modulepar integer PX_IMS_SUT_PCSCF_PORT := 5060; - - /** @desc charstring for SUT/P-CSCFdomain - */ - modulepar charstring PX_IMS_SUT_PCSCF_HOME_DOMAIN := "pcscf.sut.net"; - - /** @desc charstring for SUT/P-CSCF P_VisitedNetwork ID header (see RFC3455) - */ - modulepar charstring PX_IMS_SUT_PCSCF_VisitedNetworkID := "sut token"; - - /** @desc charstring for SUT/P-CSCF Min-SE header lower bound for the session refresh interval (see RFC4028) - */ - modulepar charstring PX_IMS_SUT_PCSCF_MinSE := "100"; - } // End of group SUT_PCSCF - - group SUT_SCSCF { - /** @desc charstring for SUT/S-CSCF IP address to exchange SIP messages - */ - modulepar charstring PX_IMS_SUT_SCSCF_IPADDR := "172.31.10.4"; - - /** @desc integer for SUT/S-CSCF port number to exchange SIP messages - */ - modulepar integer PX_IMS_SUT_SCSCF_PORT := 5060; - - /** @desc charstring for SUT/S-CSCFdomain - */ - modulepar charstring PX_IMS_SUT_SCSCF_HOME_DOMAIN := "scscf.sut.net"; - - /** @desc charstring for SUT/S-CSCF globally used realm name of IUT S-CSCF - */ - modulepar charstring PX_IMS_SUT_SCSCF_REALM := "realm.scscf"; - } // End of group SUT_SCSCF - - group SUT_ICSCF { - /** @desc charstring for SUT/I-CSCF IP address to exchange SIP messages - */ - modulepar charstring PX_IMS_SUT_ICSCF_IPADDR := "172.31.10.3"; - - /** @desc integer for SUT/I-CSCF port number to exchange SIP messages - */ - modulepar integer PX_IMS_SUT_ICSCF_PORT := 5060; - - /** @desc charstring for SUT/I-CSCFdomain - */ - modulepar charstring PX_IMS_SUT_ICSCF_HOME_DOMAIN := "icscf.sut.net"; - } // End of group SUT_ICSCF - - group SUT_AS { - /** @desc charstring for SUT - AS IP address to exchange SIP messages - connection point for SCSCF - */ - modulepar charstring PX_IMS_SUT_AS_IPADDR := "172.31.10.7"; - - /** @desc integer for SUT - AS port number to exchange SIP messages - connection point for SCSCF - */ - modulepar integer PX_IMS_SUT_AS_PORT := 5060; - - /** @desc charstring for SUT/AS domain - */ - modulepar charstring PX_IMS_SUT_AS_HOME_DOMAIN := "as.sut.net"; - - } // End of group SUT_AS - - group SUT_IMGCF { - /** @desc charstring for SUT/I-MGCF IP address to exchange SIP messages - */ - modulepar charstring PX_IMS_SUT_IMGCF_IPADDR := "172.31.10.10"; - - /** @desc integer for SUT/I-MGCF port number to exchange SIP messages - */ - modulepar integer PX_IMS_SUT_IMGCF_PORT := 5060; - - /** @desc charstring for SUT/I-MGCFdomain - */ - modulepar charstring PX_IMS_SUT_IMGCF_HOME_DOMAIN := "imgcf.sut.net"; - } // End of group SUT_IMGCF - - group SUT_CONF { - /** - * @desc - * charstring for SUT/conference IP address to exchange SIP messages - */ - modulepar charstring PX_IMS_SUT_CONF_IPADDR := "172.31.10.10"; - /** - * @desc integer for SUT/conference port number to exchange SIP messages - */ - modulepar integer PX_IMS_SUT_CONF_PORT := 5060; - /** - * @desc charstring for SUT/conference domain - */ - modulepar charstring PX_IMS_SUT_CONF_HOME_DOMAIN := "conf.sut.net"; - /** - * @desc charstring for conference factory URI name - */ - modulepar charstring PX_IMS_SUT_CONF_FACTORY_NAME := "factory.uri.name"; - } // End of group SUT_CONF - - } // End of group SUT - - group ts_ue1 { - - /** @desc charstring for IP address used by the UE1 to exchange SIP messages - */ - modulepar charstring PX_IMS_TS_UE1_IPADDR := "conftest.plugtests.net"; - - /** @desc integer for port number used by the UE1 to exchange SIP messages - */ - modulepar integer PX_IMS_TS_UE1_PORT := 5060; - - /** @desc charstring for visited(TS) REGISTRAR domain - */ - modulepar charstring PX_IMS_TS_UE1_REGISTRAR := "plugtests.net"; - - } // End of group ts_ue1 - -} // end module AtsSccas_PIXITS +/* + * @author TTF T016 + * @version $Id$ + * @desc This module provides the PIXIT used for the SIP-IMS tests. + */ + +module AtsSccas_PIXITS +{ + + +// SUT specific implementation variants + +modulepar { + + /** @desc boolean for SUT working mode due to + */ + boolean PX_SCCAS__ := true; + + charstring PX_SIP_URI := ""; + +} + + group SUT { + + group SUT_UE { + /** @desc charstring for SUT - UE IP address to exchange SIP messages - connection point for PCSCF + */ + modulepar charstring PX_IMS_SUT_UE_IPADDR := "10.100.0.6"; + + /** @desc integer for SUT - UE port number to exchange SIP messages - connection point for PCSCF + */ + modulepar integer PX_IMS_SUT_UE_PORT := 5060; + } // End of group SUT_UE1 + + group SUT_UE1 { + /** @desc charstring for SUT - PCSCF1 IP address to exchange SIP messages - connection point for UE1 + */ + modulepar charstring PX_IMS_SUT_PCSCF1_IPADDR := "10.100.0.6"; + + /** @desc integer for SUT - PCSCF1 port number to exchange SIP messages - connection point for UE1 + */ + modulepar integer PX_IMS_SUT_PCSCF1_PORT := 5060; + + /** @desc charstring for SUT/PCSCF1 domain - connection point for UE1 + */ + modulepar charstring PX_IMS_SUT_PCSCF1_HOME_DOMAIN := "plugtests.net"; + + /** @desc charstring for IP address used by the TS to exchange media streams for UE1 + */ + modulepar charstring PX_IMS_SUT_UE1_BEARER_IPADDR := "conftest.plugtests.net"; + + /** @desc charstring for identity of the tester UE1 local domain + */ + modulepar charstring PX_IMS_SUT_UE1_HOME_DOMAIN := "plugtests.net"; + + /** @desc charstring for identity of the tester UE1 local user + */ + modulepar charstring PX_IMS_SUT_UE1_PUBLIC_USER := "alice-06"; + + /** @desc charstring for RFC 2617 clause 3-2-2 username of UE1: + * The name of user in the specified realm + */ + modulepar charstring PX_IMS_SUT_UE1_PRIVAT_USERNAME := "alice-06"; + + /** @desc charstring for RFC 2617 clause 3-2-2-2 passwd of UE1: A known shared secret, the password of user of the specified username + */ + modulepar charstring PX_IMS_SUT_UE1_PRIVAT_PASSWD := "alice-05@1234"; + + /** @desc charstring for RFC 2617 clause 3-2-1 qop options of UE1: + * Quoted string of one or more tokens indicating the "quality of protection" values supported by the server; the + * value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection. + */ + modulepar charstring PX_IMS_SUT_UE1_QOP := "auth"; + + /** @desc charstring for home(SUT) REGISTRAR domain of UE1 + */ + modulepar charstring PX_IMS_SUT_UE1_REGISTRAR := "registrar.sut.net"; + + /** @desc charstring for UE1 display name + */ + modulepar charstring PX_IMS_SUT_UE1_DISPLAY := "alice-05@plugtest.net"; + } // End of group SUT_UE1 + + group SUT_UE2 { + /** @desc charstring for SUT - PCSCF2 IP address to exchange SIP messages - connection point for UE2 + */ + modulepar charstring PX_IMS_SUT_PCSCF2_IPADDR := "esrp1.frequentis.plugtests.net"; + + /** @desc integer for SUT - PCSCF2 port number to exchange SIP messages - connection point for UE2 + */ + modulepar integer PX_IMS_SUT_PCSCF2_PORT := 5060; + + /** @desc charstring for SUT/PCSCF2 domain - connection point for UE2 + */ + modulepar charstring PX_IMS_SUT_PCSCF2_HOME_DOMAIN := "plugtests.net"; + + /** @desc charstring for IP address used by the TS to exchange media streams for UE2 + */ + modulepar charstring PX_IMS_SUT_UE2_BEARER_IPADDR := "esrp1.frequentis.plugtests.net"; + + /** @desc charstring for identity of the tester UE2 local domain + */ + modulepar charstring PX_IMS_SUT_UE2_HOME_DOMAIN := "plugtests.net"; + + /** @desc charstring for identity of the tester UE2 local user + */ + modulepar charstring PX_IMS_SUT_UE2_PUBLIC_USER := "2910"; + + /** @desc charstring for RFC 2617 clause 3-2-2 username of UE2: + * The name of user in the specified realm + */ + modulepar charstring PX_IMS_SUT_UE2_PRIVAT_USERNAME := "abcd"; + + /** @desc charstring for RFC 2617 clause 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2 + */ + modulepar charstring PX_IMS_SUT_UE2_PRIVAT_PASSWD := "1234"; + + /** @desc charstring for RFC 2617 clause 3-2-1 qop options UE2: + * Quoted string of one or more tokens indicating the "quality of protection" values supported by the server, the + * value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection. + */ + modulepar charstring PX_IMS_SUT_UE2_QOP := "auth"; + + /** @desc charstring for home(SUT) REGISTRAR domain of UE2 + */ + modulepar charstring PX_IMS_SUT_UE2_REGISTRAR := "plugtests.net"; + } // End of group SUT_UE2 + + group SUT_UE3 { + /** @desc charstring for SUT - PCSCF3 IP address to exchange SIP messages - connection point for UE3 + */ + modulepar charstring PX_IMS_SUT_PCSCF3_IPADDR := "172.31.10.2"; + + /** @desc integer for SUT - PCSCF3 port number to exchange SIP messages - connection point for UE3 + */ + modulepar integer PX_IMS_SUT_PCSCF3_PORT := 5060; + + /** @desc charstring for SUT/PCSCF3 domain - connection point for UE3 + */ + modulepar charstring PX_IMS_SUT_PCSCF3_HOME_DOMAIN := "pcscf3.home.net"; + + /** @desc charstring for IP address used by the TS to exchange media streams for UE3 + */ + modulepar charstring PX_IMS_SUT_UE3_BEARER_IPADDR := "172.31.10.2"; + + /** @desc charstring for identity of the tester UE2 local domain + */ + modulepar charstring PX_IMS_SUT_UE3_HOME_DOMAIN := "sut.net"; + + /** @desc charstring for identity of the tester UE3 local user + */ + modulepar charstring PX_IMS_SUT_UE3_PUBLIC_USER := "2910"; + + /** @desc charstring for RFC 2617 clause 3-2-2 username of UE3: + * The name of user in the specified realm + */ + modulepar charstring PX_IMS_SUT_UE3_PRIVAT_USERNAME := "abcd"; + + /** @desc charstring for RFC 2617 clause 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE3 + */ + modulepar charstring PX_IMS_SUT_UE3_PRIVAT_PASSWD := "1234"; + + /** @desc charstring for RFC 2617 clause 3-2-1 qop options UE3: + * Quoted string of one or more tokens indicating the "quality of protection" values supported by the server, the + * value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection. + */ + modulepar charstring PX_IMS_SUT_UE3_QOP := "auth"; + + /** @desc charstring for home(SUT) REGISTRAR domain of UE3 + */ + modulepar charstring PX_IMS_SUT_UE3_REGISTRAR := "registrar.sut.net"; + } // End of group SUT_UE3 + + group SUT_UE4 {//UE4 can be used as UE1Visited + /** @desc charstring for SUT - PCSCF4 IP address to exchange SIP messages - connection point for UE4 + */ + modulepar charstring PX_IMS_SUT_PCSCF4_IPADDR := "172.31.10.2"; + + /** @desc integer for SUT - PCSCF4 port number to exchange SIP messages - connection point for UE4 + */ + modulepar integer PX_IMS_SUT_PCSCF4_PORT := 5060; + + /** @desc charstring for SUT/PCSCF4 domain - connection point for UE4 + */ + modulepar charstring PX_IMS_SUT_PCSCF4_HOME_DOMAIN := "pcscf4.home.net"; + + /** @desc charstring for IP address used by the TS to exchange media streams for UE4 + */ + modulepar charstring PX_IMS_SUT_UE4_BEARER_IPADDR := "172.31.10.2"; + + /** @desc charstring for identity of the tester UE2 local domain + */ + modulepar charstring PX_IMS_SUT_UE4_HOME_DOMAIN := "sut.net"; + + /** @desc charstring for identity of the tester UE4 local user + */ + modulepar charstring PX_IMS_SUT_UE4_PUBLIC_USER := "2910"; + + /** @desc charstring for RFC 2617 clause 3-2-2 username of UE4: + * The name of user in the specified realm + */ + modulepar charstring PX_IMS_SUT_UE4_PRIVAT_USERNAME := "abcd"; + + /** @desc charstring for RFC 2617 clause 3-2-2-2 passwd: A known shared secret, the password of user of the specified username of UE2 + */ + modulepar charstring PX_IMS_SUT_UE4_PRIVAT_PASSWD := "1234"; + + /** @desc charstring for RFC 2617 clause 3-2-1 qop options UE4: + * Quoted string of one or more tokens indicating the "quality of protection" values supported by the server, the + * value "auth" indicates authentication; the value "auth-int" indicates authentication with integrity protection. + */ + modulepar charstring PX_IMS_SUT_UE4_QOP := "auth"; + + /** @desc charstring for home(SUT) REGISTRAR domain of UE4 + */ + modulepar charstring PX_IMS_SUT_UE4_REGISTRAR := "registrar.sut.net"; + } // End of group SUT_UE4 + + group SUT_unknown { + /** @desc charstring for identity of unknown UE public user + */ + modulepar charstring PX_IMS_SUT_unknownUE_PUBLIC_USER := "0007"; + } // End of group SUT_unknown + + group EMERGENCY{ + /** @desc charstring for identity of emergency service local domain + */ + modulepar charstring PX_IMS_SUT_EMERGENCY_HOME_DOMAIN := "plugtests.net"; + + /** @desc charstring for identity of the emergency service + */ + modulepar charstring PX_IMS_SUT_EMERGENCY_SERVICE := "112"; + + /** @desc charstring for identity of the invalid emergency service + */ + modulepar charstring PX_IMS_SUT_EMERGENCY_SERVICE_INVALID := "service.sos.invalid"; + } // End of group EMERGENCY service + + group SUT_IBCF { + /** @desc charstring for SUT/IBCF1 IP address to exchange SIP messages + */ + modulepar charstring PX_IMS_SUT_IBCF1_IPADDR := "172.31.10.5"; + + /** @desc integer for SUT/IBCF1 port number to exchange SIP messages + */ + modulepar integer PX_IMS_SUT_IBCF1_PORT := 5060; + + /** @desc charstring for SUT/IBCF1 domain + */ + modulepar charstring PX_IMS_SUT_IBCF1_HOME_DOMAIN := "ibcf1.sut.net"; + + /** @desc charstring for SUT/IBCF2 IP address to exchange SIP messages + */ + modulepar charstring PX_IMS_SUT_IBCF2_IPADDR := "172.31.10.6"; + + /** @desc integer for SUT/IBCF2 port number to exchange SIP messages + */ + modulepar integer PX_IMS_SUT_IBCF2_PORT := 5060; + + /** @desc charstring for SUT/IBCF2 domain + */ + modulepar charstring PX_IMS_SUT_IBCF2_HOME_DOMAIN := "ibcf2.sut.net"; + } // End of group SUT_IBCF + + group SUT_PCSCF { + /** @desc charstring for SUT/P-CSCF IP address to exchange SIP messages + */ + modulepar charstring PX_IMS_SUT_PCSCF_IPADDR := "172.31.10.2"; + + /** @desc integer for SUT/P-CSCF port number to exchange SIP messages + */ + modulepar integer PX_IMS_SUT_PCSCF_PORT := 5060; + + /** @desc charstring for SUT/P-CSCFdomain + */ + modulepar charstring PX_IMS_SUT_PCSCF_HOME_DOMAIN := "pcscf.sut.net"; + + /** @desc charstring for SUT/P-CSCF P_VisitedNetwork ID header (see RFC3455) + */ + modulepar charstring PX_IMS_SUT_PCSCF_VisitedNetworkID := "sut token"; + + /** @desc charstring for SUT/P-CSCF Min-SE header lower bound for the session refresh interval (see RFC4028) + */ + modulepar charstring PX_IMS_SUT_PCSCF_MinSE := "100"; + } // End of group SUT_PCSCF + + group SUT_SCSCF { + /** @desc charstring for SUT/S-CSCF IP address to exchange SIP messages + */ + modulepar charstring PX_IMS_SUT_SCSCF_IPADDR := "172.31.10.4"; + + /** @desc integer for SUT/S-CSCF port number to exchange SIP messages + */ + modulepar integer PX_IMS_SUT_SCSCF_PORT := 5060; + + /** @desc charstring for SUT/S-CSCFdomain + */ + modulepar charstring PX_IMS_SUT_SCSCF_HOME_DOMAIN := "scscf.sut.net"; + + /** @desc charstring for SUT/S-CSCF globally used realm name of IUT S-CSCF + */ + modulepar charstring PX_IMS_SUT_SCSCF_REALM := "realm.scscf"; + } // End of group SUT_SCSCF + + group SUT_ICSCF { + /** @desc charstring for SUT/I-CSCF IP address to exchange SIP messages + */ + modulepar charstring PX_IMS_SUT_ICSCF_IPADDR := "172.31.10.3"; + + /** @desc integer for SUT/I-CSCF port number to exchange SIP messages + */ + modulepar integer PX_IMS_SUT_ICSCF_PORT := 5060; + + /** @desc charstring for SUT/I-CSCFdomain + */ + modulepar charstring PX_IMS_SUT_ICSCF_HOME_DOMAIN := "icscf.sut.net"; + } // End of group SUT_ICSCF + + group SUT_AS { + /** @desc charstring for SUT - AS IP address to exchange SIP messages - connection point for SCSCF + */ + modulepar charstring PX_IMS_SUT_AS_IPADDR := "172.31.10.7"; + + /** @desc integer for SUT - AS port number to exchange SIP messages - connection point for SCSCF + */ + modulepar integer PX_IMS_SUT_AS_PORT := 5060; + + /** @desc charstring for SUT/AS domain + */ + modulepar charstring PX_IMS_SUT_AS_HOME_DOMAIN := "as.sut.net"; + + } // End of group SUT_AS + + group SUT_IMGCF { + /** @desc charstring for SUT/I-MGCF IP address to exchange SIP messages + */ + modulepar charstring PX_IMS_SUT_IMGCF_IPADDR := "172.31.10.10"; + + /** @desc integer for SUT/I-MGCF port number to exchange SIP messages + */ + modulepar integer PX_IMS_SUT_IMGCF_PORT := 5060; + + /** @desc charstring for SUT/I-MGCFdomain + */ + modulepar charstring PX_IMS_SUT_IMGCF_HOME_DOMAIN := "imgcf.sut.net"; + } // End of group SUT_IMGCF + + group SUT_CONF { + /** + * @desc + * charstring for SUT/conference IP address to exchange SIP messages + */ + modulepar charstring PX_IMS_SUT_CONF_IPADDR := "172.31.10.10"; + /** + * @desc integer for SUT/conference port number to exchange SIP messages + */ + modulepar integer PX_IMS_SUT_CONF_PORT := 5060; + /** + * @desc charstring for SUT/conference domain + */ + modulepar charstring PX_IMS_SUT_CONF_HOME_DOMAIN := "conf.sut.net"; + /** + * @desc charstring for conference factory URI name + */ + modulepar charstring PX_IMS_SUT_CONF_FACTORY_NAME := "factory.uri.name"; + } // End of group SUT_CONF + + } // End of group SUT + + group ts_ue1 { + + /** @desc charstring for IP address used by the UE1 to exchange SIP messages + */ + modulepar charstring PX_IMS_TS_UE1_IPADDR := "conftest.plugtests.net"; + + /** @desc integer for port number used by the UE1 to exchange SIP messages + */ + modulepar integer PX_IMS_TS_UE1_PORT := 5060; + + /** @desc charstring for visited(TS) REGISTRAR domain + */ + modulepar charstring PX_IMS_TS_UE1_REGISTRAR := "plugtests.net"; + + } // End of group ts_ue1 + +} // end module AtsSccas_PIXITS diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn index f3bdf93..7855cf5 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn @@ -1,81 +1,401 @@ -/* - * @author TTF T016 - * @version $Id$ - * @desc This module provides the TCfunctions used by the test component - * for SCCAS tests. - */ -module AtsSccas_TCFunctions { - // LibCommon - import from LibCommon_Sync all; - import from LibCommon_VerdictControl all; - import from LibCommon_DataStrings all; - // LibSip - import from LibSip_SIPTypesAndValues all; - import from LibSip_SDPTypes all; - import from LibSip_Templates all; - import from LibSip_Steps all; - import from LibSip_Interface all; - import from LibSip_PIXITS all; - // LibIms - import from LibIms_Templates all; - import from LibIms_Steps all; - import from LibIms_SIPTypesAndValues all; - import from LibIms_Interface all; - - // AtsIms - // import from AtsIms_TestSystem all; - import from AtsSccas_PICS all; - import from AtsSccas_PIXITS all; - - - group Group_6_3 { - group TP_6_3_1_General { - - /* - * @desc This is the test case function for TC_ISC_SCCAS_RSC_REG_01 - * @param p_cSeq_s - */ - function f_TC_ISC_SCCAS_RSC_REG_01(in CSeq p_cSeq_s) - runs on ImsComponent { - - var template 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)); - - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync - - // Registration - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync - - // deregistration - - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // end function f_TC_ISC_SCCAS_RSC_REG_01 - - }//group TP_6_3_1_General - - }//Group_6_3 - - group Group_6A_4 { - }//Group_6A_4 - - group Group_7_3 { - }//Group_7_3 - - group Group_8_3 { - }//Group_8_3 - - group Group_9_3 { - }//Group_9_3 - - group Group_10_3 { - }//Group_10_3 - - group Group_11_3 { - }//Group_11_3 - -} // end module AtsSccas_TCFunctions \ No newline at end of file +/* + * @author TTF T016 + * @version $Id$ + * @desc This module provides the TCfunctions used by the test component + * for SCCAS tests. + */ +module AtsSccas_TCFunctions { + + // XSD support + import from XSD all; + + // LibCommon + import from LibCommon_Sync all; + import from LibCommon_VerdictControl all; + import from LibCommon_DataStrings all; + + // LibSip + import from LibSip_SIPTypesAndValues all; + import from LibSip_SDPTypes all; + import from LibSip_Templates all; + import from LibSip_Steps all; + import from LibSip_Interface all; + import from LibSip_PIXITS all; + + // LibIms + import from LibIms_Templates all; + import from LibIms_Steps all; + import from LibIms_SIPTypesAndValues all; + import from LibIms_Interface all; + + // AtsSccas + // import from AtsSccas_TestSystem all; + import from AtsSccas_Templates all; + import from AtsSccas_Steps all; + import from AtsSccas_PICS all; + import from AtsSccas_PIXITS all; + + group Group_6_3 { + + group TP_6_3_1_General { + + /** + * @desc Verify that the SCCAS successfully obtain/processes 3pty registration information + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_RSC_REG_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); + action("Please register UE") + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + f_setHeaders_REGISTER(v_cSeq_s); + f_SendREGISTER( + 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 + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_sccas_Response_2xxonREGISTER(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_RSC_REG_01 + + /** + * @desc Verify that the SCCAS successfully obtain/processes de-registration information (Expires=0) + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_RSC_REG_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); + action("Please register UE") + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + f_setHeaders_REGISTER(v_cSeq_s); + f_SendREGISTER( + m_sccas_register( + vc_requestUri, + vc_callId, + vc_cSeq, + vc_from, + vc_to, + vc_via_REG, + vc_contact, + omit, + PX_IMS_SUT_SCSCF_IPADDR, // TODO To be refined during validation + PX_IMS_SUT_SCSCF_PORT, // TODO To be refined during validation + "0" + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_sccas_Response_2xxonREGISTER(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_RSC_REG_02 + + } // End of group TP_6_3_1_General + + group TP_6_3_2_Triggers_To_ATCF { + + /** + * @desc Verify that the SCCAS successfully obtain/processes SRVCC information + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_RSC_REG_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); + action("Please register UE") + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + f_setHeaders_REGISTER(v_cSeq_s); + f_SendREGISTER( + 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_sccas_featureCaps({m_fcValue("g3gppAtcfFeatureCapabilityIndicator")}), + m_contentType(c_sdpApplication), // TODO To be refined during validation + m_MBody_SDP(vc_sdp_local) // TODO To be refined during validation + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_sccas_Response_2xxonREGISTER(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_RSC_REG_03 + + } // End of group TP_6_3_2_Triggers_To_ATCF + + group TP_6_3_3_SRVCC_Information_To_ATCF { + + /** + * @desc Verify that the SCCAS successfully sends MESSAGE providing PS to CS SRVCC information + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_RSC_REG_04_ueims(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); + action("Please register UE") + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + f_setHeaders_REGISTER(v_cSeq_s); + f_SendREGISTER( + 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_sccas_featureCaps( // TS 124 237 Clause C.6 Definition of feature-capability indicator g.3gpp.atcfmgmt-uri + { + m_fcValue( + "g-3gpp-atcf-mgmt-uri-in-path", + { + {"sip-uri", { tokenOrHost := PX_SIP_URI }} + }) + }), + m_contentType(c_sdpApplication), // TODO To be refined during validation + m_MBody_SDP(vc_sdp_local) // TODO To be refined during validation + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_sccas_Response_2xxonREGISTER(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_RSC_REG_04_ueims + + function f_TC_ISC_SCCAS_RSC_REG_04_atcf(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); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Message + LibIms_Steps.f_setHeadersMESSAGE(v_cSeq_s, vc_from.addressField.addrSpecUnion, vc_to.addressField.addrSpecUnion); + f_awaitingMESSAGE( + mw_sccas_MESSAGE_Request( + -, -, -, -, // TODO To be refined during validation + m_contentType("application/vnd.3gpp.SRVCC-info+xml"), // TODO To be refined during validation + ? // TODO To be refined during validation + ) + ); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync + + // Answer to the MESSAGE + f_send200OK(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + } // End of function f_TC_ISC_SCCAS_RSC_REG_04_atcf + + } // End of group TP_6_3_3_SRVCC_Information_To_ATCF + + group TP_6_3_4_Trigger_SRVCC_To_MSC { + + /** + * @desc Verify that the SCCAS successfully get CS to PS SRVCC information + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_RSC_REG_05_ueims(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); + action("Please register UE") + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + f_setHeaders_REGISTER(v_cSeq_s); + f_SendREGISTER( + 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_sccas_featureCaps( // TS 124 237 Clause C.6 Definition of feature-capability indicator g.3gpp.atcfmgmt-uri + { + m_fcValue( + "g-3gpp-atcf-mgmt-uri-in-path", + { + {"sip-uri", { tokenOrHost := PX_SIP_URI }} + }) + }), + m_contentType(c_sdpApplication), // TODO To be refined during validation + m_MBody_SDP(vc_sdp_local) // TODO To be refined during validation + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_sccas_Response_2xxonREGISTER(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_RSC_REG_05_ueims + + function f_TC_ISC_SCCAS_RSC_REG_05_msc(in CSeq p_cSeq_s) + runs on ImsComponent { + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync + + // deregistration + + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // end function f_TC_ISC_SCCAS_RSC_REG_05_msc + + } // End of group TP_6_3_4_Trigger_SRVCC_To_MSC + + } // End of group Group_6_3 + + group Group_6A_4 { + } // End of group Group_6A_4 + + group Group_7_3 { + } // End of group Group_7_3 + + group Group_8_3 { + } // End of group Group_8_3 + + group Group_9_3 { + } // End of group Group_9_3 + + group Group_10_3 { + } // End of group Group_10_3 + + group Group_11_3 { + } // End of group Group_11_3 + +} // End of module AtsSccas_TCFunctions \ No newline at end of file diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn index 847f1e6..a826c38 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn @@ -54,7 +54,7 @@ module AtsSccas_TCFunctions_TS124292 { v_cSeq_s, valueof(m_SipUrl_currDomain(vc_userprofile)), PX_IMS_SUT_UE1_QOP, - mw_msc_register( + mw_sccas_register( -, mw_pChargingVector(-, *), // TODO To be refined during validation - Clause 6.3.2 Initial registration Point 11 mw_pVisitedNetworkID(?), // TODO To be refined during validation - Clause 6.3.2 Initial registration Point 12 @@ -69,7 +69,7 @@ module AtsSccas_TCFunctions_TS124292 { )) ), m_expires(600000), // Clause 6.3.2 Initial registration Point 7 - mw_supported_gruu, // Clause 6.3.2 Initial registration Point 8 + mw_sccas_supported({"gruu"}), // Clause 6.3.2 Initial registration Point 8 mw_require_path, // Clause 6.3.2 Initial registration Point 9 mw_pAccessNetworkInfo // TODO To be refined during validation - Clause 6.3.2 Initial registration Point 13 )); @@ -103,7 +103,7 @@ module AtsSccas_TCFunctions_TS124292 { v_cSeq_s, valueof(m_SipUrl_currDomain(vc_userprofile)), PX_IMS_SUT_UE1_QOP, - mw_msc_register( + mw_sccas_register( -, mw_pChargingVector(-, *), // TODO To be refined during validation - Clause 6.3.2 Initial registration Point 11 mw_pVisitedNetworkID(?), // TODO To be refined during validation - Clause 6.3.2 Initial registration Point 12 @@ -118,7 +118,7 @@ module AtsSccas_TCFunctions_TS124292 { )) ), m_expires(600000), // Clause 6.3.2 Initial registration Point 7 - mw_supported_gruu, // Clause 6.3.2 Initial registration Point 8 + mw_sccas_supported({"gruu"}), // Clause 6.3.2 Initial registration Point 8 mw_require_path, // Clause 6.3.2 Initial registration Point 9 mw_pAccessNetworkInfo // TODO To be refined during validation - Clause 6.3.2 Initial registration Point 13 )); diff --git a/ttcn/AtsSccas/AtsSccas_Templates.ttcn b/ttcn/AtsSccas/AtsSccas_Templates.ttcn index e5418eb..97819df 100644 --- a/ttcn/AtsSccas/AtsSccas_Templates.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Templates.ttcn @@ -9,67 +9,172 @@ module AtsSccas_Templates //LibSip import from LibSip_SIPTypesAndValues all; + import from LibSip_MessageBodyTypes all; import from LibSip_Templates all; + import from LibSip_Common all; + //LibIms + import from LibIms_SIPTypesAndValues all; import from LibIms_Templates all; - group HeaderTemplates - { + group HeaderTemplates { - - }//end group HeaderTemplates + template (value) Supported m_sccas_supported( + in OptionTag_List p_optionsTags + ) modifies m_supported := { + optionsTags := p_optionsTags + } // End of template m_sccas_supported + + template (present) Supported mw_sccas_supported( + template (present) OptionTag_List p_optionsTags := ? + ) := { + fieldName := SUPPORTED_E, + optionsTags := p_optionsTags + } // End of template mw_sccas_supported + + template (value) FeatureCaps m_sccas_featureCaps( + in template (value) FcValue_List p_fcValues + ) := { + fieldName := FEATURE_CAPS_E, + fcValues := p_fcValues + } // End of template m_sccas_featureCaps + + template (present) FeatureCaps mw_sccas_featureCaps( + template (present) FcValue_List p_fcValues := ? + ) := { + fieldName := FEATURE_CAPS_E, + fcValues := p_fcValues + } // End of template mw_sccas_featureCaps + + template (omit) FcValue m_fcValue( + in charstring p_wildcard, + in template (omit) SemicolonParam_List p_fcParams := omit + ) := { + wildcard := p_wildcard, + fcParams := p_fcParams + } // End of template m_fcValue + + template FcValue mw_fcValue( + template (present) charstring p_wildcard := ?, + template SemicolonParam_List p_fcParams := * + ) := { + wildcard := p_wildcard, + fcParams := p_fcParams + } // End of template mw_fcValue + + template (present) LibSip_SIPTypesAndValues.Contact mw_sccas_contact( + template (present) ContactBody p_contact_body := ? + ) := { + contactBody := p_contact_body + } // End of template mw_sccas_contact + + template (present) PAccessNetworkInfo mw_pAccessNetworkInfo := { // TODO To be refined + fieldName := P_ACCESS_NETWORK_INFO_E, + accessType := ?, + genericParams := ? + } // End of template mw_pAccessNetworkInfo + + } // End of group HeaderTemplates group MessageTemplates { + group modified_templates { + group request_sent { + template (omit) REGISTER_Request m_sccas_register( + template(value) SipUrl p_requestUri, + template(omit) CallId p_callId := omit, + template(value) CSeq p_cSeq, + template(value) From p_from, + template(value) To p_to, + template(value) Via p_via, + template(omit) LibSip_SIPTypesAndValues.Contact p_contact := omit, + template(omit) Authorization p_authorization := omit, + template(value) charstring p_host, + template(value) integer p_port, + template(value) DeltaSec p_deltaSec, + template(omit) FeatureCaps p_featureCaps := omit, + template(omit) ContentType p_contentType := omit, + template(omit) MessageBody p_mb := omit + + ) modifies m_REGISTER_Request_expires_IMS := { + msgHeader := { + contentLength := m_contentLength(f_MessageBodyLength(p_mb)), + contentType := p_contentType, + expires := m_expires(str2int(valueof(p_deltaSec))), + featureCaps := p_featureCaps + }, + messageBody := p_mb + } - }//end group request_sent + } // End of group request_sent group request_receive { + template (present) REGISTER_Request mw_sccas_register( + template (present) Path p_Path := ?, + template (present) PChargingVector p_pChargingVector := ?, + template (present) PVisitedNetworkID p_pVisitedNetworkID := ?, + template (present) LibSip_SIPTypesAndValues.Contact p_contact := mw_sccas_contact, + template (present) Authorization p_authorization := mw_Authorization_digest, + template (present) Expires p_expires := ?, + template (present) Supported p_supported := ?, + template (present) Require p_require := ?, + template (present) PAccessNetworkInfo p_pPAccessNetworkInfo := ?, + template ContentType p_contentType := *, + template MessageBody p_mb := * + ) modifies mw_REGISTER_Request_IMS := { + msgHeader := { + contact := p_contact, + contentType := p_contentType, + authorization := p_authorization, + expires := p_expires, + supported := p_supported, + pAccessNetworkInfo := p_pPAccessNetworkInfo + }, + messageBody := p_mb + } // End of template mw_sccas_register - group msc { - - template (present) LibSip_SIPTypesAndValues.Contact mw_sccas_contact( - template (present) ContactBody p_contact_body := ? - ) := { - contactBody := p_contact_body - } // End of template mw_sccas_contact - - template(value) Supported mw_supported_gruu - modifies m_supported := { - optionsTags := {"gruu"} - } // End of template mw_supported_gruu - - template (present) PAccessNetworkInfo mw_pAccessNetworkInfo := { // TODO To be refined - fieldName := P_ACCESS_NETWORK_INFO_E, - accessType := ?, - genericParams := ? - } // End of template mw_pAccessNetworkInfo - - template (present) REGISTER_Request mw_msc_register( - template (present) Path p_Path := ?, - template (present) PChargingVector p_pChargingVector := ?, - template (present) PVisitedNetworkID p_pVisitedNetworkID := ?, - template (present) LibSip_SIPTypesAndValues.Contact p_contact := mw_sccas_contact, - template (present) Authorization p_authorization := mw_Authorization_digest, - template (present) Expires p_expires := ?, - template (present) Supported p_supported := ?, - template (present) Require p_require := ?, - template (present) PAccessNetworkInfo p_pPAccessNetworkInfo := ? - ) modifies mw_REGISTER_Request_IMS := { - msgHeader := { - contact := p_contact, - authorization := p_authorization, - expires := p_expires, - supported := p_supported, - pAccessNetworkInfo := p_pPAccessNetworkInfo - } - } // End of template mw_msc_register - } - }//end group request_receive - }//end group modified_templates - }//end group MessageTemplates + template (present) MESSAGE_Request mw_sccas_MESSAGE_Request( + template (present) SipUrl p_requestUri := ?, + template (present) CallId p_callId := ?, + template (present) PChargingVector p_pChargingVector := ?, + template (present) PAssertedID p_pAssertedID := ?, + template ContentType p_contentType := *, + template MessageBody p_mb := * + ) modifies mw_MESSAGE_Request_Base := { + requestLine := { + requestUri := p_requestUri + }, + msgHeader := { + callId := p_callId, + contentType := p_contentType, + pChargingVector := p_pChargingVector, + pAssertedID := p_pAssertedID + }, + messageBody := p_mb + } // End of template mw_sccas_MESSAGE_Request + + template (present) Response mw_sccas_Response_2xxonREGISTER( + 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 := ? + ) modifies mw_Response_2xx_Base := { + msgHeader := { + pChargingVector := p_pChargingVector, + contact := p_contact + } + } // End of template mw_sccas_Response_2xxonREGISTER + + } // End of group request_receive + + } // End of group modified_templates + + } // End ofend group MessageTemplates -} // end module AtsSccas_Templates \ No newline at end of file +} // End of module AtsSccas_Templates \ No newline at end of file diff --git a/ttcn/AtsSccas/AtsSccas_TestConfiguration.ttcn b/ttcn/AtsSccas/AtsSccas_TestConfiguration.ttcn index 515b54b..b9320ce 100644 --- a/ttcn/AtsSccas/AtsSccas_TestConfiguration.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TestConfiguration.ttcn @@ -1,306 +1,306 @@ -/* - * @author TTF T016 - * @version $Id$ - * @desc This module provides test component configurations for SCCAS tests. - */ - -module AtsSccas_TestConfiguration -{ - //LibCommon - import from LibCommon_Sync all ; - import from LibCommon_VerdictControl all; - //LibSip - import from LibSip_Interface all; - import from LibSip_SIPTypesAndValues all; - import from LibSip_PIXITS all; - //LibIms - import from LibIms_SIPTypesAndValues all; - import from LibIms_Interface all; - //AtsIms - import from AtsSccas_TestSystem all; - import from AtsSccas_PIXITS all; - -group auxSipFunction { - - /* - ** @desc f_IncCSeq returns an input parameter incremented by 1000 - ** reason is to run the next testcase with a higher CSeq value - */ - function f_IncCSeq(inout CSeq loc_CSeq) - runs on ServerSyncComp - { loc_CSeq.seqNumber := loc_CSeq.seqNumber + 1000; - return - }; - // end f_IncCSeq - -}//end group auxSipFunction - - group cfUp { - - - /** - * - * @desc Creates test configuration of CF_1Isc - * @param p_imsComponent_ims - ims component - */ - function f_cf_1IscUp(out ImsComponent p_imsComponent_ueims) - runs on ServerSyncComp - { - //Variables - var FncRetCode v_ret := e_success; - - //Create - p_imsComponent_ueims := ImsComponent.create("UEIMS") ; - - //Connect - connect(p_imsComponent_ueims:syncPort, self:syncPort) ; - - //Map - map(p_imsComponent_ueims:SIPP, system:UEIMS);// Init test Configuration - - f_setVerdict(v_ret); - }//end f_cf_1IscUp - - /** - * - * @desc Creates test configuration of CF_1Isc1AtcfUp - * @param p_imsComponent_ueims - ueims component - * @param p_imsComponent_atcf - atcf component - */ - function f_cf_1Isc1AtcfUp(out ImsComponent p_imsComponent_ueims, - out ImsComponent p_imsComponent_atcf) - runs on ServerSyncComp - { - //Variables - var FncRetCode v_ret := e_success; - - //Create - p_imsComponent_ueims := ImsComponent.create("UEIMS") ; - p_imsComponent_atcf := ImsComponent.create("ATCF") ; - - //Connect - connect(p_imsComponent_ueims:syncPort, self:syncPort) ; - connect(p_imsComponent_atcf:syncPort, self:syncPort) ; - //Map - map(p_imsComponent_ueims:SIPP, system:UEIMS);// Init test Configuration - map(p_imsComponent_atcf:SIPP, system:ATCF);// Init test Configuration - - f_setVerdict(v_ret); - }//end f_cf_1Isc1AtcfUp - - /** - * - * @desc Creates test configuration of CF_1Isc1MscfUp - * @param p_imsComponent_ueims - ueims component - * @param p_imsComponent_msc - msc component - */ - function f_cf_1Isc1MscUp(out ImsComponent p_imsComponent_ueims, - out ImsComponent p_imsComponent_msc) - runs on ServerSyncComp - { - //Variables - var FncRetCode v_ret := e_success; - - //Create - p_imsComponent_ueims := ImsComponent.create("UEIMS") ; - p_imsComponent_msc := ImsComponent.create("MSC") ; - - //Connect - connect(p_imsComponent_ueims:syncPort, self:syncPort) ; - connect(p_imsComponent_msc:syncPort, self:syncPort) ; - //Map - map(p_imsComponent_ueims:SIPP, system:UEIMS);// Init test Configuration - map(p_imsComponent_msc:SIPP, system:MSC);// Init test Configuration - - f_setVerdict(v_ret); - }//end f_cf_1Isc1MscUp - - /** - * - * @desc Creates test configuration of CF_1Gm1SccasUp - * @param p_imsComponent_ue - ue component - * @param p_imsComponent_sccas - sccas component - */ - function f_cf_1Gm1SccasUp(out ImsComponent p_imsComponent_ue, - out ImsComponent p_imsComponent_sccas) - runs on ServerSyncComp - { - //Variables - var FncRetCode v_ret := e_success; - - //Create - p_imsComponent_ue := ImsComponent.create("UE") ; - p_imsComponent_sccas := ImsComponent.create("SCCAS") ; - - //Connect - connect(p_imsComponent_ue:syncPort, self:syncPort) ; - connect(p_imsComponent_sccas:syncPort, self:syncPort) ; - //Map - map(p_imsComponent_ue:SIPP, system:UE);// Init test Configuration - map(p_imsComponent_sccas:SIPP, system:SCCAS);// Init test Configuration - - f_setVerdict(v_ret); - }//end f_cf_1Gm1SccasfUp - - }//end group cfUp - - group cfDown { - - /** - * - * @desc Deletes configuration of CF_1Isc - * @param p_imsComponent_ueims ueims component - */ - function f_cf_1IscDown(in ImsComponent p_imsComponent_ueims) - runs on ServerSyncComp - { - f_serverWaitForAllClientsToStop(); - - //Disconnect - disconnect(p_imsComponent_ueims:syncPort, self:syncPort) ; - //Unmap - unmap(p_imsComponent_ueims:SIPP, system:UEIMS); - }//end f_cf_1IscDown - - /** - * - * @desc Deletes configuration of CF_1Isc1Atcf - * @param p_imsComponent_ueims - ueims component - * @param p_imsComponent_atcf - atcf component - */ - function f_cf_1Isc1AtcfDown(in ImsComponent p_imsComponent_ueims, - in ImsComponent p_imsComponent_atcf) - runs on ServerSyncComp - { - f_serverWaitForAllClientsToStop(); - - //Disconnect - disconnect(p_imsComponent_ueims:syncPort, self:syncPort); - disconnect(p_imsComponent_atcf:syncPort, self:syncPort); - //Unmap - unmap(p_imsComponent_ueims:SIPP, system:UEIMS); - unmap(p_imsComponent_atcf:SIPP, system:ATCF); - }//end f_cf_1Isc1AtcfDown - - /** - * - * @desc Deletes configuration of CF_1Isc1Msc - * @param p_imsComponent_ueims - ueims component - * @param p_imsComponent_msc - msc component - */ - function f_cf_1Isc1MscDown(in ImsComponent p_imsComponent_ueims, - in ImsComponent p_imsComponent_msc) - runs on ServerSyncComp - { - f_serverWaitForAllClientsToStop(); - - //Disconnect - disconnect(p_imsComponent_ueims:syncPort, self:syncPort); - disconnect(p_imsComponent_msc:syncPort, self:syncPort); - //Unmap - unmap(p_imsComponent_ueims:SIPP, system:UEIMS); - unmap(p_imsComponent_msc:SIPP, system:MSC); - }//end f_cf_1Isc1MscDown - - /** - * - * @desc Deletes configuration of CF_1Isc1Msc - * @param p_imsComponent_ueims - ueims component - * @param p_imsComponent_msc - msc component - */ - function f_cf_1Gm1SccasDown(in ImsComponent p_imsComponent_ue, - in ImsComponent p_imsComponent_sccas) - runs on ServerSyncComp - { - f_serverWaitForAllClientsToStop(); - - //Disconnect - disconnect(p_imsComponent_ue:syncPort, self:syncPort); - disconnect(p_imsComponent_sccas:syncPort, self:syncPort); - //Unmap - unmap(p_imsComponent_ue:SIPP, system:UE); - unmap(p_imsComponent_sccas:SIPP, system:SCCAS); - }//end f_cf_1Gm1SccasDown - - - } //end group cfDown - - group syncNoStop // Same functions as in LibCommon but without call of f_serverWaitForAllClientsToStop() - { - /* @desc Implements synchronization of client from server side - * on one or more synchronization points. - * If problem occurs, then server sends STOP to client. - * Waits for PX_TSYNC_TIME_LIMIT to let client - * finish executing behavior until this - * synchronization point. - * @remark The use of this function requires prior connection of - * the server sync ports! - * @param p_syncPointIds list of synchronization point name/ids - * @return execution status - */ - function f_serverSync1Client( in SyncPointList p_syncPointIds ) - runs on ServerSyncComp { - var integer i, v_noOfSyncIds := sizeof(p_syncPointIds); - for ( i := 0; i < v_noOfSyncIds; i := i+1 ) { - f_serverSyncClientsTimed(1,p_syncPointIds[i], PX_TSYNC_TIME_LIMIT); - } - } - - /* @desc Implements synchronization of 2 clients from server side - * on one or more synchronization points. - * If problem occurs, then server sends STOP to all clients. - * Waits for PX_TSYNC_TIME_LIMIT to let clients - * finish executing their behavior until this - * synchronization point. - * @remark The use of this function requires prior connection of - * the server sync ports! - * @param p_syncPointIds list of synchronization point name/ids - * @return execution status - */ - function f_serverSync2Clients( in SyncPointList p_syncPointIds ) - runs on ServerSyncComp { - var integer i, v_noOfSyncIds := sizeof(p_syncPointIds); - for ( i := 0; i < v_noOfSyncIds; i := i+1 ) { - f_serverSyncClientsTimed(2,p_syncPointIds[i], PX_TSYNC_TIME_LIMIT); - } - } - - /* @desc Implements synchronization of 3 clients from server side - * on one or more synchronization points. - * If problem occurs, then server sends STOP to all clients. - * Waits for PX_TSYNC_TIME_LIMIT to let clients - * finish executing their behavior until this - * synchronization point. - * @remark The use of this function requires prior connection of - * the server sync ports! - * @param p_syncPointIds list of synchronization point name/ids - * @return execution status - */ - function f_serverSync3Clients( in SyncPointList p_syncPointIds ) - runs on ServerSyncComp { - var integer i, v_noOfSyncIds := sizeof(p_syncPointIds); - for ( i := 0; i < v_noOfSyncIds; i := i+1 ) { - f_serverSyncClientsTimed(3,p_syncPointIds[i], PX_TSYNC_TIME_LIMIT); - } - } - - /* @desc Implements synchronization of 4 clients from server side - * on one or more synchronization points. - * If problem occurs, then server sends STOP to all clients. - * Waits for PX_TSYNC_TIME_LIMIT to let clients - * finish executing their behavior until this - * synchronization point. - * @remark The use of this function requires prior connection of - * the server sync ports! - * @param p_syncPointIds list of synchronization point name/ids - * @return execution status - */ - function f_serverSync4Clients( in SyncPointList p_syncPointIds ) - runs on ServerSyncComp { - var integer i, v_noOfSyncIds := sizeof(p_syncPointIds); - for ( i := 0; i < v_noOfSyncIds; i := i+1 ) { - f_serverSyncClientsTimed(4,p_syncPointIds[i], PX_TSYNC_TIME_LIMIT); - } - } - } //end group syncNoStop -} // end module AtsSccas_TestConfiguration +/* + * @author TTF T016 + * @version $Id$ + * @desc This module provides test component configurations for SCCAS tests. + */ + +module AtsSccas_TestConfiguration +{ + //LibCommon + import from LibCommon_Sync all ; + import from LibCommon_VerdictControl all; + //LibSip + import from LibSip_Interface all; + import from LibSip_SIPTypesAndValues all; + import from LibSip_PIXITS all; + //LibIms + import from LibIms_SIPTypesAndValues all; + import from LibIms_Interface all; + //AtsIms + import from AtsSccas_TestSystem all; + import from AtsSccas_PIXITS all; + +group auxSipFunction { + + /* + ** @desc f_IncCSeq returns an input parameter incremented by 1000 + ** reason is to run the next testcase with a higher CSeq value + */ + function f_IncCSeq(inout CSeq loc_CSeq) + runs on ServerSyncComp + { loc_CSeq.seqNumber := loc_CSeq.seqNumber + 1000; + return + }; + // end f_IncCSeq + +}//end group auxSipFunction + + group cfUp { + + + /** + * + * @desc Creates test configuration of CF_1Isc + * @param p_imsComponent_ims - ims component + */ + function f_cf_1IscUp(out ImsComponent p_imsComponent_ueims) + runs on ServerSyncComp + { + //Variables + var FncRetCode v_ret := e_success; + + //Create + p_imsComponent_ueims := ImsComponent.create("UEIMS") ; + + //Connect + connect(p_imsComponent_ueims:syncPort, self:syncPort) ; + + //Map + map(p_imsComponent_ueims:SIPP, system:UEIMS);// Init test Configuration + + f_setVerdict(v_ret); + }//end f_cf_1IscUp + + /** + * + * @desc Creates test configuration of CF_1Isc1AtcfUp + * @param p_imsComponent_ueims - ueims component + * @param p_imsComponent_atcf - atcf component + */ + function f_cf_1Isc1AtcfUp(out ImsComponent p_imsComponent_ueims, + out ImsComponent p_imsComponent_atcf) + runs on ServerSyncComp + { + //Variables + var FncRetCode v_ret := e_success; + + //Create + p_imsComponent_ueims := ImsComponent.create("UEIMS") ; + p_imsComponent_atcf := ImsComponent.create("ATCF") ; + + //Connect + connect(p_imsComponent_ueims:syncPort, self:syncPort) ; + connect(p_imsComponent_atcf:syncPort, self:syncPort) ; + //Map + map(p_imsComponent_ueims:SIPP, system:UEIMS);// Init test Configuration + map(p_imsComponent_atcf:SIPP, system:ATCF);// Init test Configuration + + f_setVerdict(v_ret); + }//end f_cf_1Isc1AtcfUp + + /** + * + * @desc Creates test configuration of CF_1Isc1MscfUp + * @param p_imsComponent_ueims - ueims component + * @param p_imsComponent_msc - msc component + */ + function f_cf_1Isc1MscUp(out ImsComponent p_imsComponent_ueims, + out ImsComponent p_imsComponent_msc) + runs on ServerSyncComp + { + //Variables + var FncRetCode v_ret := e_success; + + //Create + p_imsComponent_ueims := ImsComponent.create("UEIMS") ; + p_imsComponent_msc := ImsComponent.create("MSC") ; + + //Connect + connect(p_imsComponent_ueims:syncPort, self:syncPort) ; + connect(p_imsComponent_msc:syncPort, self:syncPort) ; + //Map + map(p_imsComponent_ueims:SIPP, system:UEIMS);// Init test Configuration + map(p_imsComponent_msc:SIPP, system:MSC);// Init test Configuration + + f_setVerdict(v_ret); + }//end f_cf_1Isc1MscUp + + /** + * + * @desc Creates test configuration of CF_1Gm1SccasUp + * @param p_imsComponent_ue - ue component + * @param p_imsComponent_sccas - sccas component + */ + function f_cf_1Gm1SccasUp(out ImsComponent p_imsComponent_ue, + out ImsComponent p_imsComponent_sccas) + runs on ServerSyncComp + { + //Variables + var FncRetCode v_ret := e_success; + + //Create + p_imsComponent_ue := ImsComponent.create("UE") ; + p_imsComponent_sccas := ImsComponent.create("SCCAS") ; + + //Connect + connect(p_imsComponent_ue:syncPort, self:syncPort) ; + connect(p_imsComponent_sccas:syncPort, self:syncPort) ; + //Map + map(p_imsComponent_ue:SIPP, system:UE);// Init test Configuration + map(p_imsComponent_sccas:SIPP, system:SCCAS);// Init test Configuration + + f_setVerdict(v_ret); + }//end f_cf_1Gm1SccasfUp + + }//end group cfUp + + group cfDown { + + /** + * + * @desc Deletes configuration of CF_1Isc + * @param p_imsComponent_ueims ueims component + */ + function f_cf_1IscDown(in ImsComponent p_imsComponent_ueims) + runs on ServerSyncComp + { + f_serverWaitForAllClientsToStop(); + + //Disconnect + disconnect(p_imsComponent_ueims:syncPort, self:syncPort) ; + //Unmap + unmap(p_imsComponent_ueims:SIPP, system:UEIMS); + }//end f_cf_1IscDown + + /** + * + * @desc Deletes configuration of CF_1Isc1Atcf + * @param p_imsComponent_ueims - ueims component + * @param p_imsComponent_atcf - atcf component + */ + function f_cf_1Isc1AtcfDown(in ImsComponent p_imsComponent_ueims, + in ImsComponent p_imsComponent_atcf) + runs on ServerSyncComp + { + f_serverWaitForAllClientsToStop(); + + //Disconnect + disconnect(p_imsComponent_ueims:syncPort, self:syncPort); + disconnect(p_imsComponent_atcf:syncPort, self:syncPort); + //Unmap + unmap(p_imsComponent_ueims:SIPP, system:UEIMS); + unmap(p_imsComponent_atcf:SIPP, system:ATCF); + }//end f_cf_1Isc1AtcfDown + + /** + * + * @desc Deletes configuration of CF_1Isc1Msc + * @param p_imsComponent_ueims - ueims component + * @param p_imsComponent_msc - msc component + */ + function f_cf_1Isc1MscDown(in ImsComponent p_imsComponent_ueims, + in ImsComponent p_imsComponent_msc) + runs on ServerSyncComp + { + f_serverWaitForAllClientsToStop(); + + //Disconnect + disconnect(p_imsComponent_ueims:syncPort, self:syncPort); + disconnect(p_imsComponent_msc:syncPort, self:syncPort); + //Unmap + unmap(p_imsComponent_ueims:SIPP, system:UEIMS); + unmap(p_imsComponent_msc:SIPP, system:MSC); + }//end f_cf_1Isc1MscDown + + /** + * + * @desc Deletes configuration of CF_1Isc1Msc + * @param p_imsComponent_ueims - ueims component + * @param p_imsComponent_msc - msc component + */ + function f_cf_1Gm1SccasDown(in ImsComponent p_imsComponent_ue, + in ImsComponent p_imsComponent_sccas) + runs on ServerSyncComp + { + f_serverWaitForAllClientsToStop(); + + //Disconnect + disconnect(p_imsComponent_ue:syncPort, self:syncPort); + disconnect(p_imsComponent_sccas:syncPort, self:syncPort); + //Unmap + unmap(p_imsComponent_ue:SIPP, system:UE); + unmap(p_imsComponent_sccas:SIPP, system:SCCAS); + }//end f_cf_1Gm1SccasDown + + + } //end group cfDown + + group syncNoStop // Same functions as in LibCommon but without call of f_serverWaitForAllClientsToStop() + { + /* @desc Implements synchronization of client from server side + * on one or more synchronization points. + * If problem occurs, then server sends STOP to client. + * Waits for PX_TSYNC_TIME_LIMIT to let client + * finish executing behavior until this + * synchronization point. + * @remark The use of this function requires prior connection of + * the server sync ports! + * @param p_syncPointIds list of synchronization point name/ids + * @return execution status + */ + function f_serverSync1Client( in SyncPointList p_syncPointIds ) + runs on ServerSyncComp { + var integer i, v_noOfSyncIds := sizeof(p_syncPointIds); + for ( i := 0; i < v_noOfSyncIds; i := i+1 ) { + f_serverSyncClientsTimed(1,p_syncPointIds[i], PX_TSYNC_TIME_LIMIT); + } + } + + /* @desc Implements synchronization of 2 clients from server side + * on one or more synchronization points. + * If problem occurs, then server sends STOP to all clients. + * Waits for PX_TSYNC_TIME_LIMIT to let clients + * finish executing their behavior until this + * synchronization point. + * @remark The use of this function requires prior connection of + * the server sync ports! + * @param p_syncPointIds list of synchronization point name/ids + * @return execution status + */ + function f_serverSync2Clients( in SyncPointList p_syncPointIds ) + runs on ServerSyncComp { + var integer i, v_noOfSyncIds := sizeof(p_syncPointIds); + for ( i := 0; i < v_noOfSyncIds; i := i+1 ) { + f_serverSyncClientsTimed(2,p_syncPointIds[i], PX_TSYNC_TIME_LIMIT); + } + } + + /* @desc Implements synchronization of 3 clients from server side + * on one or more synchronization points. + * If problem occurs, then server sends STOP to all clients. + * Waits for PX_TSYNC_TIME_LIMIT to let clients + * finish executing their behavior until this + * synchronization point. + * @remark The use of this function requires prior connection of + * the server sync ports! + * @param p_syncPointIds list of synchronization point name/ids + * @return execution status + */ + function f_serverSync3Clients( in SyncPointList p_syncPointIds ) + runs on ServerSyncComp { + var integer i, v_noOfSyncIds := sizeof(p_syncPointIds); + for ( i := 0; i < v_noOfSyncIds; i := i+1 ) { + f_serverSyncClientsTimed(3,p_syncPointIds[i], PX_TSYNC_TIME_LIMIT); + } + } + + /* @desc Implements synchronization of 4 clients from server side + * on one or more synchronization points. + * If problem occurs, then server sends STOP to all clients. + * Waits for PX_TSYNC_TIME_LIMIT to let clients + * finish executing their behavior until this + * synchronization point. + * @remark The use of this function requires prior connection of + * the server sync ports! + * @param p_syncPointIds list of synchronization point name/ids + * @return execution status + */ + function f_serverSync4Clients( in SyncPointList p_syncPointIds ) + runs on ServerSyncComp { + var integer i, v_noOfSyncIds := sizeof(p_syncPointIds); + for ( i := 0; i < v_noOfSyncIds; i := i+1 ) { + f_serverSyncClientsTimed(4,p_syncPointIds[i], PX_TSYNC_TIME_LIMIT); + } + } + } //end group syncNoStop +} // end module AtsSccas_TestConfiguration diff --git a/ttcn/AtsSccas/AtsSccas_TestExecutions.ttcn b/ttcn/AtsSccas/AtsSccas_TestExecutions.ttcn index 6d24f1d..19893d7 100644 --- a/ttcn/AtsSccas/AtsSccas_TestExecutions.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TestExecutions.ttcn @@ -1,10 +1,10 @@ -/* - * @author TTF T016 - * @version $Id$ - * @desc - */ - -module AtsSccas_TestExecutions -{ - -} // end module AtsSccas_TestExecutions +/* + * @author TTF T016 + * @version $Id$ + * @desc + */ + +module AtsSccas_TestExecutions +{ + +} // end module AtsSccas_TestExecutions diff --git a/ttcn/AtsSccas/AtsSccas_TestSystem.ttcn b/ttcn/AtsSccas/AtsSccas_TestSystem.ttcn index 6a0d31e..15d2c6c 100644 --- a/ttcn/AtsSccas/AtsSccas_TestSystem.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TestSystem.ttcn @@ -1,59 +1,59 @@ -/* - * @author TTF T016 - * @version $Id$ - * @desc This module provides test system types used by the test component - * for SCCAS tests. - */ - -module AtsSccas_TestSystem -{ - //LibCommon - import from LibCommon_Sync all; - import from LibCommon_AbstractData all; - import from LibCommon_BasicTypesAndValues all; - import from LibCommon_DataStrings all; - //LibSip - import from LibSip_SIPTypesAndValues all; - import from LibSip_SDPTypes all; - import from LibSip_Templates all; - import from LibSip_PIXITS all; - import from LibSip_Interface all; - //AtsIms - //import from AtsSccas_PIXITS all; - - group CMTypes { - type charstring CM_Message; - } // end group CMTypes - - group Signatures { - signature s_SIP_conversation (in charstring text, out boolean answer); - signature s_SIP_ringing (in charstring text, out boolean answer); - } // end group Signatures - - group SystemConfiguration { - group Ports { - - type port operatorPort_SIP procedure { - inout s_SIP_conversation; - inout s_SIP_ringing}; - - type port Coordination message { - inout CM_Message} with {extension "internal"}; - } // End Group Ports - - group TestComponents { - group TestSystemInterfaces { - /* - ** @desc The test system interface - */ - type component TestAdapter { - port SipPort UEIMS, SCCAS, ATCF, MSC, UE1; - port operatorPort_SIP opPortS; - } - } // end Group TestSystemInterfaces - - - } //end group TestComponents - } //end group SystemConfiguration - -} // end module AtsSccas_TestSystem +/* + * @author TTF T016 + * @version $Id$ + * @desc This module provides test system types used by the test component + * for SCCAS tests. + */ + +module AtsSccas_TestSystem +{ + //LibCommon + import from LibCommon_Sync all; + import from LibCommon_AbstractData all; + import from LibCommon_BasicTypesAndValues all; + import from LibCommon_DataStrings all; + //LibSip + import from LibSip_SIPTypesAndValues all; + import from LibSip_SDPTypes all; + import from LibSip_Templates all; + import from LibSip_PIXITS all; + import from LibSip_Interface all; + //AtsIms + //import from AtsSccas_PIXITS all; + + group CMTypes { + type charstring CM_Message; + } // end group CMTypes + + group Signatures { + signature s_SIP_conversation (in charstring text, out boolean answer); + signature s_SIP_ringing (in charstring text, out boolean answer); + } // end group Signatures + + group SystemConfiguration { + group Ports { + + type port operatorPort_SIP procedure { + inout s_SIP_conversation; + inout s_SIP_ringing}; + + type port Coordination message { + inout CM_Message} with {extension "internal"}; + } // End Group Ports + + group TestComponents { + group TestSystemInterfaces { + /* + ** @desc The test system interface + */ + type component TestAdapter { + port SipPort UEIMS, SCCAS, ATCF, MSC, UE1; + port operatorPort_SIP opPortS; + } + } // end Group TestSystemInterfaces + + + } //end group TestComponents + } //end group SystemConfiguration + +} // end module AtsSccas_TestSystem diff --git a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn index ed84c62..16fc914 100644 --- a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn @@ -1,69 +1,172 @@ -/* - * @author TTF T016 - * @version $Id$ - * @desc This module provides the Test Cases for SCCAS. - */ - -module AtsSccas_Testcases -{ - //LibCommon - import from LibCommon_Sync all ; - import from LibCommon_VerdictControl all; - //LibSip - import from LibSip_Interface all; - import from LibSip_SIPTypesAndValues all; - //LibIms - import from LibIms_SIPTypesAndValues all; - import from LibIms_Interface all; - //AtsIms - import from AtsSccas_TestConfiguration all; - import from AtsSccas_TestSystem all; - import from AtsSccas_TCFunctions all; - import from AtsSccas_PICS all; - - group Group_6_3 { - group TP_6_3_1_General { - /* - * @desc TC_IMST2_GM_GEN_01 - * @param p_cSeq_s Transaction Id - */ - testcase TC_ISC_SCCAS_RSC_REG_01(inout CSeq p_cSeq_s) - runs on ServerSyncComp - system TestAdapter { - //Variables - var ImsComponent v_imsComponent_ueims; - f_cf_1IscUp(v_imsComponent_ueims); - - //Start - f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_RSC_REG_01(p_cSeq_s)); - - // synchronize both PTCs on 3 sychronization points - f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); - - f_cf_1IscDown(v_imsComponent_ueims); - - } // end TC_ISC_SCCAS_RSC_REG_01 - }//group TP_6_3_1_General - - }//Group_6_3 - - group Group_6A_4 { - }//Group_6A_4 - - group Group_7_3 { - }//Group_7_3 - - group Group_8_3 { - }//Group_8_3 - - group Group_9_3 { - }//Group_9_3 - - group Group_10_3 { - }//Group_10_3 - - group Group_11_3 { - }//Group_11_3 - - -} // end module AtsSccas_Testcases +/* + * @author TTF T016 + * @version $Id$ + * @desc This module provides the Test Cases for SCCAS. + */ + +module AtsSccas_Testcases +{ + //LibCommon + import from LibCommon_Sync all ; + import from LibCommon_VerdictControl all; + //LibSip + import from LibSip_Interface all; + import from LibSip_SIPTypesAndValues all; + //LibIms + import from LibIms_SIPTypesAndValues all; + import from LibIms_Interface all; + //AtsIms + import from AtsSccas_TestConfiguration all; + import from AtsSccas_TestSystem all; + import from AtsSccas_TCFunctions all; + import from AtsSccas_PICS all; + + group Group_6_3 { + + group TP_6_3_1_General { + + /* + * @desc TC_IMST2_GM_GEN_01 + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_RSC_REG_01(inout CSeq p_cSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var ImsComponent v_imsComponent_ueims; + f_cf_1IscUp(v_imsComponent_ueims); + + //Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_RSC_REG_01(p_cSeq_s)); + + // synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // end TC_ISC_SCCAS_RSC_REG_01 + + /* + * @desc TC_IMST2_GM_GEN_02 + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_RSC_REG_02(inout CSeq p_cSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var ImsComponent v_imsComponent_ueims; + f_cf_1IscUp(v_imsComponent_ueims); + + //Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_RSC_REG_02(p_cSeq_s)); + + // synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // end TC_ISC_SCCAS_RSC_REG_02 + + } // End of group TP_6_3_1_General + + group TP_6_3_2_Triggers_To_ATCF { + + /* + * @desc TC_IMST2_GM_GEN_03 + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_RSC_REG_03(inout CSeq p_cSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var ImsComponent v_imsComponent_ueims; + f_cf_1IscUp(v_imsComponent_ueims); + + //Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_RSC_REG_03(p_cSeq_s)); + + // synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // end TC_ISC_SCCAS_RSC_REG_03 + + } // End of group TP_6_3_2_Triggers_To_ATCF + + group TP_6_3_3_SRVCC_Information_To_ATCF { + + /* + * @desc TC_IMST2_GM_GEN_04 + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_RSC_REG_04(inout CSeq p_cSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var ImsComponent v_imsComponent_ueims; + var ImsComponent v_imsComponent_atcf; + f_cf_1Isc1AtcfUp(v_imsComponent_ueims, v_imsComponent_atcf); + + //Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_RSC_REG_04_ueims(p_cSeq_s)); + f_IncCSeq(p_cSeq_s); v_imsComponent_atcf.start(f_TC_ISC_SCCAS_RSC_REG_04_atcf(p_cSeq_s)); + + // synchronize both PTCs on 3 sychronization points + f_serverSync2Clients({c_prDone, c_tbDone, c_poDone}); + + f_cf_1Isc1AtcfDown(v_imsComponent_ueims, v_imsComponent_atcf); + + } // end TC_ISC_SCCAS_RSC_REG_04 + + } // End of group TP_6_3_3_SRVCC_Information_To_ATCF + + group TP_6_3_4_Trigger_SRVCC_To_MSC { + + /* + * @desc TC_IMST2_GM_GEN_05 + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_RSC_REG_05(inout CSeq p_cSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var ImsComponent v_imsComponent_ueims; + var ImsComponent v_imsComponent_msc; + f_cf_1Isc1AtcfUp(v_imsComponent_ueims, v_imsComponent_msc); + + //Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_RSC_REG_05_ueims(p_cSeq_s)); + v_imsComponent_msc.start(f_TC_ISC_SCCAS_RSC_REG_05_msc(p_cSeq_s)); + + // synchronize both PTCs on 3 sychronization points + f_serverSync2Clients({c_prDone, c_tbDone, c_poDone}); + + f_cf_1Isc1AtcfDown(v_imsComponent_ueims, v_imsComponent_msc); + + } // end TC_ISC_SCCAS_RSC_REG_05 + + } // End of group TP_6_3_4_Trigger_SRVCC_To_MSC + + } // End of group Group_6_3 + + group Group_6A_4 { + } // End of group Group_6A_4 + + group Group_7_3 { + } // End of group Group_7_3 + + group Group_8_3 { + } // End of group Group_8_3 + + group Group_9_3 { + } // End of group Group_9_3 + + group Group_10_3 { + } // End of group Group_10_3 + + group Group_11_3 { + } // End of group Group_11_3 + + +} // End of module AtsSccas_Testcases diff --git a/ttcn/AtsSccas/AtsSccas_Testcases_TS124292.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases_TS124292.ttcn index b1fca4e..6c90d14 100644 --- a/ttcn/AtsSccas/AtsSccas_Testcases_TS124292.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Testcases_TS124292.ttcn @@ -1,256 +1,256 @@ -/* - * @author TTF T016 - * @version $Id$ - * @desc This module provides the Test Cases for SCCAS ETSI TS 124 292 v1.6.0. - */ - -module AtsSccas_Testcases_TS124292 -{ - //LibCommon - import from LibCommon_Sync all ; - import from LibCommon_VerdictControl all; - //LibSip - import from LibSip_Interface all; - import from LibSip_SIPTypesAndValues all; - //LibIms - import from LibIms_SIPTypesAndValues all; - import from LibIms_Interface all; - //AtsSccas - import from AtsSccas_TestConfiguration all; - import from AtsSccas_TestSystem all; - import from AtsSccas_TCFunctions_TS124292 all; - import from AtsSccas_PICS all; - - group isc_registration { - - /* - * @desc Verify that the MSC successfully register to the IM CN Subsystem - * @param p_cSeq_s Transaction Id - */ - testcase TC_ISC_SCCAS_MSC_REG_01(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { - // Local variables - var ImsComponent v_imsComponent_ueims; - - // Test control - if (not PICS_MSC_GM) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1IscUp(v_imsComponent_ueims); - - // Start - f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_REG_01(p_cSeq_s)); - - // Synchronize both PTCs on 3 sychronization points - f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); - - f_cf_1IscDown(v_imsComponent_ueims); - - } // End of TC_ISC_SCCAS_MSC_REG_01 - - /* - * @desc Verify that the MSC successfully register to the IM CN Subsystem - * @param p_cSeq_s Transaction Id - */ - testcase TC_ISC_SCCAS_MSC_REG_02(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { - // Local variables - var ImsComponent v_imsComponent_ueims; - - // Test control - if (not PICS_MSC_GM) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1IscUp(v_imsComponent_ueims); - - // Start - f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_REG_02(p_cSeq_s)); - - // Synchronize both PTCs on 3 sychronization points - f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); - - f_cf_1IscDown(v_imsComponent_ueims); - - } // End of TC_ISC_SCCAS_MSC_REG_02 - - } // End of isc_registration - - group isc_subscribe { - - /* - * @desc Verify that the MSC successfully subscribe to the IM CN Subsystem - * @param p_cSeq_s Transaction Id - */ - testcase TC_ISC_SCCAS_MSC_SUB_01(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { - // Local variables - var ImsComponent v_imsComponent_ueims; - - // Test control - if (not PICS_MSC_GM) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1IscUp(v_imsComponent_ueims); - - // Start - f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_SUB_01(p_cSeq_s)); - - // Synchronize both PTCs on 3 sychronization points - f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); - - f_cf_1IscDown(v_imsComponent_ueims); - - } // End of TC_ISC_SCCAS_MSC_SUB_01 - - /* - * @desc Verify that the MSC receive NOTIFY on successfully subscription to the IM CN Subsystem - * @param p_cSeq_s Transaction Id - */ - testcase TC_ISC_SCCAS_MSC_SUB_02(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { - // Local variables - var ImsComponent v_imsComponent_ueims; - - // Test control - if (not PICS_MSC_GM) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1IscUp(v_imsComponent_ueims); - - // Start - f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_SUB_02(p_cSeq_s)); - - // Synchronize both PTCs on 3 sychronization points - f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); - - f_cf_1IscDown(v_imsComponent_ueims); - - } // End of TC_ISC_SCCAS_MSC_SUB_02 - - } // End of group isc_subscribe - - group isc_reregistration { - - /* - * @desc Verify that the MSC successfully re-register to the IM CN Subsystem - * @param p_cSeq_s Transaction Id - */ - testcase TC_ISC_SCCAS_MSC_REREG_01(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { - // Local variables - var ImsComponent v_imsComponent_ueims; - - // Test control - if (not PICS_MSC_GM) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1IscUp(v_imsComponent_ueims); - - // Start - f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_REREG_01(p_cSeq_s)); - - // Synchronize both PTCs on 3 sychronization points - f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); - - f_cf_1IscDown(v_imsComponent_ueims); - - } // End of TC_ISC_SCCAS_MSC_REREG_01 - - /* - * @desc Verify that the MSC successfully register to the IM CN Subsystem - * @param p_cSeq_s Transaction Id - */ - testcase TC_ISC_SCCAS_MSC_REREG_02(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { - // Local variables - var ImsComponent v_imsComponent_ueims; - - // Test control - if (not PICS_MSC_GM) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1IscUp(v_imsComponent_ueims); - - // Start - f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_REREG_02(p_cSeq_s)); - - // Synchronize both PTCs on 3 sychronization points - f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); - - f_cf_1IscDown(v_imsComponent_ueims); - - } // End of TC_ISC_SCCAS_MSC_REREG_02 - - } // End of group isc_reregistration - - group call_origination { - - /* - * @desc Verify that the MSC successfully sends INVITE to the IM CN Subsystem - * @param p_cSeq_s Transaction Id - */ - testcase TC_ISC_SCCAS_MSC_CALL_ORG_01(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { - // Local variables - var ImsComponent v_imsComponent_ueims; - - // Test control - if (not PICS_MSC_GM) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1IscUp(v_imsComponent_ueims); - - // Start - f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_CALL_ORG_01(p_cSeq_s)); - - // Synchronize both PTCs on 3 sychronization points - f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); - - f_cf_1IscDown(v_imsComponent_ueims); - - } // End of TC_ISC_SCCAS_MSC_CALL_ORG_01 - - /* - * @desc Verify that the MSC successfully sends INVITE to the IM CN Subsystem - * @param p_cSeq_s Transaction Id - */ - testcase TC_ISC_SCCAS_MSC_CALL_ORG_02(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { - // Local variables - var ImsComponent v_imsComponent_ueims; - - // Test control - if (not PICS_MSC_GM) { - log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); - stop; - } - - // Test component configuration - f_cf_1IscUp(v_imsComponent_ueims); - - // Start - f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_CALL_ORG_02(p_cSeq_s)); - - // Synchronize both PTCs on 3 sychronization points - f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); - - f_cf_1IscDown(v_imsComponent_ueims); - - } // End of TC_ISC_SCCAS_MSC_CALL_ORG_02 - - } // End of group call_origination - -} // End of module AtsSccas_Testcases_TS124292 +/* + * @author TTF T016 + * @version $Id$ + * @desc This module provides the Test Cases for SCCAS ETSI TS 124 292 v1.6.0. + */ + +module AtsSccas_Testcases_TS124292 +{ + //LibCommon + import from LibCommon_Sync all ; + import from LibCommon_VerdictControl all; + //LibSip + import from LibSip_Interface all; + import from LibSip_SIPTypesAndValues all; + //LibIms + import from LibIms_SIPTypesAndValues all; + import from LibIms_Interface all; + //AtsSccas + import from AtsSccas_TestConfiguration all; + import from AtsSccas_TestSystem all; + import from AtsSccas_TCFunctions_TS124292 all; + import from AtsSccas_PICS all; + + group isc_registration { + + /* + * @desc Verify that the MSC successfully register to the IM CN Subsystem + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_MSC_REG_01(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { + // Local variables + var ImsComponent v_imsComponent_ueims; + + // Test control + if (not PICS_MSC_GM) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1IscUp(v_imsComponent_ueims); + + // Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_REG_01(p_cSeq_s)); + + // Synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_MSC_REG_01 + + /* + * @desc Verify that the MSC successfully register to the IM CN Subsystem + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_MSC_REG_02(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { + // Local variables + var ImsComponent v_imsComponent_ueims; + + // Test control + if (not PICS_MSC_GM) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1IscUp(v_imsComponent_ueims); + + // Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_REG_02(p_cSeq_s)); + + // Synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_MSC_REG_02 + + } // End of isc_registration + + group isc_subscribe { + + /* + * @desc Verify that the MSC successfully subscribe to the IM CN Subsystem + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_MSC_SUB_01(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { + // Local variables + var ImsComponent v_imsComponent_ueims; + + // Test control + if (not PICS_MSC_GM) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1IscUp(v_imsComponent_ueims); + + // Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_SUB_01(p_cSeq_s)); + + // Synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_MSC_SUB_01 + + /* + * @desc Verify that the MSC receive NOTIFY on successfully subscription to the IM CN Subsystem + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_MSC_SUB_02(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { + // Local variables + var ImsComponent v_imsComponent_ueims; + + // Test control + if (not PICS_MSC_GM) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1IscUp(v_imsComponent_ueims); + + // Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_SUB_02(p_cSeq_s)); + + // Synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_MSC_SUB_02 + + } // End of group isc_subscribe + + group isc_reregistration { + + /* + * @desc Verify that the MSC successfully re-register to the IM CN Subsystem + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_MSC_REREG_01(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { + // Local variables + var ImsComponent v_imsComponent_ueims; + + // Test control + if (not PICS_MSC_GM) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1IscUp(v_imsComponent_ueims); + + // Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_REREG_01(p_cSeq_s)); + + // Synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_MSC_REREG_01 + + /* + * @desc Verify that the MSC successfully register to the IM CN Subsystem + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_MSC_REREG_02(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { + // Local variables + var ImsComponent v_imsComponent_ueims; + + // Test control + if (not PICS_MSC_GM) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1IscUp(v_imsComponent_ueims); + + // Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_REREG_02(p_cSeq_s)); + + // Synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_MSC_REREG_02 + + } // End of group isc_reregistration + + group call_origination { + + /* + * @desc Verify that the MSC successfully sends INVITE to the IM CN Subsystem + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_MSC_CALL_ORG_01(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { + // Local variables + var ImsComponent v_imsComponent_ueims; + + // Test control + if (not PICS_MSC_GM) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1IscUp(v_imsComponent_ueims); + + // Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_CALL_ORG_01(p_cSeq_s)); + + // Synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_MSC_CALL_ORG_01 + + /* + * @desc Verify that the MSC successfully sends INVITE to the IM CN Subsystem + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_MSC_CALL_ORG_02(inout CSeq p_cSeq_s) runs on ServerSyncComp system TestAdapter { + // Local variables + var ImsComponent v_imsComponent_ueims; + + // Test control + if (not PICS_MSC_GM) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_MSC_GM' shall be set to true for executing the TC. ***"); + stop; + } + + // Test component configuration + f_cf_1IscUp(v_imsComponent_ueims); + + // Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MSC_CALL_ORG_02(p_cSeq_s)); + + // Synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_MSC_CALL_ORG_02 + + } // End of group call_origination + +} // End of module AtsSccas_Testcases_TS124292 -- GitLab From 3d513f793ad6b5c901af1be6b2fcc19d3fc53725 Mon Sep 17 00:00:00 2001 From: YannGarcia Date: Thu, 13 Oct 2022 10:43:15 +0200 Subject: [PATCH 088/202] Finalyze REGISTER implementation --- .gitmodules | 4 ++++ titan-test-system-framework | 1 + 2 files changed, 5 insertions(+) create mode 160000 titan-test-system-framework diff --git a/.gitmodules b/.gitmodules index 0199d02..93edb93 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,3 +10,7 @@ path = ttcn/LibIms url = https://forge.etsi.org/rep/LIBS/LibIms.git branch = STF574 +[submodule "titan-test-system-framework"] + path = titan-test-system-framework + url = https://labs.etsi.org/rep/cti-tools/titan-test-system-framework.git + branch = devel diff --git a/titan-test-system-framework b/titan-test-system-framework new file mode 160000 index 0000000..a49d8da --- /dev/null +++ b/titan-test-system-framework @@ -0,0 +1 @@ +Subproject commit a49d8daee3e5df27198a1902a7c630a84351e427 -- GitLab From 08821079c4b609fb2d6fd759dd2ccdc9783e7684 Mon Sep 17 00:00:00 2001 From: YannGarcia Date: Thu, 13 Oct 2022 10:43:21 +0200 Subject: [PATCH 089/202] Finalyze REGISTER implementation --- ttcn/AtsSccas/AtsSccas_PIXITS.ttcn | 27 ++- ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn | 171 ++++++++++++++++-- .../AtsSccas_TCFunctions_TS124292.ttcn | 2 +- ttcn/AtsSccas/AtsSccas_Templates.ttcn | 23 ++- ttcn/AtsSccas/AtsSccas_TestSystem.ttcn | 11 +- ttcn/AtsSccas/AtsSccas_Testcases.ttcn | 49 +++-- 6 files changed, 241 insertions(+), 42 deletions(-) diff --git a/ttcn/AtsSccas/AtsSccas_PIXITS.ttcn b/ttcn/AtsSccas/AtsSccas_PIXITS.ttcn index 51fa338..5a4d5ab 100644 --- a/ttcn/AtsSccas/AtsSccas_PIXITS.ttcn +++ b/ttcn/AtsSccas/AtsSccas_PIXITS.ttcn @@ -4,21 +4,28 @@ * @desc This module provides the PIXIT used for the SIP-IMS tests. */ -module AtsSccas_PIXITS -{ +module AtsSccas_PIXITS { + //LibSip + import from LibSip_SIPTypesAndValues all; -// SUT specific implementation variants + // SUT specific implementation variants -modulepar { + modulepar { - /** @desc boolean for SUT working mode due to - */ - boolean PX_SCCAS__ := true; + /** @desc boolean for SUT working mode due to + */ + boolean PX_SCCAS__ := true; - charstring PX_SIP_URI := ""; - -} + charstring PX_ACTF_MGMT_URI := ""; + + charstring PX_ACTF_URI := ""; + + charstring PX_ICSI_URI := ""; + + SipUrl PX_SCCAS_URI := {scheme := "c_sipScheme", components := {sip := {userInfo := omit, hostPort := {host := "",portField := c_defaultSipPort}}}}; + + } group SUT { diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn index 7855cf5..cc12981 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn @@ -124,7 +124,7 @@ module AtsSccas_TCFunctions { omit, PX_IMS_SUT_SCSCF_IPADDR, // TODO To be refined during validation PX_IMS_SUT_SCSCF_PORT, // TODO To be refined during validation - "0" + "0" // Expired )); tc_ack.start; alt { @@ -245,7 +245,7 @@ module AtsSccas_TCFunctions { m_fcValue( "g-3gpp-atcf-mgmt-uri-in-path", { - {"sip-uri", { tokenOrHost := PX_SIP_URI }} + {"sip-uri", { tokenOrHost := PX_ACTF_MGMT_URI }} }) }), m_contentType(c_sdpApplication), // TODO To be refined during validation @@ -253,7 +253,18 @@ module AtsSccas_TCFunctions { )); tc_ack.start; alt { - [] SIPP.receive(mw_sccas_Response_2xxonREGISTER(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) { + [] SIPP.receive(mw_sccas_Response_2xxonREGISTER( + vc_callId, + vc_cSeq, + vc_from, + vc_to, + vc_via_REG, + vc_contact, + mw_pChargingVector(-, { tokenOrHost := "orig-ioi" }), // TODO To be refined during validation + mw_PAssertedID( + mw_PAssertedIDValue(PX_SCCAS_URI) + ) + )) { tc_ack.stop; log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync @@ -283,7 +294,9 @@ module AtsSccas_TCFunctions { LibIms_Steps.f_setHeadersMESSAGE(v_cSeq_s, vc_from.addressField.addrSpecUnion, vc_to.addressField.addrSpecUnion); f_awaitingMESSAGE( mw_sccas_MESSAGE_Request( - -, -, -, -, // TODO To be refined during validation + -, -, + mw_pChargingVector(-, { tokenOrHost := "orig-ioi" }), // TODO To be refined during validation + -, m_contentType("application/vnd.3gpp.SRVCC-info+xml"), // TODO To be refined during validation ? // TODO To be refined during validation ) @@ -307,6 +320,7 @@ module AtsSccas_TCFunctions { runs on ImsComponent { // Local variables var CSeq v_cSeq_s := p_cSeq_s; + var Contact v_contact; // Preambule f_init_userprofile(c_userProfile_UE1atSUThome); @@ -317,6 +331,17 @@ module AtsSccas_TCFunctions { // Registration f_setHeaders_REGISTER(v_cSeq_s); + v_contact := valueof(vc_contact); + v_contact.contactBody.contactAddresses[0].contactParams := { // TODO To be refined during validation + { + "g.3gpp.atcf-mgmt-uri", + {tokenOrHost := PX_ACTF_MGMT_URI} + }, + { + "g.3gpp.path", + {tokenOrHost := PX_ACTF_URI} + } + }; f_SendREGISTER( m_sccas_register( vc_requestUri, @@ -325,22 +350,22 @@ module AtsSccas_TCFunctions { vc_from, vc_to, vc_via_REG, - vc_contact, + v_contact, m_add_Authorization_digest( - vc_authorization, - {c_Integrity_protected_no} - ), + 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_sccas_featureCaps( // TS 124 237 Clause C.6 Definition of feature-capability indicator g.3gpp.atcfmgmt-uri + -/*m_sccas_featureCaps( // TS 124 237 Clause C.6 Definition of feature-capability indicator g.3gpp.atcfmgmt-uri { m_fcValue( - "g-3gpp-atcf-mgmt-uri-in-path", + "g-3gpp-atcf-mgmt-uri\", { - {"sip-uri", { tokenOrHost := PX_SIP_URI }} + {"sip-uri", { tokenOrHost := PX_ACTF_MGMT_URI }} }) - }), + })*/, // TODO To be refined during validation m_contentType(c_sdpApplication), // TODO To be refined during validation m_MBody_SDP(vc_sdp_local) // TODO To be refined during validation )); @@ -378,6 +403,128 @@ module AtsSccas_TCFunctions { } // End of group TP_6_3_4_Trigger_SRVCC_To_MSC + group TP_6_3_5_Providing_SRVCC_To_MSC { + + /** + * @desc Verify that the SCCAS successfully provide CS to PS SRVCC information + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_RSC_REG_06_ueims(in CSeq p_cSeq_s) + runs on ImsComponent { + // Local variables + var CSeq v_cSeq_s := p_cSeq_s; + var Contact v_contact; + + // Preambule + f_init_userprofile(c_userProfile_UE1atSUThome); + f_initSipUrl(c_serviceProfile_EMERGENCY); + f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1); + action("Please register UE") + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + f_setHeaders_REGISTER(v_cSeq_s); + v_contact := valueof(vc_contact); + v_contact.contactBody.contactAddresses[0].contactParams := { // TODO To be refined during validation + { + "g.3gpp.icsi-ref", + {tokenOrHost := PX_ICSI_URI} + } + }; + f_SendREGISTER( + m_sccas_register( + vc_requestUri, + vc_callId, + vc_cSeq, + vc_from, + vc_to, + vc_via_REG, + v_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_sccas_featureCaps( // TS 124 237 Clause C.6 Definition of feature-capability indicator g.3gpp.atcfmgmt-uri + { + m_fcValue( + "g-3gpp-atcf-mgmt-uri-in-path", + { + {"sip-uri", { tokenOrHost := PX_ACTF_MGMT_URI }} + }) + })*/, // TODO To be refined during validation + m_contentType(c_sdpApplication), // TODO To be refined during validation + m_MBody_SDP(vc_sdp_local) // TODO To be refined during validation + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_sccas_Response_2xxonREGISTER( + vc_callId, + vc_cSeq, + vc_from, + vc_to, + vc_via_REG, + vc_contact, + mw_pChargingVector(-, { tokenOrHost := "orig-ioi" }), // TODO To be refined during validation + mw_PAssertedID( + mw_PAssertedIDValue(PX_SCCAS_URI) + ), // TODO To be refined during validation + mw_acceptContact( + { // TODO To be refined during validation + { + "g.3gpp.path-media", + {tokenOrHost := PX_ICSI_URI} + } + } + ) + )) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_RSC_REG_06_ueims + + function f_TC_ISC_SCCAS_RSC_REG_06_msc(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); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Message + LibIms_Steps.f_setHeadersMESSAGE(v_cSeq_s, vc_from.addressField.addrSpecUnion, vc_to.addressField.addrSpecUnion); + f_awaitingMESSAGE( + mw_sccas_MESSAGE_Request( + -, -, + mw_pChargingVector(-, { tokenOrHost := "orig-ioi" }), // TODO To be refined during validation + -, + m_contentType("application/vnd.3gpp.SRVCC-info+xml"), // TODO To be refined during validation + ? // TODO To be refined during validation + ) + ); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync + + // Answer to the MESSAGE + f_send200OK(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + } // end function f_TC_ISC_SCCAS_RSC_REG_06_msc + + } // End of group TP_6_3_5_Providing_SRVCC_To_MSC + } // End of group Group_6_3 group Group_6A_4 { diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn index a826c38..1db4dde 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn @@ -56,7 +56,7 @@ module AtsSccas_TCFunctions_TS124292 { PX_IMS_SUT_UE1_QOP, mw_sccas_register( -, - mw_pChargingVector(-, *), // TODO To be refined during validation - Clause 6.3.2 Initial registration Point 11 + mw_pChargingVector(-, *), // TODO To be refined during validation - Clause 6.3.2 Initial registration Point 11 mw_pVisitedNetworkID(?), // TODO To be refined during validation - Clause 6.3.2 Initial registration Point 12 -, // See helper f_check_contact_msc mw_Authorization_digest( // Clause 6.3.2 Initial registration Point 4 diff --git a/ttcn/AtsSccas/AtsSccas_Templates.ttcn b/ttcn/AtsSccas/AtsSccas_Templates.ttcn index 97819df..3eb5b93 100644 --- a/ttcn/AtsSccas/AtsSccas_Templates.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Templates.ttcn @@ -62,8 +62,22 @@ module AtsSccas_Templates fcParams := p_fcParams } // End of template mw_fcValue + template(value) Contact m_sccas_contact( + in template (value) SipUrl p_sipUrl, + in template (value) SemicolonParam_List p_contactParams + ) modifies m_Contact := { + contactBody := { + contactAddresses := { + { + contactParams := p_contactParams + } + } + } + } // End of template m_sccas_contact + template (present) LibSip_SIPTypesAndValues.Contact mw_sccas_contact( - template (present) ContactBody p_contact_body := ? + template (present) ContactBody p_contact_body := ?, + template SemicolonParam_List p_contactParams := * ) := { contactBody := p_contact_body } // End of template mw_sccas_contact @@ -163,11 +177,14 @@ module AtsSccas_Templates template (present) To p_to := ?, template (present) Via p_via := ?, template (present) Contact p_contact := ?, - template (present) PChargingVector p_pChargingVector := ? + template (present) PChargingVector p_pChargingVector := ?, + template (present) PAssertedID p_pAssertedID := ?, + template AcceptContact p_acceptContact := * ) modifies mw_Response_2xx_Base := { msgHeader := { pChargingVector := p_pChargingVector, - contact := p_contact + contact := p_contact, + acceptContact := p_acceptContact } } // End of template mw_sccas_Response_2xxonREGISTER diff --git a/ttcn/AtsSccas/AtsSccas_TestSystem.ttcn b/ttcn/AtsSccas/AtsSccas_TestSystem.ttcn index 15d2c6c..4864174 100644 --- a/ttcn/AtsSccas/AtsSccas_TestSystem.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TestSystem.ttcn @@ -25,17 +25,17 @@ module AtsSccas_TestSystem type charstring CM_Message; } // end group CMTypes - group Signatures { + /*group Signatures { signature s_SIP_conversation (in charstring text, out boolean answer); signature s_SIP_ringing (in charstring text, out boolean answer); - } // end group Signatures + }*/ // end group Signatures group SystemConfiguration { group Ports { - type port operatorPort_SIP procedure { + /*type port operatorPort_SIP procedure { inout s_SIP_conversation; - inout s_SIP_ringing}; + inout s_SIP_ringing};*/ type port Coordination message { inout CM_Message} with {extension "internal"}; @@ -48,7 +48,8 @@ module AtsSccas_TestSystem */ type component TestAdapter { port SipPort UEIMS, SCCAS, ATCF, MSC, UE1; - port operatorPort_SIP opPortS; + //port operatorPort_SIP opPortS; + port OperatorPort opPortS; } } // end Group TestSystemInterfaces diff --git a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn index 16fc914..562e704 100644 --- a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn @@ -26,7 +26,7 @@ module AtsSccas_Testcases group TP_6_3_1_General { /* - * @desc TC_IMST2_GM_GEN_01 + * @desc Verify that the SCCAS successfully obtain/processes 3pty registration information * @param p_cSeq_s Transaction Id */ testcase TC_ISC_SCCAS_RSC_REG_01(inout CSeq p_cSeq_s) @@ -44,10 +44,10 @@ module AtsSccas_Testcases f_cf_1IscDown(v_imsComponent_ueims); - } // end TC_ISC_SCCAS_RSC_REG_01 + } // End of TC_ISC_SCCAS_RSC_REG_01 /* - * @desc TC_IMST2_GM_GEN_02 + * @desc Verify that the SCCAS successfully obtain/processes de-registration information (Expires=0) * @param p_cSeq_s Transaction Id */ testcase TC_ISC_SCCAS_RSC_REG_02(inout CSeq p_cSeq_s) @@ -65,14 +65,14 @@ module AtsSccas_Testcases f_cf_1IscDown(v_imsComponent_ueims); - } // end TC_ISC_SCCAS_RSC_REG_02 + } // End of TC_ISC_SCCAS_RSC_REG_02 } // End of group TP_6_3_1_General group TP_6_3_2_Triggers_To_ATCF { /* - * @desc TC_IMST2_GM_GEN_03 + * @desc Verify that the SCCAS successfully obtain/processes SRVCC information * @param p_cSeq_s Transaction Id */ testcase TC_ISC_SCCAS_RSC_REG_03(inout CSeq p_cSeq_s) @@ -90,14 +90,14 @@ module AtsSccas_Testcases f_cf_1IscDown(v_imsComponent_ueims); - } // end TC_ISC_SCCAS_RSC_REG_03 + } // End of TC_ISC_SCCAS_RSC_REG_03 } // End of group TP_6_3_2_Triggers_To_ATCF group TP_6_3_3_SRVCC_Information_To_ATCF { /* - * @desc TC_IMST2_GM_GEN_04 + * @desc Verify that the SCCAS successfully sends MESSAGE providing PS to CS SRVCC information * @param p_cSeq_s Transaction Id */ testcase TC_ISC_SCCAS_RSC_REG_04(inout CSeq p_cSeq_s) @@ -117,14 +117,14 @@ module AtsSccas_Testcases f_cf_1Isc1AtcfDown(v_imsComponent_ueims, v_imsComponent_atcf); - } // end TC_ISC_SCCAS_RSC_REG_04 + } // End of TC_ISC_SCCAS_RSC_REG_04 } // End of group TP_6_3_3_SRVCC_Information_To_ATCF group TP_6_3_4_Trigger_SRVCC_To_MSC { /* - * @desc TC_IMST2_GM_GEN_05 + * @desc Verify that the SCCAS successfully get CS to PS SRVCC information * @param p_cSeq_s Transaction Id */ testcase TC_ISC_SCCAS_RSC_REG_05(inout CSeq p_cSeq_s) @@ -137,17 +137,44 @@ module AtsSccas_Testcases //Start f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_RSC_REG_05_ueims(p_cSeq_s)); - v_imsComponent_msc.start(f_TC_ISC_SCCAS_RSC_REG_05_msc(p_cSeq_s)); + f_IncCSeq(p_cSeq_s); v_imsComponent_msc.start(f_TC_ISC_SCCAS_RSC_REG_05_msc(p_cSeq_s)); // TODO Not considered in TP? // synchronize both PTCs on 3 sychronization points f_serverSync2Clients({c_prDone, c_tbDone, c_poDone}); f_cf_1Isc1AtcfDown(v_imsComponent_ueims, v_imsComponent_msc); - } // end TC_ISC_SCCAS_RSC_REG_05 + } // End of TC_ISC_SCCAS_RSC_REG_05 } // End of group TP_6_3_4_Trigger_SRVCC_To_MSC + group TP_6_3_5_Providing_SRVCC_To_MSC { + + /* + * @desc Verify that the SCCAS successfully provide CS to PS SRVCC information + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_RSC_REG_06(inout CSeq p_cSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + var ImsComponent v_imsComponent_ueims; + var ImsComponent v_imsComponent_msc; + f_cf_1Isc1AtcfUp(v_imsComponent_ueims, v_imsComponent_msc); + + //Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_RSC_REG_06_ueims(p_cSeq_s)); + f_IncCSeq(p_cSeq_s); v_imsComponent_msc.start(f_TC_ISC_SCCAS_RSC_REG_06_msc(p_cSeq_s)); // TODO Not considered in TP? + + // synchronize both PTCs on 3 sychronization points + f_serverSync2Clients({c_prDone, c_tbDone, c_poDone}); + + f_cf_1Isc1AtcfDown(v_imsComponent_ueims, v_imsComponent_msc); + + } // End of TC_ISC_SCCAS_RSC_REG_06 + + } // End of group TP_6_3_5_Providing_SRVCC_To_MSC + } // End of group Group_6_3 group Group_6A_4 { -- GitLab From e0fa6e0f16a54045a68cd6762888489c3c68b46c Mon Sep 17 00:00:00 2001 From: YannGarcia Date: Fri, 14 Oct 2022 14:00:00 +0200 Subject: [PATCH 090/202] Finalyze REGISTER test cases --- ttcn/AtsSccas/AtsSccas_PICS.ttcn | 2 +- ttcn/AtsSccas/AtsSccas_TestControl.ttcn | 39 ++++++++++++++++++++ ttcn/AtsSccas/AtsSccas_TestExecutions.ttcn | 10 ----- ttcn/AtsSccas/AtsSccas_Testcases.ttcn | 43 ++++++++++++++++++++++ 4 files changed, 83 insertions(+), 11 deletions(-) create mode 100644 ttcn/AtsSccas/AtsSccas_TestControl.ttcn delete mode 100644 ttcn/AtsSccas/AtsSccas_TestExecutions.ttcn diff --git a/ttcn/AtsSccas/AtsSccas_PICS.ttcn b/ttcn/AtsSccas/AtsSccas_PICS.ttcn index 0e2df8c..b64fade 100644 --- a/ttcn/AtsSccas/AtsSccas_PICS.ttcn +++ b/ttcn/AtsSccas/AtsSccas_PICS.ttcn @@ -15,7 +15,7 @@ PICS used for test case selection /** @desc boolean PICS ref: A-3/5 True, if SUT/SCSCF requires ... */ - boolean PC_SCCAS_TODO := false; + boolean PICS_SCCAS_GM := false; boolean PICS_MSC_GM := false; } diff --git a/ttcn/AtsSccas/AtsSccas_TestControl.ttcn b/ttcn/AtsSccas/AtsSccas_TestControl.ttcn new file mode 100644 index 0000000..a7ca1cf --- /dev/null +++ b/ttcn/AtsSccas/AtsSccas_TestControl.ttcn @@ -0,0 +1,39 @@ +/* + * @author TTF T016 + * @version $Id$ + * @desc This module provides the Test Cases for SCCAS. + */ + +module AtsSccas_TestControl +{ + // LibSip + import from LibSip_SIPTypesAndValues all; + + // AtsSccas + import from AtsSccas_Testcases all; + import from AtsSccas_Testcases_TS124292 all; + import from AtsSccas_PICS all; + + control { + var CSeq v_cSeq := { + fieldName := CSEQ_E, + seqNumber := 1, + method := "INVITE" + } + + if (PICS_SCCAS_GM == true) { + execute(TC_ISC_SCCAS_RSC_REG_01(v_cSeq)); + execute(TC_ISC_SCCAS_RSC_REG_02(v_cSeq)); + execute(TC_ISC_SCCAS_RSC_REG_03(v_cSeq)); + execute(TC_ISC_SCCAS_RSC_REG_04(v_cSeq)); + execute(TC_ISC_SCCAS_RSC_REG_05(v_cSeq)); + execute(TC_ISC_SCCAS_RSC_REG_06(v_cSeq)); + } + + if (PICS_MSC_GM == true) { + execute(TC_ISC_SCCAS_MSC_REG_01(v_cSeq)); + execute(TC_ISC_SCCAS_MSC_REG_02(v_cSeq)); + } + } + +} // End of module AtsSccas_TestControl diff --git a/ttcn/AtsSccas/AtsSccas_TestExecutions.ttcn b/ttcn/AtsSccas/AtsSccas_TestExecutions.ttcn deleted file mode 100644 index 19893d7..0000000 --- a/ttcn/AtsSccas/AtsSccas_TestExecutions.ttcn +++ /dev/null @@ -1,10 +0,0 @@ -/* - * @author TTF T016 - * @version $Id$ - * @desc - */ - -module AtsSccas_TestExecutions -{ - -} // end module AtsSccas_TestExecutions diff --git a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn index 562e704..b975513 100644 --- a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn @@ -34,6 +34,14 @@ module AtsSccas_Testcases system TestAdapter { //Variables 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); //Start @@ -55,6 +63,13 @@ module AtsSccas_Testcases system TestAdapter { //Variables 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; + } + f_cf_1IscUp(v_imsComponent_ueims); //Start @@ -80,6 +95,13 @@ module AtsSccas_Testcases system TestAdapter { //Variables 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; + } + f_cf_1IscUp(v_imsComponent_ueims); //Start @@ -106,6 +128,13 @@ module AtsSccas_Testcases //Variables var ImsComponent v_imsComponent_ueims; var ImsComponent v_imsComponent_atcf; + + // Test control + if (not PICS_SCCAS_GM) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_SCCAS_GM' shall be set to true for executing the TC. ***"); + stop; + } + f_cf_1Isc1AtcfUp(v_imsComponent_ueims, v_imsComponent_atcf); //Start @@ -133,6 +162,13 @@ module AtsSccas_Testcases //Variables var ImsComponent v_imsComponent_ueims; var ImsComponent v_imsComponent_msc; + + // Test control + if (not PICS_SCCAS_GM) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_SCCAS_GM' shall be set to true for executing the TC. ***"); + stop; + } + f_cf_1Isc1AtcfUp(v_imsComponent_ueims, v_imsComponent_msc); //Start @@ -160,6 +196,13 @@ module AtsSccas_Testcases //Variables var ImsComponent v_imsComponent_ueims; var ImsComponent v_imsComponent_msc; + + // Test control + if (not PICS_SCCAS_GM) { + log("*** " & __SCOPE__ & ": ERROR: 'PICS_SCCAS_GM' shall be set to true for executing the TC. ***"); + stop; + } + f_cf_1Isc1AtcfUp(v_imsComponent_ueims, v_imsComponent_msc); //Start -- GitLab From 41b3f688219d0ba5dbe3547ea1fde5c617e7a530 Mon Sep 17 00:00:00 2001 From: Bostjan Date: Mon, 17 Oct 2022 16:12:39 +0200 Subject: [PATCH 091/202] Errors resolved --- ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn | 12 ++++++------ ttcn/AtsSccas/AtsSccas_Templates.ttcn | 1 + 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn index cc12981..ed38d5d 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn @@ -52,7 +52,7 @@ module AtsSccas_TCFunctions { f_init_userprofile(c_userProfile_UE1atSUThome); f_initSipUrl(c_serviceProfile_EMERGENCY); f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1); - action("Please register UE") + action("Please register UE"); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync // Registration @@ -107,7 +107,7 @@ module AtsSccas_TCFunctions { f_init_userprofile(c_userProfile_UE1atSUThome); f_initSipUrl(c_serviceProfile_EMERGENCY); f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1); - action("Please register UE") + action("Please register UE"); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync // Registration @@ -160,7 +160,7 @@ module AtsSccas_TCFunctions { f_init_userprofile(c_userProfile_UE1atSUThome); f_initSipUrl(c_serviceProfile_EMERGENCY); f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1); - action("Please register UE") + action("Please register UE"); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync // Registration @@ -219,7 +219,7 @@ module AtsSccas_TCFunctions { f_init_userprofile(c_userProfile_UE1atSUThome); f_initSipUrl(c_serviceProfile_EMERGENCY); f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1); - action("Please register UE") + action("Please register UE"); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync // Registration @@ -326,7 +326,7 @@ module AtsSccas_TCFunctions { f_init_userprofile(c_userProfile_UE1atSUThome); f_initSipUrl(c_serviceProfile_EMERGENCY); f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1); - action("Please register UE") + action("Please register UE"); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync // Registration @@ -419,7 +419,7 @@ module AtsSccas_TCFunctions { f_init_userprofile(c_userProfile_UE1atSUThome); f_initSipUrl(c_serviceProfile_EMERGENCY); f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1); - action("Please register UE") + action("Please register UE"); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync // Registration diff --git a/ttcn/AtsSccas/AtsSccas_Templates.ttcn b/ttcn/AtsSccas/AtsSccas_Templates.ttcn index 3eb5b93..b8c18ec 100644 --- a/ttcn/AtsSccas/AtsSccas_Templates.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Templates.ttcn @@ -79,6 +79,7 @@ module AtsSccas_Templates template (present) ContactBody p_contact_body := ?, template SemicolonParam_List p_contactParams := * ) := { + fieldName := CONTACT_E, contactBody := p_contact_body } // End of template mw_sccas_contact -- GitLab From df2b450c7751e32323bb201b122f4c27d1b6e411 Mon Sep 17 00:00:00 2001 From: Bostjan Date: Mon, 17 Oct 2022 15:35:07 +0200 Subject: [PATCH 092/202] Errors resolved --- ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn index 1db4dde..e99fa18 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions_TS124292.ttcn @@ -46,7 +46,7 @@ module AtsSccas_TCFunctions_TS124292 { f_init_userprofile(c_userProfile_UE1atSUThome); f_initSipUrl(c_serviceProfile_EMERGENCY); f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1); - action("Please register UE") + action("Please register UE"); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync // Registration @@ -95,7 +95,7 @@ module AtsSccas_TCFunctions_TS124292 { f_init_userprofile(c_userProfile_UE1atSUThome); f_initSipUrl(c_serviceProfile_EMERGENCY); f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1); - action("Please register UE") + action("Please register UE"); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync // Registration @@ -324,8 +324,8 @@ module AtsSccas_TCFunctions_TS124292 { // Check vc_request.msgHeader.contact for 3GPP requirement function f_check_contact_msc(in Contact p_contact) runs on ImsComponent { - if (ispresent(p_contact.contactBody.wildcard) == false) { - log("f_check_contact_msc: FAIL: Invalid contact content") + if (ischosen(p_contact.contactBody.wildcard) == false) { + log("f_check_contact_msc: FAIL: Invalid contact content"); f_setVerdict(e_error); return; } @@ -333,7 +333,7 @@ module AtsSccas_TCFunctions_TS124292 { // Looking for g.3gpp.icsi-ref var template charstring m_found_pattern := pattern "*g.3gpp.icsi-ref*"; if (regexp(p_contact.contactBody.wildcard, m_found_pattern, 0) == "") { - log("f_check_contact_msc: FAIL: g.3gpp.icsi-ref is not present") + log("f_check_contact_msc: FAIL: g.3gpp.icsi-ref is not present"); f_setVerdict(e_error); // g.3gpp.icsi-ref is not present return; } @@ -341,7 +341,7 @@ module AtsSccas_TCFunctions_TS124292 { // Looking for g.3gpp.icsi-ref media m_found_pattern := pattern "*g.3gpp.icsi-ref media*"; if (regexp(p_contact.contactBody.wildcard, m_found_pattern, 0) == "") { - log("f_check_contact_msc: FAIL: g.3gpp.icsi-ref media is not present") + log("f_check_contact_msc: FAIL: g.3gpp.icsi-ref media is not present"); f_setVerdict(e_error); // g.3gpp.icsi-ref media is not present return; } @@ -349,7 +349,7 @@ module AtsSccas_TCFunctions_TS124292 { // not containing "reg-id" m_found_pattern := pattern "*reg-id*"; if (regexp(p_contact.contactBody.wildcard, m_found_pattern, 0) != "") { - log("f_check_contact_msc: FAIL: reg-id should not be present") + log("f_check_contact_msc: FAIL: reg-id should not be present"); f_setVerdict(e_error); // reg-id should not be present return; } -- GitLab From e6701dcbdd846b122a880754363ebda06e20e329 Mon Sep 17 00:00:00 2001 From: Bostjan Date: Tue, 18 Oct 2022 11:42:21 +0200 Subject: [PATCH 093/202] Temp subgroups added for development --- ttcn/AtsSccas/AtsSccas_Templates.ttcn | 45 +++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/ttcn/AtsSccas/AtsSccas_Templates.ttcn b/ttcn/AtsSccas/AtsSccas_Templates.ttcn index b8c18ec..122bc0d 100644 --- a/ttcn/AtsSccas/AtsSccas_Templates.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Templates.ttcn @@ -89,6 +89,21 @@ module AtsSccas_Templates genericParams := ? } // End of template mw_pAccessNetworkInfo + group HeaderTemplatesAxel { + } + + group HeaderTemplatesSteffen { + } + + group HeaderTemplatesBostjan { + } + + group HeaderTemplatesIztok { + } + + group HeaderTemplatesYann { + } + } // End of group HeaderTemplates group MessageTemplates { @@ -122,6 +137,20 @@ module AtsSccas_Templates }, messageBody := p_mb } + group request_sent_Axel { + } + + group request_sent_Steffen { + } + + group request_sent_Bostjan { + } + + group request_sent_Iztok { + } + + group request_sent_Yann { + } } // End of group request_sent @@ -188,6 +217,22 @@ module AtsSccas_Templates acceptContact := p_acceptContact } } // End of template mw_sccas_Response_2xxonREGISTER + + + group request_receive_Axel { + } + + group request_receive_Steffen { + } + + group request_receive_Bostjan { + } + + group request_receive_Iztok { + } + + group request_receive_Yann { + } } // End of group request_receive -- GitLab From efdf6995bd9068bb296bc0ba7141af45f330f222 Mon Sep 17 00:00:00 2001 From: YannGarcia Date: Tue, 18 Oct 2022 12:07:12 +0200 Subject: [PATCH 094/202] Add skeletton for TC_ISC_SCCAS_GEN_INV_01 --- ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn | 99 ++++++++++++++++++- ttcn/AtsSccas/AtsSccas_Templates.ttcn | 58 +++++++++-- ttcn/AtsSccas/AtsSccas_TestConfiguration.ttcn | 9 +- ttcn/AtsSccas/AtsSccas_Testcases.ttcn | 57 ++++++++--- 4 files changed, 195 insertions(+), 28 deletions(-) diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn index ed38d5d..b389856 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn @@ -34,6 +34,7 @@ module AtsSccas_TCFunctions { import from AtsSccas_Steps all; import from AtsSccas_PICS all; import from AtsSccas_PIXITS all; + import from AtsSccas_TestConfiguration all; group Group_6_3 { @@ -528,6 +529,79 @@ module AtsSccas_TCFunctions { } // End of group Group_6_3 group Group_6A_4 { + + group TP_6A_4_2_SIP_INVITE_request { + + /** + * @desc Verify that the SCCAS send INVITE for anchored user populated with FeatureCaps header + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_GEN_INV_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); + // Registration + 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 + + // Registration + f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); + f_SendINVITE( + m_sccas_invite( + vc_requestUri, + vc_callId, + p_cSeq_s, + vc_from, vc_to, vc_via_REG, + vc_contact, + -, -, -, + m_MBody_SDP(vc_sdp_local) + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_sccas_Response_2xxonINVITE(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_GEN_INV_01 + + } // End of group TP_6A_4_2_SIP_INVITE_request + } // End of group Group_6A_4 group Group_7_3 { @@ -544,5 +618,28 @@ module AtsSccas_TCFunctions { group Group_11_3 { } // End of group Group_11_3 - + + group helpers { + + function f_sendRegistrationAndAwait200Ok( + in CSeq p_cSeq_s, + in template (omit) REGISTER_Request p_register, + template (present) Response p_response + ) runs on ImsComponent { + f_setHeaders_REGISTER(p_cSeq_s); + f_SendREGISTER(p_register); + tc_ack.start; + alt { + [] SIPP.receive(p_response) { + tc_ack.stop; + } + [] tc_ack.timeout { + f_setVerdict(e_timeout); + } + } + + } // End of function f_sendRegistrationAndAwait200Ok + + } // End of group helpers + } // End of module AtsSccas_TCFunctions \ No newline at end of file diff --git a/ttcn/AtsSccas/AtsSccas_Templates.ttcn b/ttcn/AtsSccas/AtsSccas_Templates.ttcn index 122bc0d..747a4cc 100644 --- a/ttcn/AtsSccas/AtsSccas_Templates.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Templates.ttcn @@ -152,6 +152,26 @@ module AtsSccas_Templates group request_sent_Yann { } + template (omit) INVITE_Request m_sccas_invite( + 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 + ) modifies m_INVITE_Request_UE := { + msgHeader := { + contentLength := m_contentLength(f_MessageBodyLength(p_mb)), + contentType := m_contentType(c_sdpApplication) + }, + messageBody := p_mb + } + } // End of group request_sent group request_receive { @@ -201,16 +221,16 @@ module AtsSccas_Templates } // End of template mw_sccas_MESSAGE_Request template (present) Response mw_sccas_Response_2xxonREGISTER( - 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 := { + 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 := { msgHeader := { pChargingVector := p_pChargingVector, contact := p_contact, @@ -234,6 +254,24 @@ module AtsSccas_Templates group request_receive_Yann { } + template (present) Response mw_sccas_Response_2xxonINVITE( + 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 := { + msgHeader := { + pChargingVector := p_pChargingVector, + contact := p_contact, + acceptContact := p_acceptContact + } + } // End of template mw_sccas_Response_2xxonINVITE + } // End of group request_receive } // End of group modified_templates diff --git a/ttcn/AtsSccas/AtsSccas_TestConfiguration.ttcn b/ttcn/AtsSccas/AtsSccas_TestConfiguration.ttcn index b9320ce..6b3848c 100644 --- a/ttcn/AtsSccas/AtsSccas_TestConfiguration.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TestConfiguration.ttcn @@ -26,11 +26,10 @@ group auxSipFunction { ** @desc f_IncCSeq returns an input parameter incremented by 1000 ** reason is to run the next testcase with a higher CSeq value */ - function f_IncCSeq(inout CSeq loc_CSeq) - runs on ServerSyncComp - { loc_CSeq.seqNumber := loc_CSeq.seqNumber + 1000; - return - }; + function f_IncCSeq(inout CSeq loc_CSeq) { + loc_CSeq.seqNumber := loc_CSeq.seqNumber + 1000; + return + }; // end f_IncCSeq }//end group auxSipFunction diff --git a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn index b975513..ff828bf 100644 --- a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn @@ -221,22 +221,55 @@ module AtsSccas_Testcases } // End of group Group_6_3 group Group_6A_4 { - } // End of group Group_6A_4 + + group TP_6A_4_2_SIP_INVITE_request { + + /* + * @desc Verify that the SCCAS send INVITE for anchored user populated with FeatureCaps header + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_GEN_INV_01(inout CSeq p_cSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + 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); + + //Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_GEN_INV_01(p_cSeq_s)); + + // synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_GEN_INV_01 + + } // End of group TP_6A_4_2_SIP_INVITE_request + + } // End of group Group_6A_4 - group Group_7_3 { - } // End of group Group_7_3 + group Group_7_3 { + } // End of group Group_7_3 - group Group_8_3 { - } // End of group Group_8_3 + group Group_8_3 { + } // End of group Group_8_3 - group Group_9_3 { - } // End of group Group_9_3 + group Group_9_3 { + } // End of group Group_9_3 - group Group_10_3 { - } // End of group Group_10_3 + group Group_10_3 { + } // End of group Group_10_3 - group Group_11_3 { - } // End of group Group_11_3 + group Group_11_3 { + } // End of group Group_11_3 - } // End of module AtsSccas_Testcases -- GitLab From b48d06bd9290414512aee9de50d31a757c964e97 Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 12:33:55 +0200 Subject: [PATCH 095/202] new group for section 12.3 --- ttcn/AtsSccas/AtsSccas_Testcases.ttcn | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn index ff828bf..02dbf79 100644 --- a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn @@ -271,5 +271,8 @@ module AtsSccas_Testcases group Group_11_3 { } // End of group Group_11_3 + + group Group_12_3 { + } // End of group Group_12_3 } // End of module AtsSccas_Testcases -- GitLab From a092ca20b95147c0a7b1a51fc9dc856149aadfac Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 12:36:05 +0200 Subject: [PATCH 096/202] new group for section 12.3 --- ttcn/AtsSccas/AtsSccas_Testcases.ttcn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn index 02dbf79..7bd1b47 100644 --- a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn @@ -272,7 +272,7 @@ module AtsSccas_Testcases group Group_11_3 { } // End of group Group_11_3 - group Group_12_3 { - } // End of group Group_12_3 + group Group_12_3 { + } // End of group Group_12_3 } // End of module AtsSccas_Testcases -- GitLab From ae5d488ec557ea2543b528c74adf4e807e50e908 Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 12:42:31 +0200 Subject: [PATCH 097/202] new group for section 12.3 --- ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn index b389856..229f756 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn @@ -618,6 +618,9 @@ module AtsSccas_TCFunctions { group Group_11_3 { } // End of group Group_11_3 + + group Group_12_3 { + } // End of group Group_12_3 group helpers { -- GitLab From 33dcc89272d13ea5319e8734ec0907609ae6354a Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 13:03:03 +0200 Subject: [PATCH 098/202] template for f_TC_ISC_SCCAS_CON_RIN_01 --- ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn | 69 +++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn index 229f756..5ce45b4 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn @@ -617,6 +617,75 @@ module AtsSccas_TCFunctions { } // End of group Group_10_3 group Group_11_3 { + + /** + * @desc Verify that the SCC AS successfully processes an INVITE that includes an active speech media component using CS bearer. + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_CON_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); + // Registration + 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 + + // Registration + f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); + f_SendINVITE( + m_sccas_invite( + vc_requestUri, + vc_callId, + p_cSeq_s, + vc_from, vc_to, vc_via_REG, + vc_contact, + -, -, -, + m_MBody_SDP(vc_sdp_local) + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_INVITE_Request(?,vc_requestUri)) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: forwarded INVITE message was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_CON_RIN_01 + } // End of group Group_11_3 group Group_12_3 { -- GitLab From 7e5af97f518375e9a89d5e5a212fde00ef2edd81 Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 13:16:49 +0200 Subject: [PATCH 099/202] template for TC_ISC_SCCAS_CON_RIN_01 --- ttcn/AtsSccas/AtsSccas_Testcases.ttcn | 30 +++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn index 7bd1b47..4ffcc25 100644 --- a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn @@ -270,6 +270,36 @@ module AtsSccas_Testcases } // End of group Group_10_3 group Group_11_3 { + + /* + * @desc Verify that the SCC AS successfully processes an INVITE that includes an active speech media component using CS bearer. + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_CON_RIN_01(inout CSeq p_cSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + 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); + + //Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_CON_RIN_01(p_cSeq_s)); + + // synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_CON_RIN_01 + } // End of group Group_11_3 group Group_12_3 { -- GitLab From ca4128bb734cf00e9b77bf9e4fc63e054e31c746 Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 15:04:10 +0200 Subject: [PATCH 100/202] template for f_TC_ISC_SCCAS_CON_RIN_03 --- ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn | 69 +++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn index 5ce45b4..858f0d8 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn @@ -685,6 +685,75 @@ module AtsSccas_TCFunctions { f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // End of function f_TC_ISC_SCCAS_CON_RIN_01 + + /** + * @desc Verify that the SCC AS rejects an INVITE due missing ability to associate it to an ongoing or different SIP dialog. + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_CON_RIN_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); + // Registration + 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 + + // Registration + f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); + f_SendINVITE( + m_sccas_invite( + vc_requestUri, + vc_callId, + p_cSeq_s, + vc_from, vc_to, vc_via_REG, + vc_contact, + -, -, -, + m_MBody_SDP(vc_sdp_local) + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_Response_Base(c_statusLine480)) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: 480 OK message was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_CON_RIN_03 + } // End of group Group_11_3 -- GitLab From 0bee25a3a15def7c9ae01aa1494bca3c3a7ddb68 Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 15:04:24 +0200 Subject: [PATCH 101/202] template for TC_ISC_SCCAS_CON_RIN_03 --- ttcn/AtsSccas/AtsSccas_Testcases.ttcn | 29 +++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn index 4ffcc25..ed66dca 100644 --- a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn @@ -299,6 +299,35 @@ module AtsSccas_Testcases f_cf_1IscDown(v_imsComponent_ueims); } // End of TC_ISC_SCCAS_CON_RIN_01 + + /* + * @desc Verify that the SCC AS rejects an INVITE due missing ability to associate it to an ongoing or different SIP dialog. + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_CON_RIN_03(inout CSeq p_cSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + 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); + + //Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_CON_RIN_03(p_cSeq_s)); + + // synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_CON_RIN_03 } // End of group Group_11_3 -- GitLab From b99021de9d7fb31a97ba02d594680bc299eb2a09 Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 15:23:13 +0200 Subject: [PATCH 102/202] template for f_TC_ISC_SCCAS_CON_RIN_02 --- ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn | 70 ++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn index 858f0d8..eadac59 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn @@ -660,7 +660,7 @@ module AtsSccas_TCFunctions { // Registration f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); f_SendINVITE( - m_sccas_invite( + m_sccas_invite( // TODO request active speech media component using CS bearer vc_requestUri, vc_callId, p_cSeq_s, @@ -686,6 +686,74 @@ module AtsSccas_TCFunctions { } // End of function f_TC_ISC_SCCAS_CON_RIN_01 + /** + * @desc Verify that the SCC AS successfully processes an INVITE due to two STIs on the Target Access Leg. + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_CON_RIN_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); + // Registration + 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 + + // Registration + f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); + f_SendINVITE( + m_sccas_invite( // TODO request CS -> PS + vc_requestUri, + vc_callId, + p_cSeq_s, + vc_from, vc_to, vc_via_REG, + vc_contact, + -, -, -, + m_MBody_SDP(vc_sdp_local) + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_INVITE_Request(?,vc_requestUri)) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: forwarded INVITE message was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_CON_RIN_02 + /** * @desc Verify that the SCC AS rejects an INVITE due missing ability to associate it to an ongoing or different SIP dialog. * @param p_cSeq_s Random CSeq REGISTER number -- GitLab From be504753a2bcc98596c55b4a4ff6e7a2ee8c9bd6 Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 15:23:23 +0200 Subject: [PATCH 103/202] template for TC_ISC_SCCAS_CON_RIN_02 --- ttcn/AtsSccas/AtsSccas_Testcases.ttcn | 29 +++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn index ed66dca..a278988 100644 --- a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn @@ -300,6 +300,35 @@ module AtsSccas_Testcases } // End of TC_ISC_SCCAS_CON_RIN_01 + /* + * @desc Verify that the SCC AS successfully processes an INVITE due to two STIs on the Target Access Leg. + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_CON_RIN_02(inout CSeq p_cSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + 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); + + //Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_CON_RIN_01(p_cSeq_s)); + + // synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_CON_RIN_02 + /* * @desc Verify that the SCC AS rejects an INVITE due missing ability to associate it to an ongoing or different SIP dialog. * @param p_cSeq_s Transaction Id -- GitLab From 692991c20e3aec451b9afc393b39058e40904b57 Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 15:53:17 +0200 Subject: [PATCH 104/202] template for TC_ISC_SCCAS_PCT_INV_06 --- ttcn/AtsSccas/AtsSccas_Testcases.ttcn | 30 +++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn index a278988..e4615c2 100644 --- a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn @@ -361,6 +361,36 @@ module AtsSccas_Testcases } // End of group Group_11_3 group Group_12_3 { + + /* + * @desc Verify that SCC AS correctly recognizes and initiated for PS to CS access transfer for terminating call in pre-alerting phase using PS to CS SRVCC procedure. + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_PCT_INV_06(inout CSeq p_cSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + 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); + + //Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_PCT_INV_06(p_cSeq_s)); + + // synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_PCT_INV_06 + } // End of group Group_12_3 } // End of module AtsSccas_Testcases -- GitLab From bf146016218d37c33eafe811b4e7d1dda003471d Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 15:53:43 +0200 Subject: [PATCH 105/202] template for f_TC_ISC_SCCAS_PCT_INV_06 --- ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn | 70 +++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn index eadac59..c01a41f 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn @@ -826,6 +826,76 @@ module AtsSccas_TCFunctions { } // End of group Group_11_3 group Group_12_3 { + + + /** + * @desc Verify that SCC AS correctly recognizes and initiated for PS to CS access transfer for terminating call in pre-alerting phase using PS to CS SRVCC procedure. + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_PCT_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); + // Registration + 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 + + // Registration + f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); + f_SendINVITE( + m_sccas_invite( + vc_requestUri, + vc_callId, + p_cSeq_s, + vc_from, vc_to, vc_via_REG, + vc_contact, + -, -, -, + m_MBody_SDP(vc_sdp_local) + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_Response_Base(c_statusLine183)) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: 183 OK message was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_PCT_INV_06 + } // End of group Group_12_3 group helpers { -- GitLab From 05042d928e66b8f77dafbb5294eb2333ee620073 Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 16:05:39 +0200 Subject: [PATCH 106/202] template for f_TC_ISC_SCCAS_PCT_INV_02 --- ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn | 70 ++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn index c01a41f..30f4ad8 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn @@ -875,7 +875,7 @@ module AtsSccas_TCFunctions { vc_callId, p_cSeq_s, vc_from, vc_to, vc_via_REG, - vc_contact, + vc_contact, // TODO g3gppps2csSrvccTermPreAlerting -, -, -, m_MBody_SDP(vc_sdp_local) )); @@ -895,6 +895,74 @@ module AtsSccas_TCFunctions { f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // End of function f_TC_ISC_SCCAS_PCT_INV_06 + + /** + * @desc Verify that SCC AS correctly recognizes and initiated for PS to CS access transfer for originating call in pre-alerting phase using PS to CS SRVCC procedure. + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_PCT_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); + // Registration + 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 + + // Registration + f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); + f_SendINVITE( + m_sccas_invite( + vc_requestUri, + vc_callId, + p_cSeq_s, + vc_from, vc_to, vc_via_REG, + vc_contact, // TODO g3gppPs2csSrvccOrigPreAlerting + -, -, -, + m_MBody_SDP(vc_sdp_local) + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_Response_Base(c_statusLine183)) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: 183 OK message was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_PCT_INV_02 } // End of group Group_12_3 -- GitLab From 3fa54aac34aef9c4a03ab7a30ad1f7a98ccf4477 Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 16:05:48 +0200 Subject: [PATCH 107/202] template for TC_ISC_SCCAS_PCT_INV_02 --- ttcn/AtsSccas/AtsSccas_Testcases.ttcn | 29 +++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn index e4615c2..8d538c7 100644 --- a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn @@ -390,6 +390,35 @@ module AtsSccas_Testcases f_cf_1IscDown(v_imsComponent_ueims); } // End of TC_ISC_SCCAS_PCT_INV_06 + + /* + * @desc Verify that SCC AS correctly recognizes and initiated for PS to CS access transfer for originating call in pre-alerting phase using PS to CS SRVCC procedure. + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_PCT_INV_02(inout CSeq p_cSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + 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); + + //Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_PCT_INV_02(p_cSeq_s)); + + // synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_PCT_INV_02 } // End of group Group_12_3 -- GitLab From 40773104889c721c045ad5afbd4e1e68a0db8b13 Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 16:35:34 +0200 Subject: [PATCH 108/202] template for TC_ISC_SCCAS_PCT_INV_03 --- ttcn/AtsSccas/AtsSccas_Testcases.ttcn | 29 +++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn index 8d538c7..57832ed 100644 --- a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn @@ -419,6 +419,35 @@ module AtsSccas_Testcases f_cf_1IscDown(v_imsComponent_ueims); } // End of TC_ISC_SCCAS_PCT_INV_02 + + /* + * @desc Verify that SCC AS correctly recognizes and initiated for PS to CS access transfer for originating call in pre-alerting phase using PS to CS SRVCC procedure. + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_PCT_INV_03(inout CSeq p_cSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + 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); + + //Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_PCT_INV_03(p_cSeq_s)); + + // synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_PCT_INV_03 } // End of group Group_12_3 -- GitLab From ee3b3099afec36305310c182880bfdd4d93f1183 Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 16:35:42 +0200 Subject: [PATCH 109/202] template for f_TC_ISC_SCCAS_PCT_INV_03 --- ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn | 67 +++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn index 30f4ad8..388c552 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn @@ -963,6 +963,73 @@ module AtsSccas_TCFunctions { f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // End of function f_TC_ISC_SCCAS_PCT_INV_02 + + /** + * @desc Verify that SCC AS correctly procedures for PS to CS access transfer of additional call. + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_PCT_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); + // Registration + 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 + + // Registration + f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); + f_sendResponse( + m_Response_18x_Base( + c_statusLine183, + vc_callId, + p_cSeq_s, + vc_from, + vc_to, + vc_via_REG + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_REFER_Request(?,vc_requestUri,vc_requestUri2)) { + 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 + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_PCT_INV_03 } // End of group Group_12_3 -- GitLab From 38ce635dfebb21c5ee60da198a62b11aa4d288a1 Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 17:02:55 +0200 Subject: [PATCH 110/202] template for f_TC_ISC_SCCAS_MED_OPT_01 --- ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn | 81 ++++++++++++++++++++++++- 1 file changed, 79 insertions(+), 2 deletions(-) diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn index 388c552..9f97cf4 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn @@ -965,7 +965,7 @@ module AtsSccas_TCFunctions { } // End of function f_TC_ISC_SCCAS_PCT_INV_02 /** - * @desc Verify that SCC AS correctly procedures for PS to CS access transfer of additional call. + * @desc Verify that the SCC AS handles correctly the procedures for handling of SIP OPTIONS request. * @param p_cSeq_s Random CSeq REGISTER number */ function f_TC_ISC_SCCAS_PCT_INV_03(in CSeq p_cSeq_s) @@ -1016,7 +1016,7 @@ module AtsSccas_TCFunctions { )); tc_ack.start; alt { - [] SIPP.receive(mw_REFER_Request(?,vc_requestUri,vc_requestUri2)) { + [] SIPP.receive(mw_Response_Base(c_statusLine200)) { tc_ack.stop; log("*** " & __SCOPE__ & ": PASS: REFER message was received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync @@ -1030,6 +1030,73 @@ module AtsSccas_TCFunctions { f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // End of function f_TC_ISC_SCCAS_PCT_INV_03 + + /** + * @desc Verify that the SCC AS handles correctly the procedures for handling of SIP OPTIONS request. + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_MED_OPT_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); + // Registration + 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 + + // Registration + f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); + f_SendOPTIONS( + m_OPTIONS_Request_Base( + vc_requestUri, + vc_callId, + p_cSeq_s, + vc_from, + vc_to, + vc_via_REG + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_Response_Base(c_statusLine200)) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: 200 response was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_MED_OPT_01 } // End of group Group_12_3 @@ -1054,6 +1121,16 @@ module AtsSccas_TCFunctions { } // End of function f_sendRegistrationAndAwait200Ok + /** + * @desc function send OPTIONS message + * @param p_request template of the message to be sent + */ + function f_SendOPTIONS( + template(value) OPTIONS_Request p_request + ) runs on SipComponent { + SIPP.send(p_request) to vc_sent_label; + } + } // End of group helpers } // End of module AtsSccas_TCFunctions \ No newline at end of file -- GitLab From 6f13672f7defac25cbd6ba548662fd9e37948d27 Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 17:03:13 +0200 Subject: [PATCH 111/202] template for TC_ISC_SCCAS_MED_OPT_01 --- ttcn/AtsSccas/AtsSccas_Testcases.ttcn | 29 +++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn index 57832ed..1bc657a 100644 --- a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn @@ -448,6 +448,35 @@ module AtsSccas_Testcases f_cf_1IscDown(v_imsComponent_ueims); } // End of TC_ISC_SCCAS_PCT_INV_03 + + /* + * @desc Verify that the SCC AS handles correctly the procedures for handling of SIP OPTIONS request. + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_MED_OPT_01(inout CSeq p_cSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + 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); + + //Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_MED_OPT_01(p_cSeq_s)); + + // synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_MED_OPT_01 } // End of group Group_12_3 -- GitLab From 067d203bd60802deaebadf9129f680502e0ca65a Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 17:15:19 +0200 Subject: [PATCH 112/202] template for TC_ISC_SCCAS_CPT_INV_07 --- ttcn/AtsSccas/AtsSccas_Testcases.ttcn | 29 +++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn index 1bc657a..0da8b6e 100644 --- a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn @@ -477,6 +477,35 @@ module AtsSccas_Testcases f_cf_1IscDown(v_imsComponent_ueims); } // End of TC_ISC_SCCAS_MED_OPT_01 + + /* + * @desc Verify that the SCC AS handles correctly the transfer of session with active speech media component. + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_CPT_INV_07(inout CSeq p_cSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + 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); + + //Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_CPT_INV_07(p_cSeq_s)); + + // synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_CPT_INV_07 } // End of group Group_12_3 -- GitLab From e74c140d8138aefcd508dcbdd9313a9299bbd5f6 Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 17:15:36 +0200 Subject: [PATCH 113/202] template for f_TC_ISC_SCCAS_CPT_INV_07 --- ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn | 68 +++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn index 9f97cf4..388807e 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn @@ -1097,6 +1097,74 @@ module AtsSccas_TCFunctions { f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // End of function f_TC_ISC_SCCAS_MED_OPT_01 + + /** + * @desc Verify that the SCC AS handles correctly the transfer of session with active speech media component. + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_CPT_INV_07(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); + // Registration + 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 + + // Registration + f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); + f_SendINVITE( + m_sccas_invite( + vc_requestUri, + vc_callId, + p_cSeq_s, + vc_from, vc_to, vc_via_REG, + vc_contact, + -, -, -, + m_MBody_SDP(vc_sdp_local) + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_Response_Base(c_statusLine200)) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_CPT_INV_07 } // End of group Group_12_3 -- GitLab From 2380c9824b46d39f3e51a96f39c7041a1dd0fd1c Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 17:24:17 +0200 Subject: [PATCH 114/202] template for f_TC_ISC_SCCAS_CPT_INV_08 --- ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn | 68 +++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn index 388807e..61b717c 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn @@ -1165,6 +1165,74 @@ module AtsSccas_TCFunctions { f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // End of function f_TC_ISC_SCCAS_CPT_INV_07 + + /** + * @desc Verify that the SCC AS handles correctly the transfer of session with inactive speech media component. + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_CPT_INV_08(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); + // Registration + 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 + + // Registration + f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); + f_SendINVITE( + m_sccas_invite( // TODO request active speech media component using CS bearer + vc_requestUri, + vc_callId, + p_cSeq_s, + vc_from, vc_to, vc_via_REG, + vc_contact, + -, -, -, + m_MBody_SDP(vc_sdp_local) + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_INVITE_Request(?,vc_requestUri)) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: forwarded INVITE message was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_CPT_INV_08 } // End of group Group_12_3 -- GitLab From 228e848cc4371ba722646213926fea90a96db567 Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 17:24:26 +0200 Subject: [PATCH 115/202] template for TC_ISC_SCCAS_CPT_INV_08 --- ttcn/AtsSccas/AtsSccas_Testcases.ttcn | 29 +++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn index 0da8b6e..3959445 100644 --- a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn @@ -506,6 +506,35 @@ module AtsSccas_Testcases f_cf_1IscDown(v_imsComponent_ueims); } // End of TC_ISC_SCCAS_CPT_INV_07 + + /* + * @desc Verify that the SCC AS handles correctly the transfer of session with inactive speech media component. + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_CPT_INV_08(inout CSeq p_cSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + 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); + + //Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_CPT_INV_08(p_cSeq_s)); + + // synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_CPT_INV_08 } // End of group Group_12_3 -- GitLab From d3af470cc758779efc90af2ad8f6e8a60f025368 Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 17:32:14 +0200 Subject: [PATCH 116/202] template for TC_ISC_SCCAS_CPT_INV_09 --- ttcn/AtsSccas/AtsSccas_Testcases.ttcn | 29 +++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn index 3959445..0c7fddd 100644 --- a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn @@ -535,6 +535,35 @@ module AtsSccas_Testcases f_cf_1IscDown(v_imsComponent_ueims); } // End of TC_ISC_SCCAS_CPT_INV_08 + + /* + * @desc Verify that the SCC AS handles correctly the transfer of originating session in alerting phase. + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_CPT_INV_09(inout CSeq p_cSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + 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); + + //Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_CPT_INV_08(p_cSeq_s)); + + // synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_CPT_INV_09 } // End of group Group_12_3 -- GitLab From 4df3b039099475eed60069df6c9afd199082f141 Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 17:32:22 +0200 Subject: [PATCH 117/202] template for f_TC_ISC_SCCAS_CPT_INV_09 --- ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn | 69 ++++++++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn index 61b717c..7f8346f 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn @@ -1018,7 +1018,7 @@ module AtsSccas_TCFunctions { alt { [] SIPP.receive(mw_Response_Base(c_statusLine200)) { tc_ack.stop; - log("*** " & __SCOPE__ & ": PASS: REFER message was received ***"); + log("*** " & __SCOPE__ & ": PASS: response 200 was received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync } [] tc_ack.timeout { @@ -1233,6 +1233,73 @@ module AtsSccas_TCFunctions { f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // End of function f_TC_ISC_SCCAS_CPT_INV_08 + + /** + * @desc Verify that the SCC AS handles correctly the transfer of originating session in alerting phase. + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_CPT_INV_09(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); + // Registration + 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 + + // Registration + f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); + f_sendResponse( + m_Response_2xx_Base( + c_statusLine200, + vc_callId, + p_cSeq_s, + vc_from, + vc_to, + vc_via_REG + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_Response_Base(c_statusLine180)) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: Respoonse 180 was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_CPT_INV_09 } // End of group Group_12_3 -- GitLab From 70a177808a40c28a069eed7d3108e2e5dbadc4e7 Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 17:36:14 +0200 Subject: [PATCH 118/202] template for TC_ISC_SCCAS_CPT_INV_10 --- ttcn/AtsSccas/AtsSccas_Testcases.ttcn | 31 ++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn index 0c7fddd..6938292 100644 --- a/ttcn/AtsSccas/AtsSccas_Testcases.ttcn +++ b/ttcn/AtsSccas/AtsSccas_Testcases.ttcn @@ -556,7 +556,7 @@ module AtsSccas_Testcases f_cf_1IscUp(v_imsComponent_ueims); //Start - f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_CPT_INV_08(p_cSeq_s)); + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_CPT_INV_09(p_cSeq_s)); // synchronize both PTCs on 3 sychronization points f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); @@ -564,6 +564,35 @@ module AtsSccas_Testcases f_cf_1IscDown(v_imsComponent_ueims); } // End of TC_ISC_SCCAS_CPT_INV_09 + + /* + * @desc Verify that the SCC AS handles correctly the transfer of terminating session in alerting phase. + * @param p_cSeq_s Transaction Id + */ + testcase TC_ISC_SCCAS_CPT_INV_10(inout CSeq p_cSeq_s) + runs on ServerSyncComp + system TestAdapter { + //Variables + 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); + + //Start + f_IncCSeq(p_cSeq_s); v_imsComponent_ueims.start(f_TC_ISC_SCCAS_CPT_INV_10(p_cSeq_s)); + + // synchronize both PTCs on 3 sychronization points + f_serverSync1Client({c_prDone, c_tbDone, c_poDone}); + + f_cf_1IscDown(v_imsComponent_ueims); + + } // End of TC_ISC_SCCAS_CPT_INV_10 } // End of group Group_12_3 -- GitLab From 47a0afe3e732a7476fde78b6dae8bca073a4c257 Mon Sep 17 00:00:00 2001 From: Axel Rennoch Date: Tue, 18 Oct 2022 17:36:26 +0200 Subject: [PATCH 119/202] template for f_TC_ISC_SCCAS_CPT_INV_10 --- ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn | 67 +++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn index 7f8346f..4117c64 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn @@ -1300,6 +1300,73 @@ module AtsSccas_TCFunctions { f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // End of function f_TC_ISC_SCCAS_CPT_INV_09 + + /** + * @desc Verify that the SCC AS handles correctly the transfer of terminating session in alerting phase. + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_CPT_INV_10(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); + // Registration + 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 + + // Registration + f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); + f_sendResponse( + m_Response_2xx_Base( + c_statusLine200, + vc_callId, + p_cSeq_s, + vc_from, + vc_to, + vc_via_REG + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_Response_Base(c_statusLine183)) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: Respoonse 183 was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_CPT_INV_10 } // End of group Group_12_3 -- GitLab From 4dc6da8bd33ef9eb5ecb3252204a223a1bf6ec1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20L=C3=BCdtke?= Date: Tue, 18 Oct 2022 18:02:39 +0200 Subject: [PATCH 120/202] first draft TC 9.3 --- ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn | 2836 ++++++++++++----------- ttcn/AtsSccas/AtsSccas_Templates.ttcn | 639 ++--- ttcn/AtsSccas/AtsSccas_Testcases.ttcn | 1231 +++++----- 3 files changed, 2422 insertions(+), 2284 deletions(-) diff --git a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn index 4117c64..74e2be9 100644 --- a/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn +++ b/ttcn/AtsSccas/AtsSccas_TCFunctions.ttcn @@ -1,1406 +1,1432 @@ -/* - * @author TTF T016 - * @version $Id$ - * @desc This module provides the TCfunctions used by the test component - * for SCCAS tests. - */ -module AtsSccas_TCFunctions { - - // XSD support - import from XSD all; - - // LibCommon - import from LibCommon_Sync all; - import from LibCommon_VerdictControl all; - import from LibCommon_DataStrings all; - - // LibSip - import from LibSip_SIPTypesAndValues all; - import from LibSip_SDPTypes all; - import from LibSip_Templates all; - import from LibSip_Steps all; - import from LibSip_Interface all; - import from LibSip_PIXITS all; - - // LibIms - import from LibIms_Templates all; - import from LibIms_Steps all; - import from LibIms_SIPTypesAndValues all; - import from LibIms_Interface all; - - // AtsSccas - // import from AtsSccas_TestSystem all; - import from AtsSccas_Templates all; - import from AtsSccas_Steps all; - import from AtsSccas_PICS all; - import from AtsSccas_PIXITS all; - import from AtsSccas_TestConfiguration all; - - group Group_6_3 { - - group TP_6_3_1_General { - - /** - * @desc Verify that the SCCAS successfully obtain/processes 3pty registration information - * @param p_cSeq_s Random CSeq REGISTER number - */ - function f_TC_ISC_SCCAS_RSC_REG_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); - action("Please register UE"); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync - - // Registration - f_setHeaders_REGISTER(v_cSeq_s); - f_SendREGISTER( - 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 - )); - tc_ack.start; - alt { - [] SIPP.receive(mw_sccas_Response_2xxonREGISTER(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) { - tc_ack.stop; - log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync - } - [] tc_ack.timeout { - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync - } - } - - // TODO Deregistration? - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_RSC_REG_01 - - /** - * @desc Verify that the SCCAS successfully obtain/processes de-registration information (Expires=0) - * @param p_cSeq_s Random CSeq REGISTER number - */ - function f_TC_ISC_SCCAS_RSC_REG_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); - action("Please register UE"); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync - - // Registration - f_setHeaders_REGISTER(v_cSeq_s); - f_SendREGISTER( - m_sccas_register( - vc_requestUri, - vc_callId, - vc_cSeq, - vc_from, - vc_to, - vc_via_REG, - vc_contact, - omit, - PX_IMS_SUT_SCSCF_IPADDR, // TODO To be refined during validation - PX_IMS_SUT_SCSCF_PORT, // TODO To be refined during validation - "0" // Expired - )); - tc_ack.start; - alt { - [] SIPP.receive(mw_sccas_Response_2xxonREGISTER(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) { - tc_ack.stop; - log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync - } - [] tc_ack.timeout { - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync - } - } - - // TODO Deregistration? - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_RSC_REG_02 - - } // End of group TP_6_3_1_General - - group TP_6_3_2_Triggers_To_ATCF { - - /** - * @desc Verify that the SCCAS successfully obtain/processes SRVCC information - * @param p_cSeq_s Random CSeq REGISTER number - */ - function f_TC_ISC_SCCAS_RSC_REG_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); - action("Please register UE"); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync - - // Registration - f_setHeaders_REGISTER(v_cSeq_s); - f_SendREGISTER( - 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_sccas_featureCaps({m_fcValue("g3gppAtcfFeatureCapabilityIndicator")}), - m_contentType(c_sdpApplication), // TODO To be refined during validation - m_MBody_SDP(vc_sdp_local) // TODO To be refined during validation - )); - tc_ack.start; - alt { - [] SIPP.receive(mw_sccas_Response_2xxonREGISTER(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) { - tc_ack.stop; - log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync - } - [] tc_ack.timeout { - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync - } - } - - // TODO Deregistration? - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_RSC_REG_03 - - } // End of group TP_6_3_2_Triggers_To_ATCF - - group TP_6_3_3_SRVCC_Information_To_ATCF { - - /** - * @desc Verify that the SCCAS successfully sends MESSAGE providing PS to CS SRVCC information - * @param p_cSeq_s Random CSeq REGISTER number - */ - function f_TC_ISC_SCCAS_RSC_REG_04_ueims(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); - action("Please register UE"); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync - - // Registration - f_setHeaders_REGISTER(v_cSeq_s); - f_SendREGISTER( - 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_sccas_featureCaps( // TS 124 237 Clause C.6 Definition of feature-capability indicator g.3gpp.atcfmgmt-uri - { - m_fcValue( - "g-3gpp-atcf-mgmt-uri-in-path", - { - {"sip-uri", { tokenOrHost := PX_ACTF_MGMT_URI }} - }) - }), - m_contentType(c_sdpApplication), // TODO To be refined during validation - m_MBody_SDP(vc_sdp_local) // TODO To be refined during validation - )); - tc_ack.start; - alt { - [] SIPP.receive(mw_sccas_Response_2xxonREGISTER( - vc_callId, - vc_cSeq, - vc_from, - vc_to, - vc_via_REG, - vc_contact, - mw_pChargingVector(-, { tokenOrHost := "orig-ioi" }), // TODO To be refined during validation - mw_PAssertedID( - mw_PAssertedIDValue(PX_SCCAS_URI) - ) - )) { - tc_ack.stop; - log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync - } - [] tc_ack.timeout { - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync - } - } - - // TODO Deregistration? - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_RSC_REG_04_ueims - - function f_TC_ISC_SCCAS_RSC_REG_04_atcf(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); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync - - // Message - LibIms_Steps.f_setHeadersMESSAGE(v_cSeq_s, vc_from.addressField.addrSpecUnion, vc_to.addressField.addrSpecUnion); - f_awaitingMESSAGE( - mw_sccas_MESSAGE_Request( - -, -, - mw_pChargingVector(-, { tokenOrHost := "orig-ioi" }), // TODO To be refined during validation - -, - m_contentType("application/vnd.3gpp.SRVCC-info+xml"), // TODO To be refined during validation - ? // TODO To be refined during validation - ) - ); - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync - - // Answer to the MESSAGE - f_send200OK(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - } // End of function f_TC_ISC_SCCAS_RSC_REG_04_atcf - - } // End of group TP_6_3_3_SRVCC_Information_To_ATCF - - group TP_6_3_4_Trigger_SRVCC_To_MSC { - - /** - * @desc Verify that the SCCAS successfully get CS to PS SRVCC information - * @param p_cSeq_s Random CSeq REGISTER number - */ - function f_TC_ISC_SCCAS_RSC_REG_05_ueims(in CSeq p_cSeq_s) - runs on ImsComponent { - // Local variables - var CSeq v_cSeq_s := p_cSeq_s; - var Contact v_contact; - - // Preambule - f_init_userprofile(c_userProfile_UE1atSUThome); - f_initSipUrl(c_serviceProfile_EMERGENCY); - f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1); - action("Please register UE"); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync - - // Registration - f_setHeaders_REGISTER(v_cSeq_s); - v_contact := valueof(vc_contact); - v_contact.contactBody.contactAddresses[0].contactParams := { // TODO To be refined during validation - { - "g.3gpp.atcf-mgmt-uri", - {tokenOrHost := PX_ACTF_MGMT_URI} - }, - { - "g.3gpp.path", - {tokenOrHost := PX_ACTF_URI} - } - }; - f_SendREGISTER( - m_sccas_register( - vc_requestUri, - vc_callId, - vc_cSeq, - vc_from, - vc_to, - vc_via_REG, - v_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_sccas_featureCaps( // TS 124 237 Clause C.6 Definition of feature-capability indicator g.3gpp.atcfmgmt-uri - { - m_fcValue( - "g-3gpp-atcf-mgmt-uri\", - { - {"sip-uri", { tokenOrHost := PX_ACTF_MGMT_URI }} - }) - })*/, // TODO To be refined during validation - m_contentType(c_sdpApplication), // TODO To be refined during validation - m_MBody_SDP(vc_sdp_local) // TODO To be refined during validation - )); - tc_ack.start; - alt { - [] SIPP.receive(mw_sccas_Response_2xxonREGISTER(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) { - tc_ack.stop; - log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync - } - [] tc_ack.timeout { - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync - } - } - - // TODO Deregistration? - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_RSC_REG_05_ueims - - function f_TC_ISC_SCCAS_RSC_REG_05_msc(in CSeq p_cSeq_s) - runs on ImsComponent { - - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync - - // Registration - - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync - - // deregistration - - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // end function f_TC_ISC_SCCAS_RSC_REG_05_msc - - } // End of group TP_6_3_4_Trigger_SRVCC_To_MSC - - group TP_6_3_5_Providing_SRVCC_To_MSC { - - /** - * @desc Verify that the SCCAS successfully provide CS to PS SRVCC information - * @param p_cSeq_s Random CSeq REGISTER number - */ - function f_TC_ISC_SCCAS_RSC_REG_06_ueims(in CSeq p_cSeq_s) - runs on ImsComponent { - // Local variables - var CSeq v_cSeq_s := p_cSeq_s; - var Contact v_contact; - - // Preambule - f_init_userprofile(c_userProfile_UE1atSUThome); - f_initSipUrl(c_serviceProfile_EMERGENCY); - f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1); - action("Please register UE"); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync - - // Registration - f_setHeaders_REGISTER(v_cSeq_s); - v_contact := valueof(vc_contact); - v_contact.contactBody.contactAddresses[0].contactParams := { // TODO To be refined during validation - { - "g.3gpp.icsi-ref", - {tokenOrHost := PX_ICSI_URI} - } - }; - f_SendREGISTER( - m_sccas_register( - vc_requestUri, - vc_callId, - vc_cSeq, - vc_from, - vc_to, - vc_via_REG, - v_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_sccas_featureCaps( // TS 124 237 Clause C.6 Definition of feature-capability indicator g.3gpp.atcfmgmt-uri - { - m_fcValue( - "g-3gpp-atcf-mgmt-uri-in-path", - { - {"sip-uri", { tokenOrHost := PX_ACTF_MGMT_URI }} - }) - })*/, // TODO To be refined during validation - m_contentType(c_sdpApplication), // TODO To be refined during validation - m_MBody_SDP(vc_sdp_local) // TODO To be refined during validation - )); - tc_ack.start; - alt { - [] SIPP.receive(mw_sccas_Response_2xxonREGISTER( - vc_callId, - vc_cSeq, - vc_from, - vc_to, - vc_via_REG, - vc_contact, - mw_pChargingVector(-, { tokenOrHost := "orig-ioi" }), // TODO To be refined during validation - mw_PAssertedID( - mw_PAssertedIDValue(PX_SCCAS_URI) - ), // TODO To be refined during validation - mw_acceptContact( - { // TODO To be refined during validation - { - "g.3gpp.path-media", - {tokenOrHost := PX_ICSI_URI} - } - } - ) - )) { - tc_ack.stop; - log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync - } - [] tc_ack.timeout { - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync - } - } - - // TODO Deregistration? - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_RSC_REG_06_ueims - - function f_TC_ISC_SCCAS_RSC_REG_06_msc(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); - f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync - - // Message - LibIms_Steps.f_setHeadersMESSAGE(v_cSeq_s, vc_from.addressField.addrSpecUnion, vc_to.addressField.addrSpecUnion); - f_awaitingMESSAGE( - mw_sccas_MESSAGE_Request( - -, -, - mw_pChargingVector(-, { tokenOrHost := "orig-ioi" }), // TODO To be refined during validation - -, - m_contentType("application/vnd.3gpp.SRVCC-info+xml"), // TODO To be refined during validation - ? // TODO To be refined during validation - ) - ); - f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync - - // Answer to the MESSAGE - f_send200OK(); - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - } // end function f_TC_ISC_SCCAS_RSC_REG_06_msc - - } // End of group TP_6_3_5_Providing_SRVCC_To_MSC - - } // End of group Group_6_3 - - group Group_6A_4 { - - group TP_6A_4_2_SIP_INVITE_request { - - /** - * @desc Verify that the SCCAS send INVITE for anchored user populated with FeatureCaps header - * @param p_cSeq_s Random CSeq REGISTER number - */ - function f_TC_ISC_SCCAS_GEN_INV_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); - // Registration - 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 - - // Registration - f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); - f_SendINVITE( - m_sccas_invite( - vc_requestUri, - vc_callId, - p_cSeq_s, - vc_from, vc_to, vc_via_REG, - vc_contact, - -, -, -, - m_MBody_SDP(vc_sdp_local) - )); - tc_ack.start; - alt { - [] SIPP.receive(mw_sccas_Response_2xxonINVITE(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) { - tc_ack.stop; - log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync - } - [] tc_ack.timeout { - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync - } - } - - // TODO Deregistration? - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_GEN_INV_01 - - } // End of group TP_6A_4_2_SIP_INVITE_request - - } // End of group Group_6A_4 - - group Group_7_3 { - } // End of group Group_7_3 - - group Group_8_3 { - } // End of group Group_8_3 - - group Group_9_3 { - } // End of group Group_9_3 - - group Group_10_3 { - } // End of group Group_10_3 - - group Group_11_3 { - - /** - * @desc Verify that the SCC AS successfully processes an INVITE that includes an active speech media component using CS bearer. - * @param p_cSeq_s Random CSeq REGISTER number - */ - function f_TC_ISC_SCCAS_CON_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); - // Registration - 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 - - // Registration - f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); - f_SendINVITE( - m_sccas_invite( // TODO request active speech media component using CS bearer - vc_requestUri, - vc_callId, - p_cSeq_s, - vc_from, vc_to, vc_via_REG, - vc_contact, - -, -, -, - m_MBody_SDP(vc_sdp_local) - )); - tc_ack.start; - alt { - [] SIPP.receive(mw_INVITE_Request(?,vc_requestUri)) { - tc_ack.stop; - log("*** " & __SCOPE__ & ": PASS: forwarded INVITE message was received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync - } - [] tc_ack.timeout { - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync - } - } - - // TODO Deregistration? - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_CON_RIN_01 - - /** - * @desc Verify that the SCC AS successfully processes an INVITE due to two STIs on the Target Access Leg. - * @param p_cSeq_s Random CSeq REGISTER number - */ - function f_TC_ISC_SCCAS_CON_RIN_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); - // Registration - 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 - - // Registration - f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); - f_SendINVITE( - m_sccas_invite( // TODO request CS -> PS - vc_requestUri, - vc_callId, - p_cSeq_s, - vc_from, vc_to, vc_via_REG, - vc_contact, - -, -, -, - m_MBody_SDP(vc_sdp_local) - )); - tc_ack.start; - alt { - [] SIPP.receive(mw_INVITE_Request(?,vc_requestUri)) { - tc_ack.stop; - log("*** " & __SCOPE__ & ": PASS: forwarded INVITE message was received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync - } - [] tc_ack.timeout { - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync - } - } - - // TODO Deregistration? - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_CON_RIN_02 - - /** - * @desc Verify that the SCC AS rejects an INVITE due missing ability to associate it to an ongoing or different SIP dialog. - * @param p_cSeq_s Random CSeq REGISTER number - */ - function f_TC_ISC_SCCAS_CON_RIN_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); - // Registration - 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 - - // Registration - f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); - f_SendINVITE( - m_sccas_invite( - vc_requestUri, - vc_callId, - p_cSeq_s, - vc_from, vc_to, vc_via_REG, - vc_contact, - -, -, -, - m_MBody_SDP(vc_sdp_local) - )); - tc_ack.start; - alt { - [] SIPP.receive(mw_Response_Base(c_statusLine480)) { - tc_ack.stop; - log("*** " & __SCOPE__ & ": PASS: 480 OK message was received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync - } - [] tc_ack.timeout { - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync - } - } - - // TODO Deregistration? - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_CON_RIN_03 - - - } // End of group Group_11_3 - - group Group_12_3 { - - - /** - * @desc Verify that SCC AS correctly recognizes and initiated for PS to CS access transfer for terminating call in pre-alerting phase using PS to CS SRVCC procedure. - * @param p_cSeq_s Random CSeq REGISTER number - */ - function f_TC_ISC_SCCAS_PCT_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); - // Registration - 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 - - // Registration - f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); - f_SendINVITE( - m_sccas_invite( - vc_requestUri, - vc_callId, - p_cSeq_s, - vc_from, vc_to, vc_via_REG, - vc_contact, // TODO g3gppps2csSrvccTermPreAlerting - -, -, -, - m_MBody_SDP(vc_sdp_local) - )); - tc_ack.start; - alt { - [] SIPP.receive(mw_Response_Base(c_statusLine183)) { - tc_ack.stop; - log("*** " & __SCOPE__ & ": PASS: 183 OK message was received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync - } - [] tc_ack.timeout { - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync - } - } - - // TODO Deregistration? - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_PCT_INV_06 - - /** - * @desc Verify that SCC AS correctly recognizes and initiated for PS to CS access transfer for originating call in pre-alerting phase using PS to CS SRVCC procedure. - * @param p_cSeq_s Random CSeq REGISTER number - */ - function f_TC_ISC_SCCAS_PCT_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); - // Registration - 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 - - // Registration - f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); - f_SendINVITE( - m_sccas_invite( - vc_requestUri, - vc_callId, - p_cSeq_s, - vc_from, vc_to, vc_via_REG, - vc_contact, // TODO g3gppPs2csSrvccOrigPreAlerting - -, -, -, - m_MBody_SDP(vc_sdp_local) - )); - tc_ack.start; - alt { - [] SIPP.receive(mw_Response_Base(c_statusLine183)) { - tc_ack.stop; - log("*** " & __SCOPE__ & ": PASS: 183 OK message was received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync - } - [] tc_ack.timeout { - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync - } - } - - // TODO Deregistration? - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_PCT_INV_02 - - /** - * @desc Verify that the SCC AS handles correctly the procedures for handling of SIP OPTIONS request. - * @param p_cSeq_s Random CSeq REGISTER number - */ - function f_TC_ISC_SCCAS_PCT_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); - // Registration - 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 - - // Registration - f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); - f_sendResponse( - m_Response_18x_Base( - c_statusLine183, - vc_callId, - p_cSeq_s, - vc_from, - vc_to, - vc_via_REG - )); - tc_ack.start; - alt { - [] SIPP.receive(mw_Response_Base(c_statusLine200)) { - 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 - } - } - - // TODO Deregistration? - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_PCT_INV_03 - - /** - * @desc Verify that the SCC AS handles correctly the procedures for handling of SIP OPTIONS request. - * @param p_cSeq_s Random CSeq REGISTER number - */ - function f_TC_ISC_SCCAS_MED_OPT_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); - // Registration - 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 - - // Registration - f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); - f_SendOPTIONS( - m_OPTIONS_Request_Base( - vc_requestUri, - vc_callId, - p_cSeq_s, - vc_from, - vc_to, - vc_via_REG - )); - tc_ack.start; - alt { - [] SIPP.receive(mw_Response_Base(c_statusLine200)) { - tc_ack.stop; - log("*** " & __SCOPE__ & ": PASS: 200 response was received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync - } - [] tc_ack.timeout { - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync - } - } - - // TODO Deregistration? - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_MED_OPT_01 - - /** - * @desc Verify that the SCC AS handles correctly the transfer of session with active speech media component. - * @param p_cSeq_s Random CSeq REGISTER number - */ - function f_TC_ISC_SCCAS_CPT_INV_07(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); - // Registration - 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 - - // Registration - f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); - f_SendINVITE( - m_sccas_invite( - vc_requestUri, - vc_callId, - p_cSeq_s, - vc_from, vc_to, vc_via_REG, - vc_contact, - -, -, -, - m_MBody_SDP(vc_sdp_local) - )); - tc_ack.start; - alt { - [] SIPP.receive(mw_Response_Base(c_statusLine200)) { - tc_ack.stop; - log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync - } - [] tc_ack.timeout { - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync - } - } - - // TODO Deregistration? - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_CPT_INV_07 - - /** - * @desc Verify that the SCC AS handles correctly the transfer of session with inactive speech media component. - * @param p_cSeq_s Random CSeq REGISTER number - */ - function f_TC_ISC_SCCAS_CPT_INV_08(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); - // Registration - 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 - - // Registration - f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); - f_SendINVITE( - m_sccas_invite( // TODO request active speech media component using CS bearer - vc_requestUri, - vc_callId, - p_cSeq_s, - vc_from, vc_to, vc_via_REG, - vc_contact, - -, -, -, - m_MBody_SDP(vc_sdp_local) - )); - tc_ack.start; - alt { - [] SIPP.receive(mw_INVITE_Request(?,vc_requestUri)) { - tc_ack.stop; - log("*** " & __SCOPE__ & ": PASS: forwarded INVITE message was received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync - } - [] tc_ack.timeout { - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync - } - } - - // TODO Deregistration? - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_CPT_INV_08 - - /** - * @desc Verify that the SCC AS handles correctly the transfer of originating session in alerting phase. - * @param p_cSeq_s Random CSeq REGISTER number - */ - function f_TC_ISC_SCCAS_CPT_INV_09(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); - // Registration - 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 - - // Registration - f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); - f_sendResponse( - m_Response_2xx_Base( - c_statusLine200, - vc_callId, - p_cSeq_s, - vc_from, - vc_to, - vc_via_REG - )); - tc_ack.start; - alt { - [] SIPP.receive(mw_Response_Base(c_statusLine180)) { - tc_ack.stop; - log("*** " & __SCOPE__ & ": PASS: Respoonse 180 was received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync - } - [] tc_ack.timeout { - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync - } - } - - // TODO Deregistration? - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_CPT_INV_09 - - /** - * @desc Verify that the SCC AS handles correctly the transfer of terminating session in alerting phase. - * @param p_cSeq_s Random CSeq REGISTER number - */ - function f_TC_ISC_SCCAS_CPT_INV_10(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); - // Registration - 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 - - // Registration - f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); - f_sendResponse( - m_Response_2xx_Base( - c_statusLine200, - vc_callId, - p_cSeq_s, - vc_from, - vc_to, - vc_via_REG - )); - tc_ack.start; - alt { - [] SIPP.receive(mw_Response_Base(c_statusLine183)) { - tc_ack.stop; - log("*** " & __SCOPE__ & ": PASS: Respoonse 183 was received ***"); - f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync - } - [] tc_ack.timeout { - f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync - } - } - - // TODO Deregistration? - f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync - - } // End of function f_TC_ISC_SCCAS_CPT_INV_10 - - } // End of group Group_12_3 - - group helpers { - - function f_sendRegistrationAndAwait200Ok( - in CSeq p_cSeq_s, - in template (omit) REGISTER_Request p_register, - template (present) Response p_response - ) runs on ImsComponent { - f_setHeaders_REGISTER(p_cSeq_s); - f_SendREGISTER(p_register); - tc_ack.start; - alt { - [] SIPP.receive(p_response) { - tc_ack.stop; - } - [] tc_ack.timeout { - f_setVerdict(e_timeout); - } - } - - } // End of function f_sendRegistrationAndAwait200Ok - - /** - * @desc function send OPTIONS message - * @param p_request template of the message to be sent - */ - function f_SendOPTIONS( - template(value) OPTIONS_Request p_request - ) runs on SipComponent { - SIPP.send(p_request) to vc_sent_label; - } - - } // End of group helpers - +/* + * @author TTF T016 + * @version $Id$ + * @desc This module provides the TCfunctions used by the test component + * for SCCAS tests. + */ +module AtsSccas_TCFunctions { + + // XSD support + import from XSD all; + + // LibCommon + import from LibCommon_Sync all; + import from LibCommon_VerdictControl all; + import from LibCommon_DataStrings all; + + // LibSip + import from LibSip_SIPTypesAndValues all; + import from LibSip_SDPTypes all; + import from LibSip_Templates all; + import from LibSip_Steps all; + import from LibSip_Interface all; + import from LibSip_PIXITS all; + + // LibIms + import from LibIms_Templates all; + import from LibIms_Steps all; + import from LibIms_SIPTypesAndValues all; + import from LibIms_Interface all; + + // AtsSccas + // import from AtsSccas_TestSystem all; + import from AtsSccas_Templates all; + import from AtsSccas_Steps all; + import from AtsSccas_PICS all; + import from AtsSccas_PIXITS all; + import from AtsSccas_TestConfiguration all; + + group Group_6_3 { + + group TP_6_3_1_General { + + /** + * @desc Verify that the SCCAS successfully obtain/processes 3pty registration information + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_RSC_REG_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); + action("Please register UE"); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + f_setHeaders_REGISTER(v_cSeq_s); + f_SendREGISTER( + 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 + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_sccas_Response_2xxonREGISTER(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_RSC_REG_01 + + /** + * @desc Verify that the SCCAS successfully obtain/processes de-registration information (Expires=0) + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_RSC_REG_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); + action("Please register UE"); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + f_setHeaders_REGISTER(v_cSeq_s); + f_SendREGISTER( + m_sccas_register( + vc_requestUri, + vc_callId, + vc_cSeq, + vc_from, + vc_to, + vc_via_REG, + vc_contact, + omit, + PX_IMS_SUT_SCSCF_IPADDR, // TODO To be refined during validation + PX_IMS_SUT_SCSCF_PORT, // TODO To be refined during validation + "0" // Expired + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_sccas_Response_2xxonREGISTER(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_RSC_REG_02 + + } // End of group TP_6_3_1_General + + group TP_6_3_2_Triggers_To_ATCF { + + /** + * @desc Verify that the SCCAS successfully obtain/processes SRVCC information + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_RSC_REG_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); + action("Please register UE"); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + f_setHeaders_REGISTER(v_cSeq_s); + f_SendREGISTER( + 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_sccas_featureCaps({m_fcValue("g3gppAtcfFeatureCapabilityIndicator")}), + m_contentType(c_sdpApplication), // TODO To be refined during validation + m_MBody_SDP(vc_sdp_local) // TODO To be refined during validation + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_sccas_Response_2xxonREGISTER(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_RSC_REG_03 + + } // End of group TP_6_3_2_Triggers_To_ATCF + + group TP_6_3_3_SRVCC_Information_To_ATCF { + + /** + * @desc Verify that the SCCAS successfully sends MESSAGE providing PS to CS SRVCC information + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_RSC_REG_04_ueims(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); + action("Please register UE"); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + f_setHeaders_REGISTER(v_cSeq_s); + f_SendREGISTER( + 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_sccas_featureCaps( // TS 124 237 Clause C.6 Definition of feature-capability indicator g.3gpp.atcfmgmt-uri + { + m_fcValue( + "g-3gpp-atcf-mgmt-uri-in-path", + { + {"sip-uri", { tokenOrHost := PX_ACTF_MGMT_URI }} + }) + }), + m_contentType(c_sdpApplication), // TODO To be refined during validation + m_MBody_SDP(vc_sdp_local) // TODO To be refined during validation + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_sccas_Response_2xxonREGISTER( + vc_callId, + vc_cSeq, + vc_from, + vc_to, + vc_via_REG, + vc_contact, + mw_pChargingVector(-, { tokenOrHost := "orig-ioi" }), // TODO To be refined during validation + mw_PAssertedID( + mw_PAssertedIDValue(PX_SCCAS_URI) + ) + )) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_RSC_REG_04_ueims + + function f_TC_ISC_SCCAS_RSC_REG_04_atcf(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); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Message + LibIms_Steps.f_setHeadersMESSAGE(v_cSeq_s, vc_from.addressField.addrSpecUnion, vc_to.addressField.addrSpecUnion); + f_awaitingMESSAGE( + mw_sccas_MESSAGE_Request( + -, -, + mw_pChargingVector(-, { tokenOrHost := "orig-ioi" }), // TODO To be refined during validation + -, + m_contentType("application/vnd.3gpp.SRVCC-info+xml"), // TODO To be refined during validation + ? // TODO To be refined during validation + ) + ); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync + + // Answer to the MESSAGE + f_send200OK(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + } // End of function f_TC_ISC_SCCAS_RSC_REG_04_atcf + + } // End of group TP_6_3_3_SRVCC_Information_To_ATCF + + group TP_6_3_4_Trigger_SRVCC_To_MSC { + + /** + * @desc Verify that the SCCAS successfully get CS to PS SRVCC information + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_RSC_REG_05_ueims(in CSeq p_cSeq_s) + runs on ImsComponent { + // Local variables + var CSeq v_cSeq_s := p_cSeq_s; + var Contact v_contact; + + // Preambule + f_init_userprofile(c_userProfile_UE1atSUThome); + f_initSipUrl(c_serviceProfile_EMERGENCY); + f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1); + action("Please register UE"); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + f_setHeaders_REGISTER(v_cSeq_s); + v_contact := valueof(vc_contact); + v_contact.contactBody.contactAddresses[0].contactParams := { // TODO To be refined during validation + { + "g.3gpp.atcf-mgmt-uri", + {tokenOrHost := PX_ACTF_MGMT_URI} + }, + { + "g.3gpp.path", + {tokenOrHost := PX_ACTF_URI} + } + }; + f_SendREGISTER( + m_sccas_register( + vc_requestUri, + vc_callId, + vc_cSeq, + vc_from, + vc_to, + vc_via_REG, + v_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_sccas_featureCaps( // TS 124 237 Clause C.6 Definition of feature-capability indicator g.3gpp.atcfmgmt-uri + { + m_fcValue( + "g-3gpp-atcf-mgmt-uri\", + { + {"sip-uri", { tokenOrHost := PX_ACTF_MGMT_URI }} + }) + })*/, // TODO To be refined during validation + m_contentType(c_sdpApplication), // TODO To be refined during validation + m_MBody_SDP(vc_sdp_local) // TODO To be refined during validation + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_sccas_Response_2xxonREGISTER(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_RSC_REG_05_ueims + + function f_TC_ISC_SCCAS_RSC_REG_05_msc(in CSeq p_cSeq_s) + runs on ImsComponent { + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync + + // deregistration + + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // end function f_TC_ISC_SCCAS_RSC_REG_05_msc + + } // End of group TP_6_3_4_Trigger_SRVCC_To_MSC + + group TP_6_3_5_Providing_SRVCC_To_MSC { + + /** + * @desc Verify that the SCCAS successfully provide CS to PS SRVCC information + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_RSC_REG_06_ueims(in CSeq p_cSeq_s) + runs on ImsComponent { + // Local variables + var CSeq v_cSeq_s := p_cSeq_s; + var Contact v_contact; + + // Preambule + f_init_userprofile(c_userProfile_UE1atSUThome); + f_initSipUrl(c_serviceProfile_EMERGENCY); + f_init_interfaceprofile(c_interfaceProfile_IMS_SUT_PCSCF1); + action("Please register UE"); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Registration + f_setHeaders_REGISTER(v_cSeq_s); + v_contact := valueof(vc_contact); + v_contact.contactBody.contactAddresses[0].contactParams := { // TODO To be refined during validation + { + "g.3gpp.icsi-ref", + {tokenOrHost := PX_ICSI_URI} + } + }; + f_SendREGISTER( + m_sccas_register( + vc_requestUri, + vc_callId, + vc_cSeq, + vc_from, + vc_to, + vc_via_REG, + v_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_sccas_featureCaps( // TS 124 237 Clause C.6 Definition of feature-capability indicator g.3gpp.atcfmgmt-uri + { + m_fcValue( + "g-3gpp-atcf-mgmt-uri-in-path", + { + {"sip-uri", { tokenOrHost := PX_ACTF_MGMT_URI }} + }) + })*/, // TODO To be refined during validation + m_contentType(c_sdpApplication), // TODO To be refined during validation + m_MBody_SDP(vc_sdp_local) // TODO To be refined during validation + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_sccas_Response_2xxonREGISTER( + vc_callId, + vc_cSeq, + vc_from, + vc_to, + vc_via_REG, + vc_contact, + mw_pChargingVector(-, { tokenOrHost := "orig-ioi" }), // TODO To be refined during validation + mw_PAssertedID( + mw_PAssertedIDValue(PX_SCCAS_URI) + ), // TODO To be refined during validation + mw_acceptContact( + { // TODO To be refined during validation + { + "g.3gpp.path-media", + {tokenOrHost := PX_ICSI_URI} + } + } + ) + )) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_RSC_REG_06_ueims + + function f_TC_ISC_SCCAS_RSC_REG_06_msc(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); + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync + + // Message + LibIms_Steps.f_setHeadersMESSAGE(v_cSeq_s, vc_from.addressField.addrSpecUnion, vc_to.addressField.addrSpecUnion); + f_awaitingMESSAGE( + mw_sccas_MESSAGE_Request( + -, -, + mw_pChargingVector(-, { tokenOrHost := "orig-ioi" }), // TODO To be refined during validation + -, + m_contentType("application/vnd.3gpp.SRVCC-info+xml"), // TODO To be refined during validation + ? // TODO To be refined during validation + ) + ); + f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync + + // Answer to the MESSAGE + f_send200OK(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + } // end function f_TC_ISC_SCCAS_RSC_REG_06_msc + + } // End of group TP_6_3_5_Providing_SRVCC_To_MSC + + } // End of group Group_6_3 + + group Group_6A_4 { + + group TP_6A_4_2_SIP_INVITE_request { + + /** + * @desc Verify that the SCCAS send INVITE for anchored user populated with FeatureCaps header + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_GEN_INV_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); + // Registration + 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 + + // Registration + f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); + f_SendINVITE( + m_sccas_invite( + vc_requestUri, + vc_callId, + p_cSeq_s, + vc_from, vc_to, vc_via_REG, + vc_contact, + -, -, -, + m_MBody_SDP(vc_sdp_local) + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_sccas_Response_2xxonINVITE(vc_callId, vc_cSeq, vc_from, vc_to, vc_via_REG, vc_contact)) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: 200 OK message was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_GEN_INV_01 + + } // End of group TP_6A_4_2_SIP_INVITE_request + + } // End of group Group_6A_4 + + group Group_7_3 { + } // End of group Group_7_3 + + group Group_8_3 { + } // End of group Group_8_3 + + group Group_9_3 { + + function f_TC_IISC_SCCAS_CPT_INV_01_ueims(in CSeq p_cSeq_s) + runs on ImsComponent { + + // TODO: set correct service profiles + 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, //template(omit) Supported p_supported := omit, + omit //template(value) MessageBody p_mb + ) + + ); + f_awaitingResponse(mw_Response_Base(c_statusLine200, vc_callIdReg, p_cSeq_s)); + + + } + + } // End of group Group_9_3 + + group Group_10_3 { + } // End of group Group_10_3 + + group Group_11_3 { + + /** + * @desc Verify that the SCC AS successfully processes an INVITE that includes an active speech media component using CS bearer. + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_CON_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); + // Registration + 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 + + // Registration + f_IncCSeq(v_cSeq_s); LibIms_Steps.f_setHeadersINVITE(v_cSeq_s, f_initSipUrl(c_serviceProfile_EMERGENCY), f_initSipUrl(c_userProfile_UE1atSUThome)); + f_SendINVITE( + m_sccas_invite( // TODO request active speech media component using CS bearer + vc_requestUri, + vc_callId, + p_cSeq_s, + vc_from, vc_to, vc_via_REG, + vc_contact, + -, -, -, + m_MBody_SDP(vc_sdp_local) + )); + tc_ack.start; + alt { + [] SIPP.receive(mw_INVITE_Request(?,vc_requestUri)) { + tc_ack.stop; + log("*** " & __SCOPE__ & ": PASS: forwarded INVITE message was received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // sync + } + [] tc_ack.timeout { + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); // sync + } + } + + // TODO Deregistration? + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync + + } // End of function f_TC_ISC_SCCAS_CON_RIN_01 + + /** + * @desc Verify that the SCC AS successfully processes an INVITE due to two STIs on the Target Access Leg. + * @param p_cSeq_s Random CSeq REGISTER number + */ + function f_TC_ISC_SCCAS_CON_RIN_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); + // Registration + 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} +