SetOcsAnnouncementID schedules configurable announcements to the subscriber based on Credit-Control-Answers

The feature schedules charging announcements as defined by TS 32.281 as well as announcements for out-of-credit (4012 CCA result code), low balance (Low-Balance-Indicator AVP), and for custom OC-Play-Announcement-Id AVPs.

The feature runs on every successful and 4012 credit check result and analyses the CCA for announcement triggers:

  • Multiple-Services-Credit-Control AVP containing Announcement-Information AVP;

  • OC-Play-Announcement-Id AVP;

  • low balance AVP; or

  • result code 4012.

If the CCA contains such a trigger then the feature schedules the relevant announcement either immediately or on a timer relative to quota exhaustion. The feature is able to schedule multiple announcements to be played.

The feature also runs on each party request for a terminating call to determine whether the session has been established and so if a reauthorization request should be triggered or whether any timers should be set relative to quota exhaustion to start announcements. The feature runs on timer expiry to start any announcements that were scheduled on timers.

Feature cheat sheet

B2BUA Instance SAS Support Originating / Terminating Point(s) in Session Plan Network Operator Data Subscriber Data Stateful or Stateless POJO Feature or SBB Feature Other notes

MMTEL.

Yes

Originating, Forwarding, and Terminating

SipAccess_PartyRequest SipAccess_ServiceTimer SipAccess_CreditAllocatedPostCC SipMidSession_CreditAllocatedPostCC SipAccess_CreditLimitReachedPostCC SipMidSession_CreditLimitReachedPostCC

Yes

No

Stateless

POJO

Behaviour

Announcements requested in the Announcement-Information AVP are played in preference to other announcements. Announcements requested in the OC-Play-Announcement-Id AVP are played if no Announcement-Information announcements are present and configured announcement IDs for out-of-credit (4012 CCA result code) or low balance (Low-Balance-Indicator AVP) are only played if no Announcement-Information or OC-Play-Announcement-Id AVPs were present.

Call phase Announcement-Information AVP Low Balance Indicator AVP 4012 Out-of- Credit Behaviour

Early media

Present

Not present

Not present

Charging announcement played, call continues

Early media

Present

Present

Not present

Charging announcement played, call continues (configured low balance announcement not played)

Early media

Present

Not present

Present

Charging announcement played, call ends

Early media

Not present

Present

Not present

Low balance feature configured announcement played, call continues

Early media

Not present

Present

Present

Out of credit feature configured announcement played, call ends

Mid call

Present

Not present

Not present

Charging announcement played, call continues

Mid call

Present

Present

Not present

Charging announcement played, call continues (configured low balance announcement not played)

Mid call

Present

Not present

Present

Charging announcement played, call ends

Mid call

Not present

Present

Not present

Low balance feature configured announcement played, call continues

Mid call

Not present

Present

Present

Out of credit feature configured announcement played, call ends

Announcements for terminating user

It is not possible to play announcements to the terminating subscriber after the initial credit check as the session has not yet been established. Announcements requested by Announcement-Information AVPs to be played to the terminating party in the initial credit check are not played. If other announcements were requested when running as a terminating instance then a reauthorization request will be sent once the session is established. Any announcements in the response to this subsequent reauthorization request will be played. The reauthorization request can be delayed for a number of milliseconds using the ChargingReauthDelayMillis configuration field.

Mid call announcements to the terminating subscriber will be played immediately.

Charging Announcements

The Announcement-Information AVP and its child AVPs were introduced in 3GPP Rel. 13 but Sentinel does support receiving them in Rel. 12.

Child AVP Behaviour
Announcement-Identifier

Contains the ID for the announcement. This must be present and non-zero.

Variable-Part

Ignored

Time-Indicator

If present and non-zero a timer will be set relative to quota exhaustion and the announcement scheduled on timer expiry. If zero the announcement will be scheduled once the quota is exhausted and the call ended. If a credit check occurs before the timer fires or quota is exhausted then the announcement will not be played. An announcement with Time-Indicator 0 will only be played if the CCA contained a Final-Units-Indication AVP.

Quota-Indicator

If present this determines whether the user will be charged for the announcement. If not present, local announcement configuration will be used instead. This is ignored for early media announcements.

Announcement-Order

If multiple announcements are set in the CCA this should be used to order them.

Play-Alternative

If present determines whether the announcement should be played to the served or remote user. If not present the announcement will be played to the served user. If multiple announcements are present only announcements to the party with the lowest Announcement-Order will be played.

Privacy-Indicator

Ignored. The announcement is only to the requested party.

Language

If present this will be used in the request to the MRF, otherwise the determined language will be used.

Low Balance Announcements

If the LowBalanceIndicator AVP is set in a successful CCA-I or CCA-U then a low balance announcement will be played (either configured or via the OC-Play-Announcement-Id-AVP) and a session state field is set to mark that a low balance announcement has been played. Subsequent credit checks will not trigger another low balance announcement unless the previous credit check response did not have the LowBalanceIndicator AVP set.

Out of Credit Announcements

If a credit check response contains a 4012 result code then:

  • For early originating sessions, the feature will schedule the configured early dialog announcement if an announcement was not supplied in the CCA and then end the session with the appropriate sip error response according to the CCA result code.

  • For early terminating and forwarding sessions, the feature will not schedule an announcement and will end the session with a 480 Temporarily Unavailable response.

  • For confirmed originating and terminating sessions, the feature will schedule the configured mid session announcement if an announcement was not supplied in the CCA and then end the session.

Session state input variables

Attribute Name Type
LatestOcsAnswer

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

LegForCdrs

String

CallType

com.opencloud.sentinel.common.CallType

LowBalanceReauthTimerId

