# 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. Reference: https://signalwire.com/docs/compatibility-api/rest/calls/webhooks/voice-status-callback ## OpenAPI 3.1 Webhook Specification ```yaml openapi: 3.1.0 info: title: compatibility version: 1.0.0 paths: {} webhooks: voice-status-callback: post: operationId: voice-status-callback summary: Voice status callback description: >- 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. responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: type: object properties: AccountSid: type: string description: The unique ID of the project this call is associated with. ApiVersion: type: string description: >- 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: type: integer description: The average time between packets for the inbound stream. AudioInDtmfPacketCount: type: integer description: The number of DTMF packets in the inbound media stream. AudioInFlushPacketCount: type: integer description: >- 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: type: integer description: >- The maximum variance of jitter for incoming audio RTP packets. AudioInJitterMinVariance: type: integer description: >- The minimum variance of jitter for incoming audio RTP packets. AudioInLargestJbSize: type: integer description: >- The largest jitter buffer size recorded for incoming audio RTP packets during the session. AudioInMos: type: string description: >- A mean opinion score on a scale of 1–5 that helps determine audio quality. AudioInMediaPacketCount: type: integer description: >- The number of audio packets received in the inbound media stream. AudioInSkipPacketCount: type: integer description: |- Increased with every packet not received at a given ptime. Increases with every lost packet from the inbound stream. AudioOutDtmfPacketCount: type: integer description: >- The total number of DTMF packets generated in the outbound media stream. AudioOutMediaPacketCount: type: integer description: >- The number of audio packets sent in the outbound media stream. CallbackSource: type: string description: The source of the status callback. CallDuration: type: integer description: >- The duration, in seconds, of the finished call. Only present on the `completed` event. CallerName: type: string description: >- The name of the caller. Only available if Caller ID lookup is enabled. CallSid: type: string description: A unique identifier for the call. CallStatus: $ref: >- #/components/schemas/WebhooksVoiceStatusCallbackPayloadContentApplicationJsonSchemaCallStatus description: >- 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: $ref: >- #/components/schemas/WebhooksVoiceStatusCallbackPayloadContentApplicationJsonSchemaDirection description: |- 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: type: string description: The number this call was forwarded from. From: type: string description: The phone number that sent this call, in E.164 format. ParentCallSid: type: string description: A unique identifier for the call that created this call. RecordingDuration: type: integer description: The duration, in seconds, of the recording. RecordingSid: type: string description: The unique identifier for the audio recording. RecordingUrl: type: string description: The URL of the recorded audio call. SequenceNumber: type: integer description: >- 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: type: string description: >- A textual description of the result of the SIP INVITE request, indicating success or failure with additional details. SipResultCode: type: string description: >- 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: type: string description: >- The timestamp, in RFC 2822 format, of when the event occurred. To: type: string description: The phone number of the call recipient, in E.164 format. required: - AccountSid - ApiVersion - AudioInAveragePtime - AudioInDtmfPacketCount - AudioInFlushPacketCount - AudioInJitterMaxVariance - AudioInJitterMinVariance - AudioInLargestJbSize - AudioInMos - AudioInMediaPacketCount - AudioInSkipPacketCount - AudioOutDtmfPacketCount - AudioOutMediaPacketCount - CallbackSource - CallSid - CallStatus - Direction - From - SequenceNumber - Timestamp - To components: schemas: WebhooksVoiceStatusCallbackPayloadContentApplicationJsonSchemaCallStatus: type: string enum: - initiated - ringing - in-progress - queued - failed - busy - no-answer - completed - canceled description: >- 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. | title: WebhooksVoiceStatusCallbackPayloadContentApplicationJsonSchemaCallStatus WebhooksVoiceStatusCallbackPayloadContentApplicationJsonSchemaDirection: type: string enum: - outbound-dial - outbound-api - inbound description: |- The direction of the call. - `outbound-dial`: calls launched through the Dial verb. - `outbound-api`: calls launched through the REST API. - `inbound`: inbound calls. title: WebhooksVoiceStatusCallbackPayloadContentApplicationJsonSchemaDirection ```