On-site 911 notifications (Kari’s Law)
Kari’s Law (47 U.S.C. § 623; FCC rules at 47 CFR § 9.16) places two duties on a multi-line telephone system in the US: 911 must be reachable without a prefix, and the instant a user dials it, a designated on-site point — a front desk, a security office, a safety manager — must be notified so someone can meet responders and direct them to the caller. If you run Orbit as the phone system for a US site, the on-site notification is a control you configure. You choose the safety contacts and the endpoints; Orbit provides the fan-out. This guide covers turning it on, what each channel sends, how to rehearse it end-to-end, and what a failing target means. The other half of the statute, and what Orbit’s blocked emergency dialing means for your disclosure obligations, is covered in Emergency Calling: Kari’s Law and RAY BAUM’S Act posture.What Orbit implements
The notification is per-organization and off by default. Until you enable it and configure at least one channel, nothing changes for your deployment. Once enabled, the moment a dial on any outbound surface resolves to a blocked emergency code — 911, 112, 999, or 000 — Orbit fans the alert out to every channel you configured:- Email to each safety contact (up to 25).
- Webhook, an HTTPS POST to your security-desk or SIEM endpoint, optionally HMAC-signed.
- Slack, an Incoming Webhook post to a channel you choose.
Before you enable: the notification is advisory
Orbit does not route emergency calls. Live emergency codes are rejected at every dispatch layer whether or not this notification is configured — that block is shipped platform behavior, described in Emergency calling. The notification does not create an emergency path; it tells your safety desk that a user just tried to reach one, so staff can check on the caller and use the real path. Before enabling, make sure your emergency plan already covers:- A working fallback at every site — a landline or mobile that reaches 911 outside Orbit.
- Signage and onboarding disclosure that Orbit phones cannot place emergency calls.
- A staffed point to receive the alerts you are about to configure. An alert nobody reads is worse than none, because it looks like coverage.
Configure the fan-out
Two admin endpoints manage the configuration (organization owner or admin with voice write access):GET /api/v1/voice/emergency-notificationPUT /api/v1/voice/emergency-notification
emergency_notifications; the PUT replaces only that
block and preserves every other voice and organization setting.
Read the current configuration
cURL
200 with the normalized record — never 404 —
so a rollout script can render the empty state directly.
Enable or update
cURL
Every change is recorded in your audit log.
Verify end-to-end
- Point each channel at an observable test target — a test mailbox, a request catcher for the webhook, a private Slack channel.
- From a test extension, dial 911 on each surface you ship: the
browser softphone, a registered desk phone, and a transfer flow.
The dial is rejected with
EMERGENCY_CALLING_NOT_SUPPORTED— expected; that reject is precisely what triggers the fan-out. Confirm the email, the webhook POST, and the Slack message all arrive, and that the dispatch’s per-channel outcome landed in your audit log. - Repeat with the other blocked codes your users are likely to
attempt:
112on EU-issued devices,999,000. - Rehearse the call path separately with the 933 drill (E911 emergency drill mode). The drill rewrites 933 to a safe destination so agents can practise the “cannot reach 911, use the fallback line” flow. Because the rewrite never produces a blocked emergency dial, it does not trigger the on-site notification — the blocked-code dials in steps 2–3 are the notification rehearsal.
Payload reference
All three channels carry the same facts: the matched emergency code, the exact value dialed, the surface the dial came from, the caller’s line and extension where known, a call reference, and the detection timestamp.[Emergency] 911 dialed on your phone system, with the code
reflecting whichever emergency code matched. The body lists each
fact on its own line, for example:
Security-desk webhook
A JSON POST withContent-Type: application/json:
origin is one of outbound_call (a direct dial),
blind_transfer, warm_transfer (the consult leg), or
conference_add. Facts the surface does not know arrive as null.
Headers:
A 2xx response counts as delivered; anything else is recorded as a
failed delivery. Verify the signature before trusting a request:
Slack
A standard Incoming Webhook POST: a one-linetext summary plus a
bulleted rendering of the same facts as the email. Post it to a
channel that is staffed — or paged to on-call — not one that mutes by
default.
Failure semantics: best-effort and non-blocking
The notification is advisory and independent of call handling:- The emergency dial is rejected exactly the same way whether the fan-out succeeds, partially succeeds, or fails entirely. A notification failure can never delay, alter, or un-block a dial.
- Channels fail independently: a dead webhook does not stop the emails or the Slack post.
- Email uses the same delivery path and retries Orbit applies to other system email; webhook and Slack make a single attempt per event with a 10-second timeout.
- Targets that resolve to internal or private network addresses are refused at delivery time and recorded as failed.
Pair with your RAY BAUM’S Act location records
The on-site notification answers “who was told”; a dispatchable location answers “where is the caller.” Register per-number emergency addresses and keep them current — floor, suite, room — so the safety desk that receives an alert can direct responders to the right place: Emergency address. The two controls are independent and both tenant-owned; the posture page maps them to the statutes: Emergency Calling posture.Related references
- Emergency calling — the platform block on 911 / 112 / 999 / 000 and the error shape your integration sees.
- Emergency Calling: Kari’s Law and RAY BAUM’S Act posture — the statutes, who they bind, and the tenant-owned mitigation list.
- E911 emergency drill mode — rehearse dial behavior with 933 without touching a live PSAP.
- Emergency address — the dispatchable-location record that pairs with this notification.