> For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

# 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

```