> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbit.devotel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Emergency Calling (911 / 112 / 999 / 000)

> Why Orbit blocks emergency short codes and how to handle the block in your application

# Emergency Calling

<Warning>
  **Orbit does not support emergency calling. Any outbound call to
  911 (US/Canada), 112 (EU and most of the world), 999 (UK / Ireland
  / Hong Kong / several others), or 000 (Australia) is rejected
  before it reaches a carrier.**

  If you or someone with you needs emergency help, **dial 911 / 112 /
  999 / 000 from a regular mobile or landline phone.** Orbit's
  internet-routed calls cannot deliver your location to a Public
  Safety Answering Point (PSAP).
</Warning>

***

## 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                                                       |

The matcher also rejects these variants of the same dial:

* 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`

Real phone numbers that happen to start with these digit sequences
(for example `+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.

```json theme={null}
{
  "error": {
    "code": "EMERGENCY_CALLING_NOT_SUPPORTED",
    "message": "Emergency calls are not supported on this service. Dial 911 from a landline or mobile phone.",
    "status": 422,
    "details": {
      "to": "+1911****",
      "emergency_code": "911",
      "docs_url": "https://docs.orbit.devotel.io/voice/emergency-calling"
    }
  },
  "meta": {
    "request_id": "req_abc123",
    "timestamp": "2026-05-14T00:00:00Z"
  }
}
```

The HTTP status is `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.

<Note>
  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.
</Note>

***

## 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. When `EMERGENCY_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-level `timezone` field, no country-level fallback),
behaviour depends on the org's `unknown_timezone_policy` setting. If
the org has **not** set an explicit policy, the default is
**channel- and recipient-dependent**:

* **Outbound voice to a US (NANP `+1`) recipient** fails **closed** —
  the default is `deny`, so the call is **blocked**. TCPA quiet-hours
  is a hard guard for US voice, so an unresolvable timezone on a US
  number cannot be presumed safe.
* **Every other case** (non-voice channels, or a recipient presumed
  non-US) defaults to `skip` — the send is allowed, since TCPA does
  not apply.

| Value         | Behaviour                                                                                                                                                                        |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `skip`        | Allow the call. **Default** for non-voice channels and presumed-non-US recipients. TCPA only applies to US recipients; unknown-tz non-US destinations are presumed out of scope. |
| `deny`        | Block the call (fail-closed). **Default** for outbound voice to a US (`+1`) recipient whose timezone can't be resolved.                                                          |
| `enforce_utc` | Evaluate the call against the UTC clock — 8 AM–9 PM UTC. Strict orgs (typically EU operators) lock this on.                                                                      |

Set the policy under **Settings → Compliance → Quiet hours**.

***

## Roadmap

E911 / PSAP-aware emergency routing is on the platform roadmap but
not yet shipped. If your use case requires it (security-monitoring,
medical-alert, fleet-dispatch), please contact
[support@devotel.io](mailto:support@devotel.io) — we maintain a
notification list for the feature's GA.

Until then: **dial emergency services from a regular mobile or
landline phone.** Orbit cannot help in an emergency.

***

## Related references

* [Error Code Reference — EMERGENCY\_CALLING\_NOT\_SUPPORTED](/reference/error-codes#voice)
* [Voice Quickstart](/voice/quickstart)
* [Recording Consent](/compliance/recording-consent)
