Description

Feature name

EndSession

Applicable contexts

SIP service

Prerequisite Features

None

Sentinel initial trigger feature to notify the Sentinel core to end the call. Supports ‘sip_trigger’, ‘http_trigger’ and ‘sipcall’ session types. When notifying the core the cause code is determined according to the following pseudo-code:

    FUNCTION determineCauseCode()

        // an error set by another feature takes highest precedence
        cause = sessionState.getUserEndSessionCause()
        IF cause IS SET
            return cause

        // otherwise try to determine the release cause from the latest CCA
        cause = determineCauseFromCCA(sessionState.getLatestOcsAnswer())
        IF cause IS SET
            return cause

        // otherwise use a default
        return SipResponse.SC_FORBIDDEN


    FUNCTION determineCauseFromCCA(cca)

        //if there was no CCA, we cannot determine a code from there; CALL_REJECTED will be set
        if cca IS UNSET
            return null

        SWITCH (cca.getResultCode())
            CASE DiameterCcaResultCode.DIAMETER_USER_UNKNOWN
                return SipResponse.SC_NOT_FOUND
            CASE DiameterCcaResultCode.DIAMETER_CREDIT_LIMIT_REACHED
                return SipResponse.SC_PAYMENT_REQUIRED
            CASE DiameterResultCode.DIAMETER_SUCCESS
                return determineCauseFromMscc(cca)
            DEFAULT
                return SipResponse.SC_FORBIDDEN

Session state inputs and outputs

Inputs

Name Type Format Description Behaviour if null/invalid

SessionType

com.opencloud.sentinel.common.SessionType

One of: sip_trigger, http_trigger, sipcall

Session type of this call for choosing how to determine cause code from LatestOcsAnswer

Report featureFailedToExecute, featureHasFinished

UserEndSessionCause

Integer

Any release code

A pre-determined release cause

Attempt to determine cause from LatestOcsAnswer

LatestOcsAnswer

org.jainslee.resources.diameter.ro.types.CreditControlAnswer

Credit-Control-Answer

For determining release cause code if the UserReleaseCause is not set

Use default call release cause SC_FORBIDDEN

Outputs

This feature does not modify session state.

Error scenarios

Scenario Handling

SessionType is not supported

Report featureFailedToExecute

Feature responses

Response Reason

featureFailedToExecute

Invalid session type

endSession Instruct

sentinel core to end the session and report cause

featureHasFinished

feature has finished

Configuration

End Session cannot be configured.

Previous page Next page
Sentinel Express Version 2.7.0