Supported Playback Scenarios

This section provides call flows for playback scenario triggers supported by the SBC. When more than one trigger applies to a call flow, the SBC acts on the trigger configuration closest to the playback endpoint.

Supported Playback Scenarios when using Transcoding-based media generation

These scenarios are defined by the ringback-trigger parameter you configure for session agents, realms, and SIP interfaces:

  • none: The SBC does not perform local media playback procedures for this configuration. Based on precedence, however, the SBC may issue playback based on other element configurations. Local media playback follows the precedence session-agent, realm, then sip-interface.
  • disabled: The SBC does not perform media playback procedures on this flow, regardless of ensuing configurations.
  • 180-no-sdp: The SBC starts local media playback to the caller when a 180 is received without SDP, and a 18x with SDP has not yet been received. The SBC stops the playback:
    • On the final response, or
    • When the SBC receives an UPDATE with SDP from the callee.
  • 180-force: The SBC starts local media playback to the caller when a 180 is received regardless of whether it includes SDP. The SBC stops the playback:
    • On the final response, or
    • When the SBC receives an UPDATE with SDP from the callee.
  • 183: The SBC starts local media playback to caller when 183 is sent to call originator. The SBC stops the playback on the final response (either 2xx success or 4xx error). Configure this 183 value on the original INVITE ingress realm/sip-interface/session-agent.
  • refer: The SBC starts local media playback to the referee when it receives a REFER. This trigger operates only if the SBC actually terminates and performs the refer operation. If the REFER is via proxy, playback is not a triggered. Playback stops when the refer operation is complete with a final response (200-299 or 400-699). Configure this refer value on the ingress realm/sip-interface/session-agent of the transferred call.
  • 183-and-refer: The SBC starts local media playback when both 183 and refer triggers are activated.
  • playback-on-header: The SBC starts or stops playback based on the presence of the P-Acme-Playback header and its definitions.

The SBC also uses transcoding resources when playing media files for network announcements according to your error-announcement-map and announcement-on-error configurations.

Supported Playback Scenarios for Network Announcements

The SBC supports network announcements, which also use transcoding resources, in the following scenarios:

  • Transcoded calls: For calls that will be transcoded, the DSP resources are allocated at the INVITE stage. The SBC uses these resources for the announcement.
  • Nontranscoded calls: For calls that will not be transcoded, there are no existing DSP resources to use. The SBC allocates the appropriate DSP resources to play the announcement, then releases them. This does not require transcoding-related codec-policy configuration (similar to standard local media playback.)
  • Early media: The SBC supports announcements in early-media flows.

    If media negotiation is not complete when the error response arrives (such as when the 18x response does not include SDP or when the error arrives before the 18x response), the SBC injects SDP toward the caller to establish the media for the announcement, selecting a codec according to the ingress and egress codec policies.

  • RBT: If the SBC is already playing other local media, such as RBT, when a configured error response arrives, the SBC stops the RBT playback and plays the announcement using the negotiated media parameters.
  • SIP response maps: The SBC applies any configured sip-response-map before selecting the appropriate announcement file. For example, if the sip-response-map maps a 400 error to 405, then SBC uses the 405 code when checking the error-announcement-map.
  • Local response maps: Because the SBC does not play network announcements in response to locally-generated errors, including diameter errors, any configured local-response-map has no impact on network announcements.
  • SIPI interworking: For SIP-I calls, the SBC can use both SIP response codes and encapsulated Q.850 cause codes to select announcement files. This lets you differentiate announcements for the same SIP response based on ISUP release causes.
    • In SIPI to SIP calls, the SBC encapsulates the SIP response from the callee in an ISUP body, and uses the subsequent combination of the SIP response and Q.850 cause code to select the appropriate playback file.
    • In SIP to SIPI calls, the SBC removes the encapsulated ISUP body from the error response, and uses only the SIP code to select the appropriate playback file.
  • Redirection, serial forking, and recursion: If the SIP request is redirected (with a 3xx), forked, or proxied to a string of locations, the SBC saves and refreshes media flows whenever it send the SDP answer to the caller, but waits for the final error in the chain before determining and playing the appropriate playback file. If multiple errors are received from forked endpoints, the best error response is selected based on the current SBC behavior.
  • Transfers:
    • In attended transfers, because the transfer is considered a new call, if the transferring party has announcement-on-error enabled, and the transfer target responds with an error, the SBC plays announcements toward the transferring party.
    • In unattended transfers, because the transfer is not considered a new call, the SBC does not play announcements.
  • Hairpin: As for standard local media playback, if hairpinning results in multiple playback triggers, the SBC uses the media configured closest to the destination.
  • Mutiple m-lines: As for standard local media playback, if multiple audio m-lines or mixed m-lines appear, the SBC uses the first audio m-line.
  • PRACK and UPDATE: If the caller sends an UPDATE or a PRACK while the announcement is playing, the SBC responds appropriately (either 200OK or 488 Not Acceptable Here, depending on the SDP scenario), and continues playing the announcement.
  • CANCEL and BYE:
    • If the caller sends a CANCEL or a BYE and the callee responds with a 200OK, then sends an error, the SBC does not play the announcement. The 200OK is considered final.
    • If the caller sends a CANCEL or a BYE and the callee sends an error, then sends the 200OK, the SBC plays the announcement, forwards the 200OK, and then forwards the error to the caller.
    • If the caller sends a CANCEL or BYE while the announcement is playing, the SBC stops the announcement, responds with a 200OK, then forwards the error to the caller. Because the call is already finalized from the callee perspective, the the SBC does not send a CANCEL or BYE to the callee.

