> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.telekesher.dev/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.telekesher.dev/_mcp/server.

# Command acknowledgements

Command acknowledgements report that the gateway accepted or dispatched a
command. They use the uniform `command.<canonical_command>.accepted` namespace.
Domain events such as `recording.became_available`, `room.deleted`,
`playback.started`, and `playback.failed` report verified outcomes.

All command acknowledgements use the shared `CommandAcceptedEvent` contract.

| Field            | Presence    | Description                                                                                                                                       |
| ---------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `event`          | Required    | One canonical `command.*.accepted` value from the catalog below.                                                                                  |
| `timestamp`      | Required    | RFC 3339 / ISO 8601 UTC time when the command was accepted and the acknowledgement was emitted.                                                   |
| `operation_uuid` | Conditional | Required when the command response includes an operation. Omitted for call dial, room delete, and room-member volume.                             |
| `session_uuid`   | Conditional | Target Session for session-scoped commands.                                                                                                       |
| `room_id`        | Conditional | Target Room for room-scoped commands. At least one of `session_uuid` or `room_id` is always present; member-volume acknowledgements contain both. |

Only information necessary to interpret the accepted command extends this
base: dial correlation (`direction`, `type`, `to`, `from`), recording identity
and access (`recording_uuid`, `pull_url`), playback inputs (`urls`,
`offset_ms`), or the requested `volume`/`direction`.

If an acknowledgement ever carries an additional date-time with a specific
meaning, that field uses `<meaning>_at`. The event's own occurrence time always
remains `timestamp`.

## Catalog

| Command acknowledgement                 | Target                      | `operation_uuid` | Extension fields                                          |
| --------------------------------------- | --------------------------- | ---------------- | --------------------------------------------------------- |
| `command.call.dial.accepted`            | `session_uuid`              | Omitted          | `direction`, `type`, `to`, `from`                         |
| `command.playback.pause.accepted`       | `session_uuid`              | Required         | —                                                         |
| `command.playback.resume.accepted`      | `session_uuid`              | Required         | —                                                         |
| `command.playback.seek.accepted`        | `session_uuid`              | Required         | `offset_ms`                                               |
| `command.playback.restart.accepted`     | `session_uuid`              | Required         | —                                                         |
| `command.recording.start.accepted`      | `session_uuid` or `room_id` | Required         | `recording_uuid`, `pull_url`, `expires_at`                |
| `command.recording.mask.accepted`       | `session_uuid`              | Required         | `recording_uuid`; optional `pull_url` + `expires_at` pair |
| `command.recording.unmask.accepted`     | `session_uuid`              | Required         | `recording_uuid`; optional `pull_url` + `expires_at` pair |
| `command.room.delete.accepted`          | `room_id`                   | Omitted          | —                                                         |
| `command.room.member.volume.accepted`   | `session_uuid`, `room_id`   | Omitted          | `volume`, `direction`                                     |
| `command.room.playback.start.accepted`  | `room_id`                   | Required         | `urls`                                                    |
| `command.room.playback.pause.accepted`  | `room_id`                   | Required         | —                                                         |
| `command.room.playback.resume.accepted` | `room_id`                   | Required         | —                                                         |
| `command.room.playback.stop.accepted`   | `room_id`                   | Required         | —                                                         |
| `command.room.playback.volume.accepted` | `room_id`                   | Required         | `volume`                                                  |
| `command.websocket.pause.accepted`      | `session_uuid`              | Required         | —                                                         |
| `command.websocket.resume.accepted`     | `session_uuid`              | Required         | —                                                         |
| `command.websocket.mute.accepted`       | `session_uuid`              | Required         | —                                                         |
| `command.websocket.unmute.accepted`     | `session_uuid`              | Required         | —                                                         |
| `command.websocket.flush.accepted`      | `session_uuid`              | Required         | —                                                         |

Category reference pages show concrete examples and the verified domain events
that can follow each acknowledgement.