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.

metaswitch-tas-services.xsd
<?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.

basic-settings.xsd
<?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.

additional-attributes.xsd
<?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.

companion-device.xsd
<?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.

location-based-dialling.xsd
<?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.

forward-to-voicemail.xsd
<?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>
Previous page Next page
Rhino VoLTE TAS Version 4.0.0