E911, Kari's Law, and RAY BAUM's Act for Asterisk PBXes

Compliance -- Last reviewed 2026-08-02 e911 compliance legal emergency pjsip Found this useful? Upvote it. ×

E911, Kari's Law, and RAY BAUM's Act for Asterisk PBXes

Emergency calling is one of the places where a PBX configuration stops being just a call-routing problem. If someone dials 911 from a desk phone, softphone, hotel room, classroom, warehouse, or remote worker extension, two things need to happen fast: the call must reach the right emergency answering point, and responders must know where to go.

This reference explains how Kari's Law, Section 506 of RAY BAUM's Act, and the FCC's MLTS rules apply to Asterisk multi-line telephone systems. It then turns those requirements into Asterisk design patterns you can actually audit.

Last reviewed: August 1, 2026

Not legal advice

This is a technical compliance reference for Asterisk administrators, not legal advice. E911 obligations can also involve state rules, local 911 authority requirements, carrier tariffs, ITSP terms, building operations, and industry-specific duties. Confirm your final policy with counsel and your emergency service provider.

What the laws are trying to prevent

The failure mode is simple. A person in distress dials 911 from a phone attached to a business PBX. The PBX expects a trunk-access digit, so direct 911 fails. Or the call reaches a public safety answering point, but the location delivered with the call only says "100 Main Street" when the caller is actually on floor 14, room 1421. Or security finds out about the emergency only after responders arrive.

Kari's Law and RAY BAUM's Act address those gaps:

For an Asterisk administrator, the practical question is this: if any endpoint can call the public telephone network, can that same endpoint dial 911 directly, send the right callback number and location, and alert the people nearby without slowing the emergency call down?

Requirement summary

Requirement Source Practical Asterisk control
Direct 911 dialing Kari's Law, 47 U.S.C. 623 and 47 CFR 9.16 Route 911 directly. Do not require 9, a PIN, an account code, or a class-of-service exception.
Legacy leading-9 tolerance Operational safety pattern Also route 9911 to the same emergency context, but only as a fallback. It does not replace direct 911.
MLTS notification 47 CFR 9.3 and 47 CFR 9.16 Notify security, reception, facilities, or an on-call team at the same time as the 911 call, without delaying the call.
Dispatchable location RAY BAUM's Act Section 506 and 47 CFR 9.3 Maintain endpoint-to-location mapping with street address plus floor, room, suite, zone, building, or similar detail.
On-premises fixed devices 47 CFR 9.16(b)(3)(i) Desk phones should automatically convey dispatchable location. Do not depend on the caller to speak it.
Non-fixed and off-premises devices 47 CFR 9.16(b)(3)(ii) and (iii) Use automated location where feasible, otherwise maintain manually updated registered location or enhanced location information.
MLTS scope 47 U.S.C. 1471 and 47 CFR 9.3 Treat PBX, hosted VoIP, key systems, hybrid systems, Centrex-style services, and Asterisk software PBX deployments as MLTS candidates.

Effective dates

The key federal dates have already passed:

If you operate an old PBX, do not treat age as a free pass without review. Asterisk systems get rebuilt, virtualized, moved to new hosts, converted to PJSIP, merged with hosted trunks, and reworked during office moves. Those changes can make "legacy" assumptions fragile. From an engineering standpoint, build and test the system as if direct 911, notification, and dispatchable location are mandatory.

Applicability for Asterisk deployments

Asterisk is usually part of an MLTS when it serves multiple users and connects them to outside telephone service. That can include:

The FCC definition of MLTS is broad enough to include PBX and VoIP systems. The safer working assumption is simple: if Asterisk controls extension dialing and outbound trunk selection for US users, E911 belongs in the design, not in a later ticket.

Kari's Law controls

Direct 911 dialing

Every station with dialing capability needs a working 911 route. Do not place emergency calls behind:

You may keep 9911 or 9-911 as a tolerated legacy pattern. That is a safety net for people trained on old systems. It is not the compliant path by itself.

On-site or responsible-party notification

Kari's Law also requires MLTS notification when the system can provide it without a hardware or software improvement. Under 47 CFR 9.3, the notification should include the fact that a 911 call was made, a valid callback number, and the location information sent to the PSAP when technically feasible.

Good notification targets include:

The notification must not delay the 911 call. In Asterisk terms, keep it out of the critical path. If you call an external script, make it fast, fire-and-forget, and fed only by internally assigned values. Better yet, push an AMI, ARI, syslog, webhook, or queue event to a local service that handles email, SMS, paging, and chat notifications outside the dialplan thread.

RAY BAUM's Act controls

Dispatchable location means more than a street address

The FCC definition of dispatchable location is the validated street address plus additional information needed to identify the caller's location. In a small one-room office, the street address may be enough. In a multi-story building, campus, hotel, hospital, warehouse, or school, it usually is not.

Useful dispatchable-location fields include:

Do not confuse caller ID with dispatchable location. Caller ID is usually the lookup key your ITSP or E911 provider uses. Dispatchable location is the record responders need after that lookup.

Fixed phones

For fixed phones, the location should be automatic. A desk phone in room 214 should not rely on the user saying "room 214" after the call connects. If that phone moves, the location record needs to move with it before the phone is placed back into service.

Non-fixed and remote devices

Softphones, Wi-Fi handsets, VPN phones, and remote worker devices need a different process. If you cannot automatically determine their dispatchable location, make the user confirm or update location before the device is allowed to place normal calls.

A reasonable remote-worker pattern is:

  1. User signs in or registers a device.
  2. PBX checks whether a current emergency address exists for that device or user.
  3. If the address is missing or stale, normal outbound calling is blocked or routed to a location-confirmation workflow.
  4. Emergency calling still routes to 911, but the system uses the best available callback and location data.
  5. The address update is pushed to the ITSP or E911 provider before the user is considered fully active.

