U.S. patent application number 15/016056 was filed with the patent office on 2016-06-09 for location service request throttling.
The applicant listed for this patent is VICTOR BURTON, GORDON JOHN HINES, HSIN-CHIH LIAO, YINJUN ZHU. Invention is credited to VICTOR BURTON, GORDON JOHN HINES, HSIN-CHIH LIAO, YINJUN ZHU.
Application Number | 20160165487 15/016056 |
Document ID | / |
Family ID | 37669463 |
Filed Date | 2016-06-09 |
United States Patent
Application |
20160165487 |
Kind Code |
A1 |
ZHU; YINJUN ; et
al. |
June 9, 2016 |
LOCATION SERVICE REQUEST THROTTLING
Abstract
A technique to allow a server such as a location server to
throttle concurrent or closely timed location requests for the
position of a given wireless device such that within a certain time
period preferably only one location request will be initiated to
the positioning engine and the remaining closely-timed location
requests will be buffered or cached. When a position for the given
wireless device is returned per the outstanding location request,
then the retrieved position will be used to respond to each of the
buffered location requests. Thus, a plurality of location requests
are satisfied with a single request to the positioning engine. By
optimizing the use of cached position requests, throttling of
location requests per the invention reduces network traffic
significantly, increases the efficiency of a positioning server
(therefore reducing business cost), and provides for an improved
grade or quality of location based services in general.
Inventors: |
ZHU; YINJUN; (SAMMAMISH,
WA) ; HINES; GORDON JOHN; (KIRKLAND, WA) ;
BURTON; VICTOR; (BELLEVUE, WA) ; LIAO; HSIN-CHIH;
(MILL CREEK, WA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
ZHU; YINJUN
HINES; GORDON JOHN
BURTON; VICTOR
LIAO; HSIN-CHIH |
SAMMAMISH
KIRKLAND
BELLEVUE
MILL CREEK |
WA
WA
WA
WA |
US
US
US
US |
|
|
Family ID: |
37669463 |
Appl. No.: |
15/016056 |
Filed: |
February 4, 2016 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
14188351 |
Feb 24, 2014 |
9288615 |
|
|
15016056 |
|
|
|
|
11244223 |
Oct 6, 2005 |
8660573 |
|
|
14188351 |
|
|
|
|
60700345 |
Jul 19, 2005 |
|
|
|
Current U.S.
Class: |
455/456.2 |
Current CPC
Class: |
H04L 67/2833 20130101;
H04W 28/14 20130101; H04L 67/18 20130101; H04W 28/10 20130101; H04W
4/029 20180201; H04L 67/32 20130101; H04L 67/28 20130101 |
International
Class: |
H04W 28/14 20060101
H04W028/14; H04W 4/02 20060101 H04W004/02 |
Claims
1. (canceled)
2. A method comprising: receiving, at a location server, a given
location request for the location of a particular wireless device
from a given location application; requesting, at the location
server, a current location of the given wireless device in response
to the given location request from the given location application;
buffering, at the location server, another location request for the
location of the particular wireless device in response to receiving
another location request from another location application after
receipt of the given location request and prior to receipt of a
response to the request for the current location; receiving, at the
location server, the current location of the particular wireless
device; and transmitting, from the location server, the received
current location to the given location application and the other
location application.
3. The method of claim 2, further comprising: setting, at the
location server, a timer that expires after a predetermined amount
of time in response to receipt of the current location of the
particular wireless device; and receiving a third location request
from a third location application for the location of the
particular wireless device, wherein the third location request is
received after receipt of the current location of the particular
wireless device and prior to expiration of the timer.
4. The method of claim 3, wherein the predetermined amount of time
is about 15 seconds.
5. The method of claim 3, further comprising: receiving, at the
location server, a fourth location request from a fourth location
application for the location of the particular wireless device,
wherein the fourth location request is received after receipt of
the current location of the particular wireless device and prior to
expiration of the timer, wherein the fourth location request
includes a stale age parameter that indicates than an immediate
update to the location of the particular wireless device is
desired; and requesting, at the location server, an updated
location of the given wireless device in response to the fourth
location request from the fourth location application.
6. The method of claim 5, further comprising: timing out, by the
location server, in response to not receiving the updated location
of the given wireless device within a predetermined amount of time
after the request for the updated location of the particular
wireless device; and providing the current location of the
particular wireless device to the fourth location application in
response to the timing out.
7. The method of claim 5, further comprising: receiving the updated
location for the particular wireless device; and resetting the
timer in response to receipt of the updated location for the
particular wireless device.
8. The method of claim 2, wherein the current location corresponds
to a position measured by a global positioning system (GPS) of the
particular wireless device.
9. A location server comprising: a non-transitory machine readable
medium storing machine readable instructions; and a processor to
access the non-transitory machine readable medium and execute the
machine readable instructions, the machine readable instructions
being configured to: receive a given location request for the
location of a particular wireless device from a given location
application; request a current location of the given wireless
device in response to the given location request from the given
location application; receiving, at the location server, the
current location of the particular wireless device; set a timer
that expires after a predetermined amount of time in response to
the receipt of the current location of the particular wireless
device; buffer another location request for the location of the
particular wireless device from another location application in
response to either (i) receiving the other location request after
receipt of the given location request and prior to receipt of a
response to the request for the current location or (ii) receiving
the other location request after receipt of the response to the
request for the current location and prior to expiration of the
timer; and transmitting, from the location server, the received
current location of the particular wireless device to the given
location application and the other location application.
10. The location server of claim 9, wherein the current location of
the particular wireless device corresponds to a position measured
by a global positioning system (GPS) of the particular wireless
device.
11. The location server of claim 9, wherein the predetermined
amount of time is about 15 seconds.
12. The location server of claim 9, wherein the machine readable
instructions are further configured to: receive a third location
request from a third location application for the location of the
particular wireless device, wherein the third location request is
received after receipt of the current location of the particular
wireless device and prior to expiration of the timer, wherein the
third location request includes a stale age parameter that
indicates than an immediate update to the location of the
particular wireless device is desired; and request an updated
location of the particular wireless device in response to the third
location request from the third location application.
13. The location server of claim 12, wherein the machine readable
instructions are further configured to: time out in response to not
receiving the updated location of the particular wireless device
within a predetermined amount of time after the request for the
updated location of the particular wireless device; and provide the
current location of the particular wireless device to the third
location application in response to the timing out.
14. The location server of claim 12, wherein the machine readable
instructions are further configured to: receive the updated
location for the particular wireless device; and reset the timer in
response to receipt of the updated location for the particular
wireless device.
15. A method comprising: transmitting, from a location server, a
location request for a current location of a particular wireless
device; receiving, at a location server, the current location of
the particular wireless device; setting, at the location server, a
timer that expires after a predetermined amount of time in response
to receipt of the current location of the particular wireless
device; buffering, at the location server, a given location request
from a given location application for the location of the
particular wireless device in response to receiving the given
location request after receipt of the current location of the
particular wireless device and prior to expiration of the timer;
and transmitting, from the location server, the received current
location to the given location.
16. The method of claim 15, further comprising: buffering, at the
location server, another location request from another location
application for the location of the particular wireless device in
response to receiving the other location request after transmitting
the location request and prior to receipt of the current location;
and transmitting, from the location server, the received current
location to the other location application.
17. The method of claim 15, wherein the predetermined amount of
time is about 15 seconds.
18. The method of claim 15, further comprising: receiving, at the
location server, another location request from another location
application for the location of the particular wireless device,
wherein the other location request is received after receipt of the
current location and prior to expiration of the timer, wherein the
other location request includes a stale age parameter that
indicates than an immediate update to the location of the
particular wireless device is desired; and requesting, at the
location server, an updated location of the particular wireless
device in response to the other location request from the other
location application.
19. The method of claim 18, further comprising: timing out, by the
location server, in response to not receiving the updated location
of the given wireless device within a predetermined amount of time
after the requesting of the updated location of the particular
wireless device; and providing the current location of the
particular wireless device to the other location application in
response to the timing out.
20. The method of claim 18, further comprising: receiving the
updated location for the particular wireless device; and resetting
the timer in response to receipt of the updated location for the
particular wireless device.
21. The method of claim 15, wherein the current location
corresponds to a position measured by a global positioning system
(GPS) of the particular wireless device.
Description
[0001] The present application is a continuation application of
U.S. patent application Ser. No. 14/188,351, filed 24 Feb. 2014;
which is a continuation of U.S. patent application Ser. No.
11/244,223, filed 6 Oct. 2005 (now U.S. Pat. No. 8,660,573, issued
25 Feb. 2014; which claims priority from U.S. Provisional
Application No. 60/700,345, filed 19 Jul. 2005, the entirety of all
of which is expressly incorporated herein by reference.
BACKGROUND OF THE INVENTION
[0002] 1. Field of the Invention
[0003] This invention relates generally to wireless and long
distance carriers, Internet Service Providers (ISPs), and
information content delivery services/providers and long distance
carriers. More particularly, it relates to location services for
the wireless industry.
[0004] 2. Background of the Related Art
[0005] Wireless devices, and in particular cell phones, have become
ubiquitous with day-to-day life. A majority of people in the United
States now own cell phones.
[0006] Location services are a more recent advanced feature made
available for use with wireless devices, perhaps most notably to
provide location of a cell phone. The general goal of
location-based services is to automatically provide location-based
information to a requesting application. The requesting application
may be operating on the wireless device itself, or even on an
external application running, e.g., on another device in the
wireless or other network. Some exemplary applications that use
location services include mapping applications that show
interesting places in a vicinity of the wireless device's current
global position. Location based services are available for wireless
devices such as personal digital assistants (PDAs) as well as for
cell phones.
[0007] Cell phones and other wireless devices have become very
sophisticated mini-computer devices, capable of running multiple
software applications in a time-shared simultaneous manner. Popular
operating systems for a wireless device include, e.g.,
Smartphone.TM. or PocketPC.TM., both of which permit simultaneous
operation of multiple application programs on a given wireless
device.
[0008] For various reasons realized by the present inventors, one
or multiple location service applications may request location
information of a given wireless device generally at the same time,
or at least within a short period of time. The location requests
may come from applications running on the wireless device itself
(e.g., mapping programs), and/or from applications running on other
devices within the wireless network or otherwise in communication
with the wireless network, e.g., from land-based wired devices. The
present inventors have appreciated that such duplicate or
closely-timed location requests consume resources in the wireless
network as well as the target mobile wireless device, generally
causing more network traffic and slower operations of
applications.
[0009] It is realized by the inventors herein that the conventional
location/positioning software engine (e.g., either on a network
based device or in a component in the wireless device) cannot
properly handle multiple location request transactions grouped
closely in time. For example, in North American emergency 9-1-1
location services, a Public Safety Answering Point (PSAP) may
initiate a location request for the position information of a
wireless device from which an emergency call is made in very short
succession, e.g., every two seconds. However, in current satellite
systems a single typical Assisted GPS (AGPS) fix takes about 15
seconds. Multiple location requests within this 15 second or so
time period required for a single location fix tends to congest the
software positioning engine, not to mention the network, causing
most of the concurrent location requests to fail.
[0010] There is a need for better management of location requests
relating to wireless devices as the number of applications that
request location information grow in number, to reduce wireless
network traffic and to utilize network resources more
efficiently.
SUMMARY OF THE INVENTION
[0011] In accordance with the principles of the present invention,
a technique for throttling location requests relating to a wireless
device comprises logging a plurality of location requests within a
short period of time relating to a position of the wireless device.
Only one of the logged plurality of location requests is allowed
through to a positioning engine relating to the wireless device. A
location returned to the only one of the logged plurality of
location requests is used as a location returned in remaining ones
of the plurality of location requests.
BRIEF DESCRIPTION OF THE DRAWINGS
[0012] FIG. 1 shows an exemplary call flow, in accordance with an
embodiment of the present invention.
[0013] FIG. 2 shows an exemplary general procedure for processing
location requests, in accordance with the principles of the present
invention.
[0014] FIG. 3 shows a state diagram of update location requests, in
accordance with the principles of the present invention.
DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
[0015] The present invention provides a technique to allow a server
such as a location server to throttle concurrent or closely timed
location requests for the position of a given wireless device such
that within a certain time period preferably only one location
request will be initiated to the positioning engine and the
remaining closely-timed location requests will be buffered or
cached. When a position for the given wireless device is returned
per the outstanding location request, then the retrieved position
will be used to respond to each of the buffered location requests.
Thus, a plurality of location requests are satisfied with a single
request to the positioning engine.
[0016] By optimizing the use of cached position requests,
throttling of location requests per the invention reduces network
traffic significantly, increases the efficiency of a positioning
server (therefore reducing business cost), and provides for an
improved grade or quality of location based services in
general.
[0017] The contents of a location request varies depending on the
interface types between the location service application and the
location server. However, a location request typically includes the
following key elements which are important for processing the
location request: [0018] Request Quality of Position (QoP) which
usually contains horizontal accuracy and response time (e.g. No
Delay, Low Delay, Delay Tolerant or within a specific time). [0019]
Type of Location which indicates that the location request is for
an Initial location, an Update/Last Known location, or an Update
location of the target mobile. In the normal implementation of
location based services, initial location is specific for the
emergency location service, in which case the initial location is
already stored in a cache database waiting for a query. An
Update/Last Known location type request can be satisfied by using
either a cached location if it is available and meet the requested
QoP, or an updated location of the mobile wireless device retrieved
from the network. For an update location type request, the location
server retrieves the current location of the target mobile wireless
device.
[0020] Optionally a cache database may not implemented in a
location server. Use of a cached location for a given wireless
device can reduce network traffic for Update/Last Known type
location requests.
[0021] The invention introduces a method and complete procedure for
throttling multiple location requests relating to the position of a
same wireless device within a short period of time, e.g., within a
period of time required to fulfill a single position determination.
Concurrent or closely-timed location requests for the same target
mobile are buffered so that at any given time there is only one
ongoing positioning process for a target mobile wireless device.
Other duplicated or sequential requests are buffered until the
current location of the target mobile wireless device is retrieved.
The retrieved position is then used to respond to all the buffered
location requests.
[0022] FIG. 1 illustrates an example of message flow according to
the invention where location request throttling in according to the
invention is implemented in a mobile positioning center (MPC) 102,
which is a location server in the ANSI wireless network.
[0023] In particular, as shown in FIG. 1, a location application
106 that resides in a public safety access point (PSAP)/ESME 104
initiates location requests for an emergency caller using a
wireless or VoIP device to a location server MPC 102. In FIG. 1,
the broad vertical bars tg, tr, tb represent running timers that
can be interrupted by different events. The E2 ESPRT timer tr is a
timer running in the MPC 102 for the protocol interface between the
PSAP/ESM 104 and the MPC 102.
[0024] It is important to note that the call flow of FIG. 1 is an
example that does not intend to present all the possible scenarios
for implementing the inventive ALI-MPC location request throttling
as disclosed and described herein.
[0025] In step a, an emergency call is initiated and routed by the
Public Land Mobile Network (PLMN) 110 and MPC 102, to the PSAP 106
assigned to the service area where the call is initiated.
[0026] In step b, the MPC 102 initiates a GPOSREQ (initial) to the
position determining equipment (PDE), to request both a coarse
interim location and precise initial location information.
[0027] In step c, a position is returned in a gposreq from the PLMN
110.
[0028] In step d, the emergency call to the PSAP 106 is
answered.
[0029] In step e, an automatic or manual query is sent by the ESME
104 to request the call's initial information. Conventional PSAPs
can only make one type of query. The ESME 104 maintains context for
E2 ESPOSREQ's REQUESTTYPE. Since this is the first request for this
call for this PSAP 106, the MPC 102 can expect at least one
ESPOSREQ (initial) request will precede any Updated or
Updated/LastKnown" requests. The MPC/Gateway Mobile Location Center
(GMLC) starts an ESPRT timer using the ESPRT value provisioned for
the ALI1 E2 interface.
[0030] In step f, the MPC 102 responds to the Initial location
request with the Initial position information that is in cache.
[0031] In step g, the PSAP 106 queries the Updated/LastKnown
location by sending an ESPOSREQ from ALI1.
[0032] In step h, the MPC/GMLC returns the cached position in an
esposreq, as the "Stale Age" of ALI1 is set to a value bigger than
0, and the age of the cached position is less than the "Stale Age".
Age is calculated from the time when the position was retrieved to
the time the request arrives at MPC.
[0033] In step i, another ESPOSREQ for Initial location from ALI1
arrives.
[0034] In step j, the MPC 102 responds to the Initial request with
the Initial position information that is in cache.
[0035] In step k, an ESPOSREQ for updated location from ALI1 is
received. The MPC 102 initiates a network Updated Location
Retrieval Procedure by sending a GPOSREQ to the PLMN 110 and starts
an Updated Timer.
[0036] In step l, another ESPOSREQ for Initial location is
received. This may be due to a different PSAP querying the initial
location of the same emergency call.
[0037] In step m, the MPC 102 responds to the Initial request with
the Initial position information that is in cache.
[0038] In step n, an ESPOSREQ for Updated/LastKnown location is
received from ALI1 for the same call at the MPC 102. Since the
cached position is stale already, the MPC 102 treats this request
the same as an Updated Request. Therefore, as there is already an
Updated Request being processed, the MPC 102 puts this request in a
multiple location request Queue, starts an ESPRT for this request,
and waits for the updated location.
[0039] In step o, an ESPOSREQ for an Updated location is received
from the ALI1 for the same call at the MPC 102. Since there is
already an Updated Request being processed, the MPC 102 puts this
request in the multiple location request Queue, starts an ESPRT for
this request, and waits for the updated location.
[0040] In step p, when the PDE's gposreq with XY' is received, the
Updated Timer is stopped. The MPC 102 starts responding to the
buffered requests using the updated position in a FIFO order, and
it sends an esposreq with position XY'.
[0041] In step q, the MPC 102 responds to the second buffered
Updated Request with the same position XY'.
[0042] In step r, the MPC 102 responds to the third buffered
Updated Request with the same position XY'.
[0043] In step s, another ESPOSREQ for the Initial location is
received. This may be due to a different PSAP querying the initial
location of the same emergency call.
[0044] In step t, the MPC 102 responds to the Initial request with
the cached position XY'.
[0045] In step u, an ESPOSREQ for an Update/LastKnown location from
a different ALI interface (ALI2) arrives. Although the cached
location is not stale yet for other ALI interfaces (e.g. ALI1), but
the "Stale Age" associated with this ALI interface is set to "0",
so the MPC 102 treats the Updated/LastKnown Request the same as the
Updated Request, it sends a GPOSREQ to the PLMN 110 to retrieve the
updated position of the emergency caller, and starts the Updated
Timer.
[0046] In step v, an ESPOSREQ for an Updated location is received
from the ALI1 for the same call. Since there is already an Updated
Request being processed, the MPC 102 puts this request in the
multiple location request Queue, starts an ESPRT for this request,
and waits for the updated location.
[0047] In step w, the ESRPT timer of the first queued Updated
Request expires, the MPC 102 sends the last known position XY' via
an ALI2 in an esposreq to the PSAP 106 and removes this request
from the multiple location request Queue.
[0048] In step x, the Updated Timer expires, the MPC 102 retries
the Updated Location Retrieval Procedure by sending another
GPOSREQ, and re-starts the Updated Timer.
[0049] In step y, an ESPOSREQ for an Updated location is received
from the ALI1 for the same call. Since there is already an Updated
Request being processed, the MPC 102 puts this request in the
multiple location request Queue, starts an ESPRT for this request,
and waits for the updated location.
[0050] In step z, when the PDE's gposreq with XY' is received, the
Updated Timer is stopped. The MPC 102 starts responding to the
buffered requests using the updated position in a FIFO order, and
it sends an esposreq with position XY''.
[0051] In step aa, an ESPOSREQ for an Updated location is received
from the ALI1 for the same call. The MPC 102 puts the request into
the existing queue.
[0052] In step bb, the MPC 102 responds to the second buffered
Updated Request with the same position XY''', and removes the
request from the multiple location request Queue.
[0053] In step cc, the MPC 102 responds to the third buffered
Updated Request with the same position XY''', and removes the
request from the multiple location request Queue. The multiple
location request Queue is cleared after the last location request
is removed.
[0054] FIG. 2 shows an exemplary general procedure for processing
multiple location requests received within a short period of time,
e.g., within a time required to process a single location request
with respect to a single wireless device, in accordance with the
principles of the present invention.
[0055] In particular, FIG. 2 shows how a location server can
determine whether a received location request 202 needs to trigger
a network query to retrieve the current location of a target mobile
wireless device, which will be handled by the throttling process
illustrated in FIG. 3.
[0056] In step 204 of FIG. 2, the type of location request is
determined, e.g., whether the location request type is
"Updated/LastKnown", "Updated", or "Initial".
[0057] If the location request type is "Updated/LastKnown", the
process continues to step 206, where it is determined if the "Stale
Age" of the interface is set to `0`. If not, the process continues
to step 208, where it is determined if there is a cached location
with age less than or equal to the "Stale Age". If not, the process
continues to step 222, where the location request is responded to
with the cached location and "LastKnown" indicator, and then the
process ends.
[0058] Back at step 204, if the location request type was
"Initial", then the process continues to step 224, where the
process moves to an appropriate existing "Initial" request handling
procedure.
[0059] Back to step 204, if the location request was of the
"Updated" type, the question is asked in step 210 if the serving
MSC provisioned with a throttling technique as described herein. If
not, the process moves to step 216, where the network updated
location retrieval procedure without throttling is activated. If
the result of the question asked in step 210 is yes, then the
process instead moves to step 212, where it is determined if the
size of the location request queue is set to `0`. If yes, the
procedure moves to step 216. If not, then the procedure moves to
step 214, where an updated location request throttling procedure is
activated.
[0060] Following step 214 or step 216 is step 218, which determines
if a new updated position information is retrieved. If not, the
procedure moves to step 222. If so, the procedure moves to step
220, where a response is formatted with the newly retrieved
position and "Updated" indicator, following which the procedure
ends.
[0061] FIG. 3 shows a state diagram for handling update location
requests in a location request throttling engine, in accordance
with the principles of the present invention.
[0062] When the Location Server receives a location request, it
first examines the type of location request. Different request
types are treated differently. The location request throttling
feature is checked to see if it is enabled. If the location request
throttling feature is disabled, the location server processes the
received location request normally as if no location request
throttling feature were available.
[0063] The Location Server may optionally include a configurable
"Stale Age". The "Stale Age" controls whether a cached position can
be used for an "Update/LastKnown" location request. If the "Stale
Age" is set to "0", or if there is no cached position of which the
age is less than the "Stale Age", then the "Update/LastKnown"
Requests will directly trigger a Network Updated Location Retrieval
procedure for an Updated position similar to the procedure for
"Updated" Requests. Otherwise, the cached position will be returned
in response to the received "Updated/LastKnown" location as a "Last
Known" location.
State Definition
S1: Idle
[0064] In the Idle State S1 of a mobile wireless device in the
cache database, no resource is allocated.
[0065] The Idle State S1 does not change until the first
outstanding "Updated" Location Request is received, at which time
the Location Server creates a multiple location request Queue for
the Updated Request, puts the received location request into the
multiple location request Queue, initiates an update location
retrieval procedure, and transitions to the S2 "Waiting for updated
location, Queue is not empty and is not full" state.
S2: Waiting for Updated Location, Queue is not Empty and is not
Full
[0066] In the S2 State, the Location Server waits for updated
position information to be retrieved from the network, while the
"Updated Timer" is running.
[0067] In the S2 State, several events may occur and will not
trigger state transition: [0068] Additional "Updated" location
request for the same emergency caller is received, in which case
the Location Server puts the "Updated" request into the multiple
location request Queue while the multiple location request Queue is
not full, and starts a Response Timer for this request. [0069] Upon
expiration of the Response Timer of a buffered "Updated" request,
which is not the last "Updated" location request in the multiple
location request Queue, the Location Server removes the location
request from the multiple location request queue and indicates a
"Last Known" Position for formatting a response to the original
location request. [0070] When the "Updated Timer" of the multiple
location request queue expires or an error is returned from the
network for an updated position retrieval procedure, if the
multiple location request Queue is not empty, then the Location
Server re-initiates an updated location retrieval procedure and
starts a new "Updated Timer".
[0071] In the S2 State, the following events will trigger state
transition from the S2 State to the S1 Idle State: [0072] Upon
expiration of the Response Timer of the last buffered "Updated"
location request, the Location Server removes the location request
from the multiple location request queue and indicates a "Last
Known" Position for formatting a response to the original location
request, and clears the multiple location request Queue. [0073]
When the updated location is retrieved, the Location Server can
respond to all of the buffered "Updated" requests with the same
updated location and clears the multiple location request Queue.
The received location information is used to update cached data as
well. [0074] For call related location service sessions, when the
call is terminated, the Location Server responds to all pending
buffered requests with a "Last Known" Position, and clears the
multiple location request Queue. In the S2 State, the following
event will trigger state transition from the S2 State to the S3
State: [0075] An additional "Updated" location requests for the
same emergency caller is received, in which case the Location
Server puts the "Updated" location request into the multiple
location request Queue, which becomes full, and starts the ALI
Response Timer for this location request.
S3: Waiting for Updated Location, Queue is Full
[0076] In the S3 State, the Location Server waits for the updated
position information to be retrieved from the network, while the
"Updated Timer" is running and the multiple location request Queue
is full.
[0077] In the S3 State, several events may occur and will not
trigger state transition: [0078] An additional "Updated" location
request for the same emergency caller is received, in which case
the Location Server responds to the location request right away
with the "Last Known" Position. [0079] When the "Updated Timer" of
the multiple location request queue expires, or an error is
returned from the network for an updated position retrieval
procedure, the Location Server re-initiates an updated location
retrieval procedure and starts a new "Updated Timer". In the S3
State, the following events will trigger state transition from the
S3 State to the S1 Idle State: [0080] When the updated location is
retrieved, the Location Server responds to all the buffered
"Updated" location requests with the same updated location, and
clears the multiple location request Queue. The received location
information is used to update cached data as well. [0081] For call
related location service sessions, when the call is terminated, the
Location Server responds to all buffered location requests with
"Last Known" Position, and clears the multiple location request
Queue.
[0082] In the S3 State, the following event will trigger state
transition from the S3 State to the S2 State:
[0083] Upon expiration of the Response Timer of a buffered
"Updated" location request, the Location Server removes the
location request from the multiple location request queue and
indicates a "Last Known" Position for formatting a response to the
original location request, and clears the multiple location request
Queue.
Event and Action Table
[0084] Table 1 presents details of exemplary events and
corresponding actions that are preferably taken for the state
machine illustrated in FIG. 3.
TABLE-US-00001 TABLE 1 Event and Action Table Event State Action
State Transition An "Updated" S1 Location Server creates a Queue S1
S2 request (the for Updated Requests, puts the first received
request into the Queue, outstanding initiates update location
request) is retrieval procedure and starts received Updated Timer.
S2 N/A N/A S3 N/A N/A Additional S1 N/A N/A "Updated" S2 Location
Server puts the Remaining request for the "Updated" request into
the in State same mobile Queue while Queue is not full, S2 wireless
device and starts a ALI Response is received Timer for this request
E911 System puts the S2 S3 "Updated" location request into the
multiple location request Queue, which becomes full, and starts an
ALI Response Timer for this location request. S3 Location Server
responds to the Remaining location request right away with in State
"Last Known" Position S3 "Updated S1 N/A N/A Timer" of the S2
Location Server re-initiates an Remaining multiple updated location
retrieval in State location procedure and starts a new S2 request
queue "Updated Timer". expires S3 Location Server re-initiates an
Remaining updated location retrieval in State procedure and starts
a new S3 "Updated Timer". Expiration of S1 N/A N/A Response S2
Location Server removes the Remaining Timer of a location request
from the in State buffered multiple location request queue S2
"Updated" and indicates a "Last Known" location Position for
formatting a request, which response to the original location is
not the last request "Updated" S3 Location Server removes the S3 S2
request in the location request from the multiple multiple location
request queue location and indicates a "Last Known" request Queue
Position for formatting a response to the original location request
Expiration of S1 N/A N/A Response S2 Location Server removes the S2
51 Timer of the location request from the last buffered multiple
location request queue "Updated" and indicates "Last Known"
location Position for formatting a request response to the original
location request, and clears the multiple location request Queue S3
N/A N/A The updated S1 Location Server updates the Remaining
location cached data. in State request is S1 retrieved S2 Location
Server responds to all S2 S1 the buffered "Updated" location
requests with the same updated location and clears the multiple
location request Queue, and updates the cached data. S3 Location
Server responds to all S3 S1 the buffered "Updated" requests with
the same updated location and clear the Queue, update the cached
data. For call related S1 N/A N/A location S2 Location Server
responds to the S2 S1 service all the buffered requests with
sessions, when "Last Known" Position, and the call is clear the
Queue terminated S3 Location Server responds to all S3 S1 the
still-pending buffered location requests with a "Last Known"
Position, and clear the multiple location request Queue An error is
S1 Ignore Remaining returned from in State the Updated S1 Position
S2 Location Server re-initiates an Remaining Retrieval updated
location retrieval in State Procedure procedure, and starts a new
S2 "Updated Timer". S3 Location Server re-initiates an Remaining
updated location retrieval in State procedure, and starts a new S3
"Updated Timer".
[0085] 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.
* * * * *