SYSTEMS AND METHODS FOR IMPROVING ROUTING OF COMMUNICATIONS TO EMERGENCY SERVICES
Systems and techniques for routing emergency communications to appropriate public safety answering points (PSAPs) based on location information associated with the communications are provided. Currently, only imprecise location information is available for call routing, and retrieving the imprecise location information requires a slow, expensive query to an automatic location identification (ALI) database. The present disclosure obtains location information that can be used for routing without performing the query to the ALI database, and also incorporates the use of precise location information available from mobile device providers (when available). Similar techniques for routing other types communications to other destination devices based on location information are also disclosed.
Latest NG911 Services, Inc. Patents:
This application is a continuation of application Ser. No. 16/358484, filed Mar. 19, 2019, the entire disclosure of which is hereby incorporated by reference herein for all purposes.
SUMMARYThis summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to identify key features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
In some embodiments, an emergency services network system is provided. The emergency services network system comprises at least one legacy network gateway (LNG) device or border control function (BCF) device; at least one emergency services routing proxy (ESRP) device; and a back-to-back user agent (B2BUA) device. The B2BUA device includes a non-transitory computer-readable medium having computer-executable instructions stored thereon. The instructions, in response to execution by one or more processors of the B2BUA device, cause the B2BUA device to perform actions comprising: receiving, from the at least one LNG device or BCF device, signaling information for an incident associated with a mobile telephony device; determining location reference transformation elements using the signaling information; querying a location transform data store to retrieve geographic information based on the location reference transformation elements; and causing the incident to be routed by the at least one ESRP device to a PSAP based on the geographic information.
In some embodiments, a method of enhancing location information for use in routing an incident associated with a mobile telephony device to a public safety answering point (PSAP) is provided. Signaling information is received for the incident. Location reference transformation elements are determined using the signaling information. A location transform data store is queried to retrieve geographic information based on the location reference transformation elements. The call is caused to be routed to a PSAP based on the geographic information.
In some embodiments, a non-transitory computer-readable medium is provided. The computer-readable medium has computer-executable instructions stored thereon that, in response to execution by one or more processors of a computing device, cause the computing device to perform actions for enhancing location information for use in routing an incident associated with a mobile telephony device to a PSAP. The actions comprise receiving, by the computing device, signaling information for the incident; determining, by the computing device, location reference transformation elements based on using the signaling information; querying, by the computing device, a location transform data store to retrieve geographic information based on the location reference transformation elements; and causing, by the computing device, the call to be routed to a PSAP based on the geographic information.
In some embodiments, a communication system is provided. The communication system comprises a network device, at least one routing proxy device, and a routing location determination device. The routing location determination device includes a non-transitory computer-readable medium having computer-executable instructions stored thereon that, in response to one or more processors of the location transformation device, cause the routing location determination device to perform actions comprising: receiving, from the network device, signaling information associated with a communication from a communication device; determining location reference transformation elements using the signaling information; querying a location transform data store to retrieve geographic information based on the location reference transformation elements; and causing the communication to be routed by the at least one routing proxy device to a destination device based on the geographic information.
In some embodiments, a method is provided. Signaling information associated with a communication from a communication device is received from a network device. Location reference transformation elements are determined using the signaling information. A location transform data store is queried to retrieve geographic information based on the location reference transformation elements. The communication is caused to be routed by at least one routing proxy device to a destination device based on the geographic information.
In some embodiments, a non-transitory computer-readable medium is provided. The computer-readable medium has computer-executable instructions stored thereon that, in response to execution by one or more processors of a computing device, cause the computing device to perform actions comprising: receiving, from a network device, signaling information associated with a communication from a communication device; determining location reference transformation elements using the signaling information; querying a location transform data store to retrieve geographic information based on the location reference transformation elements; and causing the communication to be routed by at least one routing proxy device to a destination device based on the geographic information.
The foregoing aspects and many of the attendant advantages of this invention will become more readily appreciated as the same become better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:
The present disclosure relates to routing of communications, such as communications to public services that include emergency services. In North America, emergency services can be contacted by placing a call to the number “911” from any phone. Services that process these calls, which are known as public safety answering points (PSAPs), are geographically distributed. For example, a given jurisdiction such as a city or county may host a PSAP in order to answer emergency calls that are placed within its borders.
Before the widespread use of wireless phones, routing telephone calls to 911 was relatively simple. Each call would be placed from an originating device, and that originating device was associated with a calling phone number. Because the location of the originating device never changed, the calling phone number could be used to look up a permanent geographic location associated with the originating device/calling phone number, and that permanent geographic location could be used for determining a PSAP to which the call should be routed.
For example,
One additional benefit of using location information to route calls is the ability to load balance between particular PSAPs when dealing with large-scale events. For example,
The advent of widespread wireless communication has made the routing of communications to an appropriate PSAP more complicated, since a calling phone number can no longer be relied on as an indicator of a geographic location. Further, multiple types of communication, such as text messages (SMS), voice-over-IP (VoIP) calls, and other types of communications (collectively referred to as “incidents”) are also routed to PSAPs.
Various techniques have been developed to allow incidents to be routed to PSAPs, even when they are not associated with a permanent location. At a high-level, these techniques involve associating an incoming incident with an Emergency Services Routing Key (ESRK) such as a pseudo automatic number identification (“pseudo-ANI” or “pANI”) value based on a wireless tower and/or sector that received the incident. An emergency services network receives the pseudo-ANI from the originating service provider in order to route the incident to an appropriate PSAP.
The mobile device 202 may be any type of device capable of initiating an incident and communicating with the originating service provider 204. Typically, a mobile device 202 may be a smartphone, a feature phone, or another type of wireless telephone. A mobile device 202 may also be a VoIP endpoint, if the originating service provider 204 supports VoIP calls. A mobile device 202 may also be a nomadic device, such as an analog telephone adapter (ATA) device or a laptop computing device.
The originating service provider 204 provides connectivity to the communication network for the mobile device 202. The originating service provider 204 is the service provider (for services such as cellular communication such as that provided by providers such as AT&T, Sprint, Verizon, and others; IP-based communication provided by multiple system operators such as Comcast, etc.; over-the-top communication such as Skype, WhatsApp, etc.; and voice, text, image-only, file, streaming, or other data communications) through which the mobile device 202 communicates. The emergency services network 206 receives communication traffic from multiple originating service providers 204, and connects the communication traffic to various public safety systems. A “public safety” system is an industry name for a communication system operated by and/or used for communicating with first responders, fire services, police services, medical services, vendors providing such services, and the associated supporting personnel and systems.
The illustrated mobile device 202 includes a wireless interface 210 and a user interface engine 208. The user interface engine 208 is configured to accept input from a user to initiate an incident. For example, the user interface engine 208 may present a keypad that receives a dialed number of “911” in order to initiate the incident. As another example, the user interface engine 208 may detect a repeated press of a button or other human-machine interaction (HMI) device, and may automatically initiate the incident in response. The wireless interface 210 is a combination of hardware and software components that allow the mobile device 202 to communicate with the originating service provider 204. Any suitable technology may be used, including but not limited to 2G, 3G, 4G, 5G, and LTE for cellular communications; Wi-Fi, WiMAX, and Bluetooth for IP-based communications; and Ethernet, USB, and FireWire for wired communications.
The illustrated originating service provider 204 includes a mobile switching center (MSC) 214 and a network selection service 212. The MSC 214 is a collection of computing devices that primarily provide communication switching services including connection set-up, release, and routing. The MSC 214 also provides a bridge between wireless access points (such as cell phone towers, not pictured) and various wired networks (including, but not limited to, the emergency services network 206 and/or a public switched telephone network (PSTN). The network selection service 212 is a collection of computing devices that provide support services to the MSC 214, including providing services for determining an emergency services network 206 to which an incident should be transmitted. The network selection service 212 may include a service control point (SCP), which services queries for information at a scale needed by an originating service provider 204 that serves the general public.
The illustrated automatic location identification (ALI) database 205 is a data store that is configured to store geographic information associated with a given call. In some embodiments, geographic information associated with pseudo-ANIs are stored in the ALI database 205, and can be updated by other devices such as the network selection service 212 of the originating service provider 204, and queried by the LNG/BCF devices 216 of the emergency services network 206.
The emergency services network 206 may be a Next Generation Core Services (NGCS, or NG9-1-1 Core Services) enabled network, and may be operated on top of a managed IP network such as an Emergency Services IP Network (ESlnet). The illustrated emergency services network 206 includes one or more legacy network gateway (LNG) devices and/or border control function (BCF) devices 216, one or more emergency services routing proxies (ESRPs) 222, one or more emergency call routing functions (ECRFs) 224, and one or more public safety answering points (PSAPs) 226.
Some emergency services networks 206 may include additional components that are not illustrated or described herein.
A legacy network gateway (LNG) device receives communications from non-IP based and/or circuit-switched based originating service providers 204, and prepares them for use within the emergency services network 206. A border control function (BCF) device receives communications from IP-based originating service providers 204, and provides a secure entry into the emergency services network 206 for such incidents. A given emergency services network 206 may include one or more LNG devices and one or more BCF devices, and an appropriate LNG device or BCF device will be chosen by the originating service provider 204 based on the type of communication supported by the originating service provider 204. In some embodiments, communication to an LNG device is then passed to a BCF device before being transmitted to other components of the emergency services network 206. The LNG and/or BCF devices 216 are illustrated as a single element in
As illustrated, the emergency services network 206 includes one or more emergency services routing proxy (ESRP) devices 222. The ESRP 222 is a NENA i3 functional element that routes communication within the emergency services network 206 after it has been received by the LNG or BCF devices 216 based on location and policy. In this role, the ESRP 222 may be a session initiation protocol (SIP) proxy server.
As illustrated, the emergency services network 206 may also include one or more emergency call routing function (ECRF) devices 224. The ECRF 224 may receive location to service translation (LoST) queries from ESRPs 222 that include location information to be used as a routing location, and may provide addresses such as uniform resource identifiers (URIs) to route the incident to an appropriate PSAP 226 associated with the routing location. Some ECRFs 224 may be present within the emergency services network 206 as shown, while some ECRFs 224 may be queried outside of the emergency services network 206 (not illustrated). As illustrated, the emergency services network 206 includes one or more PSAPs 226. A PSAP 226 is any system that is capable of receiving and processing incidents such as calls, texts, images, or other communications intended for emergency services.
From a start block, the method 300 proceeds to block 302, where a user interface engine 208 of a mobile device 202 initiates an incident (for example, a call, a text message, an image, or a communication within an app). As discussed above, the user interface engine 208 may receive an input of a dialed emergency number, such as “911,” or may initiate the incident in response to any other suitable input. At block 304, a wireless interface 210 of the mobile device 202 connects to a mobile switching center (MSC) 214 of an originating service provider 204 and transmits signaling information to begin the incident. Any suitable kind of signaling information that is supported by the MSC 214, such as SIP, SS7, or any other kind of signaling information, may be used.
At block 306, the MSC 214 determines an emergency services routing key (ESRK) associated with the incident. The ESRK may be created by the network selection service 212, and may be determined by the MSC 214 by requesting it from the network selection service 212. The MSC 214 may query the network selection service 212 to receive the ESRK associated with the incident. The ESRK may be a pseudo-ANI or pANI value. A pseudo-ANI value for the incident may be determined by selecting a value from a value pool associated with a cell phone tower and/or sector from which the incident was received. The ESRK may later be used as a query key to retrieve information associated with the incident, such as the cell phone tower associated with the incident, the sector associated with the incident, a description of the area covered by the sector associated with the incident, and/or a latitude and longitude associated with the incident. For VoIP incidents, the network selection service 212 may create an Emergency Services Query Key (ESQK) instead of an ESRK, but the ESQK is used in the same ways as the ESRK is described herein.
At block 308, the MSC 214 queries a network selection service 212 to determine an emergency services network 206 to receive the incident. The network selection service 212 may use the ESRK, characteristics of the cell phone tower and/or sector, or a default configuration for the MSC 214 or originating service provider 204 as a whole to determine the emergency services network 206 to receive the incident. The method 300 then proceeds to block 310, where the MSC 214 connects to a legacy network gateway (LNG) device or a border control function (BCF) device 216 of the emergency services network 206 and transmits signaling information to the LNG/BCF device 216. The signaling information may include the ESRK. The network address of the LNG/BCF device 216 may be determined along with the determination of the emergency services network 206 to receive the incident, and the selection of either an LNG device or a BCF device may be made based on the communication techniques supported by the MSC 214. The method 300 then proceeds to a continuation terminal (“terminal A”). From terminal A (
In order to support functionality such as that illustrated and described in
At block 318, the LNG/BCF device 216 transmits the geographic information to the ESRP 222. In some embodiments, instead of sending a value of the geographic information to the ESRP 222, the LNG/BCF device 216 transmits a uniform resource locator (URL) that points to a location on the LNG/BCF device 216 from which the geographic information can be retrieved. At block 320, the ESRP 222 uses the geographic information retrieved from the location reference source to route the incident to a public safety answering point (PSAP) 226. The ESRP 222 may use the geographic information as a routing location to use to query an ECRF 224 so that a routing plan, such as the one illustrated in
This method 300, and particularly the query to retrieve geographic information from the ALI database 205, has numerous drawbacks. For example, transmitting a query to the network selection service 212 of the originating service provider 204 in order to retrieve the geographic information consumes additional bandwidth between the originating service provider 204 and the emergency services network 204, it delays the process of routing the incident to the PSAP 226, and it incurs additional costs imposed by the provider of the ALI database 205. Further, the geographic information provided from the ALI database 205 is not particularly precise. Sometimes, the geographic information is merely a point associated with a centroid of a cell sector, which may not accurately reflect the location of the mobile device 202 within the cell sector. Sometimes, the geographic information is a textual description of the sector with no specific data that can be used for routing, because determining the latitude and/or longitude that could be used for routing can take 30 seconds or longer (too long to provide a reasonable user experience for the caller). In some instances, an operator at a PSAP 226 will obtain detailed geographic information while speaking with (or otherwise corresponding with) the user of the mobile device 202, and will end up transferring the incident to a more appropriate PSAP 226 for handling. This manual transfer of an incident from one PSAP 226 to another PSAP 226 is the worst case scenario, because the time of operators at PSAPs 226 is highly valuable, and time spent transferring incidents that could have been automatically routed to a more appropriate PSAP 226 is time wasted that could have been spent helping another user in dire need of assistance. Further, the actual transfer from one PSAP 226 to another PSAP 226 may take 50 seconds or more, which provides a confusing and undesirable experience for the caller.
Some sources of highly precise location information for mobile devices are becoming available. For example, Apple Inc. has developed a technology known as Hybridized Emergency Location (HELO) that estimates a location of a mobile device running iOS based on cell tower locations, Wi-Fi access points visible to the mobile device, and on-device data sources such as global positioning system (GPS) information and barometric sensors. The HELO system allows a PSAP to query for precise location information associated with a mobile device to help in guiding response to an incident. Google LLC has developed a similar technology, called Emergency Location Service (ELS), for use to estimate locations of mobile devices running Android.
Theoretically, the type of information available from ELS or HELO could be very useful for automatically routing incidents to appropriate PSAPs. Particularly, highly precise information could allow temporary routing to be set up for geofenced areas in response to disasters or other events wherein high volumes of incidents will be reported. Unfortunately, there are not currently any systems that are equipped to incorporate ELS, HELO, or similar technologies into the process for routing incidents to PSAPs 226. One issue is that ELS or HELO information is not always available, and is not always of high quality. For example, the mobile device 202 may not be receiving GPS or WiFi signals, or may have a very high uncertainty regarding the location determined from GPS or WiFi. In such situations, using the ELS or HELO information may produce a worse routing outcome than using the cell tower and/or sector location for routing. What is desired is are systems and techniques for routing incidents to PSAPs that can handle both this “rainy day” situation (the situation in which information from ELS, HELO, or other alternate location services is either unavailable or of low quality) and the “sunny day” situation (the situation in which high-quality information from ELS, HELO, or other alternate location services is available) while routing incidents to PSAPs based on location information. A separate goal is to avoid the added bandwidth, cost, and delay involved with transmitting queries to the originating service provider 204 and/or an ALI database 205.
As above, the mobile device 402 may be any type of device capable of initiating an incident and communicating with the originating service provider 404. Typically, a mobile device 402 may be a smartphone, a feature phone, or another type of wireless telephone that communicates with the originating service provider 404 via 2G, 3G, 4G, 5G, or other wireless telephony technology. A mobile device 402 may also be a VoIP endpoint or other type of device that communicates over internet protocol (IP), if the originating service provider 404 supports such communication. A mobile device 402 may also be a nomadic device, such as an analog telephone adapter (ATA) device or a laptop computing device.
As above, the originating service provider 404 provides connectivity to the communication network for the mobile device 404, and the emergency services network 406 receives communication traffic from multiple originating service providers 404, and connects the communication traffic to various public safety systems.
As illustrated in
As illustrated, the originating service provider 404 includes a mobile switching center (MSC) 414 and a network selection service 412. As discussed above, the MSC 414 is a collection of computing devices that primarily provide communication switching services including connection set-up, release, and routing. The MSC 414 also provides a bridge between wireless access points (such as cell phone towers, not pictured) and various wired networks (including, but not limited to, the emergency services network 406, a public switched telephone network (PSTN), and/or the Internet. The network selection service 412 is a collection of computing devices that provide support services to the MSC 414, including providing services for determining an emergency services network 406 to which an incident should be transmitted. The network selection service 412 may include a service control point (SCP), which services queries for information at a scale needed by an originating service provider 404 that serves the general public. Some originating service providers 404 may include additional components that are not illustrated or described herein.
As discussed above, the emergency services network 406 may be a Next Generation Core Services (NGCS, or NG9-1-1 Core Services) enabled network, and may be operated on top of a managed IP network such as an Emergency Services IP Network (ESlnet). The illustrated emergency services network 406 may include one or more legacy network gateway (LNG) devices and/or border control function (BCF) devices 416, one or more emergency services routing proxy (ESRP) devices 422, one or more emergency call routing function (ECRF) devices 424, and one or more public safety answering points (PSAPs) 426. Some emergency service networks 406 may include additional components that are not illustrated or described herein.
As discussed above, a legacy network gateway (LNG) device receives communications from non-IP based and/or circuit-switched based originating service providers 404, and prepares them for use within the emergency services network 406. A border control function (BCF) device receives communications from IP-based originating service providers 404, and provides a secure entry into the emergency services network 406 for such incidents. A given emergency services network 406 may include one or more LNG devices and one or more BCF devices, and an appropriate LNG device or BCF device will be chosen by the originating service provider 404 based on the type of communication supported by the originating service provider 404. In some embodiments, communication to an LNG device is then passed to a BCF device before being transmitted to other components of the emergency services network 406. The LNG and/or BCF devices 416 are illustrated as a single element in
As illustrated, the emergency services network 406 includes one or more emergency services routing proxy (ESRP) devices 422. As discussed above, the ESRP 422 is a NENA i3 functional element that routes communication within the emergency services network 406 after it has been received by the LNG or BCF devices 416 based on location and policy. In this role, the ESRP 422 may be a session initiation protocol (SIP) proxy server.
As illustrated, the emergency services network 406 may also include one or more emergency call routing function (ECRF) devices 424. As discussed above, the ECRF 424 may receive location to service translation (LoST) queries from ESRPs 422 that include routing locations identifying a geographic location or alternate location data associated with incidents, and may provide addresses such as uniform resource identifiers (URIs) to route the incidents to appropriate PSAPs 426 associated with the routing location. Some ECRFs 424 may be present within the emergency services network 406 as shown, while some ECRFs 424 may be queried outside of the emergency services network 406 (not illustrated).
As illustrated, the emergency services network 406 includes one or more PSAPs 426. As discussed above, a PSAP 426 is any system that is capable of receiving and processing incidents such as calls, texts, images, data streams, or other communications intended for emergency services.
In the embodiment illustrated in
The B2BUA device 418 may be configured to communicate with one or more alternate location services 436 and/or a location transform data store 420. The alternate location services 436 may be any services that are capable of providing precise location data for incidents initiated by mobile devices 402. The HELO and ELS services discussed above are two non-limiting examples of alternate location services 436. In some embodiments, the NG911 Clearinghouse service offered by RapidSOS, Inc., may be another non-limiting example of an alternate location service 436. In some embodiments, the location transform data store 420 is configured to store information that allows data present in information retrieved by the B2BUA device 418 to be mapped to geographic information without having to query the ALI service 205. The B2BUA device 418 may also include a routing location data store 435, which may store the geographic information in a record that can be accessed using a URL generated by the B2BUA device 418.
As understood by one of ordinary skill in the art, a “data store” as described herein may be any suitable device configured to store data for access by a computing device. One example of a data store is a key-value store. However, any other suitable storage technique and/or device capable of organizing and storing the data may be used, such as a relational database management system (RDBMS), an object database, and/or the like. Other examples of a data store may also include data stored in an organized manner on a computer-readable storage medium, as described further below.
One example of a data store which includes reliable storage, but also low overhead, is a file system or database management system that stores data in files (or records) on a computer readable medium such as flash memory, random access memory (RAM), hard disk drives, and/or the like. Such a data store may be likely to be used locally by the mobile device 402. One example of a data store is a highly reliable, high-speed RDBMS or key-value store executing on one or more computing devices and accessible over a high-speed packet switched network. Such data stores may be likely to be used by components of the originating service provider 404, the emergency services network 406, and/or the alternative location services 436. One of ordinary skill in the art will recognize that separate data stores described herein may be combined into a single data store, and/or a single data store described herein may be separated into multiple data stores, without departing from the scope of the present disclosure.
In the illustrated embodiment, the B2BUA device 418 includes a data parsing engine 428, a location information collection engine 430, a location reference transformation engine 432, and a subsequent route determination engine 434. In some embodiments, the data parsing engine 428 is configured to extract information from the signaling information received by the B2BUA device 418, and to use the information from the signaling information to retrieve further information for use in querying the location transform data store 420. In some embodiments, the location information collection engine 430 is configured to query one or more alternate location services 436 to collect geographic information and/or alternate location data associated with incidents. In some embodiments, the location reference transformation engine 432 is configured to generate a query key based on the further information for use in querying the location transform data store 420, and to use the query key to query the location transform data store 420 for geographic information.
In some embodiments, the subsequent route determination engine 434 is configured to determine a routing location based on the information collected by the location reference transformation engine 432 and the location information collection engine 430, to store the routing location in a record in the routing location data store 435, and to update the signaling information to include a URL that points to the record in the routing location data store 435. In some embodiments, the subsequent route determination engine 434 is also configured to determine an ESRP 422 to receive the incident, and to transmit the modified signaling information to an appropriate ESRP 422. In some embodiments, the functionality described as being present in separate components of the B2BUA device 418 may be provided by a single component or by a different component. In some embodiments, the functionality as being present in a single component of the B2BUA device 418 may be split between multiple components. Further details of the operation of the components of the B2BUA device 418 are provided below.
From a start block, the method 500 proceeds to block 502, where a user interface generated by a user interface engine 408 of a mobile device 402 is used to initiate an incident. For example, the user interface may be used to create a call, a text message, an image, or a communication within an over-the-top communication application. As discussed above, the user interface engine 408 may receive an input of a dialed emergency number, such as “911,” or may initiate the incident in response to any other suitable input. At block 504, a wireless interface of the mobile device 402 connects to a mobile switching center (MSC) of an originating service provider 404 and transmits signaling information to begin the incident. Any suitable kind of signaling information that is supported by the originating service provider 404, such as SIP, SS7, XML-like tagged data, or any other kind of signaling information, may be used.
At block 506, the MSC 414 determines an emergency services routing key (ESRK) associated with the incident. The ESRK may be created by the network selection service 412, and may be determined by the MSC 414 by requesting it from the network selection service 412. The MSC 414 may query the network selection service 412 to receive the ESRK associated with the incident. The ESRK may be a pseudo-ANI or pANI value. A pseudo-ANI value for the incident may be determined by selecting a value from a value pool associated with a cell phone tower and/or sector from which the incident was received. The ESRK may later be used as a query key to retrieve information associated with the incident, such as the cell phone tower associated with the incident, the sector associated with the incident, a description of the area covered by the sector associated with the incident, and/or a latitude and longitude associated with the incident. For VoIP incidents, the network selection service 412 may create an Emergency Services Query Key (ESQK) instead of an ESRK, but the ESQK is used in the same ways as the ESRK is described herein.
At block 508, the MSC 414 determines an emergency services network 406 to receive the incident. The network selection service 412 may use the ESRK, characteristics of the cell phone tower and/or sector, or a default configuration for the MSC 414 or originating service provider 404 as a whole to determine the emergency services network 406 to receive the incident. The method 500 then proceeds to block 510, where the MSC 414 connects to a legacy network gateway (LNG) device or a border control function (BCF) device 416 of the emergency services network 406 and transmits signaling information to the LNG/BCF device 416. The signaling information may include the ESRK. The network address of the LNG/BCF device 416 may be determined along with the determination of the emergency services network 406 to receive the incident, and the selection of either an LNG device or a BCF device may be made based on the communication techniques supported by the MSC 414. At block 512, the LNG/BCF device 416 transmits the signaling information to a back-to-back user agent (B2BUA) device 418 of the emergency services network 406.
At block 513, a data parsing engine 428 of the B2BUA device 418 uses a reference in the signaling information to retrieve application information associated with the incident from the originating service provider 404. In some embodiments, the reference used by the data parsing engine 428 is a URL, the ESRK, or other information stored within the signaling information received by the B2BUA device 418. Importantly, the originating service provider 404 can provide the application information, which includes location data elements and/or location reference transformation elements, without querying an ALI database.
The method 500 then proceeds to a continuation terminal (“terminal A”). From terminal A (
In some embodiments, the application information may be provided in a structured format, such as a transaction capabilities application port (TCAP) message, and/or a SIP header that includes XML-formatted data. The TCAP message may also include data structured as XML, and may be parsed by the data parsing engine 428 using industry-standard techniques in order to retrieve specific data elements. Some examples of data elements that can be used as location reference transformation elements are listed in the NENA 57-002 Elements (Wireless Traffic Plan) Table, and include the following elements:
Per the industry standards, the signaling information or the application information may include information that can be used to retrieve an E2 response that has various TCAP elements. The TCAP elements may include a Location Description element, which may include the following information which can be parsed as XML and used as location reference transformation elements:
At block 516, a location reference transformation engine 432 of the B2BUA device 418 generates a query key based on the location reference transformation elements. In some embodiments, the query key may be a complex key that combines two or more location reference transformation elements. For example, the query key may be a complex key that includes two or more of the Carrier ID value, the Cell ID value, and the Sector ID value extracted from the Location Description element of the TCAP elements in the E2 response. In some embodiments, the query key may be a simple key that is created by concatenating, hashing, or otherwise combining two or more of the location reference transformation elements.
At block 518, the location reference transformation engine 432 queries a location transform data store 420 using the query key to obtain geographic information. In some embodiments, the location transform data store 420 is a simple data store that correlates query keys directly to geographic information. For example, the location transform data store 420 may store a record that associates a given query key with a given latitude/longitude value. Any type of geographic information, such as a latitude/longitude value, a what3words value, a plus code (such as the code JQ8X+CH that identifies Boise, Idaho, and is used by Google Maps), a landmark identifier, or a plurality of such values that define a polygon may be stored by the location transform data store 420 and associated with a query key. The use of a simple data format by the location transform data store 420 improves speed by eliminating storage in more complicated data stores, such as GIS. Further, the location transform data store 420 can be co-located with the B2BUA device 418 or be within the B2BUA device 418, thus further reducing network latency.
At optional block 520, a location information collection engine 430 of the B2BUA device 418 uses information determined by the data parsing engine 428 to query one or more alternate location services 436 for alternate location data. Block 520 is illustrated as optional because in some embodiments, the geographic information retrieved from the location transform data store 420 may be the only information used by the B2BUA device 418 for location-based routing, or the alternate location services 436 may not be available. Any suitable information extracted by the data parsing engine 428 may be used to query the alternate location services 436. For example, the signaling information (or the information retrieved from the originating service provider 404 using the signaling information) may include a unique identifier associated with the mobile device 402, such as an international mobile equipment identity (IMEI) number, an international mobile subscriber identity (IMSI) number, an integrated circuit card ID (ICCID), a mobile equipment identifier (MEID), a mobile identification number (MIN), a mobile directory number (MDN), a mobile station international subscriber identity number (MSISDN), or other information which may be used to query the alternate location services 436 for information associated with the mobile device 402.
At block 522, a subsequent route determination engine 434 of the B2BUA device 418 receives the location data elements, the alternate location data, and the geographic information, and at block 524, the subsequent route determination engine 434 determines a routing location based on the location data elements, the alternate location data, and the geographic information. In some embodiments, the subsequent route determination engine 434 may determine the routing location by comparing the location data elements, the alternate location data, and the geographic information to determine which provides the information that should be used for routing. For example, if the alternate location data and the location data elements are either not present or were not retrieved at block 520, then the subsequent route determination engine 434 may simply use the geographic information retrieved from the location transform data store 420 as the routing location. As another example, if the alternate location data is present but indicates a high level of uncertainty (e.g., the reported location accuracy is lower than a predetermined threshold accuracy value, or indicates a greater uncertainty than the uncertainty of the geographic information retrieved from the location transform data store 420), then the subsequent route determination engine 434 may determine that the geographic information retrieved from the location transform data store 420 is of higher quality and therefore should be used as the routing location. As still another example, if the alternate location data is present and indicates a low level of uncertainty (e.g., the reported location accuracy is higher than a predetermined threshold accuracy value, or indicates a lower uncertainty than the uncertainty of the geographic information retrieved from the location transform data store 420), then the subsequent route determination engine 434 may determine that the alternate location data is of higher quality and therefore should be used as the routing location. As yet another example, the user may indicate an overall quality level for each alternate location service 436 and/or the location transform data store 420, and the subsequent route determination engine 434 may use the geographic information retrieved from the source that has the higher quality as indicated by the user.
At block 526, the subsequent route determination engine 434 updates location information in the signaling information based on the routing location. In some embodiments, the subsequent route determination engine 434 may update a header, a body part, or both a header and a body part of the signaling information based on the routing location. One non-limiting example of a header or body part of the signaling information that could be updated with the routing location is a Presence Information Data Format Location Object (PIDF-LO) document. Another non-limiting example of a header or body part of the signaling information that could be updated with the routing location is a GeoLocation Header of a SIP request, such as those illustrated in RFC 6442. In some embodiments that implement a “location-by-reference” technique, the subsequent route determination engine 434 creates a record in the routing location data store 435 that includes the routing location, and updates the signaling information to include a URL that points to the record in the routing location data store 435.
The method 500 then proceeds to a continuation terminal (“terminal B”). From terminal B (
The method 500 then proceeds to a decision block 532, where a determination is made regarding whether the next hop toward the PSAP is the PSAP itself, or another ESRP 422. In some embodiments, once the ESRP 422 has been instructed which PSAP 426 the incident should be routed to, the ESRP 422 can determine a network path to either connect directly to the PSAP 426 or to connect to the PSAP 426 via one or more additional ESRPs 422. If the next hop is another ESRP 422, then the result of decision block 532 is NO, and the method 500 proceeds to block 534, where the ESRP 422 transmits the signaling information to a subsequent ESRP 422 for further processing. The method 500 then returns to block 530 where the subsequent ESRP 422 processes the next hop.
Otherwise, if the next hop is the PSAP 426, then the result of decision block 532 is YES, and the method 500 proceeds to block 536. At block 536, the ESRP 422 transmits the signaling information to a PSAP 426. The PSAP 426 then processes the incident (e.g., terminates the call in order to allow an operator at the PSAP 426 and the caller to communicate, presents a text message to the operator, presents an image message to the operator, and so on). In some embodiments, the operator at the PSAP 426 may request updated geographic information while processing the incident. In such cases, the PSAP 426 may request the updated geographic information from the B2BUA device 418, which may have received an updated routing location and stored it in the routing location data store 435. The B2BUA device 418 may have received the updated routing location from the network selection service 412.
The method 500 then proceeds to an end block and terminates.
The above discussion describes embodiments wherein an incident is received by an LNG/BCF device 416 and is then transmitted to a B2BUA device 418 to be augmented using geographic information and/or alternate location data for routing. In some embodiments, the B2BUA device 418 may be placed at another point in the workflow. For example, in some embodiments, the B2BUA device 418 may be positioned after a first ESRP 422, such that the incoming incident is transmitted from the LNG/BCF device 416 to a first ESRP 422, and then from the first ESRP 422 to the B2BUA device 418 for supplementing the signaling information using geographic information and/or alternate location data to be used by either the first ESRP 422 or a subsequent ESRP 422. As another example, in some embodiments, the B2BUA device 418 may be positioned before the LNG/BCF device 416, or even within the originating service provider 404, such that the signaling information will be augmented using geographic information and/or alternate location data before it reaches the LNG/BCF device 416. As yet another example, instead of being embodied in a B2BUA device 418, the logic described above as being implemented by the B2BUA device 418 may be implemented in a web service, an application programming interface (API), or another programmatically accessible system that is directly callable by the LNG/BCF device 416.
Though embodiments of the present disclosure may be particularly useful in the field of using geographic locations to route emergency communications to PSAPs, the techniques disclosed herein are not limited to this scenario. Indeed, with the growing use of internet-of-things (IoT) devices, vehicle-to-infrastructure (V2I) communication, and other technologies in which devices communicate with geographically dispersed destination devices, using geographic information about the device initiating the communication in order to route the communication to an appropriate destination device is becoming more important. To that end,
In the illustrated embodiment, the system includes a communication device 602, an originating service provider 604, and a communication network 606. The communication device 602 may be any type of device capable of initiating communication with the originating service provider 604. The mobile device 402 illustrated above is a non-limiting example of a communication device 602. IoT devices and V2I devices are other non-limiting examples of communication devices 602. Typically, the communication device 602 communicates with the originating service provider 604 via 2G, 3G, 4G, 5G, LTE, WiFi, WiMAX, or other wireless technology; or by Ethernet, USB, FireWire, or other wired technology.
As above, the originating service provider 604 provides connectivity to the communication network for the communication device 604, and the communication network 606 receives communication traffic from multiple originating service providers 604, and connects the communication traffic to various destination devices 626.
As illustrated in
As illustrated, the originating service provider 604 includes an origination service device (OSD) 614 and a network selection service 612. The OSD 614 is a collection of computing devices that primarily provide communication switching services including connection set-up, release, and routing. An MSC 414 as described above is one non-limiting example of an OSD 614. In some embodiments, an internet service provider (ISP) is a non-limiting example of an OSD 614 or an originating service provider 604. The network selection service 612 similar to the network selection service 412 illustrated and described above, in that it is a collection of computing devices that provide support services to the OSD 614, including providing services for determining a communication network 606 to which a communication should be transmitted.
The communication network 606 is any type of communication network. The emergency services network 406 illustrated above is one non-limiting example of a communication network 606. Other examples of a communication network 606 may include, but are not limited to, an ISP, a private network, and a public network.
The illustrated communication network 606 may include one or more edge devices 616, one or more routing proxy devices 622, one or more LoST server devices 624, and one or more destination devices 626. Some communication networks 606 may include additional components that are not illustrated or described herein.
The edge device 616 receives communications from originating service providers 604, and provides the communications to other components within the communication network 606. An LNG/BCF device 416 as discussed above is one non-limiting example of an edge device 616. A router, a load balancer, and a content-aware routing device are other non-limiting examples of an edge device 616. A given communication network 606 may include one or more edge devices 616.
As illustrated, the communication network 606 includes one or more routing proxy devices 622. The ESRP 422 illustrated and discussed above is one non-limiting example of a routing proxy device 622. A load balancer or another content-aware routing device are other non-limiting examples of routing proxy devices 622.
As illustrated, the emergency services network 606 may also include one or more LoST server devices 624. The ECRF 424 as discussed above is one non-limiting example of a LoST server device 624. Any other device or system that performs function of a Location to Service Translation (LoST) functional element as defined by the IETF may be other non-limiting examples of a LoST server device 624. The LoST server devices 624 may receive location to service translation (LoST) queries from routing proxy devices 622 that include routing locations identifying a geographic location or alternate location data associated with communications, and may provide addresses such as uniform resource identifiers (URIs) to route the communications to appropriate destination devices 626 associated with the routing location. Some LoST server devices 624 may be present within the communication network 606 as shown, while some LoST devices 624 may be queried outside of the communication network 606 (not illustrated).
As illustrated, the communication network 606 includes one or more destination devices 626. A PSAP 426 as discussed above is one non-limiting example of a destination device 626. In some embodiments, a destination device 626 is any system that is capable of receiving and processing communications such as calls, texts, images, data streams, or other communications generated by communication devices 602.
In the embodiment illustrated in
The routing location determination device 618 may be configured to communicate with one or more alternate location services 636 and/or a location transform data store 620. The alternate location services 636 may be any services that are capable of providing precise location data for communications initiated by communication devices 602. The HELO, ELS, and RapidSOS services discussed above are two non-limiting examples of alternate location services 636. In some embodiments, the location transform data store 620 is configured to store information that allows data present in the communications received by the routing location determination device 618 to be mapped to geographic information without having to query an ALI database.
In the illustrated embodiment, the routing location determination device 618 includes a data parsing engine 628, a location information collection engine 630, a location reference transformation engine 632, a subsequent route determination engine 634, and a routing location data store 635. In some embodiments, the data parsing engine 628 is configured to extract information from the communications received by the routing location determination device 618, and to use this information to obtain further information for use in querying the location transform data store 620. In some embodiments, the location information collection engine 630 is configured to query one or more alternate location services 636 to collect geographic information and/or alternate location data associated with communications. In some embodiments, the location reference transformation engine 632 is configured to generate a query key based on the further information for use in querying the location transform data store 620, and to use the query key to query the location transform data store 620 for geographic information.
In some embodiments, the subsequent route determination engine 634 is configured to determine a routing location based on the information collected by the location reference transformation engine 632 and the location information collection engine 630, to store the routing location in a record in the routing location data store 635, and to update the signaling information to include a URL that points to the record in the routing location data store 635. In some embodiments, the subsequent route determination engine 634 is also configured to determine a routing proxy device 622 to receive the incident, and to transmit the communication and the associated routing location to an appropriate routing proxy device 622. In some embodiments, the functionality described as being present in separate components of the routing location determination device 618 may be provided by a single component or by a different component. In some embodiments, the functionality as being present in a single component of the routing location determination device 618 may be split between multiple components. Further details of the operation of the components of the routing location determination device 618 are provided below.
At block 706, the OSD 614 determines an identification key associated with the communication. The OSD 614 may query the network selection service 612 to receive the identification key associated with the communication. The identification key may be created by the network selection service 612. The ESRK and the ESQK described above are non-limiting examples of an identification key. The identification may later be used as a query key to retrieve information associated with the communication, such information may include information regarding network hardware used to receive the communication.
At block 708, the OSD 614 determines a communication network 606 to receive the communication. The network selection service 612 may use the identification key, characteristics of the network hardware used to receive the communication, or a default configuration for the OSD 614 or originating service provider 604 as a whole to determine the communication network 606 to receive the communication. The method 700 then proceeds to block 710, where the OSD 614 transmits signaling information for the communication to the edge device 616 of the communication network 606. The signaling information may include the identification key. The network address of the edge device 616 may be determined along with the determination of the communication network 606 to receive the communication. At block 712, the edge device 616 transmits the signaling information to a routing location determination device (RLDD) 618 of the communication network 606.
At block 713, a data parsing engine 628 of the routing location determination device 618 uses a reference in the signaling information to retrieve application information associated with the communication from the originating service provider 604. In some embodiments, the reference used by the data parsing engine 628 is a URL, the ESRK, or other information stored within the signaling information received by the routing location determination device 418. Importantly, the originating service provider 604 can provide the application information, which includes location data elements and/or location reference transformation elements, without querying an ALI database.
The method 700 then proceeds to a continuation terminal (“terminal A”). From terminal A (
In some embodiments, the application information may be provided in a structured format, such as a transaction capabilities application port (TCAP) message, and/or a SIP header that includes XML-formatted data. The TCAP message may also include data structured as XML, and may be parsed by the data parsing engine 628 using industry-standard techniques in order to retrieve specific data elements. Some non-limiting examples of data elements that can be used as location reference transformation elements are listed in the NENA 57-002 Elements (Wireless Traffic Plan) Table, and were described in detail above. Per the industry standards, the signaling information or the application information may include information that can be used to retrieve an E2 response that has various TCAP elements. The TCAP elements may include a Location Description element, which may include information which can be parsed as XML and used as location reference transformation elements as described in detail above.
At block 716, a location reference transformation engine 632 of the routing location determination device 618 generates a query key based on the location reference transformation elements. In some embodiments, the query key may be a complex key that combines two or more location reference transformation elements. For example, the query key may be a complex key that includes two or more of a Carrier ID value, the Cell ID value, the Sector ID value extracted from the Location Description element of the TCAP elements in the E2 response; an owner ID, a device identifier, and a network identifier. In some embodiments, the query key may be a simple key that is created by concatenating, hashing, or otherwise combining two or more of the location reference transformation elements.
At block 718, the location reference transformation engine 632 queries a location transform data store 620 using the query key to obtain geographic information. In some embodiments, the location transform data store 620 is a simple data store that correlates query keys directly to geographic information. For example, the location transform data store 620 may store a record that associates a given query key with a given latitude/longitude value. Any type of geographic information, such as a latitude/longitude value, a what3words value, a neighborhood identifier, a plus code (such as the code JQ8X+CH that identifies Boise, Idaho, and is used by Google Maps), a landmark identifier, or a plurality of such values that define a polygon may be stored by the location transform data store 620 and associated with a query key. The use of a simple data format by the location transform data store 620 improves speed by eliminating storage in more complicated data stores, such as GIS. Further, the location transform data store 620 can be co-located with the routing location determination device 618 or be within the routing location determination device 618, thus further reducing network latency.
At optional block 720, a location information collection engine 630 of the routing location determination device 618 uses information determined by the data parsing engine 628 to query one or more alternate location services 636 for alternate location data. Block 720 is illustrated as optional because in some embodiments, the geographic information retrieved from the location transform data store 620 may be the only information used by the routing location determination device 618 for location-based routing, or the alternate location services 636 may not be available. Any suitable information extracted by the data parsing engine 628 may be used to query the alternate location services 636. For example, the signaling information (or the information retrieved from the originating service provider 604 using the signaling information) may include a unique identifier associated with the communication device 602, such as an international mobile equipment identity (IMEI) number, an international mobile subscriber identity (IMSI) number, an integrated circuit card ID (ICCID), a mobile equipment identifier (MEID), a mobile identification number (MIN), a mobile directory number (MDN), a media access control (MAC) address, an IP address, or other information which may be used to query the alternate location services 636 for information associated with the communication device 602.
At block 722, a subsequent route determination engine 634 of the routing location determination device 618 receives the location data elements, the alternate location data, and the geographic information, and at block 724, the subsequent route determination engine 634 determines a routing location based on the location data elements, the alternate location data, and the geographic information. In some embodiments, the subsequent route determination engine 634 may determine the routing location by comparing the location data elements, the alternate location data, and the geographic information to determine which provides the best information to be used for routing. For example, if the alternate location data and the location data elements are either not present or were not retrieved at block 720, then the subsequent route determination engine 634 may simply use the geographic information retrieved from the location transform data store 620 as the routing location. As another example, if the alternate location data is present but indicates a high level of uncertainty (e.g., the reported location accuracy is lower than a predetermined threshold accuracy value, or indicates a greater uncertainty than the uncertainty of the geographic information retrieved from the location transform data store 620), then the subsequent route determination engine 634 may determine that the geographic information retrieved from the location transform data store 620 is of higher quality and should be used as the routing location. As still another example, if the alternate location data is present and indicates a low level of uncertainty (e.g., the reported location accuracy is higher than a predetermined threshold accuracy value, or indicates a lower uncertainty than the uncertainty of the geographic information retrieved from the location transform data store 620), then the subsequent route determination engine 634 may determine that the alternate location data is of higher quality and should be used as the routing location. As yet another example, the user may indicate an overall quality level for each alternate location service 636 and/or the location transform data store 620, and the subsequent route determination engine 634 may use the geographic information retrieved from the source that has the higher quality as indicated by the user.
At block 726, the subsequent route determination engine 634 associates the routing location with the communication. In some embodiments, the subsequent route determination engine 634 may associate the routing location with the communication by updating a header, a body part, or both a header and a body part of the signaling information based on the routing location. One non-limiting example of a header or body part of the signaling information that could be updated with the routing location is a Presence Information Data Format Location Object (PIDF-LO) document. Another non-limiting example of a header or body part of the signaling information that could be updated with the routing location is a GeoLocation Header of a SIP request, such as those illustrated in RFC 6442. In some embodiments, the subsequent route determination engine 634 may add the routing location to a different part of the communication, couple the communication to another data packet that includes the routing location, encapsulate the communication in a message that includes the routing location, or use another technique to associate the routing location with the communication. In some embodiments that implement a “location-by-reference” technique, the subsequent route determination engine 634 creates a record in the routing location data store 635 that includes the routing location, and updates the signaling information to include a URL that points to the record in the routing location data store 635.
The method 700 then proceeds to a continuation terminal (“terminal B”). From terminal B (
The method 700 then proceeds to a decision block 732, where a determination is made regarding whether the next hop toward the destination device 626 is the destination device 626 itself, or another routing proxy device 622. In some embodiments, once the routing proxy device 622 has been instructed which destination device 626 the communication should be routed to, the routing proxy device 622 can determine a network path to either connect directly to the destination device 626 or to connect to the destination device 626 via one or more additional routing proxy devices 622. If the next hop is another routing proxy device 622, then the result of decision block 732 is NO, and the method 700 proceeds to block 734, where the routing proxy device 622 transmits the signaling information to a subsequent routing proxy device 622 for further processing. The method 700 then returns to block 730 where the subsequent routing proxy device 622 processes the next hop.
Otherwise, if the next hop is the destination device 626, then the result of decision block 732 is YES, and the method 700 proceeds to block 736. At block 736, the routing proxy device 622 transmits the signaling information to a destination device 626. The destination device 626 then processes the communication (e.g., terminates the call in order to allow a user at the destination device 626 and the communication device 602 to communicate, presents a text message to the user, presents an image message to the user, provides a programmatic input from the communication device 602 to the destination device 626, and so on). In some embodiments, the destination device 626 may request updated geographic location information while processing the communication. In such cases, the destination device 626 may request the updated location geographic information from the routing location determination device 618, which may have received an updated routing location and stored it in the routing location data store 635. The routing location determination device 618 may have received the updated routing location from the network selection service 612.
The method 700 then proceeds to an end block and terminates.
As with the system illustrated in
In its most basic configuration, the computing device 800 includes at least one processor 802 and a system memory 804 connected by a communication bus 806. Depending on the exact configuration and type of device, the system memory 804 may be volatile or nonvolatile memory, such as read only memory (“ROM”), random access memory (“RAM”), EEPROM, flash memory, or similar memory technology. Those of ordinary skill in the art and others will recognize that system memory 804 typically stores data and/or program modules that are immediately accessible to and/or currently being operated on by the processor 802. In this regard, the processor 802 may serve as a computational center of the computing device 800 by supporting the execution of instructions.
As further illustrated in
In the exemplary embodiment depicted in
As used herein, the term “computer-readable medium” includes volatile and non-volatile and removable and non-removable media implemented in any method or technology capable of storing information, such as computer-readable instructions, data structures, program modules, or other data. In this regard, the system memory 804 and storage medium 808 depicted in
Suitable implementations of computing devices that include a processor 802, system memory 804, communication bus 806, storage medium 808, and network interface 810 are known and commercially available. For ease of illustration and because it is not important for an understanding of the claimed subject matter,
While illustrative embodiments have been illustrated and described, it will be appreciated that various changes can be made therein without departing from the spirit and scope of the invention. For example, though the flowcharts illustrated herein proceed from a start block to an end block, in some embodiments, the functionality described in the various blocks illustrated in the flowchart may occur in different orders, may be performed multiple times, and may be performed in parallel.
Claims
1. A communication system, comprising:
- a network device;
- at least one routing proxy device; and
- a routing location determination device;
- wherein the routing location determination device includes a non-transitory computer-readable medium having computer-executable instructions stored thereon that, in response to one or more processors of the routing location determination device, cause the routing location determination device to perform actions comprising:
- receiving, from the network device, signaling information associated with a communication from a communication device;
- determining location reference transformation elements using the signaling information;
- querying a location transform data store to retrieve geographic information based on the location reference transformation elements;
- querying one or more alternate location services for alternate location data associated with the communication;
- comparing a quality of the geographic information to a quality of the alternate location data;
- storing the geographic information as a routing location in response to determining that the quality of the geographic information is higher than the quality of the alternate location data;
- storing the alternate location data as the routing location in response to determining that the quality of the geographic information is not higher than the quality of the alternate location data; and
- causing the communication to be routed by the at least one routing proxy device to a destination device based on the routing location by updating headers or body parts of the signaling information based on the routing location.
2. The system of claim 1, wherein determining location reference transformation elements using the signaling information includes retrieving session initiation protocol (SIP) data, transaction capabilities application port (TCAP) data, XML data, or JSON data using the signaling information.
3. The system of claim 1, wherein determining the location reference transformation elements includes determining at least one of a Carrier ID, a Cell ID, a Sector ID, an owner ID, a device identifier, and a network identifier.
4. The system of claim 1, wherein querying the location transform data store to retrieve geographic information includes:
- generating a complex key based on the location reference transformation elements; and
- querying the location transform data store using the complex key.
5. The system of claim 1, wherein retrieving the geographic information includes retrieving at least one of a latitude, a longitude, a what3words value, a plus code, and a landmark; and
- wherein the communication is not associated with a provisioned address.
6. The system of claim 1, wherein updating headers or body parts of the signaling information includes associating the communication with a uniform resource locator (URL) that points to a storage location of the routing location.
7. The system of claim 1, wherein comparing the quality of the geographic information to the quality of the alternate location data includes:
- determining whether the alternate location data is available.
8. A method, comprising:
- receiving, from a network device, signaling information associated with a communication from a communication device;
- determining location reference transformation elements using the signaling information;
- querying a location transform data store to retrieve geographic information based on the location reference transformation elements;
- querying one or more alternate location services for alternate location data associated with the communication;
- comparing a quality of the geographic information to a quality of the alternate location data;
- storing the geographic information as a routing location in response to determining that the quality of the geographic information is higher than the quality of the alternate location data;
- storing the alternate location data as the routing location in response to determining that the quality of the geographic information is not higher than the quality of the alternate location data; and
- causing the communication to be routed by at least one routing proxy device to a destination device based on the routing location by updating headers or body parts of the signaling information based on the routing location.
9. The method of claim 8, wherein determining location reference transformation elements using the signaling information includes retrieving SIP data, TCAP data, XML data, or JSON data using the signaling information.
10. The method of claim 8, wherein determining the location reference transformation elements includes determining at least one of a Carrier ID, a Cell ID, a Sector ID, an owner ID, a device identifier, and a network identifier.
11. The method of claim 8, wherein querying the location transform data store to retrieve geographic information includes:
- generating a complex key based on the location reference transformation elements; and
- querying the location transform data store using the complex key.
12. The method of claim 8, wherein retrieving the geographic information includes retrieving at least one of a latitude, a longitude, a what3words value, a plus code, and a landmark; and
- wherein the communication is not associated with a provisioned address.
13. The method of claim 8, wherein updating headers or body parts of the signaling information based on the routing location includes associating the signaling information with a uniform resource locator (URL) that points to a storage location of the routing location.
14. The method of claim 8, wherein comparing the quality of the geographic information to the quality of the alternate location data includes:
- determining whether the alternate location data is available.
15. A non-transitory computer-readable medium having computer-executable instructions stored thereon that, in response to execution by one or more processors of a computing device, cause the computing device to perform actions comprising:
- receiving, from a network device, signaling information associated with a communication from a communication device;
- determining location reference transformation elements using the signaling information;
- querying a location transform data store to retrieve geographic information based on the location reference transformation elements;
- querying one or more alternate location services for alternate location data associated with the communication;
- comparing a quality of the geographic information to a quality of the alternate location data;
- storing the geographic information as a routing location in response to determining that the quality of the geographic information is higher than the quality of the alternate location data;
- storing the alternate location data as the routing location in response to determining that the quality of the geographic information is not higher than the quality of the alternate location data; and
- causing the communication to be routed by at least one routing proxy device to a destination device based on the routing location by updating headers or body parts of the signaling information based on the routing location.
16. The computer-readable medium of claim 15, wherein determining location reference transformation elements using the signaling information includes retrieving SIP data, TCAP data, XML data, or JSON data using the signaling information; and
- wherein determining the location reference transformation elements includes determining at least one of a Carrier ID, a Cell ID, a Sector ID, an owner ID, a device identifier, and a network identifier.
17. The computer-readable medium of claim 15, wherein querying the location transform data store to retrieve geographic information includes:
- generating a complex key based on the location reference transformation elements; and
- querying the location transform data store using the complex key.
18. The computer-readable medium of claim 15, wherein retrieving the geographic information includes retrieving at least one of a latitude, a longitude, a what3words value, a plus code, and a landmark; and
- wherein the communication is not associated with a provisioned address.
19. The computer-readable medium of claim 15, wherein updating headers or body parts of the signaling information based on the routing location includes associating the signaling information with a uniform resource locator (URL) that points to a storage location of the routing location.
20. The computer-readable medium of claim 15, wherein comparing the quality of the geographic information to the quality of the alternate location data includes:
- determining whether the alternate location data is available.
Type: Application
Filed: May 22, 2020
Publication Date: Sep 24, 2020
Applicant: NG911 Services, Inc. (Bellevue, WA)
Inventor: Donald L. Mitchell, JR. (Bellevue, WA)
Application Number: 16/882,351