SubscriberDataLookupFromHSSOld is responsible for reading data from the HSS and writing it into Sentinel session state variables fields.

Note: this feature is deprecated in favour of the new SubscriberDataLookupFromHSS feature. This deprecated feature is installed by default, but is not referenced in any feature execution script. The feature remains in case external developers used it as an extensibility mechanism. All out-of-the-box product features have been migrated away from this feature. In previous releases of the Sentinel VoLTE product, this feature was named SubscriberDataLookupFromHss, but it has now been renamed to SubscriberDataLookupFromHssOld. I.e. there is a new feature with the name SubscriberDataLookupFromHss.

The data it reads from the HSS must be accessed from TransparentUserData in the HSS.

The session state fields that are written to, and the locations in the XML documents retrieved from the HSS, are configurable.

Feature cheat sheet

B2BUA Instance SAS Support Originating / Terminating Point(s) in Session Plan Network Operator Data Subscriber Data Stateful or Stateless POJO Feature or SBB Feature Other notes

Both or either of MMTEL or SCC

No

Originating, Forwarding, and Terminating

SipAccess_SubscriberPreCreditCheck

Yes

Yes

Stateless

SBB

Prerequisite features

  • SubscriberDetermination

  • IMSIDLookup

Source Code

This feature’s source code is available in the Sentinel VoLTE SDK in the volte-hss-subscriber-data-lookup module pack. It can be viewed by using the create-module command in the SDK with that module pack, for example:

> create-module new-hss-module opencloud#volte-hss-subscriber-data-lookup#volte/3.0.0;3.0.0.0

This command will prompt you for information needed to create the new modules, once completed the original source for the feature can be found in the new modules.

The module-pack includes the following modules:

Module Name Description

volte-hss-subscriber-data-lookup

Contains the feature’s code.

volte-hss-subscriber-data-lookup-service-indication-profile

Contains the profile specification for configuring the service indications the feature should request.

volte-hss-subscriber-data-lookup-field-mapping-profile

Contains the profile specification for configuring the session state fields the feature should populate.

Network operator data

This data is stored in two JSLEE configuration profile tables. Both are scoped by Sentinel selection key. (However, unlike various other features, each operator has a profile table with multiple profiles within the table.)

  • The first is for mapping transparent user data service indications to Java codec classes.

  • The second configures the mapping between sections of the decoded document and session state variables/fields.

Service indications and codecs

Different applications use transparent user data in the HSS. To distinguish the format of the data, individual applications get unique service indications.

To enable flexibility, this feature allows a new XML schema to be introduced, alongside Java classes to parse (turn the XML into Java objects) and generated XML (turn Java objects back into XML for storage in the HSS).

The Java classes are called “codecs”, as they encode and decode between XML and Java.

This is stored in the profile table named $NetworkOperator_SubscriberDataLookupFromHssServiceIndicationProfileTable.

For example, if the network operator is “TestOperator”, then the profile table name is TestOperator_SubscriberDataLookupFromHssServiceIndicationProfileTable.

Each profile in the table has the following attributes.

Attribute Name Type Comments
ServiceIndication

String

This is the value of the Service Indication. For example, for MMTEL this is MMTEL-Services

CodecFQCN

String

This is the fully qualified class name of the codec class. For example, for Sentinel VoLTE MMTEL, this is com.opencloud.mmtel.feature.hssdata.MmtelServiceDataCodec

Field definition profile

For the XML document to be entered into session state (so that other features can read these variables), the XML document must be broken down into relevant variables.

This is fulfilled by use of a field definition profile. Each field definition profile defines one session state variable, and where it comes from in the XML document.

Attribute Name Type Comments
SessionStateFieldName

String

The name of the session state field to write to.

XPath

String

The location in the XML document to read from.

ServiceIndication

String

The service indication in transparent user data in the HSS.

RootElementName

String

The name of the root element of the document; if non-empty it is chopped off the XPath.

This is stored in the profile table $NetworkOperator_SubscriberDataLookupFromHssFieldDefinitionProfileTable; for example, if the network operator is “TestOperator” then the profile table name is TestOperator_SubscriberDataLookupFromHssFieldDefinitionProfileTable.

Communication diversion active example

As an example, MMTEL supplementary service settings are read by using the “MMTEL-Services” service indication.

Within the returned document, the XPath for the CDIV feature being active is /complete-communication-diversion/communication-diversion/@active.

The session state variable name is determined by the feature in question. In this case, the MMTelCDIV feature looks for a session input variable called CDIVActive.

