Skip to main content

Documentation Index

Fetch the complete documentation index at: https://orbit-docs.devotel.io/llms.txt

Use this file to discover all available pages before exploring further.

Voice Quickstart

This guide takes you from zero to a working AI voice call in five minutes. By the end you’ll have:
  • A phone number that receives inbound calls
  • An agent configured with a system prompt
  • An inbound call from any phone reaching your agent
  • An outbound call dispatched from the API
Orbit’s voice stack is end-to-end: Orbit Media for the SFU media plane (forked from LiveKit OSS under Apache-2 — see attribution), Deepgram for speech-to-text, Cartesia for text-to-speech, Claude for the agent reasoning, all behind a single API. You don’t wire any of it yourself.

Step 1: Provision a number (60 seconds)

The fastest way to start is a trial number — free for 7 days, shared from our pool, no credit card.
  1. Open your dashboard at orbit.devotel.io.
  2. From the home page, click Claim a trial number in the onboarding card. (Already past onboarding? Open Numbers → Buy and pick Use a trial number at the top of the list.)
  3. The dashboard assigns one number from the pool and lists it under Numbers. Note the E.164 form — e.g. +14155551234.
For production traffic you’ll buy a dedicated DID via Numbers → Buy, but the trial number works for inbound, outbound, SMS, and voice during the trial window.

Step 2: Configure an agent (90 seconds)

  1. Open AgentsNew agent.
  2. Pick a name, leave the type as voice (or chatbot — voice works with any agent type as long as a system prompt is set).
  3. Paste a starter system prompt:
    You are a helpful customer-support assistant for Acme Inc.
    Greet callers, answer questions about order status and returns,
    and escalate anything billing-related by saying "let me transfer
    you to a billing specialist".
    
  4. Save. Your agent now has a stable ID like agt_abc123.
  5. Click Test by voice (the second pill next to “Test by chat” in Agent Studio). Grant mic permission, talk to the agent in the browser, and confirm the system prompt is doing what you expect before you wire it to a real number. The browser-mic test reuses the same Orbit Media + Deepgram + Cartesia pipeline that the PSTN path uses, so anything that works here will work on a real call.

Step 3: Route inbound calls to the agent (45 seconds)

  1. Open Numbers, click your trial (or purchased) number.
  2. Under Inbound routing, pick AI agent.
  3. Select the agent you just saved.
  4. Save.

Step 4: Receive your first call

Pick up any phone and dial your provisioned number. Orbit:
  1. Answers the call
  2. Streams audio through Deepgram for live STT
  3. Routes the user-message transcript to the agent
  4. Streams the agent’s reply through Cartesia TTS back to the caller — with barge-in detection so the caller can interrupt long replies naturally
You should hear your agent greet you per the system prompt within two seconds of pickup. If anything feels off, check the call’s live transcript in Conversations while you’re still on the call.

Step 5: Dispatch an outbound call from the API

curl -X POST https://api.orbit.devotel.io/api/v1/voice/calls \
  -H "X-API-Key: $ORBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+14155552671",
    "from": "+14155551234",
    "agent_id": "agt_abc123"
  }'
from must be a number you own or have claimed as a trial. Replace agent_id with the value from Step 2.

Node SDK

import { Orbit } from "@devotel/orbit";

const orbit = new Orbit({ apiKey: process.env.ORBIT_API_KEY! });

const call = await orbit.voice.calls.create({
  to: "+14155552671",
  from: "+14155551234",
  agentId: "agt_abc123",
});

console.log(call.id);
Only the Node SDK is GA today. For Python / Go / Java / Ruby / PHP / .NET, call the REST endpoint above with your HTTP client of choice until the official SDKs ship.

Step 6: Subscribe to call events (optional)

Orbit publishes per-call lifecycle events you can stream via SSE or a webhook. The SSE subscription is the simplest path for an in-browser dashboard or a quick CLI tail:
const evt = new EventSource(
  "https://api.orbit.devotel.io/api/v1/voice/calls/stream?api_key=" +
    apiKey,
);

evt.addEventListener("call.ringing", (e) =>
  console.log("ringing", JSON.parse(e.data)),
);
evt.addEventListener("call.connected", (e) =>
  console.log("connected", JSON.parse(e.data)),
);
evt.addEventListener("call.completed", (e) =>
  console.log("completed", JSON.parse(e.data)),
);
For server-to-server delivery use the webhook surface — see Webhooks. The same payload shapes flow through both.

Language coverage

The voice agent pipeline (Deepgram Nova-3 STT → Claude reasoning → Cartesia Sonic Turbo TTS) is generally available in English, French, Spanish, and German. Set language on the agent config to en-US, fr-FR, es-ES, or de-DE and expect production-grade prosody, barge-in, and turn detection. Turkish (tr-TR) and Arabic (ar-SA) are in beta — recognition works, but prosody / disfluency edge cases are still being tuned, so long-form replies may sound slightly off and heavy code-switching can lower transcript confidence. They work today; please flag specific phrases that sound wrong so we can feed them back into the tuning set. Other locales are on the roadmap. The upstream providers cover ~30 languages between them, but we only GA a locale after validating phone-PSTN audio quality against the <500 ms round-trip budget. Contact us for early access to a locale that isn’t listed above.

Common next steps

  • Add knowledge: attach a knowledge base to your agent so it can answer FAQ-style questions grounded in your docs. See AI Agents → Creating Agents.
  • Handoffs: route specific intents (billing, returns, sales) to different agents or to a human queue. See Handoff Targets.
  • Cost controls: set a daily spend cap so a misbehaving prompt can’t blow through your wallet. See Cost Controls.
  • Production numbers: buy a dedicated DID from Numbers → Buy when you’re ready to leave the trial pool. Numbers in regulated countries (US, DE, FR, …) may require a compliance bundle — the dashboard surfaces the required steps inline.

Cross-references