Start a WebSocket media call

Starts an outbound test call and returns a short-lived WebSocket URL for streaming call audio.

post/calls/outbound-test-ws-media

Headers

Authorizationstring required

Bearer authentication

Request body

modelIdstring uuid required

Agent model UUID.

fromPhoneNumberstring

Optional caller ID. Omit to start like a browser web call. Uses the agent's attached number if present, otherwise the web-call placeholder +17088888888.

toPhoneNumberstring

Optional lead/destination number. Omit to use the same web-call placeholder as when the agent has no attached number.

leadNamestring

Lead display name.

agentVersionstring

Agent version to use. Set to draft to test the draft version, pass a version UUID, or omit for the live version.

wsMediaCodec'opus' | 'pcma' | 'pcmu' | 'l16'

Codec to use for the WebSocket media stream. l16 is raw big-endian 16-bit PCM at 16 kHz.

wsMediaFraming'rtp' | 'payload'

Wire format for the WebSocket media stream. rtp (default) sends full RTP packets; payload sends raw codec payloads (RTP header stripped), which is simpler for external AI/STT/TTS clients. Use payload with pcma/pcmu — avoid payload with opus (see the integration guide for why).

wsMediaServerNamestring

Media node the client reached, taken from the server-name in the server_info message. Provide it to start the call on that exact node and receive a sid to bind over the open WebSocket (connect-then-bind). Omit it only for the legacy single-node flow that returns a ready-to-use wsMediaUrl.

Response

WebSocket media call created.

callIdstring required

Call ID for looking up the call later.

sidstring

Session id for connect-then-bind. Returned when wsMediaServerName is set; send it as { "type": "bind", "sid": "..." } over the WebSocket you already opened to attach your connection to the call. Empty for the legacy single-node flow.

wsMediaUrlstring uri required

Short-lived WebSocket URL with the session id attached. Used directly by the legacy single-node flow; connect-then-bind clients ignore it and bind sid over the base URL connection instead.

Changes