6 Supplementary services XCAP application usage

24.6233GPPExtensible Markup Language (XML) Configuration Access Protocol (XCAP) over the Ut interface for Manipulating Supplementary ServicesRelease 17TS

6.1 Structure of the XML document

XCAP provides for the existence of application usages that define the conventions and constraints related to the manipulation of XML documents in an XCAP server. The present document defines a supplementary services XCAP application usage.

NOTE 1: Further releases can extend this application usage when deemed practical.

The present document follows a modular approach, as depicted in figure 4, that provides for the existence of a simservs XML document that contains the data associated to one or more supplementary services. The simservs XML document is composed of a common part, defined by the present document, and a number of XML fragments each corresponding to one or more supplementary services.

NOTE 2: This modular approach has significant advantages. Particularly, it is versatile enough to allow any number of configurations. For example, in one configuration, an XCAP server might be managing a given server. In this case, the simservs XML document will contain one subtree per service. In another configuration, each service is managed in its own XCAP server, case in which the XML document in each XCAP server will contain the common parts and a single XML subtree that manages the service. Yet in a third configuration the XCAP server stores several XML documents, each document managing one or more services.

The XML schema for the simservs XML document, including the common parts, is specified in subclause 6.3 of the present document. This XML schema allows for each of the individual XML schemas pertaining to a particular service to import the common parts XML schema. Each XML fragment affects the settings of one or more supplementary services. The XML schema of each of the supplementary services is specified in its own specification. A template for this XML schema is provided in subclause 6.4 of the present document.

Figure 4: Structure of a supplementary services XML document

The simservs XML document starts with a <simservs> root XML element that can contain one or more child elements pertaining to supplementary services. Each of these service elements can contain an "active" attribute that indicates whether the service is activated or not. When the "active" attribute is absent on a service element, it indicates that the service is activated. Elements and attributes from different namespaces can be present as well. Services may also include capability elements that are read-only. These elements indicate which capabilities the network has provisioned for a user.

6.2 XCAP application usage

XCAP requires application usages to fulfil a number of steps in the definition of such application usage. The reminder of this clause specifies the required definitions of the supplementary services XCAP Application Usage.

Application Unique ID (AUID): Each XCAP application usage is associated with a unique name called the Application Unique ID (AUID). The AUID defined by this application usage falls into the vendor‑proprietary namespace of XCAP AUID, where ETSI is considered a vendor.

The AUID allocated to the supplementary services XCAP application usage is:

simservs.ngn.etsi.org

XML schema: Implementations in compliance with the present document shall implement the XML schema that includes the XML Schema defined in clause 6.3. Additionally, each supplementary service (or group of them) is modelled with a XML fragment that is validated according to a specific XML schema. The XML schema that affects the settings of the related service is specified in the specification of the given supplementary service. Subclause 6.4 provides a template that shall be included in XML Schema that also includes the XML Schema defined in subclause 6.3 along with inclusion of XML schema defined by each of the supplementary services that implement XML schemas for data manipulation. Additionally the schema in subclause 6.3 contains the specification of a number of common service specific elements and types, the semantics and applicability of these elements is described in the service specifications that use them.

Default document namespace: XCAP requires application usages to declare the default document namespace specified in IETF RFC 4825 [8]. The default document namespace of the supplementary services XCAP application usage is:

http://uri.etsi.org/ngn/params/xml/simservs/xcap

MIME type: The MIME type of supplementary services XML documents is:

application/vnd.etsi.simservs+xml

Validation constraints: The present document does not specify any additional constraint beyond those defined by XCAP RFC 4825 [8]. Note, however, that each of the supplementary services may specify additional constraints on each of the XML subdocuments.

Data semantics: The XML schema does not accept URIs that could be expressed as a relative URI reference causing a resolution problem. However, each of the supplementary services should consider if relative URIs are allowed in the subdocument tree, and in that case, they should indicate how to resolve relative URI references. In the absence of further indications, relative URI references should be resolved using the document URI as the base of the relative URI reference.