If the provider cannot update E911 records in real time, document the delay and design around it. Do not tell users a location is active until the provider has accepted it.

Asterisk endpoint location model

Keep emergency location data in one place that operations can audit. For small systems, endpoint variables in pjsip.conf may be enough. For larger systems, use a database table keyed by endpoint, MAC address, user, site, or DID.

Example pjsip.conf endpoint variables:

[desk-hq-214]
type=endpoint
aors=desk-hq-214
auth=desk-hq-214
context=internal
set_var=E911_LOCATION_ID=HQ-F02-R214
set_var=E911_CALLBACK=12125550142
set_var=E911_SITE_NAME=Headquarters floor 2 room 214

For this to be useful, HQ-F02-R214 must map to a validated emergency record with your ITSP or E911 provider. A local variable that never reaches the provider or PSAP is only an internal label.

A simple location table should track:

Field Purpose
location_id Stable key used by the dialplan and notification service.
validated_address Street address accepted by the emergency provider.
floor, room, suite, zone Dispatchable detail.
callback_number Number associated with the location or emergency response location.
endpoint, user, or device_id What maps a call to this location.
provider_record_id External record at the ITSP, LIS, or E911 vendor.
last_validated_at Evidence that the location was reviewed.
review_due_at Operational trigger for recertification.
source Manual entry, HR address, network location, Wi-Fi map, or provider callback.

Dialplan pattern

The dialplan should be boring and explicit. Emergency calling is not the place for clever pattern matching.

[internal]
exten => 911,1,Goto(e911,call,1)
exten => 9911,1,Goto(e911,call,1)

[e911]
exten => call,1,NoOp(E911 call from ${CALLERID(all)} on ${CHANNEL})
 same => n,Set(E911_LOCATION_ID=${IF($["${E911_LOCATION_ID}"=""]?UNKNOWN:${E911_LOCATION_ID})})
 same => n,Set(E911_CALLBACK=${IF($["${E911_CALLBACK}"=""]?12125550100:${E911_CALLBACK})})
 same => n,Set(CALLERID(num)=${E911_CALLBACK})
 same => n,Set(CALLERID(name)=Emergency Call)
 same => n,System(/usr/local/sbin/e911-notify '${E911_LOCATION_ID}' '${E911_CALLBACK}' '${UNIQUEID}' &)
 same => n,MixMonitor(e911/${STRFTIME(${EPOCH},,%Y/%m/%d)}/${UNIQUEID}.wav,b)
 same => n,Dial(PJSIP/911@e911-trunk,,b(e911-headers^add^1(${E911_LOCATION_ID})))
 same => n,Hangup()

[e911-headers]
exten => add,1,NoOp(Add emergency location hint for ${ARG1})
 same => n,Set(PJSIP_HEADER(add,X-E911-Location-ID)=${ARG1})
 same => n,Return()

Important details:

Use Dial() for the emergency trunk call and Gosub() for reusable policy logic if your real dialplan has multiple sites or tenants.

Notification design

The notification should be useful to people who can help responders. A good alert says:

Send the alert to more than one channel when the site justifies it. A front-desk screen is good during business hours. It is less useful for a warehouse at 2 AM. For remote sites, send alerts to an on-call destination or central security desk.

Do not build the alert so it can block the 911 call. Email, SMS, Teams, Slack, paging, or ticket creation should be handled by a local notification service that receives a small event from Asterisk and then does the slow network work by itself.

Recording emergency calls

The issue scope calls out MixMonitor(), and recording can be operationally useful for incident review. Treat emergency recordings as sensitive.

If you record emergency calls:

For a practical recording toggle pattern, see Selective Call Recording. Emergency recording should be automatic only if your policy has approved it. It should not depend on an agent remembering to press a feature code.

What your ITSP or E911 provider needs

Asterisk cannot satisfy dispatchable-location rules by itself. The provider handling the emergency call must receive or already have the correct location record.

Ask your provider how they support:

For many ITSPs, the right answer is not a custom SIP header. It is a callback number that maps to a provider-side emergency address. For larger or nomadic environments, the answer may be a LIS, HELD workflow, provider API, or dedicated E911 service.

Remote worker location-confirmation pattern

A softphone that registers from a home network is not located at headquarters just because its extension number belongs to headquarters. Build a workflow that forces location maintenance.

A practical policy:

A voice prompt can work for small deployments:

[location-required]
exten => s,1,Playback(custom/emergency-location-required)
 same => n,Playback(custom/update-location-before-calling)
 same => n,Hangup()

For most real systems, use a web form tied to the provider API. The PBX should consume the resulting status, not become the source of truth for address validation.

Test plan

Do not wait for a real emergency to discover that the wrong DID is registered.

Minimum recurring checks:

Coordinate test calls with your ITSP and local emergency authority. Do not place casual 911 test calls without following the approved procedure.

Penalties and risk

Kari's Law is enforced under the Communications Act, and 47 U.S.C. 503 gives the FCC civil forfeiture authority for willful or repeated violations of the Act or FCC rules. The FCC's forfeiture rules and inflation-adjusted maximums are in 47 CFR 1.80.

The operational risk is larger than a fine. A bad E911 design can delay emergency response, send responders to the wrong building or floor, expose the organization to civil claims, and leave administrators with no audit trail showing what the PBX did.

Implementation checklist

Official sources used

User Notes

Know a tip or gotcha for this topic? Share it below and help others.

Contribute a note

Share a tip, gotcha, or practical example. Keep it under 2000 characters. No questions (use the Asterisk community forums for support). Wrap code in backticks.

Moderated before publishing. Email never shown.
Related Snippets