Compliance July 19, 2025 12 min read

VoIP 911 & E911 Complete Guide for SIP Trunks

Everything you need to know about emergency calling for VoIP systems. Understand compliance requirements, configure E911 for your PBX, and ensure your employees can reach emergency services from any location.

Critical: E911 is not optional. Federal law requires all VoIP providers and enterprise phone systems to provide 911 service with location information. Non-compliance can result in FCC fines up to $10,000 per violation per day, plus potential criminal liability if someone is harmed due to failed 911 service.

What is E911? (Enhanced 911 vs Traditional 911)

E911 (Enhanced 911) automatically transmits the caller's location to emergency dispatchers. With traditional landline 911, your address is associated with your phone line in a database. When you call 911, the dispatcher immediately sees your address on their screen.

1 Traditional 911 (Landline)

  • Phone number tied to physical address
  • Location lookup via ALI database
  • Works automatically, no configuration
  • Cannot move the phone to another location

2 E911 for VoIP

  • Location registered with E911 provider
  • Called "Registered Location" or "ELIN"
  • Requires configuration and maintenance
  • Must update when phone moves

The VoIP Challenge

Unlike landlines, VoIP phones can be used anywhere with an internet connection. An employee could take their desk phone home, or a softphone user could be in a different state than their office. Without proper E911 configuration, a 911 call could be routed to the wrong dispatch center, or dispatchers would have no idea where to send help.

Key Concept: E911 works by associating a physical street address (the "Registered Location") with each phone number or extension. When that number dials 911, the address is transmitted to the PSAP (Public Safety Answering Point) so dispatchers know where to send help.

How VoIP 911 Works

VoIP 911 relies on a chain of components to route the call and deliver location information to emergency dispatchers. Understanding this chain helps you configure it correctly.

1

User Dials 911

Employee or user dials 911 from their IP phone, softphone, or WebRTC client

2

PBX Routes to E911 Provider

Your Asterisk/FreePBX/3CX system recognizes 911 and routes it to your E911-enabled SIP trunk

3

E911 Provider Looks Up Location

Provider matches the caller ID or extension to the registered address in their database

4

Call Routed to Correct PSAP

Based on the address, call is routed to the appropriate 911 center (PSAP) for that location

5

Dispatcher Receives Location

911 dispatcher sees the registered address on their screen and dispatches responders

ELIN vs. Dynamic Location

ELIN (Emergency Location ID Number)

A dedicated phone number assigned to a specific location. When 911 is called, this number is sent as the caller ID.

  • Simple to configure
  • One ELIN per location/zone
  • Callback goes to ELIN number

Dynamic Location (P-ASSERTED-IDENTITY)

Location is sent in SIP headers. More flexible but requires more sophisticated configuration.

  • Per-extension locations possible
  • Works with nomadic users
  • Requires PBX support

E911 Setup for SIP Trunks

Setting up E911 for your SIP trunk involves registering your location(s) with your provider and configuring your PBX to route 911 calls correctly.

Step 1: Register Your Location

In your SIP provider's portal (like the IPComms customer portal), you will register the physical address for each phone number or location:

FieldExampleNotes
Street Number123Building number
Street NameMain StreetNo abbreviations
CityChicagoFull city name
StateILTwo-letter code
ZIP606015-digit ZIP
Location DetailsFloor 3, Suite 301RAY BAUM's requirement

Address Validation: Your address must match the MSAG (Master Street Address Guide) database. The provider will validate the address. If it does not match exactly (e.g., "Ave" vs "Avenue"), you may need to adjust it.

Step 2: Configure 911 Routing in Your PBX