Naming conventions: Supplementary services XML documents are stored under the user’s Home Directory (which is located under the "users" sub‑tree). The filename in the document selector is:

simservs.xml

Resource interdependencies: The present document does not specify additional resource interdependency beyond those specified in the XML schema and beyond any resource interdependency that may be specified in each of supplementary services.

Authorization policies: The following authorization policy applies to the owner of simservs XML document:

a) authorised to retrieve any part of the document;

b) unauthorised to create:

1) new child element(s) to the <simservs> root element; and

2) new attribute(s) for a child element of the the <simservs> root element;

c) unauthorised to remove:

1) existing child element(s) from the <simservs> root element; and

2) existing attribute(s) from a child element of the <simservs> root element;

d) unauthorised to replace or remove:

1) read-only child element(s) of the <simservs> root element, their attributes and their content;

e) unauthorised to replace:

1) descendant element(s) of the <simservs> root element that are not allowed to be modified by the service capability fragments as described in subclause 5.2.3.4; and

2) attribute(s) within descendant element(s) of the the <simservs> root element that are not allowed to be modified by the service capability fragments as described in subclause 5.2.3.4; and

f) authorized to replace element(s) and attribute(s) other than those specified in bullet d).

Users other than the owner of the simservs XML document are unauthorised to perform any operation on the document.

Unauthorized manipulation attempts on the simservs XML document are rejected with an HTTP 409 (Conflict) response as defined in IETF RFC 4825 [8].

NOTE 1: It is allowed to replace the simservs XML document or its <simservs> root element containing read-only child elements provided that the read-only child elements, including their content, are preserved.

NOTE 2: Any child elements of the <simservs> root element of the simservs XML document unknown to the XCAP client can be potentially read-only.

6.3 XML schema

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema targetNamespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap"

xmlns:ss="http://uri.etsi.org/ngn/params/xml/simservs/xcap"

xmlns:xs="http://www.w3.org/2001/XMLSchema"

elementFormDefault="qualified"

attributeFormDefault="unqualified">

<!– The element "simservs" maps to the Common Parts of a supplementary services document –>

<xs:element name="simservs">

<xs:annotation>

<xs:documentation>XML Schema for data manipulation of Supplementary

Services

</xs:documentation>

</xs:annotation>

<xs:complexType>

<xs:sequence>

<xs:element ref="ss:absService" minOccurs="0" maxOccurs="unbounded"/>

<xs:element name="extensions" minOccurs="0">

<xs:complexType>

<xs:sequence>

<xs:any namespace="##other" processContents="lax"

minOccurs="0" maxOccurs="unbounded"/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:sequence>

<xs:anyAttribute namespace="##any" processContents="lax"/>

</xs:complexType>

</xs:element>

<xs:element name="absService" abstract="true" type="ss:simservType"/>

<xs:complexType name="simservType">

<xs:attribute name="active" type="xs:boolean"

use="optional" default="true" />

<xs:anyAttribute namespace="##any" processContents="lax"/>

</xs:complexType>

<xs:complexType name="provisioned-type">

<xs:attribute name="provisioned" type="xs:boolean"

use="optional" default="true" />

<xs:anyAttribute namespace="##any" processContents="lax"/>

</xs:complexType>

<xs:complexType name="supported-media-type">

<xs:choice>

<xs:element name="all-media" type="ss:empty-element-type"/>

<xs:element name="no-media" type="ss:empty-element-type"/>

<xs:sequence maxOccurs="unbounded">

<xs:element name="media" type="ss:media-type"/>

</xs:sequence>

<xs:any namespace="##other" processContents="lax"/>

</xs:choice>

</xs:complexType>

<xs:complexType name="provisioned-target-type">

<xs:choice>

<xs:element name="any-target-type" type="ss:empty-element-type"/>

<xs:element name="telephony-type" type="ss:empty-element-type"/>

<xs:any namespace="##other" processContents="lax"/>

</xs:choice>

</xs:complexType>

<!– service specific IETF common policy condition elements–>

