# Patent

## Title
Extended efficient usage of emergency services keys

## Abstract

An emergency services key (e.g., ESQK or ESRK) is guaranteed to be available from a limited size ESQK pool. A plurality of ESQKs are grouped into a pool of emergency service keys “ESQK Pool ID”, each including anywhere from 1 to N number of ESQKs. Each ESQK preferably has a “Timestamp”, information relating to the specific emergency E911 call (“Call Data ID”), a guard timer, and an optional hold timer. The ESQK having a Call Data ID=“NULL”, and having the oldest Timestamp, is chosen for selection. If no such ESQK has both Call Data ID=NULL and the oldest Timestamp is found, then the ESQK with merely the oldest Timestamp is selected. The timestamp is reset to a current time plus a guard timer, or hold timer if desired.

## Background
This application is a continuation of U.S. patent application Ser. No. 13/532,432, entitled “Extended Efficient Usage of Emergency Services Keys,” filed on Jun. 25, 2012; which is a continuation of U.S. patent application Ser. No. 11/987,048, entitled “Extended Efficient Usage of Emergency Services Keys,” filed on Nov. 27, 2007, now U.S. Pat. No. 8,208,605; which is a Continuation-In-Part of U.S. application Ser. No. 11/797,445, filed May 3, 2007, now U.S. Pat. No. 8,532,266; which claims priority from U.S. Provisional Application No. 60/797,359, filed May 4, 2006, the entirety of all four of which are expressly incorporated herein by reference.


BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates generally to long distance carriers, Internet Service Providers (ISPs), and information content delivery services/providers and long distance carriers. More particularly, it relates to emergency call systems (e.g., E9-1-1) including wireless and Internet Protocol (IP) based Voice Over Internet Protocol (VoIP) emergency call systems.
2. Background of Related Art
9-1-1 is a phone number widely recognized in North America as an emergency phone number that is used to contact emergency dispatch personnel. Enhanced 9-1-1 (E9-1-1) is defined by an emergency call being selectively routed to an appropriate PSAP, based on a special identifier (P-ANI, or “Pseudo Automatic Number Identifier”, also referred to as “ESxK”), and includes the transmission of callback number and location information when 9-1-1 is used. E9-1-1 may be implemented for landline, cellular or VoIP networks. Regardless of the network type, a 9-1-1 service becomes E-9-1-1 when automatic number identification and automatic location information related to the call is provided to the 9-1-1 operator at the PSAP.
A Public Service Answering Point (PSAP) is a dispatch office that receives 9-1-1 calls from the public. A PSAP may be a local, fire or police department, an ambulance service or a regional office covering all services. As used herein, the term “PSAP” refers to either a public safety access point (PSAP), or to an Emergency Call Center (ECC), a VoIP term.
FIG. 4 shows a conventional landline public safety access point (PSAP) to automatic location identifier (ALI) connection.
In particular, FIG. 4 shows a PSAP 400 connected to one Automatic Location Identifier (ALI) database 401. An ALI is a database that accepts a PSAP query with telephone number, relates the telephone number to an address and provides that address (location information) back to the PSAP in a manner that works for the customer premise equipment (CPE) display. An ALI is typically owned by a LEC or a PSAP, and may be regional (i.e. connected to many PSAPs) or standalone (i.e. connected to only one PSAP). There is no one single standard interface protocol for PSAP-ALI connection/communication.
Upon receiving a 9-1-1 call, the PSAP 400 queries the ALI 401 for location data. The ALI database 401 accepts the query from the PSAP 400 for location. The query includes the telephone number of an emergency caller. The ALI database 401 relates the received telephone number to a physical street address and provides that street address (location information) back to the PSAP 400 in a manner that works for the customer premise equipment (CPE) display at the PSAP 400.
FIG. 5 shows a context diagram for a conventional non-landline positioning center (e.g., an Internet based voice over Internet Protocol (VoIP) positioning center).
In particular, the ALI database 401 includes a conventional emergency services key (ESQK or ESRK) in a location request sent to an appropriate positioning center 402 (XPC). The emergency services key (ESQK or ESRK) is used by the positioning center 402 as a key to look up the location and other call information associated with the emergency call.
In non-landline telephony, the PSAPs 400 query the ALI 401 for location information. However, the ALI 401 is not pre-provisioned with location data for non-landline calls (e.g. cellular, VoIP etc) and must communicate with other network entities to obtain and deliver location data to the PSAP 400.
Non-landline telephony standards (e.g. cellular, VoIP etc) have mandated that ALIs 401 maintain connectivity to a positioning center 402 that is able to provide current location data for a non-landline call. In the current state of technology, the positioning center 402 provides the caller's location and the callback number to the ALI, which passes it to the requesting PSAP. As can be seen in FIG. 5, an ALI may maintain connectivity to more than one positioning center via multiple interface types—both standard and non-standard (e.g. NENA-02, E2/E2+/V−E2(ESP), PAM, etc.).
Whether landline or non-landline, conventional emergency call centers, e.g., public safety access points (PSAPs) 400, use emergency services keys such as an emergency services query key (ESQK) or an emergency services routing key (ESRK), collectively referred to herein as ESxK, to query for location information. An emergency services key identifies an emergency call, and is associated with a particular selective router 417 associated with a given public safety access point (PSAP) 400. The emergency services keys ESQK and ESRK are conventionally used to query the automatic location identification (ALI) database 401 for the location of a given emergency caller. An emergency services key is delivered to the E9-1-1 selective router 417 and is the calling number/ANI for the call to the PSAP 400. The emergency services key is used by a selective router 417 as a key to selective routing data associated with the emergency call. The emergency services key is delivered by the selective router 417 to a PSAP 400 as the calling number/ANI for the emergency call, and is subsequently used by the PSAP 400 to request automatic location information (ALI) information indicating the location of the device making the emergency call. Conventional emergency services keys conform to ten-digit North American Numbering Plan Number definitions.
Existing, standardized solutions prescribe a finite pool of emergency services keys (ESQK and ESRK) which are allocated individually, one associated for each emergency call in progress. ESxK numbers are used to request updated location information from the ALI 401 while an emergency call is active, and as such, as appreciated by the inventors hereof, are subject to number exhaustion if the number of active emergency calls exceeds the number of ESxKs in the pool. But because ESxKs (ESQKs and ESRKs) are dynamically assigned at the time of call origination, and because the pool of ESxKs is limited, the inventors appreciate that it is possible for the pool of available ESxKs to run out.
For systems which implement ESQK and/or ESRK keys, it is a well known technique to use timers and default ESxKs to avoid problems associated with a limited pool of ESxKs. Timers have been specified and implemented to limit the amount of time that an ESxK can remain allocated to an emergency call, without regard for the actual call duration. For example, if a call continues after the timer has expired; the specific ESxK which was used to obtain updated location information can get reassigned to a new incoming emergency call.
However, timers are based solely on estimated call duration, a value which could be exceeded. Since emergency calls are numerous, and can remain active for long periods of time once initiated, some service providers have increased the number of allocated ESxK pools in an effort to minimize number pool exhaustion. Additionally, reliance on timers requires much larger pools of ESxKs to be allocated, which is an inefficient use of numbers, and may potentially lead to number exhaustion.
The conventional technique of using timers to expire the ESQK and ESRK allocation could prove to be devastating if a given emergency call using that expiring ESxK is still active. This is especially true if there is updated location information which would help provide emergency assistance to the caller.
Moreover, ESxK numbers must be purchased, so large numbers of ESxKs represent a direct cost to a provider. Also, as requirements for capacity increase, existing systems must often increase the size of the ESQK and ESRK number pool that they purchase, leading to additional costs for ESQK and ESRK number purchases, additional costs to implement, and additional costs to maintain these larger number pool sizes.
Thus, emergency services keys, e.g., the emergency services query key (ESQK) or the emergency services routing key (ESRK), identify a call instance at a VoIP positioning center (VPC). The ESQK is selected from a pre-provisioned pool by the VPC and delivered to the PSAP (Public Safety Answering Point) as the calling number for an emergency call. The ESQK is subsequently used by the PSAP to request ALI (Automatic Location Identification) information for the call from the VPC. The ESQK is used by the VPC as a key to look up the location object and other call information associated with the emergency call instance. This information is returned to the PSAP.
But, the size of an ESQK pool is limited for VoIP emergency calls. During normal operation emergency calls are associated with an ESQK as long as the emergency call is in process. As soon as the call is terminated, the ESQK is “released” and marked as free. Once all pre-provisioned ESQKs have been associated with emergency calls they are marked as “unavailable/in-use.” New incoming emergency calls coming in at that time must still be served and assigned an ESQK from the given pre-provisioned pool.
Currently systems conform to NENA VoIP Architecture For Enhanced 9-1-1 Services, NENA standard 08-001. However, such systems are complicated in nature, and thus not practical.
There is a need for a more efficient use of available emergency services keys.
SUMMARY OF THE INVENTION
In accordance with the principles of the present invention, a method and apparatus for recyclably using an emergency services key selected from among a limited size pool comprises selecting an emergency services key from a limited size pool having an older timestamp associated therewith from among those in the pool, in the event that no emergency services key in the pool meets the first attempt selecting criteria. A timestamp associated with the selected emergency services key is reset to a current time plus a value of a guard timer. In this way, selection of the emergency services key is assured to be available when selected.