javax.slee.facilities.TimerID

Session state output variables

Attribute Name Type Description
EarlyMediaAnnouncementInfoQueue

List

A List of early dialog announcements to play, if any

MidCallAnnouncementInfoQueue

List

A list of the mid call announcements to play, if any

EndSessionAfterAnnouncement

int

The Sip response error code for the SipPlayAnnouncement feature to use on endSession.

EndSessionWithAnnouncement

boolean

Set to true if session should end after announcement is played.

MidCallAnnouncementPlayedParty

String

Leg name indicating which party the announcement will be played to

MidCallEndSessionWithAnnouncement

boolean

Set to true if session should end after announcement is played.

UserEndSessionCause

int

The Sip response error code to use on endSession, if applicable.

LowBalanceAnnouncementPlayed

boolean

Set to true when a low balance announcement has been scheduled. Set to false when a CCA is received without a Low-Balance-Indicator AVP.

OcsAnnouncementPlayed

boolean

Set to true when OC-Play-Announcement-Id announcements have been scheduled. Set to false when a new CCA is received.

AnnouncementTimersMapping

Map

A map of TimerID to the SipAnnouncementInformation to be scheduled on the timer firing.

AnnouncementTimersPostponed

Boolean

Set to true if the initial CCA requested an announcement to be played on a timer.

Configuration

SetOcsAnnouncementID uses two JSLEE configuration profile tables: LowBalanceAnnouncementConfigProfileTable and SetOutOfCreditAnnouncementIDConfigProfileTable.

Attribute Name Profile Table Type Description
EarlyDialogLowBalanceAnnouncementID

LowBalanceAnnouncementConfigProfileTable

int

The ID of the early dialog announcement to play, if any

MidSessionLowBalanceAnnouncementID

LowBalanceAnnouncementConfigProfileTable

int

The ID of the mid call announcement to play, if any

ChargingReauthDelayMillis

LowBalanceAnnouncementConfigProfileTable

long

When a terminating call is ACKed and the latest CCA indicates a low balance, a delayed credit check will be performed to postpone playing an announcement. The reauth will be delayed by the amount specified here (0 triggers an immediate reauth.) This allows time for the ACK to propagate through the network to ensure the played party is fully connected before triggering the announcement after receiving another CCA-U with low balance indicator.

OutOfCreditAnnouncementID

SetOutOfCreditAnnouncementIDConfigProfileTable

int

The ID of the early dialog announcement to play, if any

MidSessionOutOfCreditAnnouncementID

SetOutOfCreditAnnouncementIDConfigProfileTable

int

The ID of the mid call announcement to play, if any

Statistics

SetOcsAnnouncementID statistics are tracked by the SetOcsAnnouncementID feature and can be found under the following parameter set:
SLEE-Usage ▶ sentinel.volte.sip service ID ▶ sentinel.volte.sip SBB ID ▶ SetOcsAnnouncementID.

Name Type Description
Started

Counter

Incremented each time the feature runs.

FailedToStart

Counter

Incremented when Sentinel VoLTE encounters an error while attempting to start the feature.

IssuedWarning

Counter

Incremented when a non-fatal problem is encountered and the feature issues a warning.

FailedDuringExecution

Counter

Incremented when a fatal problem is encountered and the feature cannot execute correctly.

TimedOut

Counter

Incremented when the feature takes too long to complete and Sentinel VoLTE aborts execution.

InvalidExecutionPoint

Counter

Incremented whenever the feature is invoked in an invalid execution point. Indicates misconfigured feature scripts.

IgnoringRepeatLowBalance

Counter

The feature will not trigger a second announcement for ongoing low balance indicators.

ClearLowBalancePlayed

Counter

If a CCA is received with no low balance indicator, any subsequent low balance will trigger another announcement.

StartReauthTimer

Counter

Incremented when a terminating call is ACKed but the latest CCA indicates an announcement is requested.

LowBalanceReauthTimerEventReceived

Counter

Incremented whenever a reauthorization timer event is received.

DoCreditReauth

Counter

Incremented whenever the feature issues a credit reauth.

ScheduledOcPlayAnnouncementId

Counter

Incremented whenever an OC-Play-Announcement-Id announcement is enqueued.

EarlyDialogLowBalanceAnnouncementIDSet

Counter

Incremented whenever a configured early media Low Balance Announcement ID is enqueued.

MidSessionLowBalanceAnnouncementIDSet

Counter

Incremented whenever a configured mid call Low Balance Announcement ID is enqueued.

EarlyDialogOutOfCreditAnnouncementIDSet

Counter

Incremented whenever a configured early media Out of Credit Announcement ID is enqueued.

MidSessionOutOfCreditAnnouncementIDSet

Counter

Incremented whenever a configured mid call Out of Credit Announcement ID is enqueued.

EndSessionCauseSet

Counter

Incremented whenever a session is terminated due to running out of credit.

NoOutOfCreditAnnouncementID

Counter

Incremented whenever an early media Out of Credit Announcement cannot be played as there is no configured announcement ID.

NoMidSessionOutOfCreditAnnouncementID

Counter

Incremented whenever a mid call Out of Credit Announcement cannot be played as there is no configured announcement ID.

UnableToDetermineEndSessionCause

Counter

Incremented whenever the end of session cause code could not be determined.

MissingLegForCdrs

Counter

Incremented whenever the leg to play announcements too could not be determined.

ScheduledAnnouncementInformation

Counter

Incremented whenever an Announcement-Information AVP announcement is scheduled.

Provisioning interfaces

The feature is provisioned using the Sentinel REST API or web interface.

Previous page Next page
Sentinel VoLTE Public Version 2.9.0