<xs:element name="anonymous" type="ss:empty-element-type"/>

<xs:element name="presence-status" type="ss:presence-status-activity-type"/>

<xs:element name="media" type="ss:media-type"/>

<xs:element name="communication-diverted" type="ss:empty-element-type"/>

<xs:element name="rule-deactivated" type="ss:empty-element-type"/>

<xs:element name="not-registered" type="ss:empty-element-type"/>

<xs:element name="busy" type="ss:empty-element-type"/>

<xs:element name="no-answer" type="ss:empty-element-type"/>

<xs:element name="not-reachable" type="ss:empty-element-type"/>

<xs:element name="roaming" type="ss:empty-element-type"/>

<xs:element name="international" type="ss:empty-element-type"/>

<xs:element name="international-exHC" type="ss:empty-element-type"/>

<xs:element name="request-name" type="ss:request-name-type"/>

<!– service specific IETF xcap-error elements–>

<xs:element name="password-required" type="ss:empty-element-type"/>

<xs:element name="incorrect-password" type="ss:empty-element-type"/>

<xs:element name="incorrect-xui-format" type="ss:empty-element-type"/>

<!– service specific type declarations –>

<xs:simpleType name="media-type" final="list restriction">

<xs:restriction base="xs:string"/>

</xs:simpleType>

<xs:simpleType name="presence-status-activity-type" final="list restriction">

<xs:restriction base="xs:string"/>

</xs:simpleType>

<xs:complexType name="empty-element-type"/>

<xs:simpleType name="request-name-type" final="list restriction">

<xs:restriction base="xs:string">

<xs:pattern value="([A-Z])*"/>

</xs:restriction>

</xs:simpleType>

</xs:schema>

6.4 Template for a supplementary service XML schema

Supplementary services that implement XCAP operations to manipulate the data associated to its service shall base their XML schema in the following template. Replace "ServiceName" with the name or acronym of the actual service.

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema targetNamespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" xmlns:ss="http://uri.etsi.org/ngn/params/xml/simservs/xcap" xmlns:xs="http://www.w3.org/2001/XMLSchema"

elementFormDefault="qualified"

attributeFormDefault="unqualified">

<xs:element name="ServiceName" substitutionGroup="ss:absService">

<xs:annotation>

<xs:documentation>Template of a

Supplementary Service XML Schema

</xs:documentation>

</xs:annotation>

<!– If the service needs to add children elements or attributes –>

<!– it can use the following complexType for such purpose –>

<xs:complexType>

<xs:complexContent>

<xs:extension base="ss:simservType">

<xs:sequence>

<!– service specific elements can be defined here –>

</xs:sequence>

<!– service specific attributes can be defined here –>

</xs:extension>

</xs:complexContent>

</xs:complexType>

</xs:element>

</xs:schema>

6.5 XML schema for password change

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ss="http://uri.etsi.org/ngn/params/xml/simservs/xcap" targetNamespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" elementFormDefault="qualified" attributeFormDefault="unqualified">

<xs:annotation>

<xs:documentation xml:lang="en">This schema defines elements for changing a password.

</xs:documentation>

</xs:annotation>

<xs:include schemaLocation="XCAP.xsd"/>

<xs:element name=" password-change" substitutionGroup="ss:absService">

<xs:complexType>

<xs:complexContent>

<xs:extension base="ss:simservType">

<xs:sequence>

<xs:element name="new-password" type="ss:password-type" minOccurs="0"/>

<xs:element name="anyExt" type="ss:anyExtType"/>

</xs:sequence>

</xs:extension>

</xs:complexContent>

</xs:complexType>

</xs:element>

<xs:simpleType name="password-type">

<xs:restriction base="xs:string">

<xs:pattern value="\d{4}"/>

</xs:restriction>

</xs:simpleType>

<xs:complexType name="anyExtType">

<xs:sequence>

<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>

</xs:sequence>

</xs:complexType>

</xs:schema>

Annex A (informative):
Void

Annex B (normative):
Connectivity Aspects when using XCAP