BRIEF DESCRIPTION OF THE DRAWINGS
Features and advantages of the present invention will become apparent to those skilled in the art from the following description with reference to the drawings:
FIG. 1a shows an exemplary ESQK data store, in accordance with the principles of the present invention.
FIG. 1b shows an exemplary ESQK Pool ID data store, in accordance with the principles of the present invention.
FIG. 2a shows exemplary contents of the ESQK data store shown in FIG. 1a, in more detail, in accordance with the principles of the present invention.
FIG. 2b shows exemplary contents of the ESQK Pool ID data store shown in FIG. 1b, in more detail, in accordance with the principles of the present invention.
FIG. 3 illustrates exemplary selection of an emergency services key (e.g., an emergency services query key (ESQK)) from a pool of ESQK keys, in accordance with the principles of the present invention.
FIG. 4 shows a conventional landline public safety access point (PSAP) to automatic location identifier (ALI) connection.
FIG. 5 shows a context diagram for a conventional non-landline positioning center (e.g., an Internet based voice over Internet Protocol (VoIP) positioning center).



DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
The present invention provides for the management of a limited size emergency services key pool (e.g., an ESQK pool) in such a way as to ensure that an ESQK can always be handed out to an incoming emergency call, even if all ESQK pool members are marked as unavailable and to hold onto it even after the call is released. The invention applies equally to efficient use of emergency services routing keys (ESRKs) used in the wireless industry where the gateway mobile location centre (GMLC) takes the functional role of the voice over Internet Protocol (VoIP) positioning center (VPC). Ultimately the invention applies to any limited size pool of unique numbers that need to be dynamically allocated to a resource for a limited time in such a way to always guarantee the availability of a pool element.
Selecting an ESQK from a Pool:
FIG. 1a shows an exemplary ESQK data store 200, in accordance with the principles of the present invention.
In particular, as shown in FIG. 1a, a plurality of ESQKs are grouped into a pool of emergency service keys, identified herein with an “ESQK Pool ID” 201.
The ESQK pool ID includes ESQK(s) 202. The ESQKs 202 element of the ESQK data store 200 is capable of containing anywhere from 1 to N number of ESQKs 202, N being any number greater than 1.
The size of N is limited by network factors, such as the size of a database, but mostly based on the number of ESQKs assigned for use by the given network element.
Each ESQK 202 preferably has a “Timestamp” 203 associated therewith. The timestamp 203 preferably relates to a representation of the current time of day of assignment of the associated ESQK 202 to a specific emergency (e.g., E911) call.
Each ESQK 202 also includes information relating to the specific emergency E911 call, referred to herein as “Call Data ID” 204. The Call Data ID 204 information identifies the specific emergency E911 call.
FIG. 1b shows an exemplary ESQK Pool ID data store 250, in accordance with the principles of the present invention.
The ESQK Pool ID data store 250 is a table associating an ESQK pool ID 201 with a possible Guard Timer 252 and Hold Timer 253.
FIG. 2a shows exemplary contents of the ESQK data store 200 shown in FIG. 1a, in more detail, in accordance with the principles of the present invention.
In particular, as shown in FIG. 2a, an exemplary ESQK Data Store 200 includes three (3) ESQK pools: ESQK pool #1 (as depicted in rows 301 and 302, ESQK pool #2 (as depicted in rows 303 and 304) and ESQK pool #3 (as depicted in rows 305 and 306). In this exemplary embodiment, each of the exemplary ESQK pools #1 (301, 302) and #2 (303, 304) contain two ESQKs 202, and the exemplary ESQK pool #3 (305, 306) contains one ESQK 202.
FIG. 2b shows exemplary contents of the ESQK Pool ID data store 250 shown in FIG. 1b, in more detail, in accordance with the principles of the present invention.
In particular, as shown in FIG. 2b, ESQK pools #1 307 and #2 308 each have a Guard Timer 252 associated therewith, but no Hold Timer 253, whereas pool #3 309 contains both a Guard Timer 252 and a Hold Timer 253—in this example a Hold Timer 253 of 2 hours.
FIG. 3 illustrates an exemplary selection of an emergency services key (e.g., an emergency services query key (ESQK)) from a pool of ESQK keys, in accordance with the principles of the present invention.
In particular, as shown in FIG. 3, an ESQK 202 is picked as follows for a given ESQK pool.
In step 100 of FIG. 3, the ESQK 202 in the ESQK pool having a Call Data ID 204 equal to “NULL” (NULL is used as a synonym for “not set” in this context), and having the oldest Timestamp 203, is chosen for selection.
In decision step 102, if no such ESQK having both Call Data ID=NULL and the older Timestamp is found in the given ESQK pool 200, then the method moves to step 104 where the ESQK with merely an older or oldest Timestamp is selected.
The inherent logic is that in the latter scenario ESQKs that are no longer associated with active emergency calls might be incorrectly marked to still be in use. The present inventors realized that this logic is no longer true under extreme conditions, such as an ESQK pool sized too small, or extremely high call volume, typically generated in a lab stress test environment. For most practical purposes the likelihood of this happening is extremely low. In this way, the inventive method always guarantees successful selection of an ESQK as long as the number of ESQKs in a given pool is >=1.
In step 106, the Timestamp 203 and Call Data ID 204 are preferably updated. The ESQK's timestamp 203 is set to the current time plus the value of the Guard Timer 252.
Returning an ESQK to a Pool:
When an emergency call is terminated the ESQK 202 that has been associated with the call up to that point is released. To achieve this, the ESQK record is retrieved from the ESQK data store 200, and the Call Data ID 204 parameter for that particular ESQK record is set to NULL.
In the call termination process the ESQK Pool ID Data Store 250 is checked. If no Hold Timer 253 is defined, then the Timestamp 203 parameter for that ESQK record is left unchanged. In this way, the ESQK record that was used retains the Timestamp 203 of the last time it was selected plus the value of the GuardTimer 252. At the time of the call termination this TimeStamp 203 may be in the future, in which case the ESQK 202 associated with this record will be further protected for the specified duration. However, if a Hold Timer 253 is defined, the Timestamp 203 parameter for that ESQK record is updated to the current time plus the value of the Hold Timer 253.
In this way an emergency services key such as an ESQK can be protected for a well specified duration after a termination event. This is a key to the present invention and crucial from the viewpoint of the PSAP, which may want to query the data associated with a particular emergency call well after it has been released.
As an example use of the inventive method, a request for an ESQK from ESQK pool #1 shown earlier in FIG. 2 would follow the method described and shown with respect to FIG. 3. In the given example, ESQK “11111111111” (row 301) would be chosen since it has a Call Data ID=NULL, and the oldest Timestamp.
A request for an ESQK from ESQK pool #2 would also follow the method described and shown with respect to FIG. 3. All ESQKs in ESQK pool #2 as depicted still have a value assigned as a Call Data ID. For instance, the ESQK in row 303 has a Call Data ID=1234, and the ESQK in row 304 has a Call Data ID=5678. Because the values for these Call Data ID is NOT NULL, they are both considered to be marked as “in-use” as referred to herein.
In this particular example, ESQK “33333333333” (row 303) would be chosen since no ESQK in the ESQK pool (i.e., ESQK pool #2) has a Call Data ID=NULL, and that ESQK (i.e., ESQK “3333333333” (row 303) is the ESQK in that ESQK pool having the oldest Timestamp. In this example, the oldest Timestamp is “Two days ago @ 8:00 AM”.
The ESQKs in pool #3 309 have a well defined Hold Timer 253, unlike the ESQKs in pool #1 307 and #2 308 which have no Hold Timer 253 defined. A request for an ESQK from ESQK pool #3 309 would also follow the method described and shown with respect to FIG. 3. All ESQKs in ESQK pool #3 309 as depicted have no value assigned as a Call Data ID 204, however, the row in 305 is still protected by the Hold Timer 253 (seen in pool #3 309) and considered to be in-use. The ESQK in row 306 will be chosen. The latter ESQK was also protected by the Guard Timer 252/Hold timer 253 from pool #3 309, however the Timestamp 203 indicates that the timer already expired.
While the Timestamp 203 is represented as “Two days ago @ 8:00 AM”, it is entirely within the principles of the present invention that other representations for a Timestamp 203 are possible. For instance, the Timestamp 203 may be represented in YYYY/MM/DD/HH/MM/SS format, or equivalent, as an example.
Accordingly, the invention guarantees that for a limited size ESQK pool, an ESQK can always be selected and associated with an ongoing emergency call with no measurable impact to existing calls.
While the disclosed examples relate to the selection of an emergency services query key (ESQK), the present invention is equally applicable to the selection of an emergency services routing key (ESRK).
While the invention has been described with reference to the exemplary embodiments thereof, those skilled in the art will be able to make various modifications to the described embodiments of the invention without departing from the true spirit and scope of the invention.

## Claims

1. An efficient method of using emergency services keys from a limited pool of emergency services keys, comprising:
selecting, at a physical VoIP positioning center (VPC) server, an emergency services key from a pool of emergency services keys available for use by said VPC server, said selected emergency services key having a timestamp that is oldest from among said pool of emergency services keys; and
resetting said timestamp associated with said selected emergency services key.

2. The efficient method of using emergency services keys from a limited pool of emergency services keys according to claim 1, wherein:
said selected emergency services key is selected by said VPC further based on a NULL call data ID.

3. The efficient method of using emergency services keys from a limited pool of emergency services keys according to claim 1, wherein:
said timestamp is reset to a current time associated with an emergency call to which said selected emergency services key is assigned.

4. The efficient method of using emergency services keys from a limited pool of emergency services keys according to claim 1, wherein:
said timestamp is reset to a current time associated with an emergency call to which said selected emergency services key is assigned, plus an amount of guard timer.

5. The efficient method of using emergency services keys from a limited pool of emergency services keys according to claim 1, wherein:
said pool of emergency services keys is a limited size pool.

6. The efficient method of using emergency services keys from a limited pool of emergency services keys according to claim 1, wherein:
said emergency services keys are emergency services query keys (ESQKs).

7. The efficient method of using emergency services keys from a limited pool of emergency services keys according to claim 1, wherein:
said emergency services keys are emergency services routing keys (ESRKs).

8. An efficient method of using emergency services keys from a limited pool of emergency services keys, comprising:
selecting, at a physical VoIP positioning center (VPC) server, an emergency services key from a pool of emergency services keys available for use by said VPC server, said selected emergency services key having a timestamp that is oldest from among said pool of emergency services keys; and
resetting said timestamp associated with said selected emergency services key to a current time associated with an emergency call to which said selected emergency services key is assigned, plus a value of a hold timer greater than a guard timer associated with said selected emergency services key.

9. The efficient method of using emergency services keys from a limited pool of emergency services keys according to claim 8, wherein:
said selected emergency services key is selected by said VPC further based on a NULL call data ID.

10. The efficient method of using emergency services keys from a limited pool of emergency services keys according to claim 8, wherein:
said pool of emergency services keys is a limited size pool.

11. The efficient method of using emergency services keys from a limited pool of emergency services keys according to claim 8, wherein:
said emergency services keys are emergency services query keys (ESQKs).

12. The efficient method of using emergency services keys from a limited pool of emergency services keys according to claim 8, wherein:
said emergency services keys are emergency services routing keys (ESRKs).

13. An efficient method of using emergency services query keys from a limited pool of emergency services query keys, comprising:
selecting, at a physical VoIP positioning center (VPC) server, an emergency services query key (ESQK) from a pool of emergency services query keys (ESQKs) available for use by said VPC server, said selected emergency services query key (ESQK) having a timestamp that is oldest from among said pool of emergency services keys; and
resetting said timestamp associated with said selected emergency services query key (ESQK).

14. The efficient method of using emergency services query keys from a limited pool of emergency services query keys according to claim 13, wherein:
said selected emergency services query key (ESQK) is selected by said VPC further based on a NULL call data ID.

15. The efficient method of using emergency services query keys from a limited pool of emergency services query keys according to claim 13, wherein:
said timestamp is reset to a current time associated with an emergency call to which said selected emergency services query key is assigned.

16. The efficient method of using emergency services query keys from a limited pool of emergency services query keys according to claim 13, wherein:
said timestamp is reset to a current time associated with an emergency call to which said selected emergency services query key is assigned, plus an amount of guard timer.

17. The efficient method of using emergency services query keys from a limited pool of emergency services query keys according to claim 13, wherein:
said pool of emergency services query keys is a limited size pool.