The Rhino VoLTE TAS uses a non-standard user document to support additional functionality beyond the MMTel supplementary services.
This user document has the service indicator Metaswitch-TAS-Services
.
This page details the schema for the Metaswitch-TAS-Services
document.
Document overview
The Metaswitch-TAS-Services
document stores non-standard subscriber service data for certain Rhino VoLTE TAS functionality.
The services that use this non-standard user document are described in:
Schema structure
The schema for the Metaswitch-TAS-Services
document is defined in several xsd
files.
There are two types of files that define the schema. These files establish the components such as elements and types that are either:
-
shared across the schema
-
specific for each service that is configured in the document
General schema files
The Metaswitch-TAS-Services
document defines elements and types that are shared across the Rhino VoLTE TAS’s services that require non-standard subscriber data.
These are defined in the following files:
-
metaswitch-tas-services.xsd
-
basic-settings.xsd
-
additional-attributes.xsd
metaswitch-tas-services.xsd
The metaswitch-tas-services.xsd
file serves as the basis of the schema definition.
It includes within its definition the xsd
files for the basic-settings.xsd
and each of the service specific schema definitions.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:ss="http://uri.etsi.org/ngn/params/xml/simservs/xcap"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:cp="urn:ietf:params:xml:ns:common-policy"
xmlns:ocp="urn:oma:xml:xdm:common-policy"
xmlns:mt="http://metaswitch.com/XMLSchema/tas"
targetNamespace="http://metaswitch.com/XMLSchema/tas"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- the standardised schemas are in another namespace, so use xs:import -->
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../XCAP.xsd" />
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../operator-common-data.xsd" />
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../originating-identity-presentation.xsd" />
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../terminating-identity-presentation.xsd" />
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../communication-diversion.xsd" />
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../communication-waiting.xsd" />
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../communication-barring.xsd" />
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../operator-originating-identity-presentation.xsd" />
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../operator-terminating-identity-presentation.xsd" />
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../operator-malicious-communication-identification.xsd" />
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../operator-communication-diversion.xsd" />
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../operator-communication-waiting.xsd" />
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../operator-communication-hold.xsd" />
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../operator-communication-barring.xsd" />
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../operator-completion-of-communication.xsd" />
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../operator-message-waiting-indication.xsd" />
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../operator-conference.xsd" />
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../operator-advice-of-charge.xsd" />
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../operator-explicit-communication-transfer.xsd" />
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../operator-customized-alerting-tone.xsd" />
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../operator-flexible-alerting.xsd" />
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../flexible-alerting.xsd" />
<!-- tas-types is the same namespace, so use xs:include -->
<xs:include schemaLocation="basic-settings.xsd" />
<xs:include schemaLocation="location-based-dialling.xsd" />
<xs:include schemaLocation="forward-to-voicemail.xsd" />
<xs:include schemaLocation="companion-device.xsd" />
<xs:element name="metaswitch-services" type="mt:metaswitch-services-type"/>
<xs:complexType name="metaswitch-services-type">
<xs:sequence>
<xs:element name="complete-basic-settings" type="mt:completeBasicSettingsType" minOccurs="0"/>
<xs:element name="complete-location-based-dialling" type="mt:completeLocationBasedDiallingType" minOccurs="0"/>
<xs:element name="complete-forward-to-voicemail" type="mt:completeForwardToVoicemailType" minOccurs="0"/>
<xs:element name="complete-companion-device" type="mt:completeCompanionDeviceType" minOccurs="0"/>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
basic-settings.xsd
The basic-settings.xsd
file includes the non-standard additional-attributes.xsd
file.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:ss="http://uri.etsi.org/ngn/params/xml/simservs/xcap"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:mt="http://metaswitch.com/XMLSchema/tas"
targetNamespace="http://metaswitch.com/XMLSchema/tas"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- the standardised schemas are in another namespace, so use xs:import -->
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../XCAP.xsd" />
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../operator-common-data.xsd" />
<xs:include schemaLocation="additional-attributes.xsd" />
<xs:complexType name="completeBasicSettingsType">
<xs:sequence>
<xs:element name="basic-settings" type="mt:basicSettingsType" minOccurs="0"/>
<xs:element name="operator-basic-settings" type="mt:operatorBasicSettingsType" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="basicSettingsType">
<xs:complexContent>
<xs:extension base="ss:simservType">
<xs:sequence>
<xs:element ref="mt:additional-attributes" minOccurs="0"/>
<xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="operatorBasicSettingsType">
<xs:complexContent>
<xs:extension base="ss:operatorServiceConfigType">
<xs:sequence>
<xs:element ref="mt:additional-attributes" minOccurs="0"/>
<xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
additional-attributes.xsd
The additional-attributes.xsd
file defines a key-value pair type to store additional attributes.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:ss="http://uri.etsi.org/ngn/params/xml/simservs/xcap"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:mt="http://metaswitch.com/XMLSchema/tas"
targetNamespace="http://metaswitch.com/XMLSchema/tas"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="additional-attributes">
<xs:complexType>
<xs:sequence>
<xs:element name="attribute" type="mt:keyValuePairType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="keyValuePairType">
<xs:sequence>
<xs:element name="key" type="xs:string"/>
<xs:element name="value" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
Service specific schema files
companion-device.xsd
See Companion device subscriber data for more information on managing the subscriber data for the companion device service.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:ss="http://uri.etsi.org/ngn/params/xml/simservs/xcap"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:mt="http://metaswitch.com/XMLSchema/tas"
targetNamespace="http://metaswitch.com/XMLSchema/tas"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- the standardised schemas are in another namespace, so use xs:import -->
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../XCAP.xsd"/>
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap"
schemaLocation="../operator-common-data.xsd"/>
<xs:include schemaLocation="additional-attributes.xsd"/>
<xs:complexType name="completeCompanionDeviceType">
<xs:sequence>
<xs:element name="companion-device" type="mt:companionDeviceType" minOccurs="0"/>
<xs:element name="operator-companion-device" type="mt:operatorCompanionDeviceType" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="companionDeviceType">
<xs:complexContent>
<xs:extension base="ss:simservType">
<xs:sequence>
<xs:element ref="mt:additional-attributes" minOccurs="0"/>
<xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="operatorCompanionDeviceType">
<xs:complexContent>
<xs:extension base="ss:operatorServiceConfigType">
<xs:sequence>
<!-- The shared identity of the subscriber, this maybe a SIP or TEL URI, or both -->
<xs:element name="shared-identity-sip" type="xs:anyURI"/>
<xs:element name="shared-identity-tel" type="xs:anyURI"/>
<!-- Whether or not to hide/block undisclosed numbers -->
<xs:element name="hide-companion-identity" type="xs:boolean" minOccurs="0"/>
<xs:element name="devices" type="mt:devicesType"/>
<!-- Add additional-attributes to keep consistent with other metaswitch xml schema types -->
<xs:element ref="mt:additional-attributes" minOccurs="0"/>
<xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="devicesType">
<xs:sequence>
<xs:element name="device" minOccurs="0" maxOccurs="unbounded" type="mt:deviceType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="deviceType">
<xs:complexContent>
<xs:extension base="ss:simservType">
<xs:sequence>
<xs:element name="model" type="xs:string"/>
<xs:element name="radio-access" type="mt:radioAccessType"/>
<xs:element name="impi" type="xs:string" minOccurs="0" />
<xs:element name="imsi" type="xs:string" minOccurs="0" />
<xs:element name="imei" type="xs:string" minOccurs="0" />
<xs:element ref="mt:additional-attributes" minOccurs="0"/>
<xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="radioAccessType">
<xs:all>
<xs:element name="PS" type="mt:networkTypePS"/>
<xs:element name="CS" type="mt:networkTypeCS"/>
</xs:all>
</xs:complexType>
<xs:complexType name="networkType">
<xs:sequence>
<xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="networkTypePS">
<xs:complexContent>
<xs:extension base="mt:networkType"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="networkTypeCS">
<xs:complexContent>
<xs:extension base="mt:networkType">
<xs:attribute name="msisdn" type="xs:string" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
location-based-dialling.xsd
See Location based dialing subscriber data for more information on managing the subscriber data for the location based dialing service.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:ss="http://uri.etsi.org/ngn/params/xml/simservs/xcap"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:mt="http://metaswitch.com/XMLSchema/tas"
targetNamespace="http://metaswitch.com/XMLSchema/tas"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- the standardised schemas are in another namespace, so use xs:import -->
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../XCAP.xsd"/>
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap"
schemaLocation="../operator-common-data.xsd"/>
<xs:include schemaLocation="additional-attributes.xsd"/>
<xs:complexType name="completeCompanionDeviceType">
<xs:sequence>
<xs:element name="companion-device" type="mt:companionDeviceType" minOccurs="0"/>
<xs:element name="operator-companion-device" type="mt:operatorCompanionDeviceType" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="companionDeviceType">
<xs:complexContent>
<xs:extension base="ss:simservType">
<xs:sequence>
<xs:element ref="mt:additional-attributes" minOccurs="0"/>
<xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="operatorCompanionDeviceType">
<xs:complexContent>
<xs:extension base="ss:operatorServiceConfigType">
<xs:sequence>
<!-- The shared identity of the subscriber, this maybe a SIP or TEL URI, or both -->
<xs:element name="shared-identity-sip" type="xs:anyURI"/>
<xs:element name="shared-identity-tel" type="xs:anyURI"/>
<!-- Whether or not to hide/block undisclosed numbers -->
<xs:element name="hide-companion-identity" type="xs:boolean" minOccurs="0"/>
<xs:element name="devices" type="mt:devicesType"/>
<!-- Add additional-attributes to keep consistent with other metaswitch xml schema types -->
<xs:element ref="mt:additional-attributes" minOccurs="0"/>
<xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="devicesType">
<xs:sequence>
<xs:element name="device" minOccurs="0" maxOccurs="unbounded" type="mt:deviceType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="deviceType">
<xs:complexContent>
<xs:extension base="ss:simservType">
<xs:sequence>
<xs:element name="model" type="xs:string"/>
<xs:element name="radio-access" type="mt:radioAccessType"/>
<xs:element name="impi" type="xs:string" minOccurs="0" />
<xs:element name="imsi" type="xs:string" minOccurs="0" />
<xs:element name="imei" type="xs:string" minOccurs="0" />
<xs:element ref="mt:additional-attributes" minOccurs="0"/>
<xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="radioAccessType">
<xs:all>
<xs:element name="PS" type="mt:networkTypePS"/>
<xs:element name="CS" type="mt:networkTypeCS"/>
</xs:all>
</xs:complexType>
<xs:complexType name="networkType">
<xs:sequence>
<xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="networkTypePS">
<xs:complexContent>
<xs:extension base="mt:networkType"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="networkTypeCS">
<xs:complexContent>
<xs:extension base="mt:networkType">
<xs:attribute name="msisdn" type="xs:string" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
forward-to-voicemail.xsd
See Forward to voicemail subscriber data for more information on managing the subscriber data for the forward to voicemail service.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:ss="http://uri.etsi.org/ngn/params/xml/simservs/xcap"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:mt="http://metaswitch.com/XMLSchema/tas"
targetNamespace="http://metaswitch.com/XMLSchema/tas"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- the standardised schemas are in another namespace, so use xs:import -->
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../XCAP.xsd" />
<xs:import namespace="http://uri.etsi.org/ngn/params/xml/simservs/xcap" schemaLocation="../operator-common-data.xsd" />
<xs:include schemaLocation="additional-attributes.xsd" />
<xs:complexType name="completeForwardToVoicemailType">
<xs:sequence>
<xs:element name="forward-to-voicemail" type="mt:forwardToVoicemailType" minOccurs="0"/>
<xs:element name="operator-forward-to-voicemail" type="mt:operatorForwardToVoicemailType" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="forwardToVoicemailType">
<xs:complexContent>
<xs:extension base="ss:simservType">
<xs:sequence>
<xs:element name="voicemail-server" type="xs:string" minOccurs="0"/>
<xs:element ref="mt:additional-attributes" minOccurs="0"/>
<xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="operatorForwardToVoicemailType">
<xs:complexContent>
<xs:extension base="ss:operatorServiceConfigType">
<xs:sequence>
<xs:element name="allow-subscriber-update" type="xs:boolean" default="false"/>
<xs:element ref="mt:additional-attributes" minOccurs="0"/>
<xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>