Skip to main content

Voice

Build programmable voice experiences with Orbit’s voice infrastructure powered by LiveKit. Make and receive calls, connect SIP trunks, deploy AI voice agents with real-time speech-to-text and text-to-speech, and record calls — all through a unified API.

Make an Outbound Call

curl -X POST https://orbit-api.devotel.io/api/v1/voice/calls \
  -H "X-API-Key: dv_live_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+14155552671",
    "from": "+18005551234",
    "webhook_url": "https://yourapp.com/webhooks/voice",
    "tts": {
      "text": "Hello! This is a call from Orbit.",
      "voice": "alloy"
    }
  }'

Connect to an AI Voice Agent

Route incoming calls to an AI agent for automated conversations:
curl -X POST https://orbit-api.devotel.io/api/v1/voice/calls \
  -H "X-API-Key: dv_live_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+14155552671",
    "from": "+18005551234",
    "agent_id": "agent_support_bot",
    "agent_config": {
      "greeting": "Hi, thanks for calling Acme support. How can I help?",
      "language": "en-US"
    }
  }'

Features

  • Outbound calls — initiate calls programmatically to any phone number
  • Inbound routing — route incoming calls to webhooks, agents, or SIP endpoints
  • SIP trunking — connect your existing PBX infrastructure via SIP
  • AI voice agents — deploy conversational AI agents powered by LangGraph
  • Speech-to-text — real-time transcription via Deepgram Nova-3
  • Text-to-speech — natural voice synthesis via Cartesia Sonic Turbo (40ms TTFA)
  • Call recording — automatic or on-demand recording with secure storage
  • DTMF input — collect keypad input for IVR menus
  • Call transfer — warm and cold transfers to other numbers or agents
  • Conferencing — multi-party calls with up to 50 participants

TTS Providers

ProviderModelLatencyBest For
CartesiaSonic Turbo~40ms TTFAReal-time voice agents
ElevenLabsFlash v2.5~120ms TTFAMulti-language, content generation

Call Status Flow

initiatedringingin_progresscompleted (or failed / busy / no_answer)

Webhook Events

Orbit sends real-time events during call lifecycle:
EventDescription
call.initiatedCall has been placed
call.ringingDestination is ringing
call.answeredCall was answered
call.completedCall ended normally
call.failedCall failed to connect
call.recording_readyRecording is available for download