---
title: "Bridge calls"
method: POST
path: "/calls/{call_control_id}/actions/bridge"
tags: ["Call Commands"]
---

# Bridge calls

`POST /calls/{call_control_id}/actions/bridge`

Bridge two call control calls.

**Expected Webhooks:**

- `call.bridged` for Leg A
- `call.bridged` for Leg B

## Path parameters

- `call_control_id` string, required

## Request body

- BridgeRequest
  - `call_control_id` string, required — The Call Control ID of the call you want to bridge with, can't be used together with queue parameter or video_room_id parameter.
  - `client_state` string — Use this field to add state to every subsequent webhook. It must be a valid Base-64 encoded string.
  - `command_id` string — Use this field to avoid duplicate commands. Telnyx will ignore any command with the same `command_id` for the same `call_control_id`.
  - `queue` string — The name of the queue you want to bridge with, can't be used together with call_control_id parameter or video_room_id parameter. Bridging with a queue means bridging with the first call in the queue. The call will always be removed from the queue regardless of whether bridging succeeds. Returns an error when the queue is empty.
  - `video_room_id` string, uuid — The ID of the video room you want to bridge with, can't be used together with call_control_id parameter or queue parameter.
  - `video_room_context` string — The additional parameter that will be passed to the video conference. It is a text field and the user can decide how to use it. For example, you can set the participant name or pass JSON text. It can be used only with video_room_id parameter.
  - `prevent_double_bridge` boolean — When set to `true`, it prevents bridging if the target call is already bridged to another call. Disabled by default.
  - `park_after_unbridge` string — Specifies behavior after the bridge ends (i.e. the opposite leg either hangs up or is transferred). If supplied with the value `self`, the current leg will be parked after unbridge. If not set, the default behavior is to hang up the leg.
  - `play_ringtone` boolean — Specifies whether to play a ringtone if the call you want to bridge with has not yet been answered.
  - `ringtone` 'at' | 'au' | 'be' | 'bg' | 'br' | 'ch' | 'cl' | 'cn' | 'cz' | 'de' | 'dk' | 'ee' | 'es' | 'fi' | 'fr' | 'gr' | 'hu' | 'il' | 'in' | 'it' | 'jp' | 'lt' | 'mx' | 'my' | 'nl' | 'no' | 'nz' | 'ph' | 'pl' | 'pt' | 'ru' | 'se' | 'sg' | 'th' | 'tw' | 'uk' | 'us-old' | 'us' | 've' | 'za' — Specifies which country ringtone to play when `play_ringtone` is set to `true`. If not set, the US ringtone will be played.
  - `record` 'record-from-answer' — Start recording automatically after an event. Disabled by default.
  - `record_channels` 'single' | 'dual' — Defines which channel should be recorded ('single' or 'dual') when `record` is specified.
  - `record_format` 'wav' | 'mp3' — Defines the format of the recording ('wav' or 'mp3') when `record` is specified.
  - `record_max_length` integer — Defines the maximum length for the recording in seconds when `record` is specified. The minimum value is 0. The maximum value is 43200. The default value is 0 (infinite).
  - `record_timeout_secs` integer — The number of seconds that Telnyx will wait for the recording to be stopped if silence is detected when `record` is specified. The timer only starts when the speech is detected. Please note that call transcription is used to detect silence and the related charge will be applied. The minimum value is 0. The default value is 0 (infinite).
  - `record_track` 'both' | 'inbound' | 'outbound' — The audio track to be recorded. Can be either `both`, `inbound` or `outbound`. If only single track is specified (`inbound`, `outbound`), `channels` configuration is ignored and it will be recorded as mono (single channel).
  - `record_trim` 'trim-silence' — When set to `trim-silence`, silence will be removed from the beginning and end of the recording.
  - `record_custom_file_name` string — The custom recording file name to be used instead of the default `call_leg_id`. Telnyx will still add a Unix timestamp suffix.
  - `mute_dtmf` 'none' | 'both' | 'self' | 'opposite' — When enabled, DTMF tones are not passed to the call participant. The webhooks containing the DTMF information will be sent.
  - `hold_after_unbridge` boolean — Specifies behavior after the bridge ends. If set to `true`, the current leg will be put on hold after unbridge instead of being hung up.

## Response `200`

Successful response upon making a call control command.

- object
  - `data` CallControlCommandResult
    - `result` string

## Other responses

- `422` — Unprocessable entity. The request was well-formed but could not be processed due to semantic errors. This includes validation errors, invalid parameter values, call state errors, conference errors, queue errors, recording/transcription errors, and business logic violations.
- `default` — Unexpected error

---

[API](https://skmtc.net/team-telnyx/apis/telnyx-api.md) · [All operations](https://skmtc.net/team-telnyx/apis/telnyx-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/team-telnyx/telnyx-api/versions/e32d46c5945b/schema)
