The MMTelOIR feature implements the Originating Identification Restriction (OIR) service .
What is OIR?
From 3GPP 24.607:
The Originating Identification Restriction (OIR) service enables the originating user to prevent presentation of its identity information to the terminating user. When the OIR service is applicable and activated, the originating network provides the destination network with the indication that the originating user’s identity information is not allowed to be presented to the terminating user. In this case, no originating user’s identity information shall be included in the requests sent to the terminating user. The presentation restriction function shall not influence the forwarding of the originating user’s identity information within the network as part of the supplementary service procedures. |
Feature cheat sheet
B2BUA Instance | SAS Support | Originating / Terminating | Point in Session Plan | Network Operator Data | Subscriber Data | Stateful or Stateless | POJO Feature or SBB Feature |
---|---|---|---|---|---|---|---|
MMTEL |
Yes |
Originating |
SipAccess_SubscriberPreCreditCheck |
Yes |
Yes |
Stateless |
POJO |
Source Code
This feature’s source code is available in the Sentinel VoLTE SDK in the mmtel-id-presentation-restriction
module pack.
It can be viewed by using the create-module
command in the SDK with that module pack, for example:
> create-module new-idpr-module opencloud#mmtel-id-presentation-restriction#volte/4.0.0;4.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 relevant to this feature:
Module Name | Description |
---|---|
mmtel-id-presentation-restriction |
Group module for the feature that includes all of the modules listed below. |
mmtel-id-presentation-restriction-library |
Contains code shared by all ID presentation and restriction features. |
mmtel-oir-profile |
Contains the profile specification for the feature configuration profile table. |
mmtel-oir |
Contains the feature itself. |
Network operator data
OIR Network Operator Data is present in a JSLEE configuration profile table named MMTelOIRConfigProfileTable
.
The operator data is scoped according to a Sentinel selection key.
Attribute Name | Type | Description |
---|---|---|
OIRMode (deprecated, present in `MMTelOIRServiceData`) |
An enum with two values: Fully qualified type name is |
|
OIRPresentationRestrictionType |
An enum with two values: Fully qualified type name is |
Use of Use of |
OIRUserPolicy |
An enum with three values: Fully qualified type name is |
Session input variables
Variable name | Type | Comments |
---|---|---|
bxref:mmtel-subscriber-data-representation#mmteloirservicedata[MMTelOIRServiceData] |
Complex |
Stored from the HSS or HLR in SubscriberDataLookupFromHSS or SubscriberDataLookupFromHLR |
DialledCallerIDRestriction |
DialledCallerIDRestrictionType |
Used to override |
Session output variables
Variable name | Type | Comments |
---|---|---|
RanOir |
boolean |
Signals to other features that OIR ran on this session. |
Statistics
MMTelOIR statistics are tracked by the sentinel.volte.sip SBB and can be found under the following parameter set:
SLEE-Usage → sentinel.volte.sip service → sentinel.volte.sip SBB
Statistic | Increments when... |
---|---|
Started |
the feature runs |
FailedToStart |
Sentinel VoLTE encounters an error while attempting to start the feature |
IssuedWarning |
a non-fatal problem is encountered and the feature issues a warning |
FailedDuringExecution |
a fatal problem is encountered and the feature cannot execute correctly |
TimedOut |
the feature takes too long to complete and Sentinel VoLTE aborts execution |
Misconfigured |
a fatal error if the feature configuration can not be loaded |
ReceivedMalformedPrivacyHeader |
a non-standard |
FromHeaderAnonymized |
the feature anonymizes the |
PrivacyHeaderChanged |
the feature changes the contents of the |
FallbackToNetworkDefaultServiceConfig |
incremented when the feature uses the network default service configuration as the session state does not contain the feature specific subscriber service data. |
Behaviour
If operator data is not present, the OIR feature:
-
Increments an error statistic.
-
Logs a message at the
Fine
level. -
Informs the Sentinel core that the feature is not configured appropriately (
Invalid Configuration
). -
Exits.
If MMTelOIRServiceData.OperatorAuthorized
or MMTelOIRServiceData.Active
is false
, the feature finishes execution without modifying any state.
The rest of the behaviour section assumes that MMTelOIRServiceData.Active
is true
.
Temporary mode vs permanent mode
OIR behaves in temporary mode if the network configuration for MMTelOIRServiceData.Mode
is set to TEMPORARY
It behaves in permanent mode if the network configuration for MMTelOIRServiceData.Mode
is set to PERMANENT
.
The UE signals its request for privacy through use of the Privacy
header.
Adjustments to identity headers in temporary mode
When in temporary mode, the OIR feature will apply header manipulation related to privacy, based on:
-
the value of
DialledCallerIDRestriction
session state field, -
whether or not the UE’s request has any
Privacy
header at all, -
whether or not the
Privacy
header indicates that privacy should be enabled or disabled (for this dialog), and -
the value of
MMTelOIRServiceData.DefaultBehaviourType
.
The value of OirPerCallOverride
is used to modify privacy values as follows:
OIROverrideType | Resulting 'Privacy' header |
---|---|
OIR_AS_CONFIGURED |
'Privacy' header unchanged |
OIR_CALLER_ID_BLOCK |
'Privacy' header with 'Privacy:user' |
OIR_CALLER_ID_UNBLOCK |
'Privacy' header with 'Privacy:none' |
Any changes are then treated as if the request has come from the UE and manipulation continues as follows:
UE request | Value of MMTelOIRServiceData.DefaultBehaviourType | Privacy based header manipulation occurs |
---|---|---|
No |
PRESENTATION_RESTRICTED |
Yes |
|
PRESENTATION_RESTRICTED |
No |
UE asks for privacy — |
PRESENTATION_RESTRICTED |
Yes |
No |
PRESENTATION_NOT_RESTRICTED |
No |
|
PRESENTATION_NOT_RESTRICTED |
No |
UE asks for privacy — |
PRESENTATION_NOT_RESTRICTED |
Yes |
Adjustments to identity headers in permanent mode
When in permanent mode, the OIR feature will apply header manipulation related to privacy regardless of whether or not the UE’s request indicated that privacy is requested.
Whether or not anything is modified is based on the value of the MMTelOIRServiceData.DefaultBehaviourType
session state variable.
The value of PRESENTATION_NOT_RESTRICTED
means that the OIR feature will not modify header manipulation related to privacy.
UE request indicates privacy shall apply | Value of MMTelOIRServiceData.DefaultBehaviourType | Privacy-based header manipulation occurs |
---|---|---|
N/A (the UE is ignored) |
PRESENTATION_RESTRICTED |
Yes |
N/A (the UE is ignored) |
PRESENTATION_NOT_RESTRICTED |
No |
Headers read and modified in SIP INVITE
Information about headers that are modified under different conditions are documented on the following links:
A few of the options are in the table below. For more refer to the links above.
MMTelOIRServiceData.Mode (operator data) | MMTelOIRServiceData.DefaultBehaviourType (subscriber) | OIRPresentationRestrictionType (network data) | OIRUserPolicy (network data) | Link |
---|---|---|---|---|
TEMPORARY |
PRESENTATION_NOT_RESTRICTED |
ONLY_IDENTITY |
NONE |
|
TEMPORARY |
PRESENTATION_NOT_RESTRICTED |
ONLY_IDENTITY |
ANONYMIZE_FROM |
|
TEMPORARY |
PRESENTATION_NOT_RESTRICTED |
ONLY_IDENTITY |
ADD_USER_PRIVACY |
|
TEMPORARY |
PRESENTATION_RESTRICTED |
ONLY_IDENTITY |
NONE |
|
TEMPORARY |
PRESENTATION_RESTRICTED |
ONLY_IDENTITY |
ANONYMIZE_FROM |
|
TEMPORARY |
PRESENTATION_RESTRICTED |
ONLY_IDENTITY |
ADD_USER_PRIVACY |