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 |
|
Yes |
Yes |
Stateless |
SBB |
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/2.9.0;2.9.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 |
CodecFQCN |
String |
This is the fully qualified class name of the codec class. For example, for Sentinel VoLTE MMTEL, this is |
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.
Recommended minimum configuration for MMTEL
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 |