Live monitoring is for observation only. There is no whisper, no barge-in, and no way to take over the call from this panel. To bring a human into a live call, use the agent’s warm-transfer action — see Call transfers and conference and Agent assist.
In-app snoop panel
When you open a conversation that is still active, the page requests a listener token in the background. If one is granted, the snoop panel appears with a red LIVE badge and the message “Listening in. The agent and caller can’t see you or hear you.” The panel starts muted. Use the controls to listen and to leave:| Control | Action |
|---|---|
| Listen | Unmutes the call audio so you can hear it. Browsers require this click as the user gesture before audio can play. |
| Mute | Re-mutes the audio. Transcription keeps streaming either way. |
| Stop (the X) | Disconnects you from the room and closes the panel. |
Listener-token endpoint
The panel is backed by a single endpoint that mints a subscribe-only LiveKit token for an active conversation. SDK consumers building their own monitoring tools can call it directly.room_join and can_subscribe only — can_publish and can_publish_data are both false and the participant is hidden, so an observer can hear audio and receive data frames such as live transcription, but cannot publish anything or be seen by other participants.
Response
| Field | Type | Description |
|---|---|---|
url | string | LiveKit server URL to connect to. |
token | string | Listener JWT: subscribe-only, hidden, audio + data. |
room_name | string | The LiveKit room the conversation is in. |
expires_at | string (UTC) | When the listener token expires. |
Errors
| Status | When |
|---|---|
404 | The conversation does not exist, or it is active but has no LiveKit room associated with it. |
409 | The conversation is not active. Listener tokens are only available for in-progress conversations (status triggered, ringing, or in_progress). |
Permissions
The listener-token endpoint requiresconversations:read_sensitive or conversations:manage. This is stricter than reading the conversation list or transcript: a token that can only read conversations cannot mint a listener token.
Live audio is sensitive, so the gate is intentionally tighter than read access. If your monitoring tool gets a permission error, check that its scopes include
conversations:read_sensitive or conversations:manage.Related
Agent assist
Live human-in-the-loop monitoring and handoff.
Call transfers and conference
Warm transfer is the path to actually take over a live call.

