Purpose

This session plan is triggered for a Voice session initiated via 3rd party call setup. Sentinel provides an HTTP interface for 3rd party call setup, so this session plan is triggered on receipt of an HTTP GET or HTTP POST request.

Feature Endpoint API

sentinel-sip-spi (SentinelSipMultiLegFeatureEndpoint)

The following diagram is a visual representation of the session plan. It shows:

  • the points-in-session where Sentinel will search for a feature execution script to run (the green boxes)

  • the most important points where Sentinel will make a decision about how the session should be processed further (the grey diamonds)

  • the points where Sentinel will delegate to the mediation layer to interact with an OCS (the blue mediation boxes) — see Session plans for the Mediation Layer for more details.

The session plan is multi-leg aware; for example, within a multi-leg communication session, some of the feature script execution points may be run within the context of a particular ‘leg’. The points-in-session for this session plan are described in detail below the diagram.

sip http session plan
Figure 1. Session Plan for Third Party Call Setup Request via HTTP

Feature script execution points

Below are details of these points-in-session:

Note

For feature script execution points available in the mediation layer (the dark blue box) see: Sentinel Mediation Layer.

The feature endpoint for all sip execution points is SentinelSipMultiLegFeatureEndpoint

On initial trigger …​

The three major tasks Sentinel does on the first message of a new session (the initial trigger) are:

  • decide if the new session should be accepted for processing

  • if the new session is accepted, analyse the initial trigger and classify the session

  • do an initial credit check by querying the OCS for this session.

Should the session be accepted?

Point in session Execution point name Trigger object Trigger activity

Session Accept

SipThirdPartyAccess_SessionAccept

HttpRequest (Event)

IncomingHttpRequestActivity

Session Start

SipThirdPartyAccess_SessionAccept

HttpRequest (Event)

IncomingHttpRequestActivity

Suggested role/purpose of features that run at this feature script execution point

Features that run at this execution point should analyse properties of the incoming HTTP request and determine if the request for a third-party session setup should be accepted, or rejected. Properties of the HTTP request can also be used to determine the network operator. If the session is accepted, then Sentinel generates an INVITE that corresponds to HTTP request. Subsequent features run within the context of the INVITE.

…​ analyse the initial trigger …​

Point in Session Execution Point Name Trigger Object Trigger Activity

Network Check

SipThirdPartyAccess_NetworkPreCreditCheck

HttpRequest (Event)

IncomingHttpRequestActivity

Session Check

SipThirdPartyAccess_SessionPreCreditCheck

HttpRequest (Event)

IncomingHttpRequestActivity

Subscriber Check

SipThirdPartyAccess_SubscriberCheck

HttpRequest (Event)

IncomingHttpRequestActivity

Suggested role/purpose of features that run at this feature script execution point

Features that run at this execution point should analyse the INVITE and classify this session. The three execution points allow you to select feature execution scripts in phases, as you further classify details of the session. For example: the first execution point can select a feature execution script that is particular to the network operator; the next execution point can select a feature execution script that is particular to the session type; and the last execution point can select a feature execution script that is particular to the plan and subscription ids.

…​ take actions based on the outcome of the initial credit check …​

Point in Session Execution Point Name Trigger Object Trigger Activity

Initial Credit Allocated

SipAccess_CreditAllocatedPostCC

CCA

SipSession

Initial Credit Limit Reached

SipAccess_CreditLimitReachedPostCC

CCA

SipSession

Initial Control Not Required

SipAccess_ControlNotRequiredPostCC

CCA

SipSession

Initial Control Failure

SipAccess_OCSFailurePostCC

CCA

SipSession

Initial Control Reauthorise

SipAccess_ChargingReauth

RAR

SipSession

Initial Control Abort

SipAccess_ChargingAbort

ASR

SipSession

Suggested role/purpose of features that run at this feature script execution point

Features that run at this execution point should decide what will happen to this session based on the outcome of the initial credit check.

Monitoring the session …​

Sentinel monitors the session by exchanging messages with the S-CSCF and updating the credit allocated for this session with the OCS. Feature script execution points within the session monitoring phase play two roles:

  • execution points that are charging-centric (left-hand side). These feature script execution points run when the session needs more charging.

  • execution points that are signalling-centric (right-hand side). These feature script execution points run for SIP messages on each leg in a multi-leg session.

…​ take actions based on the outcome of an update credit check …​

