SubscriberDataLookupFromHSS is responsible for reading data from the HSS and writing it into Sentinel session state fields.
The data it reads from the HSS must be accessed from TransparentUserData
in the HSS.
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 |
Yes |
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-2
module pack.
It can be viewed by using the create-module
command in the SDK with that module pack, for example:
> create-module new-hss2-module opencloud#volte-hss-subscriber-data-lookup-2#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-2 |
Contains the feature’s code. |
volte-hss-subscriber-data-lookup-2-service-indication-profile |
Contains the profile specification for the feature configuration profile table. |
Session input variables
Attribute Name | Type |
---|---|
Subscriber |
String |
RegistrationRecords |
List<RegistrationRecord> |
Configuration
This feature has an out-of-the-box configuration ensuring the MMTel features work. The configuration may be extended to
-
support additional MMTel features that use the MMTel services XML schema
-
support additional features that use a different XML schema
This configuration extensibility is supported through the profile table named ${PlatformOperatorName}_SubscriberDataLookupFromHss2ServiceIndicationProfileTable
.
If the platform operator name is RocketInc
then the profile table name is RocketInc_SubscriberDataLookupFromHss2ServiceIndicationProfileTable
.
The profile table contains one profile for each Service Indication that shall be queried in the HSS. Each profile defines:
-
the Service-Indication
-
the fully qualified class name of the Transparent Data Codec class - used to parse the returned XML into a Java Object
-
a list of adaptor class names (fully qualified class names)
-
an option to enable or disable the query
-
a default value for operator authorized fields
This table, by default, has entries for MMTEL-Services
, IMS-ODB-Information
, and Metaswitch-TAS-Services
,
configured by the installer.
The MMTEL-Services
query is enabled by default, while IMS-ODB-Information
and Metaswitch-TAS-Services
are disabled.
The query can be enabled or disabled by setting the value of DisableQuery
field to true
or false
.
A value of true
disables the query.
Statistics
SubscriberDataLookupFromHss
statistics are tracked by the SubscriberDataLookupFromHss2
SBB and can be found under the following parameter set: SLEE-Usage → volte.sentinel.sip service ID → SubscriberDataLookupFromHss2 SBB ID.
Name | Type | Description |
---|---|---|
Invoked |
Counter |
Incremented each time the feature runs. |
Failed |
Counter |
Incremented if a fatal error occurs while the feature is running. |
SubscriberDataRetrieved |
Counter |
Incremented when the feature receives subscriber data from the Sh Cache Microservice. |
SessionStatePopulated |
Counter |
Incremented after the feature successfully processes the data it received, and loads it into session state fields. |
AdaptorClassError |
Counter |
Incremented when Adaptor class is not of type SimservsSessionAdaptor or the feature fails to retrieve adaptor class. |
CodecClassError |
Counter |
Incremented when Codec class is not of type ServiceDataCodec or the feature fails to retrieve codec class. |
Misconfigured |
Counter |
Incremented when absent configuration data prevents the feature from running. |
SessionStateNotFound |
Counter |
Incremented when the session state field the feature requires for operation is missing. |
ResponseLatency |
Sampled |
Records elapsed time between sending the request to the HSS and getting a response (in milliseconds). |
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 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.
The feature requests the Sh Cache Microservice RA to fetch the transparent user data for the IMS Public Identifier and Service Indication. This data is stored in the corresponding session-state fields.
The feature can be configured to fetch multiple Service Indications, i.e. to retrieve different documents. The out-of-the-box configuration looks for the MMTel Services document.
For each profile in the feature’s configuration
-
the feature requests the Sh Cache Microservice RA to fetch the transparent user data document
-
Once a result is available, each adaptor in the list of adaptors is invoked in order to populate session state
MMTel-Services Schema to Session-State Fields
The MMTel-Services schema is configured into this feature in all out-of-the-box installations. This section describes the source of a variable (from within the returned document), and the destination session state field name and attribute for the out-of-the-box configuration.
OIP
XPath in document (From) | Session-State Field (To) | Default values |
---|---|---|
MMTELServices/complete-originating-identity-presentation/originating-identity-presentation/active |
MMTelOIPServiceData.active |
If not present in the XML document, the field is set to |
MMTELServices/complete-originating-identity-presentation/operator-originating-identity-presentation/restriction-override |
MMTelOIPServiceData.override |
If not present in the XML document, the field is set to |
MMTELServices/complete-originating-identity-presentation/operator-originating-identity-presentation/@authorized |
MMTelOIPServiceData.operatorAuthorized |
Value read from Configuration |
For more information on MMTEL OIP see MMTelOIP.
OIR
XPath in document (From) | Session-State Field (To) | Default values |
---|---|---|
MMTELServices/complete-originating-identity-restriction/originating-identity-presentation-restriction/active |
MMTelOIRServiceData.active |
If not present in the XML document, the field is set to |
MMTELServices/complete-originating-identity-restriction/operator-originating-identity-presentation-restriction/mode |
MMTelOIRServiceData.mode |
If not specified the field is set to |
MMTELServices/complete-originating-identity-restriction/originating-identity-presentation-restriction/default-behaviour |
MMTelOIRServiceData.defaultBehaviourType |
If not specified the field is set to |
MMTELServices/complete-originating-identity-restriction/operator-originating-identity-presentation-restriction/@authorized |
MMTelOIRServiceData.operatorAuthorized |
Value read from Configuration |
For more information on MMTEL OIR see MMTelOIR.
TIP
XPath in document (From) | Session-State Field (To) | Default values |
---|---|---|
MMTELServices/complete-terminating-identity-presentation/terminating-identity-presentation/active |
MMTelTIPServiceData.active |
If not present in the XML document, the field is set to |
MMTELServices/complete-terminating-identity-presentation/operator-terminating-identity-presentation/restriction-override |
MMTelTIPServiceData.override |
If not specified the field is set to |
MMTELServices/complete-terminating-identity-presentation/operator-terminating-identity-presentation/@authorized |
MMTelTIPServiceData.operatorAuthorized |
Value read from Configuration |
For more information on MMTEL TIP see MMTelTIP.
TIR
XPath in document (From) | Session-State Field (To) | Default values |
---|---|---|
MMTELServices/complete-terminating-identity-restriction/terminating-identity-presentation-restriction/active |
MMTelTIRServiceData.active |
If not present in the XML document, the field is set to |
MMTELServices/complete-terminating-identity-restriction/operator-terminating-identity-presentation-restriction/mode |
MMTelTIRServiceData.mode |
If not specified the field is set to |
MMTELServices/complete-terminating-identity-restriction/operator-terminating-identity-presentation-restriction/@authorized |
MMTelTIRServiceData.operatorAuthorized |
Value read from Configuration |
For more information on MMTEL TIR see MMTelTIR.
ICB
XPath in document (From) | Session-State Field (To) | Default values |
---|---|---|
MMTELServices/complete-communication-barring/incoming-communication-barring/active |
MMTelICBServiceData.active |
If not present in the XML document, the field is set to |
MMTELServices/complete-communication-barring/incoming-communication-barring/ruleset |
MMTelICBServiceData.ruleset |
No default value specified. |
MMTELServices/complete-communication-barring/operator-incoming-communication-barring/@authorized |
MMTelICBServiceData.operatorAuthorized |
Value read from Configuration |
For more information on MMTEL ICB see MMTelICB.
OCB
XPath in document (From) | Session-State Field (To) | Default values |
---|---|---|
MMTELServices/complete-communication-barring/outgoing-communication-barring/active |
MMTelOCBServiceData.active |
If not present in the XML document, the field is set to |
MMTELServices/complete-communication-barring/outgoing-communication-barring/ruleset |
MMTelOCBServiceData.ruleset |
No default value specified. |
MMTELServices/complete-communication-barring/operator-outgoing-communication-barring/@authorized |
MMTelOCBServiceData.operatorAuthorized |
Value read from Configuration |
For more information on MMTEL OCB see MMTelOCB.
CDIV
XPath in document (From) | Session-State Field (To) | Default values |
---|---|---|
MMTELServices/complete-communication-diversion/communication-diversion/active |
MMTelCDIVServiceData.active |
If not present in the XML document, the field is set to |
MMTELServices/complete-communication-diversion/communication-diversion/NoReplyTimer |
MMTelCDIVServiceData.noReplyTimeOut |
The default value is specified in Network operator data for MMTEL CDIV |
MMTELServices/complete-communication-diversion/communication-diversion/ruleset |
MMTelCDIVServiceData.rules |
No default value specified. |
MMTELServices/complete-communication-diversion/operator-communication-diversion/@authorized |
MMTelCDIVServiceData.operatorAuthorized |
Value read from Configuration |
Ruleset Conditions for CDIV. Ruleset is a collection of rules.
XPath in document (From) | Session-State Field (To) | Default values |
---|---|---|
MMTELServices/common-policy/conditions |
MMTelCDIVServiceData.rules[].conditions |
No default value specified. |
MMTELServices/complete-communication-diversion/forward-to |
MMTelCDIVServiceData.rules[].forwardToAction |
No default value specified. |
For more information on MMTEL CDIV see MMTelCDIV.
CONF
XPath in document (From) | Session-State Field (To) | Default values |
---|---|---|
MMTELServices/complete-conference/operator-conference/@authorized |
MMTelCONFServiceData.operatorAuthorized |
Value read from Configuration |
For more information on MMTEL CONF see MMTel Conference.
CW
XPath in document (From) | Session-State Field (To) | Default values |
---|---|---|
MMTELServices/complete-communication-waiting/communication-waiting/active |
MMTelCWServiceData.active |
If not present in the XML document, the field is set to |
MMTELServices/complete-communication-waiting/operator-communication-waiting/@authorized |
MMTelCWServiceData.operatorAuthorized |
Value read from Configuration |
For more information on MMTEL CW see MMTelCW.
HOLD
XPath in document (From) | Session-State Field (To) | Default values |
---|---|---|
MMTELServices/complete-communication-hold/operator-communication-hold/@authorized |
MMTelHOLDServiceData.operatorAuthorized |
Value read from Configuration |
For more information on MMTEL Hold see MMTelHold.
Flexible-Alerting
XPath in document (From) | Session-State Field (To) | Default values |
---|---|---|
MMTELServices/complete-flexible-alerting/operator-flexible-alerting-group/group-type |
MMTelFAGroup |
|
MMTELServices/complete-flexible-alerting/operator-flexible-alerting-group/membership |
MMTelFAMembership |
|
MMTELServices/complete-flexible-alerting/operator-flexible-alerting-group/members |
MMTelFAServiceData.members[] |
No default value. |
MMTELServices/complete-flexible-alerting/operator-flexible-alerting-group/identity |
MMTelFAServiceData.identity |
The |
MMTELServices/complete-flexible-alerting/operator-flexible-alerting-group/@authorized |
MMTelFAServiceData.authorized |
Value read from Configuration |
For more information on MMTEL FA see Flexible Alerting.
ECT
XPath in document (From) | Session-State Field (To) | Default values |
---|---|---|
MMTelServices/complete-explicit-communication-transfer/operator-explicit-communication-transfer/@authorized |
MMTelECTServiceData.authorized |
Value read from Configuration |
For more information on MMTEL ECT see MMTelECT
IMS-ODB-Information Schema to Session-State Fields
The IMS-ODB-Information schema is configured (but disabled) into this feature in all out-of-the-box installations. This section describes the source of a variable (from within the returned document), and the destination session state field name and attribute for the out-of-the-box configuration.
Operator Determined Barring
For more information see Operator Determined Barring.
Metaswitch-TAS-Services Schema to Session-State Fields
The Metaswitch-TAS-Services schema is configured (but disabled) into this feature in all out-of-the-box installations. This section describes the source of a variable (from within the returned document), and the destination session state field name and attribute for the out-of-the-box configuration.
Basic Services
XPath in document (From) | Session-State Field (To) | Default values |
---|---|---|
Metaswitch-Services/basic-settings/additional-attributes |
MetaswitchBasicSettings.additionalAttributes |
If not present in the XML document, the field is set to an empty map. |
Location Based Dialling
XPath in document (From) | Session-State Field (To) | Default values |
---|---|---|
Metaswitch-Services/location-based-dialling/group-id |
MetaswitchLocationBasedDialling.groupId |
If not present in the XML document, the field is set to |
Metaswitch-Services/basic-settings/additional-attributes |
MetaswitchLocationBasedDialling.additionalAttributes |
If not present in the XML document, the field is set to an empty map. |
For more information on location based dialling see Location Based Dialling
Forward To Voicemail
XPath in document (From) | Session-State Field (To) | Default values | Notes |
---|---|---|---|
metaswitch-services/complete-forward-to-voicemail/forward-to-voicemail/voicemail-server |
MetaswitchForwardToVoicemail.voicemailServer |
If not present in the XML document, the field is set to |
|
metaswitch-services/complete-forward-to-voicemail/forward-to-voicemail/additional-attributes AND Metaswitch-Services/complete-forward-to-voicemail/operator-forward-to-voicemail/additional-attributes |
MetaswitchForwardToVoicemail.additionalAttributes |
If not present in the XML document, the field is set to an empty map of String → String. |
Where there is an attribute with the same name in the operator and user sections of the document, the value in the user section takes precedence. |
metaswitch-services/complete-forward-to-voicemail/forward-to-voicemail/active |
MetaswitchForwardToVoicemail.active |
If not present in the XML document, the field is set to |
For more information on forwarding to voicemail see:
Companion Device
XPath in document (From) | Session-State Field (To) | Default values | Notes |
---|---|---|---|
metaswitch-services/complete-companion-device/companion-device/@active |
CompanionDeviceData.active |
|
|
metaswitch-services/complete-companion-device/operator-companion-device/@authorized |
CompanionDeviceData.operatorAuthorized |
Value read from Configuration |
|
metaswitch-services/complete-companion-device/operator-companion-device/radio-access |
CompanionDeviceData.radioAccess |
If not present in the XML document, the field is set to |
Value is a |
metaswitch-services/complete-companion-device/operator-companion-device/msisdn |
CompanionDeviceData.msisdn |
If not present in the XML document, the field is set to |
|
metaswitch-services/complete-companion-device/operator-companion-device/additional-attributes AND metaswitch-services/complete-companion-device/companion-device/additional-attributes |
CompanionDeviceData.additionalAttributes |
If not present in the XML document, the field is set to an empty map of String → String. |
Where there is an attribute with the same name in the operator and user sections of the document, the value in the user section takes precedence. |
Example Radio Access field value
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<radio-access xmlns="http://metaswitch.com/XMLSchema/tas">
<network>PS</network>
</radio-access>
For more information on companion device support, see Companion Devices.