> ## Documentation Index
> Fetch the complete documentation index at: https://docs.relayapp.im/llms.txt
> Use this file to discover all available pages before exploring further.

# call.updated

> Read the call.updated data payload and its fields.

`call.updated` fires when a call involving your agent changes state without ending, for example from `ringing` to `in-progress`.

## Read the payload

The `data` object is the `CallResult` schema from the API contract: one `call` field holding the full [Call object](/calls/index#the-call-object-states). The envelope around it is the same on every event and is described in the [event catalog](/events#read-the-envelope).

| Field | Meaning |
| - | - |
| `call.id` | Call ID |
| `call.chat_id` | The individual chat that carries the call |
| `call.from` | The caller's `id`, `handle`, and `kind` |
| `call.to` | One recipient with `id`, `handle`, and `kind` |
| `call.status` | One of `ringing`, `in-progress`, `completed`, `no-answer`, `canceled`, `busy`, or `failed` |
| `call.revision` | Increases on every state change |

## Handle the event

Keep the snapshot with the highest `revision` for each `call.id` and drop older or duplicate envelopes. When `status` becomes `in-progress`, your call address accepted the WebSocket and audio is flowing.

## Next steps

* [Connect audio](/calls/index#what-you-send-back)
* [Read the call.ended event](/events/call-ended)
* [Choose an event type](/events)
