---
title: "Twilio Conference Status"
method: POST
path: "/api/channels/twilio/voice/conference-status"
tags: ["channels", "channels", "twilio-voice"]
---

# Twilio Conference Status

`POST /api/channels/twilio/voice/conference-status`

## 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/channels/twilio/voice/conference-status`
- Auth: none declared

Twilio fires 'participant-leave' / 'conference-end' on the held
pickup conference. Both signal the held call is over — resolve the
pending invite as expired so the banner clears even if the operator
never clicked.

Signature-checked, like /voice/incoming. The guarded UPDATE makes this
idempotent, but idempotence only defends against REPLAY, and `invite_id` is
a sequential integer in a query string: a forged POST could close a
stranger's live window, after which the agent stands down (its claim is
gone) and nobody hangs up the caller, who stays parked on hold music with
no one coming.

The invite names its own account, so the token is looked up through it. An
unknown invite answers 204 rather than 404, so this cannot be used to probe
which invite ids exist. Accounts with no usable Auth Token skip the check
exactly as /voice/incoming does — Connect-mode rows have no token of their
own, and failing closed here would break them while the front door stays
open.

## Query parameters

- `invite_id` integer, required

## Response `200`

Successful Response

- unknown

## 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)
