Voice client:
- TypeScript
- Python
Place an outbound call
Originate over a SIP trunk and read the returnedsid.
Originate with an AI agent attached
Passagent and the engine wires the audio bridge automatically on answer — no
AudioBridge needed.
Cap the ring time
Give up after 15 seconds instead of the default 30 (server-clamped 5..120).Poll a call’s status
The control plane is request/response — re-fetch to read the latest status.Wait for a call to connect
Poll until the call reaches a non-ringing state.Bridge caller audio into your own ASR
Subscribe uplink (what the caller says) and feed it to your recognizer.- TypeScript
- Python
Play synthesized audio back to the caller
Push downlink frames as your TTS produces them.- TypeScript
- Python
Choose a codec to avoid transcoding
For a PSTN-direct call, ask for G.711 so the bridge passes audio through untranscoded.Feed a model that wants raw PCM
Many realtime models prefer 16-bit PCM. Ask forpcm16 and the bridge transcodes
both directions for you.
Transfer a live call to a person
Forward the audio to another PSTN number; the samesid continues.
Hand a call from a bot to a human (or vice-versa)
Re-attach the call to a different agent without forwarding it off-net.Attach an agent to an already-running call
Useagents.attach against a live sid — e.g. promote a call to an AI agent
mid-conversation.
- TypeScript
- Python
Hang up and clean up
End the call, then release the bridge to tear down both tracks.Place a call from the browser (softphone)
Use the caller-side bridge plus the mic capture and Opus playback helpers — no WebRTC transport for media.Point the bridge at a regional relay
OverriderelayHost to pin audio to a specific POP.