Note:

A representative subset of these scenarios are depicted in the call flows below.

Supported Playback Scenarios when using SPL

These scenarios are defined by the SPL options parameters you configure for realms, session agents, and SIP interfaces. These differ slightly from the transcoding method, but support the same types of event for triggers.

For more information about configuring these options, see documentation on the Session Plug-in Language (SPL).

  • playback-on-183-to-originator: Playback enabled upon the receipt of a 183 Session Progress destined for the originator and stops when a either a (200-299 or 400-699) final response is sent.
  • playback-on-183-from-terminator: Playback enabled upon the receipt of a 183 Session Progress response is received from the terminator and stops when a (200-299 or 400-699) final response is received.
  • playback-on-refer: Playback enabled for the caller being transferred when the SBC receives a REFER message that is locally terminated (i.e., processed on the SBC on REFER completion).
  • playback-on-header: Starts or stops playback based on the presence of the P-Acme-Playback header and its definitions.

    Note:

    The SBC supports a maximum of 100 simultaneous playbacks when configured using the SPL method.

Playback on 180-no-sdp

The call flow below shows local media playback injecting RBT. The applicable configuration sets the ingress realm's ringback-trigger to use 180-no-sdp. This scenario triggers only for 180 responses to initial INVITEs, not for re-INVITEs.

Injecting ring back tone using the 180-no-sdp trigger.

Playback on 180-force

The call flow below shows local media playback injecting RBT. The applicable configuration sets the ingress realm's ringback-trigger to use 180-force. This scenario triggers only for 180 responses to initial INVITEs, not for re-INVITEs.

Injecting ring back tone using the 180-force trigger

Playback on REFER

Setting the SPL options parameter to playback-on-refer or the ACLI playback-trigger parameter to refer (or 183-and-refer) enables a REFER message to trigger playback. You configure this for the realm, session agent, or SIP interface for the transferrer, not for the transferee or the REFER target.

The REFER scenario requires that the Oracle Communications Session Border Controller performs local REFER termination, i.e., that it terminates the REFER locally. The SPL options you configure do not implement this behavior: You must configure local REFER termination separately. Proxying a REFER message is not a trigger.

Playback begins when the Oracle Communications Session Border Controller receives the REFER message, and stops when the REFER operation is deemed complete with a final response (200-299 or 400-699).

Supporting playback to the proper station after a REFER.

A call flow for the playback-on-refer scenario looks like this:

Supporting playback to the proper station after a REFER.

Playback Header

Setting the SPL options parameter to playback-on-header or the ACLI playback-trigger parameter to playback-on-header triggers in the presence of the P-Acme-Playback header. You can configure this on either the side receiving the header message or the side from which the message will be sent. If both trigger, then the configuration closest to the playback direction takes precedence.

