Call Commands

Call forking allows you to stream the media from a call to a specific target in realtime. This stream can be used to enable realtime audio analysis to support a variety of use cases, including fraud detection, or the creation of AI-generated audio responses. Requests must specify either the target attribute or the rx and tx attributes.

Expected Webhooks:

  • call.fork.started
  • call.fork.stopped
post/calls/{call_control_id}/actions/fork_start

Request

  • Base URL: https://api.telnyx.com/v2
  • URL: https://api.telnyx.com/v2/calls/{call_control_id}/actions/fork_start
  • Auth: HTTP bearer

Path parameters

call_control_idstring required

Unique identifier and token for controlling the call

Request body

rxstring

The network target, udp:ip_address:port, where the call's incoming RTP media packets should be forwarded.

stream_type'decrypted'

Optionally specify a media type to stream. If decrypted selected, Telnyx will decrypt incoming SIP media before forking to the target. rx and tx are required fields if decrypted selected.

txstring

The network target, udp:ip_address:port, where the call's outgoing RTP media packets should be forwarded.

client_statestring

Use this field to add state to every subsequent webhook. It must be a valid Base-64 encoded string.

command_idstring

Use this field to avoid duplicate commands. Telnyx will ignore any command with the same command_id for the same call_control_id.

Example request

{
  "rx": "udp:192.0.2.1:9000",
  "tx": "udp:192.0.2.1:9001",
  "client_state": "aGF2ZSBhIG5pY2UgZGF5ID1d",
  "command_id": "891510ac-f3e4-11e8-af5b-de00688a4901"
}

Response

Successful response upon making a call control command.

Example response

{
  "data": {
    "result": "ok"
  }
}

Changes

    • breaking

      the response's body type changed from object to no type for status

    • breaking

      the / response's property type changed from object to no type for status

    • breaking

      the // response's property type changed from integer to string, and format from int32 to integer for status

    • breaking

      the response's body type changed from no type to object for status

    • breaking

      the / response's property type changed from no type to object for status

    • breaking

      the // response's property type changed from string to integer, and format from integer to int32 for status

    • breaking

      the /// response's property format changed from json-pointer to no format for status