Overview

The default option for Registrar Data Storage uses Transparent Data in the HSS through the Diameter Sh interface. Documents stored in the HSS conform to an OpenCloud defined XML schema. During the Sentinel VoLTE installation the user is asked to choose between using an HSS or a Cassandra Database as the data repository technology.

How it works

The HSS storage system creates, updates and removes documents from the HSS as appropriate based on SIP User Agent registration life cycle, catering for cases such as simultaneous registration of shared IMS public identities. Documents are created/updated/removed using an access of an IMS Public Identity and Service Indication of opencloud-3rd-party-registrar.

During INVITE processing, the IMSIDLookup feature uses the Served User’s IMS Public Identity and Service Indication of opencloud-3rd-party-registrar as the Diameter Sh Access Key.

It then populates Session State according to documents found in HSS storage. Both the HSS storage system, and the IMSIDLookup use the Sh Cache Microservice RA to interface to the HSS.

Data Schema

The schema used by OpenCloud for Third Party Registration is shown below.

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

<xs:schema targetNamespace="http://opencloud.com/sentinel/registrar/xml"
           xmlns:ss="http://opencloud.com/sentinel/registrar/xml"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           version="1.0"
        >
    <xs:element name="publicId">
        <!--
        Use an anonymous type so xjc will add an XmlRootElement to the generated PublicId class.
        -->
        <xs:complexType>
            <xs:sequence>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="registration"   type="ss:RegistrationData"/>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="reverseMapping" type="ss:ReverseMapping"/>
            </xs:sequence>
            <xs:attribute default="false" name="default" type="xs:boolean" use="optional"/>
            <xs:attribute name="id" type="xs:string" use="required"/>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="EsrvccData">
        <xs:sequence>
            <xs:element name="cmsisdn" type="xs:string"/>
            <xs:element name="gruu" type="xs:string"/>
            <xs:element name="tempGruu" type="xs:string"/>
            <xs:element name="stnSr" type="xs:string"/>
            <xs:element name="isUeSrvccCapable" default="false" type="xs:boolean"/>
            <xs:element name="currentAtuSti" type="xs:string"/>
            <xs:element name="atcfMgmtUri" type="xs:string"/>
            <xs:element name="atcfPathUri" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ReverseMapping">
        <xs:sequence>
            <xs:element maxOccurs="1" minOccurs="0" name="validityTime" type="ss:ValidityTime"/>
        </xs:sequence>
        <xs:attribute name="callId" type="xs:string" use="required"/>
        <xs:attribute name="defaultPublicId" type="xs:string" use="required"/>
    </xs:complexType>
    <xs:complexType name="Extension">
        <xs:sequence>
            <xs:element maxOccurs="1" minOccurs="1" name="key" type="xs:string"/>
            <xs:element maxOccurs="1" minOccurs="1" name="value" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="Extensions">
        <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="extension" type="ss:Extension"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="RegistrationData">
        <xs:sequence>
            <xs:element name="privateId" type="xs:string"/>
            <xs:element maxOccurs="unbounded" name="publicIds" type="xs:string"/>
            <xs:element maxOccurs="unbounded" name="contact" type="xs:string"/>
            <xs:element name="validityTime" type="ss:ValidityTime"/>
            <xs:element name="visitedNetworkId" type="xs:string"/>
            <xs:element maxOccurs="unbounded" name="pAccessNetworkInfo" type="xs:string"/>
            <xs:element maxOccurs="1" minOccurs="0" name="esrvcc" type="ss:EsrvccData"/>
            <xs:element maxOccurs="1" minOccurs="0" name="extensions" type="ss:Extensions"/>
        </xs:sequence>
        <xs:attribute name="callId" type="xs:string" use="required"/>
    </xs:complexType>
    <xs:complexType name="ValidityTime">
        <xs:sequence>
            <xs:element name="created" type="xs:dateTime"/>
            <xs:element name="expires" type="xs:duration"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>

Configuration

The Diameter Sh interface is configured during the VoLTE installation.

Statistics

The statistics are updated during the processing of the feature.

Parameter …​ incremented if …​

failedToAddRegistrationData

Could not add a registration.

failedToAddReverseMappings

Could not decode the registration data.

failedToRemoveRegistrationData

Could not remove the registration data.

failedToRemoveReverseMappings

Could not remove the decoder for the registration data.

noDataToRemoveForDefaultPubicIdAndCallId

No registration found under the specified callid.

noDataToRemoveForDefaultPublicId

No registration foung undet the specified public id.

noMappingToRemoveForPubicIdAndCallId

Could not find any mapping associated to the specified callid.

noMappingToRemoveForPublicId

Could not find any mapping associated to the specified public id.

For Third Party Registration, the statistics are tracked by the sentinel.registrar SBB and can be found using the parameter set SLEE-Usage.Services.ServiceID[name=sentinel.volte.sip,vendor=OpenCloud,version=4.0.0].SbbID[name=registrar.subscribers.hsscache,vendor=OpenCloud,version=4.0.0]

Previous page Next page
Sentinel VoLTE Version 4.0.0