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.
Emergency Calling
What gets blocked
Every outbound voice send is run through the same dial-plan matcher (packages/shared/src/utils/emergency-dial.ts) before it reaches
billing, the trunk, or the carrier. The matcher strips formatting,
trunk prefixes, and country codes, then compares the survivor
against the blocked short-code set.
The blocked short codes today:
| Code | Used in |
|---|---|
911 | United States, Canada |
112 | EU, UK, Israel, India, most of the world (mobile fallback) |
999 | UK, Ireland, Hong Kong, Singapore, Saudi Arabia, several others |
000 | Australia |
- Bare digits:
911,112 - With
+prefix:+911,+112 - With NANP country code:
1911,+1911,1-911 - With trunk prefix:
0112,00112,011911 - Formatted:
(911),9-1-1,9 1 1
+19115551234) are not blocked — the matcher’s
length guard only collapses prefixes when the survivor’s length
equals an emergency short code.
What you see when a call is blocked
Every layer of Orbit’s stack — the API send-voice endpoint, the voice-gateway dispatcher, and the Jambonz dial-plan router — returns the same stable error code so your integration can branch on it without string-matching a localised message.422 Unprocessable Entity. The block fires
pre-flight: no carrier dispatch happens, no per-minute cost is
billed, and no PSAP is contacted. The audit log captures the
attempt with a redacted destination (+1911****) for security
review.
Branch on
error.code === "EMERGENCY_CALLING_NOT_SUPPORTED" —
never on the human-readable message. The message is localised at
the dashboard layer and may change.Why E911 is not supported
E911 (Enhanced 911) routing requires three things Orbit does not offer: PSAP-aware trunking (calls must land at the correct Public Safety Answering Point for the caller’s physical location); Registered Location Information (US FCC rules require the caller’s dispatchable address be provisioned in the NENA i3 ESInet before any 911 call is placed); and real-time location updates for browser, mobile-app, and SIP-trunk callers whose physical location is not stable. Orbit is treated as a non-interconnected VoIP service under FCC classification and is therefore not subject to the E911 mandate — but is also barred from offering 911 service without meeting the full E911 obligations.Operator obligations
If your product surfaces a softphone, an agent call flow, or any interface that lets a human originate calls, you must disclose this limitation. Tell users at sign-up that the service does not place emergency calls. WhenEMERGENCY_CALLING_NOT_SUPPORTED comes back,
render a clear “Call 911 from a regular phone” message — do not
retry silently. Recommend the user’s mobile or landline phone for
emergencies, and surface this prominently if your product is
medical or safety-related. Orbit captures every rejected attempt in
your audit log with a redacted destination; keep these for
compliance review.
Related — quiet-hours and timezone policy
Outbound voice is also subject to TCPA quiet-hours enforcement (invariant #68) — US federal law (47 U.S.C. § 227(b)(1)(B)) prohibits autodialled or pre-recorded calls outside 8 AM–9 PM in the recipient’s local time. This gate is a hard guard for US destinations and cannot be disabled per-tenant. When the recipient’s timezone cannot be resolved (no NANP area-code hit, no contact-leveltimezone field, no country-level fallback),
behaviour depends on the org’s unknown_timezone_policy setting:
| Value | Behaviour |
|---|---|
skip (default) | Allow the call. TCPA only applies to US recipients; unknown-tz destinations are presumed non-US. |
enforce_utc | Evaluate the call against the UTC clock — 8 AM–9 PM UTC. Strict orgs (typically EU operators) lock this on. |