# Patent

## Title
Dynamic configuration of mobile station location services

## Abstract

On startup, a mobile station application will determine the current carrier network and submit a query to an application server that will return the correct location server configuration for the specified network. This information will be used on the mobile station to dynamically configure the device through the available GPS chipset API.

## Background
The present application claims priority from U.S. Provisional Application 60/960,019, entitled “DYNAMIC CONFIGURATION OF MOBILE STATION LOCATION SERVICES” to Gill et al., filed Sep. 11, 2007, the entirety of which is expressly incorporated herein by reference.


BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates generally to location based wireless services, and more specifically, to location enabled applications for wireless mobile devices.
2. Background of Related Art
Most mobile station (cell phone) GPS implementations depend on network access to a ‘location server’ for base station almanac (BSA) data and/or computational support. The IP address, port and type of connection must be known to the mobile station in order for the mobile station software and GPS chipset to communicate with this location server. Many Tier 1 carriers pre-configure their devices with this information.
Most location based applications rely on the device being pre-configured by the carrier with the correct location server configuration information. If this configuration is incorrect or does not exist, location services are not available.
The location configuration is static and must be established in advance by the wireless carrier. Existing GPS capable phones cannot be reconfigured (except manually) to access a new location server. When TCS sells its location platform into a new carrier, it is not possible to turn on location services on devices that are already deployed.
SUMMARY OF THE INVENTION
In accordance with the principles of the invention, a method and apparatus for configuring a mobile device comprises transmitting a request for location configuration data. The location configuration data is received in response to the request for location configuration data. Navigation hardware is initialized with the location configuration data.
In accordance with the principles of the invention, a system for configuring a mobile device comprises a mobile device to transmit a request for location configuration data, a location configuration data server to receive the request for location configuration data and to formulate a database query, and a database to store the location configuration data. A wireless network communicates the request for location configuration data and the location configuration data between the mobile device and the location configuration server.



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, in which:
FIG. 1 shows a system for transmitting a request for and receiving location configuration data, in accordance with the principles of the present invention.
FIG. 2 shows an exemplary data packet for submitting a request for location configuration data, in accordance with the principles of the present invention.
FIG. 3 shows an exemplary data packet for transmitting location configuration data, in accordance with the principles of the present invention.
FIG. 4 shows an exemplary method of submitting a request for location configuration information, in accordance with the principles of the present invention.
FIG. 5 shows an exemplary method of responding to a request for location configuration information, in accordance with the principles of the present invention.



DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
This invention addresses two problems related to management of the location server configuration data on the mobile station. First, many Tier 2 carriers are not able, for business and/or technical reasons, to pre-configure their devices with the required information. This places the burden of configuration on the application provider. Second, location services should be available even when the mobile station is roaming on a partner network that maintains its own location server and proprietary BSA data.
Both of these problems are resolved by a mechanism that dynamically establishes the location server configuration based on the current carrier network.
In accordance with the principles of the present invention, on startup, the mobile station application will determine the current carrier network and submit a query to an application server that will return the correct location server configuration for the specified network. This information will be used on the mobile station to dynamically configure the device through the available GPS chipset API.
Very importantly, this invention disclosed herein allows applications to run on devices that have not been pre-configured with a location server configuration. In addition, applications using this invention are able to provide location services outside of the primary network as long as alternate location servers for the current network are available.
The present invention has particularly application for developers of location enabled wireless applications.
FIG. 1 shows a system for transmitting a request for and receiving location configuration data, in accordance with the principles of the present invention.
In particular, as shown in FIG. 1, a system 100 for transmitting a request for and receiving location configuration data can include various wireless devices 110a, 110b, and 110c, a wireless network 120, a location configuration server 130, and a location configuration database 140.
Instead of manually entering location configuration data into any of wireless devices 110a, 110b, and 110c or being pre-configured with location configuration data, in accordance with the principles of the present invention a request for location configuration data is transmitted by any of wireless devices 110a, 110b, and 110c. The transmitted request for location configuration data is packaged into one or more data packets for transmission over the wireless network 120 to location configuration server 130, as is known within the art.
The various wireless devices 110a, 110b, and 110c can include any class of device such as, cellular telephones, personal data assistants (PDAs), laptop computers, etc., that contain navigation hardware that require location configuration data for access to a location server. As discussed above, such a location server 150 can provide base station almanac (BSA) data 160 and/or computational support.
The various wireless devices 110a, 110b, and 110c must be properly configured with an IP address, port and type of connection to the mobile station. Proper configuration allows for mobile station software used by the various wireless devices 110a, 110b, and 110c and navigation hardware, such as a GPS chipset, to communicate with the location server 150.
A client application operating on the various wireless devices 110a, 110b, and 110c may receive multiple configurations in a single response. These configurations may be labeled as ‘Test’ or “Production” location servers or may provide secondary server configuration data to be used if the primary server is not available.
Wireless network 120 allows the various wireless devices 110a, 110b, and 110c to communicate with a location configuration server 130. Any wireless network can be employed that allows data communications for transmitting a request for and receiving location configuration data between the various wireless devices 110a, 110b, and 110c and a location configuration server 130.
Location configuration server 130 receives requests for location configuration data from wireless network 120. A database query is formulated by the location configuration server 130 from parameters associated with the received request for location configuration data. Such parameters can include a carrier network identification and at least one application identification. The database query is submitted by the location configuration server 130 to the location configuration database 140 to search the content of location configuration database 140 for entries that match the received parameters, as is known within the art.
The location configuration database 140 can be managed by any number of database programs, such as, Oracle, Sybase, mySQL, Lotus Approach, Microsoft Access, Filemaker, etc. Any database program that allows for the retrieval of location configuration data from parameters can be used with the invention; parameters such as carrier network identification and at least one application identification.
Location configuration server 130 and location configuration database 140 are described herein for simplicity as being separate components. However, location configuration database 140 can exist within the location configuration server 130. In such an instance, the description above of location configuration server 130 submitting a database query to the location configuration database 140 would remain the same.
FIG. 2 shows an exemplary data packet for submitting a request for location configuration data, in accordance with the principles of the present invention.
In particular, as shown in FIG. 2, a data packet for submitting a request for location configuration data 200 can include a header portion 210 and a data payload portion 220.
Header portion 210 can include source and destination addresses, error-checking fields, etc., as is well known within the art.
Data payload portion 220 can include carrier network identification data and at least one application identification that are both associated with a various wireless devices 110a, 110b, and 110c transmitting a request for location configuration data.
Depending upon the wireless network employed and network traffic therein, the data packet for submitting a request for location configuration data 200 may be fragmented into a plurality of data packets. The plurality of data packets are then reassembled at the receiving end, as is known within the art.
FIG. 3 shows an exemplary data packet for transmitting location configuration data, in accordance with the principles of the present invention.
In particular, as shown in FIG. 3, a data packet for transmitted location configuration data 300 can include a header portion 310 and a data payload portion 320.
Header portion 310 can include source and destination addresses, error-checking fields, etc., as is well known within the art.
Data payload portion 320 can include configuration information and carrier network identification. The configuration information can include an Internet Protocol (IP) address, a port number, and a protocol type. A plurality of configuration data can be returned in response to a single request for location configuration data, respectively corresponding to application identification supplied in the request for location configuration data 200.
Depending upon the wireless network employed and network traffic therein, the data packet for transmitted location configuration data 300 may be fragmented into a plurality of data packets. The plurality of data packets are then reassembled at the receiving end, as is known within the art.
FIG. 4 shows an exemplary method of submitting a request for location configuration information, in accordance with the principles of the present invention.
In particular, a method of submitting a request for location configuration information 400 begins with step 410, of FIG. 4, in which a software application at any of wireless devices 110a, 110b, and 110c is initialized.
In step 420, software within any of wireless devices 110a, 110b, and 110c determines the current carrier network identification associated with any of wireless devices 110a, 110b, and 110c. As is known within the art, carrier network identifications can often change as any of wireless devices 110a, 110b, and 110c roam.
In step 430, a request for location configuration data is formulated at any of wireless devices 110a, 110b, and 110c. The request for location configuration data is submitted to the location configuration server 130 using the exemplary data packet for submitting a request for location configuration data 200, shown in FIG. 2.
A response to the request for location configuration data submitted to the location configuration server 130 is received in step 440. The response to the request for location configuration data is received from the location configuration server 130 using the exemplary data packet for transmitting location configuration data 300, shown in FIG. 3.
In step 450, the carrier network identification received in step 440 is saved within memory in any of wireless devices 110a, 110b, and 110c. 
In step 460, the initialization of software application that began in step 410 proceeds.
A determination is made if the current carrier network identification is the same as the carrier network identification saved in step 450, in step 470. As discussed above, a carrier network identification could possible change at some time between steps 420 and 450 because of a roaming condition. If the determination in step 470 is that the current carrier network identification is not the same as the carrier network identification saved in step 450, the method of submitting a request for location configuration information 400 branches to step 420. If the determination in step 470 is that the current carrier network identification is are the same as the carrier network identification saved in step 450, the method of submitting a request for location configuration information 400 branches to step 480.
In step 480, the location configuration data received in step 440 is used to initialize/re-initialize navigation hardware associated with any of wireless devices 110a, 110b, and 110c, such as a GPS chipset.
The carrier network identification is saved in step 490. Any of wireless devices 110a, 110b, and 110c submitting a request for location configuration data are then configured. The method of submitting a request for location configuration information 400 ends.
FIG. 5 shows an exemplary method of responding to a request for location configuration information, in accordance with the principles of the present invention.
In particular, a method of responding to a request for location configuration information 500 begins with step 510, of FIG. 5, in which a request for location configuration data is received by a location configuration server 130. The request for location configuration data is submitted to the location configuration server 130 using the exemplary data packet for submitting a request for location configuration data 200, shown in FIG. 2.
In step 520, a database query is formulated by the location configuration server 130 with the parameters supplied in the data packet for submitting a request for location configuration data 200.
In step 530, the database query formulated in step 520 is submitted to location configuration database 140.
In response to the submission of the database query in step 530, in step 540 at least one set of location configuration data is received by the location configuration server 130 from the location configuration database 140.
In step 550, the location configuration data received in step 530 is formatted into the exemplary data packet for transmitting location configuration data 300, shown in FIG. 3.
In step 560, the exemplary data packet for transmitting location configuration data 300, shown in FIG. 3, is transmitted from location configuration server 130 to any of wireless devices 110a, 110b, and 110c. The method of responding to a request for location configuration information 500 then ends.
The methods disclosed in FIGS. 4 and 5 can be implemented in software, in hardware or a combination of hardware and software. Hardware implementation can include use of one or more of a Application-Specific Integrated Circuit (ASIC), Programmable Logic Array (PAL), Electrically Erasable Programmable Read Only Memory (EEPROM), Read Only Memory (ROM), Field Programmable Gate Array (FPGA), etc. Software implementation can include use of long term storage, short term storage, a processing unit, etc. associated with a wireless device.
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. A method of configuring a mobile device, comprising:
transmitting a mobile device configuration request for access configuration data, to an access configuration server, to configure a software application in a mobile device to access a location server, said request for access configuration data including at least one of a carrier network identification and an application identification;
receiving said access configuration data in response to said request for access configuration data;
when a current network identification matches a received network identification associated with said access configuration data, initializing said navigation hardware with said access configuration data, and when said current network identification does not match said carrier network identification, transmitting another request for access configuration data to said access configuration server; and
configuring said software application, associated with navigation hardware in said mobile device, with latest access configuration data received.

