This feature determines which network operator a REGISTER request is related to in a multi-tenancy deployment.
Determining the network operator
This feature adopts three techniques to determine the network operator:
-
Use the platform level default.
Special header in the third-party REGISTER request
If the REGISTER request contains a sentinel-network-operator header, then the network operator is the value of this header. For example, a REGISTER request, such as the one shown below, returns a network operator ‘HomeOneNet’.
REGISTER sip:registrar.home1.net:5060 SIP/2.0 ... From: <sip:scscf1.home1.net>;tag=m1xC8Q To: <sip:user1_public1@home1.net> ... sentinel-network-operator: HomeOneNet
If the header is present, but empty, then treat this as if there was not header present and try the next technique.
Look up the network operator in feature configuration data
This RegistrarStg:feature has configuration data that is a lookup table key → network operator.
The feature uses a RegistrarStg:mapper IncomingSipRequest.class → String.class @ RegistrarMappingPoint.DetermineNetworkOperator
.
The mapper included with the registrar returns the host from the To address
as the lookup key.
For example, a REGISTER request, such as the one shown below, results in a lookup key of ‘home1.net’.
REGISTER sip:registrar.home1.net:5060 SIP/2.0 ... From: <sip:scscf1.home1.net>;tag=CefmLQ To: <sip:user1_public1@home1.net> ...
The feature uses this lookup key to find a network operator. If there is no network operator that corresponds to this key, then try the next technique.
Details
Feature script name |
RegistrarDetermineNetworkOperator |
---|---|
Applicable contexts |
SIP service |
Prerequisite features |
None |
Mappers
This feature uses a mapper that conforms to:
Mapping | Mapper Execution Point |
---|---|
IncomingSipRequest.class → String.class |
RegistrarMappingPoint.DetermineNetworkOperator |
Feature responses
featureFailedToExecute() |
|
---|---|
featureHasFinished() |
Once the feature has finished execution. |
Statistics
Stats interface |
DetermineNetworkOperatorStats |
---|---|
Parameter set to monitor |
|
Parameter | … incremented if … |
---|---|
CouldNotDetermineNetworkOperator |
If the network operator cannot be inferred by analysis of the REGISTER request and there is no platform-level default network operator configured. |
Error scenarios
Error | Scenario for error |
---|---|
This feature signals an error to the registrar core, and increments a statistic |
If it could not determine network operator, and there is no platform-level default network operator configured |
Configuration
-
A profile table called
SentinelRegistrarNetworkOperatorProfileTable
.Each profile in the table:
Parameter Type LookupKey
java.lang.String
NetworkOperator
java.lang.String
For example:
[Rhino@localhost (#3)] listprofileattributes SentinelRegistrarNetworkOperatorProfileTable home1.net LookupKey=home1.net NetworkOperator=HomeOneNet
-
The default network operator, which is in the Sentinel configuration table.
Provisioning interfaces
The feature is provisioned using the Sentinel Registrar Determine Network Operator REST API or web interface.