Forward a call

Forward a call to another phone number or to a SIP URI. This command will create a new call resource and both calls will be connected (bridged).

Command bridge new call with existing call

Check below the forward call object's properties.

type: object
title: Bridge new call with existing call
additionalProperties: false
properties:
  from:
    type: string
  to:
    type: string
  ringTimeout:
    type: integer
    minimum: 3
    maximum: 120
    default: 30
  maxDuration:
    type: integer
    minimum: 1
    default: 28800
  ringTone:
    ref: '../properties/RingTone.yml'
  hangupAfterBridge:
    type: boolean
  record:
    type: boolean
  recordStart:
    type: string
    enum:
      - record-from-answer
      - record-from-ringing
  recordStereo:
    type: boolean
  notification:
    ref: '../properties/Notification.yml'
required:
  - to

Forward call

post

Creates a new channel call and forward to it

Authorizations
Path parameters
workspaceIdstring · uuidRequired

The ID of the workspace

callIdstring · uuidRequired

The ID for a call

channelIdstring · uuidRequired

The ID for a channel

Body
fromstringOptional
tostringRequired
ringTimeoutinteger · min: 3 · max: 120OptionalDefault: 30
maxDurationinteger · min: 1OptionalDefault: 28800
ringTonestring · enum | nullableOptionalPossible values:
hangupAfterBridgebooleanOptional
recordbooleanOptional
recordStartstring · enumOptionalPossible values:
recordStereobooleanOptional
Responses
202
Call Command Bridge was accepted for processing
application/json
post
POST /workspaces/{workspaceId}/channels/{channelId}/calls/{callId}/bridge HTTP/1.1
Host: 
Authorization: Bearer jwt
Content-Type: application/json
Accept: */*
Content-Length: 515

{
  "from": "text",
  "to": "text",
  "ringTimeout": 30,
  "maxDuration": 28800,
  "ringTone": "be",
  "hangupAfterBridge": true,
  "record": true,
  "recordStart": "record-from-answer",
  "recordStereo": true,
  "callFlow": [
    {
      "command": "hangup",
      "conditions": [
        {
          "variable": "keys",
          "operator": "eq",
          "value": "text"
        }
      ],
      "options": {
        "media": [
          "text"
        ],
        "loop": 1,
        "timeout": 1,
        "pauseMilliseconds": 1
      }
    }
  ],
  "notification": {
    "url": "text"
  },
  "amdSettings": {
    "enabled": false,
    "wordCount": 5,
    "speechTimeout": 3,
    "speechLocale": "en-US",
    "beepTimeout": 30,
    "ifMachineNotifyAfter": "wordCount"
  }
}
{
  "command": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "callId": "123e4567-e89b-12d3-a456-426614174000",
    "callFlowId": "123e4567-e89b-12d3-a456-426614174000",
    "status": "text",
    "command": "text",
    "conditions": [
      {
        "variable": "keys",
        "operator": "eq",
        "value": "text"
      }
    ]
  },
  "bridgedCall": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "channelId": "123e4567-e89b-12d3-a456-426614174000",
    "from": "text",
    "to": "text",
    "originator": {
      "contact": {
        "id": "text",
        "identifierKey": "text",
        "identifierValue": "text"
      },
      "number": {
        "type": "pstn",
        "number": "text",
        "anonymous": true,
        "callerIdName": "text",
        "identity": "text",
        "countryIsoCode": "text",
        "pstnNumberType": "text"
      }
    },
    "receiver": {
      "contact": {
        "id": "text",
        "identifierKey": "text",
        "identifierValue": "text"
      },
      "number": {
        "type": "pstn",
        "number": "text",
        "anonymous": true,
        "callerIdName": "text",
        "identity": "text",
        "countryIsoCode": "text",
        "pstnNumberType": "text"
      }
    },
    "parentId": "123e4567-e89b-12d3-a456-426614174000",
    "direction": "incoming",
    "status": "accepted",
    "reason": "text",
    "type": "pstn",
    "duration": 1,
    "hangupCauseCode": 1,
    "hangupSource": "callee",
    "hangupSipCode": "text",
    "createdAt": "2025-07-13T02:24:39.193Z",
    "updatedAt": "2025-07-13T02:24:39.193Z",
    "ringingAt": "2025-07-13T02:24:39.193Z",
    "answeredAt": "2025-07-13T02:24:39.193Z",
    "endedAt": "2025-07-13T02:24:39.193Z",
    "scheduledFor": "2025-07-13T02:24:39.193Z",
    "callFlow": {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "commands": [
        {
          "id": "123e4567-e89b-12d3-a456-426614174000",
          "callId": "123e4567-e89b-12d3-a456-426614174000",
          "callFlowId": "123e4567-e89b-12d3-a456-426614174000",
          "status": "text",
          "command": "text",
          "conditions": [
            {
              "variable": "keys",
              "operator": "eq",
              "value": "text"
            }
          ]
        }
      ]
    },
    "notification": {
      "url": "text"
    },
    "qualityInsights": {
      "mos": "text",
      "pdd": "text"
    },
    "sipInsights": {
      "hangupSipCode": "text",
      "edgeRegion": "text",
      "providerName": "text",
      "userAgent": "text",
      "remoteSignallingIp": "text",
      "remoteMediaIp": "text"
    },
    "amdResult": {
      "result": "human",
      "speech": "text",
      "locale": "text"
    },
    "sipType": "elastic",
    "tags": [
      "text"
    ]
  }
}

Example 1: Forward an inbound call to an external number

curl -X POST "https://api.bird.com/workspaces/{workspaceId}/channels/{channelId}/calls/{callId}/bridge" \
     -H "Authorization: AccessKey {your-access-key}"

Last updated

Was this helpful?