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=3.1.0].SbbID[name=registrar.subscribers.hsscache,vendor=OpenCloud,version=3.1.0]