E911
E911, or Enhanced 911, is a support system for wireless and VoIP phone users who dial 911, the standard number for requesting help in an emergency across supported countries. Because a VoIP number isn’t tied to a physical line, you register a street address for the number ahead of time. When someone dials 911 from that number, the call is routed to the dispatch center serving the registered address, and that address is displayed to the dispatcher.
E911 on SignalWire is self-service: create an emergency address, assign it to a phone number, and the number is provisioned for emergency calling. You can manage everything from the Dashboard or the REST API.
911 calls from unregistered numbers
Calling 911 from a number with no E911 address still connects, but it is answered by a national relay center that must ask for your location before transferring you to local responders — delaying response. Each of these calls also incurs a $100 fee. Register an address before an emergency, and always dial 933, not 911, to test your configuration — 933 test calls are exempt from the fee.
How it works
Emergency addresses live in your project as a reusable collection, so one address can serve many of the project’s phone numbers. E911 is available for US addresses only. When you create a US address with emergency service enabled, it is validated against the carrier’s emergency database, and small errors are corrected automatically.
Assigning a validated address to a phone number starts provisioning at the carrier.
Provisioning is asynchronous:
the number’s E911 status starts as pending and becomes active once the carrier confirms,
typically within a few minutes.
The address’s label is presented to the dispatcher as the caller name,
so use a label that identifies the caller or location clearly.
While a number has an E911 address assigned,
it can’t be transferred to another project.
Set up E911 with the REST API
First, create an address with emergency_enabled set to true:
If the carrier can’t validate the address,
the request fails with a 422 response listing the problems
and, when available, suggested corrections in a candidates array.
Next, assign the address to a phone number:
The phone number’s e911_status field tracks provisioning;
the number is ready for emergency calling once it reads active.
Status changes don’t send webhooks,
so poll the number to watch for the transition.
To disable E911 on the number,
send a DELETE request to the same endpoint.
For full request and response details, see the E911 Addresses reference for address operations, and Assign an E911 address and Remove an E911 address under the Phone Numbers reference.
Compatibility API
If you manage numbers with the Compatibility API,
you can attach an existing emergency address by setting EmergencyAddressSid
when updating an incoming phone number.
Set up E911 in the Dashboard
Open the Phone Numbers section of your Dashboard and select the E911 tab to create and manage emergency addresses. To assign an address, open a phone number’s detail page and set its emergency address there. The same validation and provisioning process applies, and the number’s E911 status is shown alongside the assignment.
Test your E911 configuration
Once the number’s E911 status is active,
dial 933 from it.
933 is the emergency network’s test line:
it reads back the address on file for the number
so you can confirm your registration is correct,
and calling it never incurs the unregistered-call fee.
If 933 doesn’t read back the address you registered,
check the number’s E911 status:
provisioning may still be pending,
or the number may not have an address assigned at all.