The MMTelTIR feature implements the Terminating Identification Restriction (TIR) service .
What is TIR?
From 3GPP TS 24.608:
The Terminating Identification Restriction (TIR) is a service offered to the terminating party which enables the terminating party to prevent presentation of the terminating identity information to originating party. |
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 |
---|---|---|---|---|---|---|---|
MMTEL |
Yes |
Terminating |
SipAccess_SubscriberPreCreditCheck |
Yes |
Yes, loaded from HSS |
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/2.8.0;2.8.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-tir-profile |
Contains the profile specification for the feature configuration profile table. |
mmtel-tir |
Contains the feature itself. |
Network operator data
TIR’s Network Operator Data is held in a JSLEE configuration profile table named MMTelTIRConfigProfileTable
.
This data is scoped by sentinel selection key — each network operator has one entry in the table.
Attribute Name |
Type |
TIRMode (deprecated, present in |
An enum with values Fully qualified class name is |
Session input variables
Variable name | Type | Comments |
---|---|---|
Complex |
Loaded from the HSS in SubscriberDataLookupFromHSS or from HLR in SubscriberDataLookupFromHLR |
Session output variables
Variable name | Type | Comments |
---|---|---|
RanTir |
boolean |
Signals to other features that TIR ran on this session. |
Statistics
MMTelTIR statistics are tracked by the sentinel.volte.sip SBB
and can be found under the following parameter set in REM:
SLEE-Usage → sentinel.volte.sip service → sentinel.volte.sip SBB → feature → MMTelTIR
or with rhino-stats:
SLEE-Usage → [sentinel.volte.sip service name] → [sentinel.volte.sip SBB name] → .feature.MMTelTIR
Statistic | Incremented 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 and 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 |
ProcessingResponse |
the feature processes a SIP response |
ProcessingRequest |
the feature processes a SIP request |
FromChangeTagRemoved |
the feature removes the |
ReceivedMalformedPrivacyHeader |
a non-standard |
PrivacyHeaderChanged |
the feature changes the contents of the |
Behaviour
If operator data is not present, the TIR 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 MMTelTIRServiceData.OperatorAuthorized
is false
, the feature finishes execution without modifying any state.
Header manipulation
MMTelTIRServiceData.Mode (Operator data) |
SIP Operation | MMTelTIRServiceData.Active (Subscriber data) |
MMTelTIRServiceData.DefaultBehaviourType (Subscriber data) |
Action(s) |
---|---|---|---|---|
TEMPORARY |
|
No |
PRESENTATION_NOT_RESTRICTED |
See row for Temporary, Active, Presentation Not Restricted |
TEMPORARY |
B-Party Responses |
No |
PRESENTATION_NOT_RESTRICTED |
See row for Temporary, Active, Presentation Not Restricted |
TEMPORARY |
|
No |
PRESENTATION_RESTRICTED |
See row for Temporary, Active, Presentation Restricted |
TEMPORARY |
B-Party Responses |
No |
PRESENTATION_RESTRICTED |
See row for Temporary, Active, Presentation Restricted |
TEMPORARY |
|
Yes |
PRESENTATION_NOT_RESTRICTED |
Forward |
TEMPORARY |
|
Yes |
PRESENTATION_RESTRICTED |
Forward |
TEMPORARY |
B-Party Responses |
Yes |
PRESENTATION_NOT_RESTRICTED |
Forward Response to A party |
TEMPORARY |
B-Party Responses |
Yes |
PRESENTATION_RESTRICTED |
If a response does not contain a If the response contains a If the response contains a |
PERMANENT |
INVITE |
Yes |
Behave as though |
If INVITE contains an option-tag |
PERMANENT |
B-Party Responses |
Yes |
Behave as though |
If a response does not contain a If the response contains a If the response contains a |