Overview

Ultravox in VoxEngine
View as MarkdownOpen in Claude

Benefits

Voximplant includes a native Ultravox connector so you can bridge live phone calls to Ultravox’s WebSocket API with minimal setup.

Note

Ultravox also has a direct SIP integration with Voximplant, which makes it easy to bring PSTN/SIP calls into Ultravox from Voximplant’s telephony stack. See the Voximplant announcement and Ultravox SIP docs for details: https://voximplant.com/blog/ultravox-adds-sip-to-its-voice-ai-services-using-voximplant

Architecture

A VoxEngine scenario answers or places a call, creates an Ultravox WebSocket session, and bridges audio both ways via VoxEngine.sendMediaBetween.

Development notes

  • Native VoxEngine module: load with require(Modules.Ultravox) and create a Ultravox.WebSocketAPIClient via Ultravox.createWebSocketAPIClient(...).
  • Session setup: choose Ultravox.HTTPEndpoint.CREATE_CALL (or CREATE_AGENT_CALL) and provide authorizations (for example X-API-Key) plus a request body with systemPrompt, model, and voice.
  • Audio bridge: connect the call and Ultravox using VoxEngine.sendMediaBetween(call, voiceAIClient).
  • Transcripts: Ultravox.WebSocketAPIEvents.Transcript contains role plus text/delta fields; use it for logging and barge‑in logic.
  • Tool invocations: handle Ultravox.WebSocketAPIEvents.ClientToolInvocation and respond with voiceAIClient.clientToolResult(...).
  • Barge‑in: call voiceAIClient.clearMediaBuffer() when you detect user speech or when the server requests buffer clearing.

Examples

Voximplant

Ultravox