Description

Feature name

DetermineCallType

Applicable contexts

SIP service

Prerequisite Features

None

The Determine Call Type feature is a pre credit check feature early in the feature list (but always after the emergency number feature). The feature attempts to identify the call’s type, one of MobileOriginating, MobileTerminating, or MobileForwarded, which is stored in the CallType session state variable for future features.

Leg Manager inputs

Leg Name Type Format Description Behaviour if null/invalid

callingParty

InviteRequest

org.jainslee.resources.sip.SipRequest

See Easysip javadoc

INVITE received from (respectively, in the NetworkInitiated case, sent to) the calling party

Runtime exception handled by feature runner

Configuration

Parameters Type Description

additionalCallForwardingDetection

boolean

When true, additional parameters will be considered when distinguishing between MobileOriginating and MobileForwarded calls. (default: true)

Configuration feature naming

Configuration Profile Table Name Description Profile Naming

DetermineCallTypeConfigurationTable

Sentinel configuration table

SentinelSelectionKey (for example, OpenCloud::::)

Session state inputs and outputs

Outputs

Name Type Format Description

CallType

com.opencloud.sentinel.common.CallType

One of: MobileOriginating, MobileTerminating, MobileForwarded, NetworkInitiated, EmergencyCall

Session type of this call

Statistics

Statistic When incremented

Started

The feature is invoked.

FailedToStart

The feature fails to start.

IssuedWarning

The feature encounters a non-fatal error and alerts the core.

FailedDuringExecution

The feature encounters any fatal error and alerts that core.

TimedOut

The feature fails to complete execution within the allowable time frame.

CallTypeIsMobileOriginating

The feature determines that the call type is MobileOriginating.

CallTypeIsMobileTerminating

The feature determines that the call type is MobileTerminating.

CallTypeIsMobileForwarded

The feature determines that the call type is MobileForwarded.

Error scenarios

Scenario Handling

Failed to get INVITE request from calling party leg

Report featureCannotStart

Insufficient information to determine call type

Report featureFailedToExecute

Feature responses

Response Reason

featureCannotStart

CallingParty leg InviteRequest has not been set

featureFailedToExecute

Call type could not be determined

featureHasFinished

feature has finished

Behaviour

The call’s session type is classified as one of:

  • MobileOriginating

  • MobileTerminating

  • MobileForwarded

A CallType enum is defined to represent the values, and the session type is stored in session state variable CallType.

The feature uses either one of two headers on an incoming SIP request to determine the call type: P-Served-User and Route. The P-Served-User header is the preferred source of information. The Route header is only checked if the call type cannot be determined from the P-Served-User header.

P-Served-User Header

There are two parameters of interest on the P-Served-User header.

The first is a valueless orig-cdiv parameter, if this is present the call type will be classified as MobileForwarded. Otherwise, the feature will look for the sescase parameter, the value of that parameter will determine the call type as follows:

Parameter Value Resulting Call Type

orig

MobileOriginating or MobileForwarded (see Additional Call Forwarding Detection below)

term

MobileTerminating

orig-cdiv

MobileForwarded

If none of these parameters or values are present, the feature will check the Route header instead.

Route Header

The feature always looks at the top-most route header of the incoming message. It will look for the following valueless parameters on the header to determine the call type:

Parameter Name Resulting Call Type

orig

MobileOriginating or MobileForwarded (see Additional Call Forwarding Detection below)

term

MobileTerminating

orig-cdiv

MobileForwarded

If none of these parameters or values are present, the feature will use the default call type: MobileTerminating.

Additional Call Forwarding Detection

When a parameter on the P-Served-User or Route header indicates the call type is MobileOriginating and the AdditionalCallForwardingDetection config option is set to true, the feature will execute additional checks to determine if the call has been forwarded.

There two additional checks, one on the Request-URI the other on the History-Info header. The call type will be determined to be MobileForwarded if either one of the following conditions are met:

  1. The Request-URI has a cause parameter with one of the following values: 302, 404, 408, 480, 486, 487, 503.

  2. There is a History-Info header present on the request.

If neither condition is met, the call type will be determined to be MobileOriginating.

Previous page Next page
Sentinel Express Version 2.7.0