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_SessionCheck

No

No

Stateless

POJO

Prerequisite features

DialPlanEnforcement should run after the DetermineVoltePlanId feature.

Session input and output variables

Session input variables

Session state variable name Variable type Comments
SentinelSelectionKey

SentinelSelectionKey

  • Affects which configuration profile is used

  • DialPlanEnforcement inspects the plan ID field to determine if the session is originating

Session output variables

Session state variable name Variable type Comments
RejectedCallAsDialPlanDoesNotMatch

boolean

The call is being rejected

AnnouncementID

int

The announcement to play (for SipPlayAnnouncement)

EndSessionAfterAnnouncement

int

End the session with this sip response, after playing an announcement (for SipPlayAnnouncement)

Statistics

DetermineInitialLegNames 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 → DialPlanEnforcement
or with rhino-stats:
"SLEE-Usage.Services.ServiceID[name=sentinel.volte.sip,vendor=OpenCloud,version=3.1.0].SbbID[name=sentinel.volte.sip,vendor=OpenCloud,version=3.1.0].feature.DialPlanEnforcement"

Name Description
FeatureStarted

Incremented each time the feature runs

FeatureFailedToStart

Incremented when Sentinel VoLTE encounters an error while attempting to start the feature

FeatureIssuedWarning

Incremented when a non-fatal problem is encountered and the feature issues a warning

FeatureFailedDuringExecution

Incremented when a fatal problem is encountered and the feature cannot execute correctly

FeatureTimedOut

Incremented when the feature takes too long to complete and Sentinel VoLTE aborts execution

IgnoringAddress

Incremented when analysis is not required

DialPlanMatched

Incremented when the call is allowed as the dialed digits match the dial plan

DialPlanIsNotMatched

Incremented when the call is rejected as the dialed digits do not match the dial plan

Configuration

The DialPlanEnforcement feature uses configuration data from the DialPlanEnforcementConfigProfileTable and the NormalizationFeatureConfigProfileTable.

DialPlanEnforcementConfigProfileTable

The profiles within this table have the following fields:

Parameter Type Description

EndSessionOnEnforcement

boolean

Whether a session should be ended with an announcement if the dialed digits do not match the dial plan

EndSessionAnnouncementID

int

The announcement to play if the dialed digits do not match the dial plan.

The announcement ID should correspond to an ID that has been configured for SipPlayAnnouncement

EndSessionSipResponseCode

int

The SIP response code to use when ending the session

PrefixesToCheck

String[]

Set of prefixes to check for in the dialed digit string.

PrefixesToCheck may be empty. The length of PrefixesToCheck, MinimumNumberOfDigitsPerPrefix and MaximumNumberOfDigitsPerPrefix must be the same

MinimumNumberOfDigitsPerPrefix

int[]

Minimum allowed length of dialed digits (after the prefix) per prefix.

Must have the same number of elements as PrefixesToCheck. The value of each element may be 0 and must be less then the corresponding element in MaximumNumberOfDigitsPerPrefix

MaximumNumberOfDigitsPerPrefix

int[]

Maximum allowed length of dialed digits (after the prefix) per prefix.

Must have the same number of elements as PrefixesToCheck. The value of each element in MaximumNumberOfDigitsPerPrefix must be greater than the corresponding element in MinimumNumberOfDigitsPerPrefix

DefaultMaximumNumberOfDigits

int

The required length of dialed digits if there are no prefixes configured or matched.

The value must be within the range 7 .. 20.

Note

DialPlanEnforcement checks for prefixes in order from the longest prefix first.

NormalizationFeatureConfigProfileTable

The DialPlanEnforcement uses the following fields from profiles within this table:

Parameter Type Description

NationalPrefix

String

National dialling prefix (for example, 0)

InternationalEscapeCode

String

Escape code for dialing international numbers (for example, 00)

MinNormalizableLength

Integer

The minimum length of an address for it to be normalizable

Behaviour

The first step is to determine if DialPlanEnforcement should be applied to the incoming trigger. The following conditions must be satisfied:

  • the sentinel selection key plan ID field is MMTEL_ORIG

  • the request-uri is a phone number (either a Tel URL or a SIP URI with a phone number in the user part)

  • the DialPlanEnforcement feature is enabled (config.EndSessionOnEnforcement is true)

  • the number of dialed digits is greater than, or equal to, the minimum number for analysis

Note

The minimum number for analysis is the minimum value of these properties:

  • normalizerconfig.MinNormalizableLength

  • config.DefaultMaximumNumberOfDigits

  • For each configured prefix:

    • if allowed minimum == 0, prefix length + allowed maximum else prefix length + allowed minimum

If DialPlanEnforcement should be applied, then the following analysis of the request-uri is conducted.

  1. If the dialed digits is an international number, starts normalizerconfig.NationalPrefix or starts with normalizerconfig.InternationalEscapeCode then accept the trigger otherwise continue analysis.

  2. Check for prefixes in the dialed digit string in order from the longest prefix first. If there is a prefix match, then compare the number of digits after the prefix to the allowed minimum and allowed maximum configured for that prefix. If the number of digits in within range accept the trigger, otherwise reject the trigger by requesting an announcement to be played (config.EndSessionAnnouncementID) and ending the session.

  3. If no prefix match is made, compare the number of dialed digits to config.DefaultMaximumNumberOfDigits. If the number of digits is less than, or equal to, config.DefaultMaximumNumberOfDigits then accept the trigger otherwise reject the trigger by requesting an announcement to be played (config.EndSessionAnnouncementID) and ending the session.

Note

A SAS event is generated when DialPlanEnforcement accepts a trigger or rejects a trigger.
Statistics are incremented when DialPlanEnforcement ignores a trigger, accepts a trigger or rejects a trigger.

Previous page Next page
Sentinel VoLTE Version 3.1.0