This feature
uses information from an incoming INVITE
, MESSAGE
or SUBSCRIBE
request, and from session state to set the plan ID in the Sentinel selection key
.
The plan ID affects which features will run for the call on the current AS instance.
It also will set some Session State fields.
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 |
---|---|---|---|---|---|---|---|
Any and All |
No |
Originating and Terminating |
|
Yes |
No |
Stateless |
POJO |
Prerequisite features
These features must run before DetermineVoltePlanId:
-
DetermineCallType
-
SCCDetermineSessionType (Only required on SCC AS)
Source Code
This feature’s source code is available in the Sentinel VoLTE SDK in the volte-determine-plan-id
module pack.
It can be viewed by using the create-module
command in the SDK with that module pack, for example:
> create-module new-planid-module opencloud#volte-determine-plan-id#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-determine-plan-id |
Contains all of the code for this feature. |
Session input variables
Session State variable name | Variable type |
---|---|
CallType |
Enum |
SCCSessionType |
Enum |
SentinelSelectionKey |
SentinelSelectionKey |
Session output variables
Session State variable name | Variable type | Comments |
---|---|---|
SentinelSelectionKey |
SentinelSelectionKey |
Updated by the feature based on factors described in the Behaviour section. |
RequestIsForMmtelTransfer |
Boolean |
Set to true if request is targeted at configured Session-Transfer-To-Own-Device special URI. |
ConferenceFactoryPSI |
String |
Set if the SIP request URI is a conference factory PSI supported by the platform. |
Network operator data
Parameter | Type | Description | Default |
---|---|---|---|
MmtelTransferNumber |
String |
SIP or TEL URI for special Session-Transfer-To-Own-Device |
none |
Statistics
DetermineVoltePlanId 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 → DetermineVoltePlanId
or with rhino-stats:
"SLEE-Usage.Services.ServiceID[name=sentinel.volte.sip,vendor=OpenCloud,version=3.0.0].SbbID[name=sentinel.volte.sip,vendor=OpenCloud,version=3.0.0].feature.DetermineVoltePlanId"
Name | Type | Description |
---|---|---|
Started |
Counter |
Incremented each time the feature runs |
FailedToStart |
Counter |
Incremented when a fatal error occurs before feature execution |
IssuedWarning |
Counter |
Incremented when a non-fatal error occurs during feature execution |
FailedDuringExecution |
Counter |
Incremented when a fatal error occurs during feature execution |
TimedOut |
Counter |
Incremented when feature execution does not complete within a reasonable time frame |
NoPlanSelected |
Counter |
Incremented when the feature fails to select an appropriate plan ID |
MmtelOriginatingPlanSelected |
Counter |
Incremented when the feature selects the plan ID as “mmtel-orig” |
MmtelTerminatingPlanSelected |
Counter |
Incremented when the feature selects the plan ID as “mmtel-term” |
MmtelConferencingPlanSelected |
Counter |
Incremented when the feature selects the plan ID as “mmtel-conf” |
SccOriginatingPlanSelected |
Counter |
Incremented when the feature selects the plan ID as “scc-orig” |
SccTerminatingPlanSelected |
Counter |
Incremented when the feature selects the plan ID as “scc-term” |
SccTerminatingTadsOnlyPlanSelected |
Counter |
Incremented when the feature selects the plan ID as “scc-term-tads” |
SccTerminatingAnchorOnlyPlanSelected |
Counter |
Incremented when the feature selects the plan ID as “scc-term-anchor” |
SccReoriginationPlanSelected |
Counter |
Incremented when the feature selects the plan ID as “scc-reorigination” |
SccAccessTransferPlanSelected |
Counter |
Incremented when the feature selects the plan ID as “scc-access-transfer” |
ConferenceConfigurationNotFound |
Counter |
Incremented when the feature is unable to find a valid conference PSI from configuration profiles |
PlanIDAlreadySet |
Counter |
Incremented when the feature detects that a plan ID has already been selected |
Behaviour
This feature checks a series of values from session state, feature configuration, and the incoming SIP request in order to select the appropriate session plan to run, and possibly set some Session State fields.
Values examined
Value Name | Source | Notes |
---|---|---|
Custom Route Header |
Incoming SIP request |
These are custom parameters on the URI of the top-most route header. It is expected that these will be added by the S-CSCF based on iFCs. |
SCCSessionType |
Session State |
This is set by the SCCDetermineSessionType feature when it detects the incoming request is for Access Transfer or Reorigination, as these requests do not come from the S-CSCF there should never be a oc-mode parameter on the route header. |
Call Type |
Session State |
Set by the DetermineCallType feature. |
Request URI |
Incoming SIP request |
Analysed to determine if it corresponds to a supported conference factory PSI (when a conference call is being requested). |
If the Request URI of the incoming sip request is a supported conference factory PSI, the PSI is stored in session state. |
Custom Route Header Parameters
Sentinel VoLTE supports specific custom headers and header parameters to indicate or propagate certain conditions between nodes in the network.
Plan ID selection circumstances
Route Header oc-mode Parameter |
SCCSessionType | Call Type | SIP Request-URI Matches Conference PSI | Resulting Plan ID |
---|---|---|---|---|
(Not Present) |
Access Transfer |
(Ignored) |
(Ignored) |
scc-access-transfer |
(Not Present) |
Reorigination |
(Ignored) |
(Ignored) |
scc-reorigination |
oc-mode=mmtel |
(Ignored) |
Originating |
(Ignored) |
mmtel-orig |
oc-mode=mmtel |
(Ignored) |
Terminating |
No |
mmtel-term |
oc-mode=mmtel |
(Ignored) |
Terminating |
Yes |
mmtel-conf |
oc-mode=scc |
(Ignored) |
Originating |
(Ignored) |
scc-orig |
oc-mode=scc |
(Ignored) |
Terminating |
(Ignored) |
scc-term |
oc-mode=scc-tads |
(Ignored) |
Terminating |
(Ignored) |
scc-term-tads |
oc-mode=scc-anchor |
(Ignored) |
Terminating |
(Ignored) |
scc-term-anchor |
|