IP Telephony needs some serious thought here. Part 1 of 4.
Today's E911 system is based on a fundamental flaw in circuit-based telephony – geographic-based addressing. Area codes and telephone numbers were engineered in a time when electro-mechanical step-switches first completed automatic routing. These numbers imbedded geographical data directly into them. For example, 212 area code, is Manhattan, 312 – Chicago and so on. For the longest time, your telephone number was bound to a physical central office which could serve only those telephones in its exchange – 519-455-xxxx were telephones on the east side of London Canada.
So the 911 system was invented in a time when these geographic limitations were all the norm. So, when you dial 911, your ten digit number (XXX-XXX-XXXX) is provided to the Public Safety Access Point serving your neighborhood. This number automatically looks up the address and indicates the address where you are so that depending on the call pattern, comments and so on, a police car could be dispatched to your location.
However, wireless users began to make this a serious problem. First of all, the industry had to solve roaming. Every wireless service provider has two databases, HLR and VLR. Home Locator Repository and Visitor Locator Repository. Every incoming call to a wireless service provider is checked against these two databases. One records that you are in your home service provider's service area, while the other records that you are in a 'roaming-compliant' partner's territory, and which service provider it is. That way, calls to your telephone number can make your telephone ring, even when you're in another country.
Wireless operators have to comply with E911 by using Global Positioning System transponders or less precise (and less expensive) 'triangulation' mechanisms – measuring relative signal strength of your wireless phone from two or more fixed position radios, and then zeroing in on an estimate of your physical location through trigonometric analysis.
Enterprise IP Telephony users have a different challenge.