Point in Session Execution Point Name Trigger Object Trigger Activity

Mid Session Credit Allocated

SipMidSession_CreditAllocatedPostCC

CCA

SipSession

Mid Session Credit Limit Reached

SipMidSession_CreditLimitReachedPostCC

CCA

SipSession

Mid Session Control Failure

SipMidSession_OCSFailurePostCC

CCA

SipSession

Mid Session Control Reauthorise

SipMidSession_ChargingReauth

RAR

SipSession

Mid Session Control Abort

SipMidSession_ChargingAbort

ASR

SipSession

Mid Session Credit Finalised

CreditFinalised

CCA

SipSession

Suggested role/purpose of features that run at this feature script execution point

Features that run at this execution point should decide what will happen to this session based on the outcome of an update credit check.

…​ as each leg is set up …​

Point in session Execution point name Trigger object Trigger activity

Setup Sip Request

SipAccess_PartyRequest

SipRequest

SipSession

Setup Sip Response

SipAccess_PartyResponse

SipResponse

SipSession

Suggested role/purpose of features that run at this feature script execution point

Features that run at this execution point should decide what will happen as a new leg in a multi-leg session is set up.

…​ as each leg continues …​

Point in session Execution point name Trigger object Trigger activity

Mid Session Sip Request

SipMidSession_PartyRequest

SipRequest

SipSession

Mid Session Sip Response

SipMidSession_PartyResponse

SipResponse

SipSession

Suggested role/purpose of features that run at this feature script execution point

Features that run at this execution point should decide what will happen to this leg, and the multi-leg session, as the leg proceeds.

…​ on a SUBSCRIBE request …​

Point in session Execution point name Trigger object Trigger activity

Subscription Request

SubscriptionSipRequest

SipRequest

SipSession

Subscription Response

SubscriptionSipResponse

SipResponse

SipSession

Suggested role/purpose of features that run at this feature script execution point

Features that run at these execution points should decide what will happen to this leg, its usages, charging, and the multi-leg session, as the leg proceeds.

…​ on an out-of-dialog SIP transaction …​

Point in session Execution point name Trigger object Trigger activity

Transaction Request

SipTransaction_Request

SipRequest

SipSession

Transaction Response

SipTransaction_Response

SipResponse

SipSession

Suggested role/purpose of features that run at this feature script execution point

Features that run at these execution points should decide what will happen to this leg, its usages, charging, and the multi-leg session, as the leg proceeds.

…​ …​ as each leg ends

Point in session Execution point name Trigger object Trigger activity

Leg End

SipLegEnd

LegEndEvent

SipSession

Suggested role/purpose of features that run at this feature script execution point

Features that run at this execution point should decide what will happen as the leg ends.

Ending the session …​

A session may end for many reasons (a subscriber hangs up a call, there is no credit and so on).

…​ on session end

Point in Session Execution Point Name Trigger Object Trigger Activity

End Session

SipEndSession

EndSessionEvent

SipSession

Suggested role/purpose of features that run at this feature script execution point

Features that run at this execution point may inject behaviour, such as sending notifications, when a session ends.

At any time …​

There are a number of feature script execution points that may be triggered at ant time within the lifetime of a session.

As timers expire

Point in Session Execution Point Name Trigger Object Trigger Activity

Service Timer

SipAccess_ServiceTimer

TimerEvent

NullActivity

Suggested role/purpose of features that run at this feature script execution point

Service timers that are not configured to invoke a feature directly trigger this feature script execution point. Features that run at this execution point should decide what will happen to this session when the service timer expires.

Tip See Sentinel Service Timer Provider for more details.

If instruction execution fails

Point in Session Execution Point Name Trigger Object Trigger Activity

Instruction Execution Failure

SipInstructionExecutionFailure

InstructionExecutionFailedEvent

SipSession

Suggested role/purpose of features that run at this feature script execution point

Features that run at this execution point should decide what will happen to this session when a Leg or Charging Manager instruction failed to execute successfully.

As extension events are processed

Point in Session Execution Point Name Trigger Object Trigger Activity

Feature Extension Event

SipAccess_FeatureExtentionEvent

Object

Extension Activity

Suggested role/purpose of features that run at this feature script execution point

Features that are invoked directly by Sentinel run in the context of the this feature script execution point.

Tip See Sentinel Feature Extension Events and Sentinel Service Timer Provider to learn how a feature can be invoked directly.
Previous page Next page