So we end up with the following configuration for this field:

Attribute Name Value
SessionStateFieldName

CDIVActive

XPath

/complete-communication-diversion/communication-diversion/@active

ServiceIndication

MMTEL-Services

RootElementName

An alternative (using RootElementName) is:

Attribute Name Value
SessionStateFieldName

CDIVActive

XPath

MMTelServices/complete-communication-diversion/communication-diversion/@active

ServiceIndication

MMTEL-Services

RootElementName

MMTelServices

Session input variables

Attribute Name Type
Subscriber

String

RegistrationRecords

List<RegistrationRecord>

Statistics

SubscriberDataLookupFromHss statistics are tracked by the SubscriberDataLookupFromHss SBB and can be found under the following parameter set: SLEE-Usage → sentinel.volte.sip service ID → SubscriberDataLookupFromHss SBB ID.

Name Description
Invoked

Incremented each time the feature runs.

Failed

Incremented if a fatal error occurs while the feature is running.

SubscriberDataRetrieved

Incremented when the feature receives subscriber data from the HSS or Sh Cache Microservice.

SessionStatePopulated

Incremented after the feature successfully processes the data it received, and loads it into session state fields.

Misconfigured

Incremented when absent configuration data prevents the feature from running.

SessionStateNotFound

Incremented when the session state field the feature requires for operation is missing.

Behaviour

This feature uses the Sh Cache Microservice RA, connected to the Sh Cache Microservice, to access the HSS.

Each time the feature is invoked, it checks the call type and determines the IMS public identity that it should use to query the HSS.

If the session input variable DefaultPublicID of the first RegistrationRecord in the RegistrationRecords list is present, this field is used as the IMS public identity in the HSS query. Otherwise, the the session input variable subscriber is used as the IMS public identity in the HSS query.

For each service indication profile, the feature requests the Sh Cache Microservice RA to return the transparent user data for the IMS public identifier and service indication.

Next, the document is queried once for each field definition profile. The results of each XPath query are written into the session state variable. If any error occurs, the session state variable is not modified.

Examples of errors include:

  • Cannot decode the XML document.

  • The session state variable name does not correspond to a session state variable (for example, it was mistyped).

  • The Java type for the session state variable, and the type of the object returned by the XPath query are incompatible.

  • The XPath query did not return any data.

In order to provide MMTEL, according to IR.92 it is recommended that:

  • the service indication profile includes the pre-built MMTel codec

  • all session input variables for the out-of-the-box MMTel features are included.

Minimum service indication profiles for MMTEL

ServiceIndication CodecFQCN
MMTEL-Services

com.opencloud.mmtel.feature.hssdata.MmtelServiceDataCodec

Minimum field definition profiles for MMTEL

SessionStateFieldName XPath ServiceIndication RootElementName
CDIVActive
/complete-communication-diversion/communication-diversion/@active
MMTEL-Services
CDIVRuleset
/complete-communication-diversion/communication-diversion/ruleset
MMTEL-Services
CDIVSubscriberNoReplyTimeout
/complete-communication-diversion/communication-diversion/NoReplyTimer
MMTEL-Services
CWActive
/complete-communication-waiting/communication-waiting/@active
MMTEL-Services
ICBActive
/complete-communication-barring/incoming-communication-barring/@active
MMTEL-Services
ICBRuleset
/complete-communication-barring/incoming-communication-barring/ruleset
MMTEL-Services
OCBActive
/complete-communication-barring/outgoing-communication-barring/@active
MMTEL-Services
OCBRuleset
/complete-communication-barring/outgoing-communication-barring/ruleset
MMTEL-Services
OIPActive
/complete-originating-identity-presentation/originating-identity-presentation/@active
MMTEL-Services
OIRActive
/complete-originating-identity-restriction/originating-identity-presentation-restriction/@active
MMTEL-Services
OIRDefaultBehaviourType
/complete-originating-identity-restriction/originating-identity-presentation-restriction/default-behaviour
MMTEL-Services
TIPActive
/complete-terminating-identity-presentation/terminating-identity-presentation/@active
MMTEL-Services
TIRActive
/complete-terminating-identity-restriction/terminating-identity-presentation-restriction/@active
MMTEL-Services
TIRDefaultBehaviourType
/complete-terminating-identity-restriction/terminating-identity-presentation-restriction/default-behaviour
MMTEL-Services
Previous page Next page
Sentinel VoLTE Version 3.0.0