This header can be part of any request or response, but playback can only start once media has been established. Playback stops automatically with a final response (200-299 or 400-699), unless explicitly turned off or another playback header requesting it to stop is received.

The Oracle Communications Session Border Controller deletes the P-Acme-Playback after processing if the SPL option is configured for the call (either incoming or outgoing).

The appropriate playback headers are added for each realm, session-agent, or sip-interface.

Playback on 183 Session Progress

This scenario is triggered by setting the SPL options parameter to either playback-on-183-to-originator or playback-on-183-from-terminator in realms, session agents, or SIP interfaces. When both options trigger, playback-on-183-to-originator takes precedence. This scenario triggers only for 183 Session Progress responses to initial INVITEs, not for re-INVITEs.

  • playback-on-183-to-originator—Starts playback upon the receipt of a 183 Session Progress destined for the originator and stops when a either a (200-299 or 400-699) final response is sent. When you configure this option, every call sent from the originator triggers this playback.
  • playback-on-183-from-terminator—Starts playback upon the receipt of a 183 Session Progress response is received from the terminator and stops when a (200-299 or 400-699) final response is received. When you configure this option, every call sent to the terminator triggers this playback.
Logic diagram on the effect of the playback-on-183-to-originator and playback-on-183-from-terminator settings being enabled.

A call flow for the playback-on-183-from-terminator scenario looks like this:

Call flow depicting the playback-on-183-from-terminator setting being enabled.

Call Flows for Network Announcements

The following call flows illustrate local media playback for network announcements. They all assume the announcement-on-error parameter is enabled and the error-announcement-map is defined.

Call flow with early media and RBT

In the following call flow, early media has been established with SDP, and RBT is playing. When the UAS sends a 503 error, the SBC stops RBT playback and plays the announcement starts, using the negotiated media. After the announcement completes, the SBC sends the 503 error to the UAC.


A call flow for an announcement triggered by a 503 error, when RBT is already playing.

The call flow is similar if the UAS 18x reply does not contain SDP, but instead of using negotiated media, the SBC injects SDP into the 18x toward the UAC, and uses that media for the RBT and the announcement. This is illustrated in the PRACK call flow below.

Call flow with redirects

In the following call flow, the SBC redirects the initial call to UAS B when UAS A responds with 302. The SBC plays the announcement as expected when the 503 error arrives.

This call flow also shows the UAC sending a CANCEL while the announcement is still playing. The SBC stops playing the announcement, sends a 200OK to the UAC, and then sends the 503 error. The same behavior applies to a BYE sent in similar circumstances, and these behaviors apply to any announcement flow.


A call flow for an announcement triggered by a 503 error after a redirect triggered by a 3xx response.

Call flow with serial forking

In the following call flow, the call is forked to multiple subsequent destinations. The SBC saves the media flow when the first SDP answer arrives, and refreshes it for each subsequent SDP from a subsequent UAS. When the final 503 error arrives, the SBC refreshes the SDP and plays the announcement.


A call flow for an announcement triggered by a 503 error after serial forking.

The call flow is similar for recursion with a proxy server.

Call flow with PRACK

In the following call flow, the initial 18x does not contain SDP. When the 503 error arrives, the SBC injects SDP for the announcement, resends the 18x to the UAC, then plays the announcement. The UAC sends PRACK with no SDP, to which the SBC responds locally with a 200OK, while continuing to play the announcement. After the announcement completes, the SBC sends the 503 error to the UAC.


A call flow involving PRACK arriving while the SBC is playing the announcement.

The call flow is similar when UAC sends the PRACK with SDP, or an UPDATE with or without SDP. In these cases the SBC would reject the PRACK with 488.

Media Spirals

Certain call flows cause media to traverse the SBC multiple times, resulting in media spirals. For local playback, this means that multiple playback files can be triggered to play. In situations like this, the SBC uses the playback closest to the endpoint receiving the media playback. Origination A in the diagram below is played Local playback #1, even though the scenario also triggers Local playback #2.

The SBC supporting playback during media spirals.