The STODDetermineTargetSession feature Reads STOD tracking information out of a database and sets it into the session state for processing by External Session Tracking features. .
Feature Cheat Sheet
B2BUA Instance | Originating / Terminating | Point(s) in Session Plan | Network Operator Data | Subscriber Data | Stateful or Stateless | POJO Feature or SBB Feature | Other notes |
---|---|---|---|---|---|---|---|
Stod |
Originating |
|
Yes |
Yes - subscriber data is from the HSS |
Statefull |
SBB Feature |
Requires other features in STOD to work |
Service Description
The STODDetermineTargetSession feature uses the session tracking information stored in an CQL database to set a session state field. The session state field is used in other features to get the ACI of the session that was tracked.
Prerequisites
-
The subscriber has to have the STOD service enabled (see MMTelStodEnabled)
-
The special number has to be configured in the AS (see DetermineVoltePlanId)
-
See the MMTelStodEnableSessionTracking for the Session Tracking
-
Session tracking information must have been written to the database 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 |
SessionTrackingCassandraSessionACI |
Complex |
get the ACI for session tracking |
ASURI |
String |
Insert the application server Uri into the session state |
Session Output Variables
Session State variable name | Type | Comments |
---|---|---|
MMTelDetermineTransferableSetQueryTime |
long |
Set the time for the initial invocation |
MMTelIsNewCassandraSession |
boolean |
Is it a new Cassandra session |
MMTelSessionToTransfer |
Complex |
Insert the session tracking information into the Session State |
MMTelAccessTransferIsLocal |
boolean |
Set whether the access transfer is local |
Statistics
Name |
Incremented when… |
StodDetTargetSessionInvoked |
The feature has started |
StodCassandraTimeout |
The query result event has been received however the result is an error and the error is a time-out |
StodCassandraError |
The query result event has been received however the result is an error |
StodSampleCassandraAsyncQueryTimeFailure |
The query result event has been received however the result is an error |
StodCassandraSuccess |
The query result event has been received with a non error result |
StodSampleCassandraAsyncQueryTimeSuccess |
The query result event has been received with a non error result |
StodCassandraQueried |
The Cassandra query has been sent |
StodCassandraNoDataFound |
The results of the Cassandra 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
When the feature is invoked, We determine whether the invocation was for a transfer attempt or the response to a transfer attempt. In the event that the trigger was a transfer attempt then there is an asynchronous query to the Cassandra database for the tracked session information. Otherwise if the trigger was for the result of a Cassandra query we process it and exit. If an existing session is found for the served user, the target session is set to that dialog. If not the feature answers with a Sip Response 404 Not Found.
Source
For source code information see MMTel Session Transfer Source Code.