> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # Voice status callback POST 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). Reference: https://signalwire.com/docs/compatibility-api/rest/calls/webhooks/voice-status-callback ## Request ### Payload - `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. - `CallSid` (string, required) — A unique identifier for the call. - `CallStatus` (enum, 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. | - Allowed values: `initiated`, `ringing`, `in-progress`, `queued`, `failed`, `busy`, `no-answer`, `completed`, `canceled` - `Direction` (enum, 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. - Allowed values: `outbound-dial`, `outbound-api`, `inbound` - `From` (string, required) — The phone number that sent this call, in E.164 format. - `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. - `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. - `CallDuration` (integer, optional) — The duration, in seconds, of the finished call. Only present on the `completed` event. - `CallerName` (string, optional) — The name of the caller. Only available if Caller ID lookup is enabled. - `ForwardedFrom` (string, optional) — The number this call was forwarded from. - `ParentCallSid` (string, optional) — A unique identifier for the call that created this call. - `RecordingDuration` (integer, optional) — The duration, in seconds, of the recording. - `RecordingSid` (string, optional) — The unique identifier for the audio recording. - `RecordingUrl` (string, optional) — The URL of the recorded audio call. - `SipInviteResultPhrase` (string, optional) — A textual description of the result of the SIP INVITE request, indicating success or failure with additional details. - `SipResultCode` (string, optional) — 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.