One of the larger Asterisk projects last year was adding the ability to create, manipulate and pass on Geolocation information. The most obvious use case, of course, being for emergency services. If you haven’t already, take a look at the Asterisk Geolocation wiki page. It’s packed with background information, a configuration reference and some examples.
Briefly:
As it applies to Asterisk, Geolocation is the process of…
- A channel driver accepting location information in an incoming SIP INVITE, either by reference or by value.
- Using a geolocation profile to determine the disposition of that information and/or possibly add or delete information.
- Passing the resulting information (if any) to the dialplan.
- Using an optional dialplan function which can also determine the disposition of that information possibly adding or deleting information.
- Passing the information from the dialplan to the outgoing channel driver.
- Again, using a geolocation profile to determine the disposition of that information and/or possibly add or delete information.
- Finally sending the information to another party, either by reference or by value.
Geolocation is a complex process:
Before you go off on a geolocation configuration spree however, you’ll need to understand a few things about Geolocation itself.
- It’s not a single specification.
While a good part of the implementation is covered in RFCs, some of it is documented in the Geography Markup Language Specification, the 3GPP Technical Specifications, national organizations like the FCC and National Emergency Number Association in the US, and probably your interfacing carriers. The last is the most important as you don’t want emergency calls dropped or routed to incorrect emergency service centers because of a configuration incompatibility. - It’s been around a while.
The first references I could find date back to 2002. Since then there have been innumerable changes including IETF drafts that expired 15 years ago that are still being returned by Google searches. - No carrier has implemented the full specification (and neither has Asterisk).
You should work closely with your upstream carriers to determine exactly what part of the specifications they support and what special requirements they may have for accepting the geolocation information.
Geolocation Thoughts?
Let us know if you’re already using the Geolocation capabilities and what your experiences have been.
Once again, take a look at the Asterisk Geolocation wiki page for more info.