SetOcsAnnouncementID schedules configurable announcements to the subscriber based on indicators in OCS answers
The feature enqueues OCS announcements for out-of-credit (4012 CCA result code), low balance (Low-Balance-Indicator AVP) and general use (OC-Play-Announcement-Id) including welcome announcements.
The feature runs on every credit check result and checks if the CCA meets certain criteria (i.e.presence of OC-Play-Announcement-Id
AVP, low balance AVP or on 4012 result). If the CCA matches the criteria the feature schedules announcements based off of them. 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.
Feature cheat sheet
B2BUA Instance | Originating / Terminating | Point(s) in Session Plan | Network Operator Data | Subscriber Data | Stateful or Stateless | POJO Feature or SBB Feature | Other notes |
---|---|---|---|---|---|---|---|
Both or either of MMTEL or SCC. |
Originating, Forwarding, and Terminating |
|
Yes |
No |
Stateless |
POJO |
Behaviour
Announcement IDs set in the OC-Play-Announcement-Id AVP are always played. Configured announcement IDs for out-of-credit (4012 CCA result code) or low balance (Low-Balance-Indicator AVP) are only played if no OC-Play-Announcement-Id AVPs were present.
Call phase |
OC-Play-Announcement-Id-AVP |
Low Balance Indicator AVP |
4012 Out-of- Credit |
Behaviour |
Early media |
Present |
Not present |
Not present |
OCS announcement played, call continues |
Early media |
Present |
Present |
Not present |
OCS announcement played, call continues (configured low balance announcement not played) |
Early media |
Present |
Not present |
Present |
OCS 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 |
OCS announcement played, call continues |
Mid call |
Present |
Present |
Not present |
OCS announcement played, call continues (configured low balance announcement not played) |
Mid call |
Present |
Not present |
Present |
OCS 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 calls
It is not possible to play announcements to the terminating subscriber after the initial credit check as the session has not yet been established. If the initial credit check requested announcements 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.
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 |
Session state output variables
Attribute Name | Type | Description |
---|---|---|
AnnouncementID |
int |
The ID of the early dialog announcement to play, if any |
EarlyMediaAnnouncementQueue |
List |
A List of early dialog announcements to play, if any |
MidCallAnnouncementId |
int |
The ID of the mid call announcement to play, if any |
MidCallAnnouncementQueue |
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 |
OcsAnnouncementPlayed |
boolean |
Set to true when |
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 ▶ volte.sentinel.sip service ID ▶ volte.sentinel.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. |
TimerEventReceived |
Counter |
Incremented whenever a ChargingReauthDelay timer event is received. |
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. |