The STODDetermineTargetSession feature Reads STOD tracking information out of the Session Ownership Facility and sets it into the session state for processing by External Session Tracking features. .
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 | Other notes |
---|---|---|---|---|---|---|---|---|
Stod |
No |
Originating |
|
Yes |
Yes - subscriber data is from the HSS |
Statefull |
SBB Feature |
Requires other features in STOD to work |
Prerequisites
-
The subscriber has to have the STOD service enabled (see MMTelStodEnabled)
-
The special number has to be configured in the AS (see DetermineVoltePlanId)
-
Session Ownership Record writing is enabled by other STOD features.
Session Input Variables
Session State variable name | Type | Comments |
---|---|---|
CallType |
Complex |
The calltype |
RequestIsForMmtelTransfer |
boolean |
Get request is for MMtel transfer |
MMTelDetermineTransferableSetQueryTime |
long |
The query time |
MMTelIsNewCassandraSession |
boolean |
Is the session a new Cassandra session |
SessionOwnershipACI |
Complex |
the ACI for session ownership queries |
Session Output Variables
Session State variable name | Type | Comments |
---|---|---|
MMTelDetermineTransferableSetQueryTime |
long |
The time for a Session Ownership Facility query to execute |
MMTelProceedWithStodTransfer |
boolean |
True if a transferable session is found, otherwise false |
MMTelSessionToTransfer |
Complex |
Insert the session tracking information into the Session State |
MMTelSessionTransferIsLocal |
boolean |
Set whether the access transfer is local, i.e. does not require proxying to another node |
MMTelIsNewSessionOwnershipActivity |
boolean |
Indicates whether the Session Ownership Activity is re-used or new for this query |
Statistics
STODDetermineTargetSession 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 → STODDetermineTargetSession
or with rhino-stats:
"SLEE-Usage.Services.ServiceID[name=sentinel.volte.sip,vendor=OpenCloud,version=2.9.0].SbbID[name=sentinel.volte.sip,vendor=OpenCloud,version=2.9.0].feature.STODDetermineTargetSession"
Name | 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 |
StodDetTargetSessionInvoked |
The feature has started |
StodSessionOwnershipError |
The query result event has been received however the result is an error |
StodSampleCSessionOwnershipAsyncQueryTimeFailure |
The query result event has been received however the result is an error |
StodSessionOwnershipSuccess |
The query result event has been received with a non error result |
StodSampleSessionOwnershipAsyncQueryTimeSuccess |
The query result event has been received with a non error result |
StodSessionOwnershipQuery |
The query has been sent |
StodSessionOwnershipNoDataFound |
The results of the query showed that there was no session in the database for session transfer |
StodFoundTrackedSession |
The session to transfer has been found in a database |
StodSavedSessionToTransfer |
The session to transfer returned non null and has been set into a session state variable |
Behaviour
The feature determines whether its invocation was due to a Session Transfer attempt, or response to such an attempt.
In the event that the trigger was a transfer attempt then the feature queries the Session Ownership Facility in order to determine the Session to Transfer.
This query uses the IMPU of the Served user as the AdditionalKey
for the query.
Once the feature has gathered the various Session Ownership Records for the Served User, it selects a Session To Transfer.
The first ACTIVE
session for the Served User is selected as the Session To Transfer and:
-
the
MMTelProceedWithStodTransfer
session state field is set to true -
it is saved into the
MMTelSessionToTransfer
session state field -
the
MMTelSessionTransferIsLocal
session state field is set to true if theOwnerURI
for the Session Ownership Record is the same as the executing node’s AS URI
If no ongoing sessions are found for Served User the feature:
-
responds to the Initial INVITE Request with a SIP 404 Not Found Response
-
sets the
MMTelProceedWithStodTransfer
session state field to false
Source
For source code information see MMTel Session Transfer Source Code.