---
title: "Voice status callback"
method: POST
path: "voiceStatusCallback"
tags: ["Calls"]
---

# Voice status callback

`POST voiceStatusCallback` (webhook)

Payload sent by SignalWire to your Voice Status Callback URL when the status of a call changes.

Configure this callback using the `StatusCallback` and `StatusCallbackEvent` parameters when
[creating a call via the API](/docs/compatibility-api/rest/calls/create-a-call) or using
[Dial](/docs/compatibility-api/cxml/reference/voice/dial) with
[Number](/docs/compatibility-api/cxml/reference/voice/number),
[SIP](/docs/compatibility-api/cxml/reference/voice/sip), or
[Conference](/docs/compatibility-api/cxml/reference/voice/conference).

Use `StatusCallbackEvent` to receive every call progress event — not just the final status —
along with current call state and all parameters below.

Status callbacks are advisory, best-effort notifications — delivery can be delayed or fail silently, so don't gate time-critical actions on receiving one. See [Status callback reliability](/docs/platform/webhooks#status-callback-reliability).

## Payload

- object — Payload sent by SignalWire to your Voice Status Callback URL when the status of a call changes. Configure this callback using the `StatusCallback` and `StatusCallbackEvent` parameters when [creating a call via the API](/docs/compatibility-api/rest/calls/create-a-call) or using [Dial](/docs/compatibility-api/cxml/reference/voice/dial) with [Number](/docs/compatibility-api/cxml/reference/voice/number), [SIP](/docs/compatibility-api/cxml/reference/voice/sip), or [Conference](/docs/compatibility-api/cxml/reference/voice/conference). Use `StatusCallbackEvent` to receive every call progress event — not just the final status — along with current call state and all parameters below. Status callbacks are advisory, best-effort notifications — delivery can be delayed or fail silently, so don't gate time-critical actions on receiving one. See [Status callback reliability](/docs/platform/webhooks#status-callback-reliability).
  - `AccountSid` string, required — The unique ID of the project this call is associated with.
  - `ApiVersion` string, required — The version of the SignalWire API. Incoming calls use the API version placed on the number called. Outgoing calls use the version of the REST API request.
  - `AudioInAveragePtime` integer, required — The average time between packets for the inbound stream.
  - `AudioInDtmfPacketCount` integer, required — The number of DTMF packets in the inbound media stream.
  - `AudioInFlushPacketCount` integer, required — The number of incoming packets removed from the jitter buffer due to buffer overflow or underflow, causing these packets to be discarded or lost.
  - `AudioInJitterMaxVariance` integer, required — The maximum variance of jitter for incoming audio RTP packets.
  - `AudioInJitterMinVariance` integer, required — The minimum variance of jitter for incoming audio RTP packets.
  - `AudioInLargestJbSize` integer, required — The largest jitter buffer size recorded for incoming audio RTP packets during the session.
  - `AudioInMos` string, required — A mean opinion score on a scale of 1–5 that helps determine audio quality.
  - `AudioInMediaPacketCount` integer, required — The number of audio packets received in the inbound media stream.
  - `AudioInSkipPacketCount` integer, required — Increased with every packet not received at a given ptime. Increases with every lost packet from the inbound stream.
  - `AudioOutDtmfPacketCount` integer, required — The total number of DTMF packets generated in the outbound media stream.
  - `AudioOutMediaPacketCount` integer, required — The number of audio packets sent in the outbound media stream.
  - `CallbackSource` string, required — The source of the status callback.
  - `CallDuration` integer — The duration, in seconds, of the finished call. Only present on the `completed` event.
  - `CallerName` string — The name of the caller. Only available if Caller ID lookup is enabled.
  - `CallSid` string, required — A unique identifier for the call.
  - `CallStatus` 'initiated' | 'ringing' | 'in-progress' | 'queued' | 'failed' | 'busy' | 'no-answer' | 'completed' | 'canceled', required — The status of the call. | Status | Description | |--------|-------------| | `initiated` | The initial dial has begun. | | `ringing` | The call is ringing. | | `in-progress` | The call was answered and is in progress. | | `queued` | The call is ready and in line to initiate. | | `failed` | The call could not be completed. Usually occurs when the phone number does not exist. | | `busy` | The caller encountered a busy signal. | | `no-answer` | The call ended without an answer. | | `completed` | The call was answered and ended normally. | | `canceled` | The REST API canceled the call while it was ringing or queued. |
  - `Direction` 'outbound-dial' | 'outbound-api' | 'inbound', required — The direction of the call. - `outbound-dial`: calls launched through the Dial verb. - `outbound-api`: calls launched through the REST API. - `inbound`: inbound calls.
  - `ForwardedFrom` string — The number this call was forwarded from.
  - `From` string, required — The phone number that sent this call, in E.164 format.
  - `ParentCallSid` string — A unique identifier for the call that created this call.
  - `RecordingDuration` integer — The duration, in seconds, of the recording.
  - `RecordingSid` string — The unique identifier for the audio recording.
  - `RecordingUrl` string — The URL of the recorded audio call.
  - `SequenceNumber` integer, required — The order in which events occur, starting at 0. Although events are fired in order, they each take time and may not appear in the order you expect.
  - `SipInviteResultPhrase` string — A textual description of the result of the SIP INVITE request, indicating success or failure with additional details.
  - `SipResultCode` string — The numeric SIP response code received for the INVITE request, indicating the outcome of the call attempt. See the [list of SIP response codes](https://en.wikipedia.org/wiki/List_of_SIP_response_codes) for possible values.
  - `Timestamp` string, required — The timestamp, in RFC 2822 format, of when the event occurred.
  - `To` string, required — The phone number of the call recipient, in E.164 format.

## Acknowledgement `200`

Webhook received

---

[API](https://skmtc.net/signalwire/apis/compatibility-api.md) · [All operations](https://skmtc.net/signalwire/apis/compatibility-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/signalwire/compatibility-api/revisions/e6faba43acd7/schema)
