---
title: "Dispatch Group Call"
method: POST
path: "/api/voice/group-call"
tags: ["voice-control", "voice-control"]
---

# Dispatch Group Call

`POST /api/voice/group-call`

## 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/group-call`
- Auth: none declared

Start a group call on a group thread — channel-agnostic, both modes.

Routing is by thread channel, so the frontend calls this one endpoint for
a Telegram group and a WhatsApp `@g.us` group alike, in either mode, and
gets back the same shape: `{call_id, url, token, room}` for operator mode
(creds for the browser to join with), `{call_id}` for agent mode.

Under the hood each branch delegates to the path that already owns that
channel's guards — rate limits, account resolution, the operator-mic
busy-claim — rather than reimplementing them:

  operator + whatsapp  → start_user_call (bridge + sidecar carry the
                         operator's mic into the group call)
  operator + telegram  → dispatch_call_link to get our account into the
                         group's voice chat, then coexist_call to mint the
                         operator a publish-capable token in the same room
  agent + whatsapp     → perform_dispatch_room + the bridge /group-call
  agent + telegram     → dispatch_call_link with the chosen agent

## Request body

- GroupCallDispatchRequest: Body for POST /api/voice/group-call — channel-agnostic group-call dispatch. One entry point for both Telegram and WhatsApp group calls, the way messages.send is one entry point for messaging: the caller passes the group THREAD, the mode, and (for agent mode) the agent, and the endpoint routes to the right per-channel mechanism under the hood. Two modes, matching the two things the one call button does: - `operator` (left-click): the operator speaks from the browser. - `agent` (right-click): a voice agent is dispatched into the call.
  - `thread_id` integer, required
  - `mode` 'operator' | 'agent'
  - `agent_id` integer, nullable
  - `auto_start` boolean, nullable
  - `vision_mode` string, nullable
  - `instructions` string, nullable
  - `tab_id` string, nullable

## Response `200`

Successful Response

- object

## 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/77bef09a9209?raw)
