---
title: "Coexist Call"
method: POST
path: "/api/voice/coexist/{call_id}"
tags: ["voice-control", "voice-control"]
---

# Coexist Call

`POST /api/voice/coexist/{call_id}`

## Request

- Base URL: `https://api.dialogbrain.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.dialogbrain.com/api/voice/coexist/{call_id}`
- Auth: none declared

Operator joins an in-progress AGENT call as an additional publisher
without taking over (does NOT flip mode, does NOT silence agent).

Use case: operator wants to speak briefly alongside agent ("hold on
a sec, let me check that for you") without committing to taking
over the call. Both agent and operator publish into the room; the
bridge subscribes to all room audio so the caller hears both.

The agent's STT is bound to the bridge participant only via
RoomOptions(participant_identity=...) at session.start (see
entrypoint.py Part D), so operator's voice doesn't pollute the
agent's chat_ctx. Bot toggle in the inbox header still works
(silences agent in place via runtime hash agent_disabled).

Distinct from /rejoin (user_call recovery) and /takeover (mode flip
+ agent silence). Returns publish-capable browser JWT.

Records `metadata.operator_publisher_user_id` for audit. Does not
publish a WS event because frontend tracks this with local state
after the POST returns.

## Path parameters

- `call_id` string, required

## Request body

- RejoinRequest: Optional body for /rejoin and /coexist. `tab_id` is a per-tab UUID generated client-side (sessionStorage) and appended to the LK browser identity so multiple tabs/browsers logged in as the same user don't DUPLICATE_IDENTITY-kick each other in the LK room. Omit to fall back to the legacy `browser:{user}:{call}` shape (single-tab semantics — second tab WILL kick the first).
  - `tab_id` string, nullable

## Response `200`

Successful Response

- ListenInResponse
  - `url` string, required
  - `token` string, required
  - `room` string, required
  - `can_publish` boolean
  - `mic_owner_tab_id` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/dialogbrain/apis/dialogbrain-v2-api-gateway.md) · [All operations](https://skmtc.dev/dialogbrain/apis/dialogbrain-v2-api-gateway/llms.txt) · [OpenAPI document](https://skmtc.dev/dialogbrain/apis/dialogbrain-v2-api-gateway/revisions/d84e7dc9977d?raw)