2. The method of configuring a mobile device according to claim 1, wherein said access configuration data comprises:
an Internet Protocol (IP) address;
a port number; and
a protocol type.

3. The method of configuring a mobile device according to claim 1, wherein:
said mobile device is a cellular telephone.

4. The method of configuring a mobile device according to claim 1, wherein:
said navigation hardware is a Global Positioning System (GPS) chipset.

5. Apparatus for configuring a mobile device, comprising: means for transmitting a mobile device configuration request for access configuration data, to an access configuration server, to configure a software application in a mobile device to access a location server, said request for access configuration data including at least one of a carrier network identification and an application identification;
means for receiving said access configuration data in response to said request for access configuration data;
means for initializing said navigation hardware with said access configuration data when a current network identification matches a received network identification associated with said access configuration data, and for transmitting another request for access configuration data to said access configuration server when said current network identification does not match said carrier network identification; and
means for configuring said software application, associated with navigation hardware in said mobile device, with latest access configuration data received.

6. The apparatus for configuring a mobile device according to claim 5, wherein said access configuration data comprises:
an Internet Protocol (IP) address;
a port number; and
a protocol type.

7. The apparatus for configuring a mobile device according to claim 5, wherein:
said mobile device is a cellular telephone.

8. The apparatus for configuring a mobile device according to claim 5, wherein:
said navigation hardware is a Global Positioning System (GPS) chipset.

9. A system for configuring a mobile device, comprising: a mobile device to transmit a request for access configuration data, to an access configuration server, to configure a software application in a mobile device to access a location server, said request for access configuration data including at least one of a carrier network identification and an application identification;
an access configuration server to receive said request for access configuration data and to formulate a database query;
when a current network identification matches a received network identification associated with said access configuration data, initializing said navigation hardware with said access configuration data, and when said current network identification does not match said carrier network identification, transmitting another request for access configuration data to said access configuration server;
a database to store said access configuration data; and
a wireless network to communicate said request for access configuration data and said access configuration data between said mobile device and said access configuration server, to configure said software application, associated with navigation hardware in said mobile device, with latest access configuration data received.

10. The system for configuring a mobile device according to claim 9, wherein said access configuration data comprises:
an Internet Protocol (IP) address;
a port number; and
a protocol type.

11. The system for configuring a mobile device according to claim 9, wherein:
said mobile device is a cellular telephone.

12. The system for configuring a mobile device according to claim 9, further comprising:
a Global Positioning System (GPS) chipset in said mobile device.