This feature reads configuration and sets up triggers in the Sentinel SIP service, that will cause session replication to begin at certain points in a call.
Feature Cheat Sheet
Feature Script Name |
DetermineSessionReplication |
---|---|
Applicable Contexts |
SIP service |
Call-Type |
All |
Session Plan |
All |
Execution Point |
SipAccess_SessionStart and SubscriptionStart (in system pre-scripts) |
Network Operator Config |
Yes |
Subscriber Config |
None |
POJO or SBB |
POJO |
Feature FSMs |
None |
Feature Parameters |
None |
SAS Support |
No |
Prerequisite features |
None |
Feature Statistics
DetermineSessionReplication
statistics are tracked by the sentinel.sip
SBB and can be found under the following parameter set:
SLEE-Usage → sentinel.sip service ID → sentinel.sip SBB ID → feature.DetermineSessionReplication
Name | Type | Description |
---|---|---|
Started |
Counter |
Incremented when the feature is triggered. |
FailedToStart |
Counter |
Incremented when the feature fails to start. |
FailedDuringExecution |
Counter |
Incremented when the feature fails while executing. |
IssuedWarning |
Counter |
Incremented when the feature issues a warning. |
TimedOut |
Counter |
Incremented when the feature times out during execution. |
SessionReplicationDisabledForSession |
Counter |
Incremented when the feature determines that replication will never be enabled for the current session. |
ArmedReplicationTriggerOnSubscriptionUASLegs |
Counter |
Incremented when the feature sets up a replication trigger for subscription user-agent-server legs. |
ArmedReplicationTriggerOnSubscriptionUACLegs |
Counter |
Incremented when the feature sets up a replication trigger for subscription user-agent-client legs. |
ArmedReplicationTriggerOnInviteUASLegs |
Counter |
Incremented when the feature sets up a replication trigger for invite user-agent-server legs. |
ArmedReplicationTriggerOnInviteUACLegs |
Counter |
Incremented when the feature sets up a replication trigger for invite user-agent-client legs. |
ImmediateSessionReplicationEnableTriggered |
Counter |
Incremented when the feature immediately enables session replication for a session. |
Configuration
This feature reads configuration from the SipSessionReplicationConfigProfileTable
profile table.
Profiles in this table are named based on the Sentinel selection key that they should be applied to.
The profile specification for this table is sentinel-sip-session-replication-profile
.
Each profile in this table has four fields that are used to indicate the point in a call that session replication should begin.
Each of the four fields corresponds to a different type of leg.
The fields use Enums to define the points in the call that session replication can begin.
There are two different Enum types, one for legs initiated by SIP REFER
or SUBSCRIBE
requests, and one for legs initiated by INVITE
requests.
The four fields on the profiles are:
Field Name | Enum Type | Purpose |
---|---|---|
InviteUASLegReplicationTrigger |
InviteReplicationTrigger |
Determines the point in the signalling on a |
InviteUACLegReplicationTrigger |
InviteReplicationTrigger |
Determines the point in the signalling on a |
SubscriptionUASLegReplicationTrigger |
SubscriptionReplicationTrigger |
Determines the point in the signalling on a |
SubscriptionUASLegReplicationTrigger |
SubscriptionReplicationTrigger |
Determines the point in the signalling on a |
The possible values for each of the two different Enum types are outlined below.
InviteReplicationTrigger Enum
Enum Value | Description |
---|---|
DISABLED |
Replication start will never be triggered by a leg of this type. |
INITIAL_REQUEST |
Replication will begin as soon an initial INVITE request is seen on a leg of this type. |
PROVISIONAL_RESPONSE |
Replication will begin as a 18x response for the initial INVITE request is seen on a leg of this type. |
RINGING_RESPONSE |
Replication will begin when a 180 response for the initial INVITE request is seen on a leg of this type. |
SUCCESS_RESPONSE |
Replication will begin when a 2xx response for the initial INVITE request is seen on a leg of this type. |
ACK |
Replication will begin when an ACK for a 2xx response for the initial INVITE request is seen on a leg of this type. |
SubscriptionReplicationTrigger Enum
Enum Value | Description |
---|---|
DISABLED |
Replication start will never be triggered by a leg of this type. |
INITIAL_REQUEST |
Replication will begin as soon an initial SUBSCRIBE or REFER request is seen on a leg of this type. |
SUCCESS_RESPONSE |
Replication will begin when a 2xx response for the initial SUBSCRIBE or REFER request is seen on a leg of this type. |
Behaviour
This feature reads configuration data from the SipSessionReplicationConfigProfileTable
profile table, and uses it to set up triggers in the SIP service that will initiate session replication.
When reading from the profile table, the feature will select the profile that best matches the current Sentinel selection key.
The feature sets the triggers by setting special session state fields that are checked by the Sentinel SIP service when it hits key points in a call flow. If the service decides it has reached or passed the point in the call the the trigger corresponds to, it will instruct the Sentinel SIP Leg Manager to begin session tracking on all current and future legs (See External Session Tracking for details of how legs are tracked).
If the feature is unable to find any suitable profile for the current session, it will not set any triggers. This effectively disables session replication for the session.
Special Handling for Initial Request Triggers
There is special handling in the feature for user-agent-server legs that have an INITIAL_REQUEST
trigger.
If InviteUASLegReplicationTrigger
config is set to INITIAL_REQUEST
and the feature was triggered on an INVITE
request,
or SubscriptionUASLegReplicationTrigger
config is set to INITIAL_REQUEST
and the feature was triggered on an SUBSCRIBER
or REFER
request,
then the feature itself will immediately instruct the Leg Manager to begin session tracking, bypassing the need to wait for the service to do it.
Session Ownership Facility Availability
Before it attempts to read any configuration the feature will check whether the Rhino Session Ownership Facility is available on the node. If the feature determines that the session ownership facility is not available, it will skip loading config, and disable session replication for the session.