Your PBX must be configured to:

  • Recognize 911 (and 933 for testing) as emergency numbers
  • Route these calls out your E911-enabled trunk
  • Send the correct caller ID (ELIN or DID associated with the location)
  • Not require any prefix to dial 911 (Kari's Law compliance)

E911 Configuration: Asterisk, FreePBX & 3CX

Asterisk Asterisk Dialplan Configuration

In your Asterisk dialplan, create a dedicated context for emergency calls. This example assumes you have an E911-enabled trunk named "ipcomms-e911":

; extensions.conf - Emergency Calling
[emergency]
; Direct 911 dialing (Kari's Law compliant)
exten => 911,1,NoOp(Emergency 911 Call)
 same => n,Set(CALLERID(num)=5551234567)  ; Your ELIN or registered DID
 same => n,Set(CALLERID(name)=Company Name)
 same => n,Dial(PJSIP/911@ipcomms-e911)
 same => n,Hangup()

; 933 test number (many providers support this)
exten => 933,1,NoOp(E911 Test Call)
 same => n,Set(CALLERID(num)=5551234567)
 same => n,Dial(PJSIP/933@ipcomms-e911)
 same => n,Hangup()

; Include emergency context in all user contexts
[internal]
include => emergency

FreePBX FreePBX E911 Setup

FreePBX handles E911 through outbound routes and the Emergency Notification module:

  1. Create E911 Outbound Route: Go to Connectivity > Outbound Routes > Add Route. Name it "Emergency" and set it as the highest priority route.
  2. Dial Pattern: Add pattern 911 and 933 with no prefix requirement.
  3. Trunk Selection: Select your E911-enabled trunk. Set the CID Override to your registered ELIN.
  4. Enable Notifications: In Admin > Emergency Notification, configure email/SMS alerts when 911 is dialed (Kari's Law compliance).

FreePBX Tip: Use the "Emergency CID" field in extension settings to assign location-specific caller IDs for multi-floor or multi-building setups.

3CX 3CX E911 Configuration

3CX has built-in E911 support with emergency number configuration:

  1. Emergency Numbers: Go to Settings > PBX > Dial Codes and add 911 to the Emergency Numbers list.
  2. Outbound Rule: Create an outbound rule matching 911 that routes to your E911 SIP trunk.
  3. Caller ID: In the trunk settings, set the "E911 Caller ID" field to your registered location's ELIN or DID.
  4. Notifications: Configure "Emergency Call Alerts" to notify security/reception via email when 911 is dialed.

3CX v20+: The latest 3CX versions support location-based E911 routing where different extensions can be assigned to different emergency response locations.

Multi-Location E911 Considerations

Organizations with multiple offices, floors, or buildings face additional E911 challenges. RAY BAUM's Act requires dispatchable location information, meaning you may need multiple registered locations.

When You Need Multiple E911 Locations

Separate Locations Required

  • Multiple office buildings
  • Different floors in a high-rise
  • Campus with multiple buildings
  • Remote/home workers
  • Retail stores or branch offices

Single Location May Suffice

  • Small single-floor office
  • Single building, easy to navigate
  • All employees in one area

Implementation Strategies

Strategy 1: ELIN per Zone

Assign a dedicated DID to each floor or building. Configure your PBX to use the correct ELIN based on the calling extension's zone.

Strategy 2: Extension-Based Routing

Group extensions by location (e.g., 1xx = Floor 1, 2xx = Floor 2) and route 911 calls to different trunks or with different caller IDs based on the extension range.

Strategy 3: Dynamic Location Services

For large enterprises, consider E911 services like RedSky or Intrado that integrate with your network to automatically detect phone locations.

Remote Workers: Remote and hybrid employees present a challenge. If an employee uses their office softphone from home, 911 would route to the wrong location. Consider requiring location registration updates or using dynamic E911 solutions for nomadic users.

Testing Your E911 Configuration

Testing is critical. You do not want to discover E911 problems during an actual emergency. There are safe ways to test without making a real 911 call.

Test Methods

MethodHow It WorksWhat It Tests
Dial 933Connects to E911 test line; plays back your registered addressLocation registration, call routing
Provider Test PortalSome providers have a web-based test toolAddress validation, ELIN assignment
Non-Emergency LineCall your local PSAP's non-emergency number and ask to verify E911Full end-to-end verification

Never test by dialing 911 unless it is a true emergency. Even brief test calls to 911 tie up emergency resources and may be illegal in some jurisdictions. Always use 933 or coordinate with your local PSAP for testing.

Testing Checklist

IPComms E911 Service

IPComms makes E911 compliance simple and affordable. Our E911 service is fully integrated with our SIP trunking platform, so you can register locations, manage ELINs, and ensure compliance from a single dashboard.

$2.50
per DID / month
Instant
Address validation
933
Test number included
24/7
Support available

What is Included

  • E911 routing to correct PSAP
  • Dispatchable location support
  • MSAG address validation
  • Kari's Law compliant
  • RAY BAUM's Act compliant
  • Self-service portal for location management
  • Multi-location support
  • Setup assistance from our team

Already an IPComms Customer? E911 can be enabled for any existing DID from your customer portal. Go to Phone Numbers > select the DID > Enable E911 and register your address. Changes take effect within minutes.

Get E911 Compliant Today

Protect your employees and meet federal compliance requirements. IPComms E911 service is just $2.50/DID/month with no setup fees.

Related Articles