VoIP.info Troubleshooting

Asterisk ARI playback is queued, stuck or silent

Follow one playback ID from media resolution and target scope through request, events, control state and the endpoint's audible result.

Reviewed 2026-10-09Current first-party Asterisk ARI playback, channel, bridge, sound, DTMF and configuration documentation reviewed October 9, 2026; no HTTP server, ARI user, WebSocket, Stasis application, channel, bridge, sound index, media file, playback, DTMF event, packet, endpoint, speaker or call was inspected or testedAdvancedDocumentation based · not lab tested

Freeze one playback timeline

Choose one authorized attempt and preserve the running Asterisk version, Stasis application, WebSocket connection, channel or bridge ID, playback ID, media URI, language, offset, skip interval, request and response timestamps, Playback events and hangup or bridge events. Do not start replacement prompts while the first resource may still exist.

Classify the symptom before changing media: request rejected, playback not found, accepted but queued, started without finish, finished with no audible output, wrong participant heard it, or a control command failed. Those outcomes have different owners.

Prove that the media resolves on this host

For sound: media, query the Sounds API for the deployed language and format. If files were installed after Asterisk started, confirm the sound index was reloaded. For recording: media, inspect the StoredRecording inventory rather than substituting a filesystem guess. Preserve any remote-fetch status separately.

Confirm readable file state and a format that the running system can use, but do not interpret file presence or nonzero size as decoded audio. Keep dynamic URLs and credentials out of logs and tickets.

Reconcile the target and Stasis ownership

Confirm that the named channel or bridge still exists and remains controlled by the intended Stasis application. The channel play API documents 404 for a missing channel, 409 when the channel is outside Stasis and 412 for an invalid channel state; bridge play documents 404 for a missing bridge and 409 when it is outside Stasis. Correct the exact boundary instead of retrying generically.

Snapshot bridge membership during the playback. A valid bridge-level Playback can be inaudible to a channel that joined after the relevant interval, left early or was never a member. If ownership or membership is uncertain, use the ARI bridge diagnostic.

Distinguish queued from active and finished

Find PlaybackStarted and PlaybackFinished for the exact ID and target. A channel with another media operation can queue the new Playback. Inspect the current resource before declaring it stuck, and record the earlier operation that owns the queue.

If the WebSocket reconnected or the process restarted, rebuild state from Asterisk resources and current channel or bridge snapshots. Missing local state does not prove the server-side Playback stopped; a finish event without retained start can instead reveal an event gap.

Read control failures as state evidence

A control request with an unsupported operation returns 400, a missing Playback 404 and a control that cannot run in the current state 409. Preserve the operation, response and current Playback state. Do not convert a stop-after-finish race into a media failure or loop indefinitely on a resource that no longer exists.

Confirm that pause and unpause target the same playback. Forward or reverse uses the start-time skipms, and offsetms affects only the first URI in a list. A surprising jump can be a parameter or playlist-boundary issue rather than corrupt audio.

Trace DTMF interruption and application ordering

For an interruptible menu, correlate the DTMF event with the exact channel and active playback ID. Record whether the app requested stop before or after PlaybackFinished, then ensure a late completion from an old prompt cannot advance the current menu.

If several playbacks were queued separately, stopping one object does not automatically identify or cancel every queued object. Reconcile each application-owned ID and make cleanup idempotent across invalid input, timeout, hangup and restart.

Prove audible media after the control path

If Asterisk reports a normal playback lifecycle but the endpoint is silent, separate answer or early-media state, codec translation, RTP addresses, packet arrival, endpoint mute or output selection and actual decoded audio. A bridge announcement and a channel prompt also have different intended listeners.

Change one evidenced owner, repeat one authorized attempt and retain media lookup, target snapshot, accepted request, start event, expected audible sample or bounded observation, finish or stop event and cleanup. No host, playback, packet or call was inspected or tested for this diagnostic.

Sources & applicability

Primary references for the technical details above. Operational examples and planning checklists are VoIP.info editorial guidance.

Examples require adaptation to your topology. No live PBX or hardware testing is claimed.