Make your first outbound PSTN call
Two paths turn a new Orbit account into a phone that dials the PSTN:- Option A — register a SIP trunk with your own PBX or softphone software, and let API-origin calls dial out over it.
- Option B — the browser softphone, where an agent dials straight from a web page with no SIP client to install.
ringing → answered → completed). This guide walks either
path end to end and links the deep-dive page for the path you pick.
Every outbound leg terminates through the Devotel softswitch. A trunk
you register here is one origin surface; the termination path stays on
Orbit’s own network either way.
1. Prerequisites
Which prerequisite applies depends on the path:- Option A (SIP/trunk): a SIP-capable PBX (FreeSWITCH, Asterisk, 3CX) or a desktop SIP client (for example MicroSIP or Linphone), plus inbound SIP-credentials you mint on the account.
- Option B (browser softphone): an HTTPS page and a browser with a microphone grant — the same rules the browser softphone guide lists in full.
- Either path: at least one voice-enabled DID in the account to present as caller ID, and an API key with voice scope if you dial via the API.
2. Buy a voice-capable number
If the account has no DID yet, work through Buy and provision numbers — search inventory withcapabilities=voice (or sms,voice when messaging will share the
number), purchase, and poll the order until the line reports
provisioned:
from on every
dial below, and it is the only caller ID the outbound surface accepts.
3. Option A — register a SIP trunk
This path connects your own phone system to Orbit. The full lifecycle (direction choice, probe-before-save, credential capture, routing, monitoring) is a nine-step walkthrough in Connect a SIP trunk; the short version for a first call:- Create the trunk with the carrier-facing details:
- Register the device that will originate calls (your PBX, or a SIP client on an agent’s desk) against the SIP edge host shown in Settings → SIP trunks, using the digest or IP-allowlist auth the trunk is configured with.
- Skip to section 5 — once the originating surface exists, the dial step is identical to Option B.
POST /api/v1/voice/sip-trunks/probe, exercised in
sip-trunk-setup)
and it names the failing phase (DNS, connect, or REGISTER) instead of a
generic rejected call.
4. Option B — the browser softphone
The no-install path: mint a short-lived credential, connect the client, dial. The full guide is Set up the browser (WebRTC) softphone; on a first call you need three moves.- Mint a token:
- From your own page, mount the SDK softphone and connect — a minimal HTML page:
- Dial from the browser, or call the endpoint directly once the client is connected:
expiresAt instead of
recycling. The browser-fallback reality and the inbound decision (DNIS
→ queue or SIP routing for inbound rings) live in the
softphone guide.
5. Dial a single PSTN call
With either origin surface registered, the dial step is one API call —POST /api/v1/voice/calls. Pass the bought DID as from and any PSTN
destination as to; a record: true flag captures the audio for the
post-call read:
2xx response returns data.id (call_…) — the handle every later
step uses. Options answer_url/staticVerbs, AMD, and metadata-level
bookkeeping are at
Program an outbound voice call; for a
first call there is nothing to configure beyond to and from.
6. Read the lifecycle states
A call movesringing → in_progress → a terminal completed on
answer (or failed / no-answer on a declined or unanswered ring).
Poll the record:
call.completed / call.failed webhooks under
Settings → Webhooks and verify the delivery
signature. The Voice calls page in
the dashboard lists the same progression per call; the full state map
and webhook payloads live in
programmable-voice-call.
7. Common errors
These cover the failures a first outbound call hits in the wild:
SIP failures past this short list are covered in
Troubleshooting: SIP trunk down or calls failing;
lifecycle outcomes that look like (
no-answer, busy, unreachable) map
in programmable-voice-call.
Where to go next
- Program every call — answer_url verbs, AMD, recordings, transcripts: Program an outbound voice call.
- Run the trunk in production — failover, health snapshot, route quality: Connect a SIP trunk.
- Give agents the full softphone — inbound routing, mobile push, SDK events: Browser (WebRTC) softphone.