Skip to main content
TurnCall supports browser-based voice calls via WebRTC using Pipecat’s SmallWebRTCTransport. Audio flows peer-to-peer at 16kHz.

SDP Signaling

Connect

Send an SDP offer and receive an answer:
The answer carries the call id alongside the SDP:
That is the handle for everything after the call — its transcript, its recording, or converting it into an eval scenario. A client that only reads sdp and type is unaffected. If the agent cannot start (a provider with no key, say), there is no answer to give: the response is 500 with code pipeline_start_failed, the reason, and details.missing_keys when keys are missing. The call is recorded as failed.
A call that does start and then loses a provider ends like any other from the browser’s side. Its error.raised event says why; see When a call fails.

ICE Trickle

Dynamic Routing

Pass server_url in requestData for pre-call initialization:
See Pre-Call Init for response format.

Browser Client

See the examples/webrtc-client directory for a complete browser client using Pipecat JS SDK + WebRTC.

Video Avatar

WebRTC cascade agents can add a lip-synced video avatar (HeyGen or Tavus). See Video Avatar.