Abstract:
An approach is disclosed for providing an instant location service. At a wireless device of a first user, mapping information of a second user is received over a wireless network. The mapping information specifies position of the second user within a prescribed proximity of the wireless device. The first user is notified of the location of the second user based on the received mapping information. A communication session is selectively initiated by the wireless device, over the wireless network to the second user.

Description:
BACKGROUND INFORMATION 
       [0001]    Wireless communication technologies afford users with the convenience of mobility and continually expanding set of capabilities. This convenience has spawned significant adoption by an ever growing number of subscribers as an accepted mode of communication for business and personal uses in terms of communicating using voice and data services. As wireless communication devices become more sophisticated, their features have expanded from merely placing and receiving calls to other enhanced services from music downloads to navigational systems. To support navigational services, cellular phones are equipped with Global Positioning System (GPS) technology to broadcast their locations. Given the competitive landscape of the telecommunication industry, service providers are continually challenged to develop new products and services. However, few applications have been developed to exploit such information about the users&#39; locations. 
         [0002]    Therefore, there is a need for an approach that provides enhanced location services for wireless applications. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0003]    Various exemplary embodiments are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements and in which: 
           [0004]      FIG. 1  is a diagram of a communication system capable of providing instant location service, according with an exemplary embodiment; 
           [0005]      FIG. 2  is a flowchart of a process for providing instant location service, according to an exemplary embodiment; 
           [0006]      FIG. 3  is a flowchart of a process for obtaining mapping information for presentation at a wireless device, according to an exemplary embodiment; 
           [0007]      FIG. 4  is a diagram of a wireless device capable of displaying location of users, according to an exemplary embodiment; 
           [0008]      FIG. 5  is a flowchart of a process for communicating with a user who has entered a prescribed proximity, according to an exemplary embodiment; 
           [0009]      FIG. 6  is a diagram of a wireless device capable of configuring a contact list in support of the location service, according to an exemplary embodiment; 
           [0010]      FIG. 7  is a flowchart of a process for communicating with the instant location system of  FIG. 1  to update user profile and contact list, according to an exemplary embodiment; and 
           [0011]      FIG. 8  is a diagram of a computer system that can be used to implement various exemplary embodiments. 
       
    
    
     DETAILED DESCRIPTION 
       [0012]    An apparatus, method, and software for providing an instant location service are described. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the various exemplary embodiments. It is apparent, however, to one skilled in the art that the various exemplary embodiments may be practiced without these specific details or with an equivalent arrangement. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the exemplary embodiments. 
         [0013]    Although the various embodiments are described with respect to Global Positioning System (GPS) technology, it is contemplated that these embodiments have applicability to other equivalent navigational and location determination technologies. 
         [0014]      FIG. 1  is a diagram of a communication system capable of providing instant location service, according with an exemplary embodiment. The communication system  100  includes an instant location system  101  for detecting the presence and physical location of users (or subscribers) using, in an exemplary embodiment, wireless devices  103   a - 103   n . The location of a wireless device (e.g., device  103   a ) can be detected without the device  103   a  having to initiate a phone call. A user, via the wireless device  103   a , can view the user&#39;s personal location on a map. In addition, the instant location system  101  provides a service that can show the location of other subscribers on the same map and within a pre-defined proximity. Accordingly, the user is able to contact by, for instance, calling or chatting with one or more of these other users. 
         [0015]    In an exemplary embodiment, a location module  105  within the wireless device  103   a  can obtain location information using Global Positioning System (GPS) technology, and thus, behaves as a GPS receiver. Each of the wireless devices  103   a - 103   n  employs a location module  105  that communicates with a constellation of satellites  107 . These satellites  107  transmit very low power interference and jamming resistant signals received by the GPS receivers  105 . At any point on Earth, the GPS receiver  105  can receive signals from multiple satellites (e.g., 6 to 11). Specifically, the GPS receiver  105  may determine three-dimensional geolocation from signals obtained from at least four satellites. Measurements from satellite tracking and monitoring stations located around the world are incorporated into orbital models for each satellite to compute precise orbital or clock data. GPS signals are transmitted over two spread spectrum microwave carrier signals that are shared by GPS satellites  107 . The device  103   a  needs to identify the signals from at least four satellites  107 , decode the ephemeris and clock data, determine the pseudo range for each satellite  107 , and compute the position of the receiving antenna. 
         [0016]    With GPS technology, the wireless devices  103   a - 103   n  can determine their location with great accuracy and convenience. Also, the system  100  can employ Assisted GPS (A-GPS) to mitigate the lost of GPS signals from obstructions between the GPS receiver  105  and the satellites  107 . When operating in A-GPS mode, the system  100  can provide for better in building or obstructed view geolocation. Assistance data can be transmitted to the devices  103  from the wireless network  109 , in an exemplary embodiment, can include ephemeris data differential GPS correct data, timing data and/or other aiding data. Using the aiding (or assistance) data, the location module  105  performs geolocation calculations; for example, the devices  103   a - 103   n  can generate real-time speed and route adherence alerts. Additionally, transmission of geolocation data need not be frequent. Transmission of geolocation data is more compact because it is true location rather than pseudo range data. Also, the wireless devices  103   a - 103   n  can more intelligently request assistance data because the devices  103   a - 103   n  themselves can determine when the ephemeris data is no longer valid. 
         [0017]    Each of the wireless devices  103   a - 103   n  utilizes a display  111  to present a graphic of a map and directions, as to permit viewing of the current location of other subscribers within the map of a pre-defined size (e.g., a street block wide, a mile wide, etc.). The wireless devices  103   a - 103   n  also includes a processor  113  and a memory  115  configured to store and execute instructions for supporting the instant location service, as well as other communication functions. 
         [0018]    The instant location system  101  includes a mapping module  117  that receives location information from the wireless devices  103   a - 103   n , and determines whether other users are within the proximity of a particular subscriber. That is, the location service allows subscribers using the wireless devices  103   a - 103   n  (and specified within each others&#39; contact lists) to detect each other&#39;s presence and physical location, and to establish communication over the wireless network  109 , a data network  121  and/or a telephony network  119  (such as a Public Switched Telephone Network (PSTN)). 
         [0019]    Communication among the wireless devices  103 , for example, can be audio communication (such as a telephony session) or text messaging (e.g., Instant Messaging (IM) and Short Message Service (SMS)). Instant messaging is a form of real-time communication between two or more users based on typed text, wherein the text is conveyed via computers connected over the data network  119 , such as the Internet. As the name suggests, SMS service enables the transmission of short text messages among wireless devices  103  in a store and forward manner. These short text messages in general can be delivered at any point in time using out-of-band packet, low-bandwidth delivery mechanisms. 
         [0020]    The contact lists can be maintained within a user profile database  123 . The user profile can also include information about and identifiers of the users for dissemination to the wireless devices  103   a - 103   n . The user profile can be updated by a user over the data network  109  through a computing device  125 , which can be a personal computer (PC), laptop, palm computer, workstation, web appliance, etc. Further, the instant location system  101  includes, or utilizes, a presence service module  127  to capture presence information or availability of the users of the devices  103   a - 103   n . An exemplary model for presence determination is detailed in Internet Engineering Task Force (IETF) Request for Comment (RFC) 2778, which is incorporated herein by reference in its entirety. 
         [0021]    As mentioned, the instant location system  101  permits subscribers to detect each other&#39;s presence and physical location and initiate communication, as illustrated in  FIGS. 2-6 . 
         [0022]      FIG. 2  is a flowchart of a process for providing instant location service, according to an exemplary embodiment. In step  201 , the instant location system  101  tracks location of users (e.g., subscribers) using GPS technology. The proximity of these users are then determined, as in step  203 . That is, the system  101  detects the geograhical location of the subscribers and locates subscribers within a pre-defined proximity and communicates their current location to other subscribers of the pre-defined same group (as defined by the contact list). This process is more fully described below with respect to  FIG. 3 . Next, the instant location system  101 , via the mapping module  117 , examines the contact lists of the users, cross-referencing the contact lists with the proximity of the users within the respective contact lists (step  205 ). The instant location system  101  then notifies, as in step  207 , particular users about other users within the corresponding contact lists. For example, a particular user would be aware of the presence and physical location of users within the particular user&#39;s contact list. Subsequently, the particular user can opt to communicate with those users who are within the specified proximity of the particular user; a variety of communication methods—e.g., audio and/or text communication—can be utilized (step  209 ). 
         [0023]      FIG. 3  is a flowchart of a process for obtaining mapping information for presentation at a wireless device, according to an exemplary embodiment. Location of the wireless devices  103   a - 103   n  are obtained from the devices  103   a - 103   n  themselves, which establish communication with the instant location system  101  (step  301 ). Location information, such as GPS data, is acquired through the location module  105 , and transmitted to the mapping module  117 . It is noted that the location information can be the raw GPS data or data that have been messaged or otherwise derived from the raw data, per step  303 . In step  305 , the mapping module  117  determines whether the users with the contact list are within the specified proximity, and outputs mapping information for displaying these users onto a map. In step  307 , the wireless device  103   a , for example, receives the mapping information over the wireless network  109 , and presents the map of the users to the particular subscriber (step  309 ). 
         [0024]      FIG. 4  is a diagram of a wireless device capable of displaying location of subscribers, according to an exemplary embodiment. Under this scenario, a mobile device  401  includes a display  403  that is configured to present a graphical map of the location of the particular user  407  in relation to those users  409 - 413  who are on the contact list and determined to be within the pre-defined proximity. In one embodiment, the user of the mobile device  401  can select, via cursor buttons  415  or key pad  417 , one of the other users on the map  405  to obtain additional information. The navigation from one user to the next can be indicated by a highlight, shown a dashed oval around the icon  409 . Moreover, an optional capability can illustrate the direction of travel of the users through the use of arrows. In one embodiment, the user of the mobile device  401  is shown as traveling in the north direction. 
         [0025]    Upon selection of the icon  409 , the mobile device  401  can provide a pop-up menu  419  for information about the user associated with the icon  409 . In this example, the user information includes an identifier (e.g., user name or alias), distance to the user, etc. Such user information can be specified as part of the user profile  123 ; that is, the information that is shared to the user of the mobile device  401  can be controlled by the user whose information is “published” to other users. 
         [0026]    As seen in  FIG. 4 , the users  407 - 413  can be represented with a variety of symbolic icons, as to convey information about the users  407 - 413 . For instance, if the user (e.g., user  413 ) is a police officer, an appropriate icon can be used. In this manner, the presence of police and traffic officers as well as other public service workers can be readily determined; and such users can be contacted for immediate emergency assistance. 
         [0027]    In various exemplary embodiments, the instant location service can be used to assist users with special needs, especially those users with mobility limitations, e.g., those requiring a wheelchair or visually impaired. Such users can benefit from learning about the proximity of other users with similar disabilities; friends and acquaintances; or authority figures. Of course, for blind users, the proximity and location information can be conveyed aurally, rather then visually. The availability of this information and the access to these individuals (via a phone call or a text chat) can enhance the easiness and safety of their travel experience. In one embodiment, textual content from the devices  103   a - 103   n  can now be “read” aloud using a text-to-speech processor (not shown). 
         [0028]    In addition, the pop-menu  419  can provide communication options for contacting the selected user  409 . Under this scenario, the user can initiate a phone call or text messaging (e.g., IM or SMS). In an exemplary embodiment, a text box  421  indicates presence status information about the selected user  409 . 
         [0029]      FIG. 5  is a flowchart of a process for communicating with a subscriber who has entered a prescribed proximity, according to an exemplary embodiment. This process is explained under the exemplary instant location system  100  of  FIG. 1 . A first user (e.g., using wireless device  103   a ) registers user information with the instant location system  101 , per step  501 . The system  101  next determines, as in step  503 , whether the first user is on the contact list of a second user (e.g., utilizing wireless device  103 n). In step  505 , the first user enters the proximity or specified zone of the second user, the system  101  provides the wireless device  103   n  of the second user with the location of the first user, along with user information, such as an identifier or other attributes (e.g., disabled, etc.), per step  507 . 
         [0030]    In step  509 , the wireless device  103   n  prompts the second user with an option to commmunicate with the first user. If the second user elects to communicate with the first user, as determined in step  511 , an appropriate communication session is established (step  513 ). 
         [0031]    As described, a user&#39;s contact list can be controlled by the subscriber through the wireless device  103   a  itself or through a computing device that is separate from the communication device—e.g., computing device  125 . 
         [0032]      FIG. 6  is a diagram of a wireless device capable of configuring a contact list in support of the location service, according to an exemplary embodiment. In this example, the user can use wireless device  601  to configure and modify the contact list. The device  601  includes a display  603  for providing a graphical user interface (GUI)  605  for modification of the contact list, as well as cursor buttons  607  and a key pad  609 . 
         [0033]    The GUI  605  presents a contact list that provides, in an exemplary embodiment, an identifier (ID) field for providing the identifiers of members of the user&#39;s contact list and a proximity field for specifying the distance to the corresponding members. 
         [0034]    By way of example, the user can highlight (or otherwise select) the particular user to reveal user information within a text box  611 . In this case, the user has highlighted, using either the cursor keys  607  or key pad  609 . The GUI  605  also provides for editing of the contact list through an Edit List button  613 . Additionally, the GUI  65  includes an Edit Profile button  615 , which permits the user to alter the user profile (or user preferences with respect to the instant location service). 
         [0035]    The above administrative function can also be executed using the computing device  125 , as next explained. 
         [0036]      FIG. 7  is a flowchart of a process for communicating with the instant location system of  FIG. 1  to update user profile and contact list, according to an exemplary embodiment. A user logs on the instant location system  101  through the computing device  125  over the data network  119 , per step  701 . The system  101  can present the user with an option to enter/modify the contact list (step  703 ). Additionally, the user can enter/modify user profile information (step  705 ), as well as enter parameters associated with the instant location service—e.g., proximity coverage parameter (step  707 ). 
         [0037]    The instant location system  101 , as described in  FIGS. 1-7 , allow subscribers to provide specific information about themselves in order to learn the proximity of other subscribers. Also, the system  101  provides a capability to permit subscribers to communicate via a wireless device with other subscribers within a pre-defined contact list and proximity. 
         [0038]    The above described processes relating to providing instant location service using an integrated set-top may be implemented via software, hardware (e.g., general processor, Digital Signal Processing (DSP) chip, an Application Specific Integrated Circuit (ASIC), Field Programmable Gate Arrays (FPGAs), etc.), firmware or a combination thereof. Such exemplary hardware for performing the described functions is detailed below. 
         [0039]      FIG. 8  illustrates a computer system  800  upon which an exemplary embodiment can be implemented. For example, the processes described herein can be implemented using the computer system  800 . The computer system  800  includes a bus  801  or other communication mechanism for communicating information and a processor  803  coupled to the bus  801  for processing information. The computer system  800  also includes main memory  805 , such as a random access memory (RAM) or other dynamic storage device, coupled to the bus  801  for storing information and instructions to be executed by the processor  803 . Main memory  805  can also be used for storing temporary variables or other intermediate information during execution of instructions by the processor  803 . The computer system  800  may further include a read only memory (ROM)  807  or other static storage device coupled to the bus  801  for storing static information and instructions for the processor  803 . A storage device  809 , such as a magnetic disk or optical disk, is coupled to the bus  801  for persistently storing information and instructions. 
         [0040]    The computer system  800  may be coupled via the bus  801  to a display  811 , such as a cathode ray tube (CRT), liquid crystal display, active matrix display, or plasma display, for displaying information to a computer user. An input device  813 , such as a keyboard including alphanumeric and other keys, is coupled to the bus  801  for communicating information and command selections to the processor  803 . Another type of user input device is a cursor control  815 , such as a mouse, a trackball, or cursor direction keys, for communicating direction information and command selections to the processor  803  and for controlling cursor movement on the display  811 . 
         [0041]    According to an embodiment, the processes described herein are performed by the computer system  800 , in response to the processor  803  executing an arrangement of instructions contained in main memory  805 . Such instructions can be read into main memory  805  from another computer-readable medium, such as the storage device  809 . Execution of the arrangement of instructions contained in main memory  805  causes the processor  803  to perform the process steps described herein. One or more processors in a multi-processing arrangement may also be employed to execute the instructions contained in main memory  805 . In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the exemplary embodiment. Thus, exemplary embodiments are not limited to any specific combination of hardware circuitry and software. 
         [0042]    The computer system  800  also includes a communication interface  817  coupled to bus  801 . The communication interface  817  provides a two-way data communication coupling to a network link  819  connected to a local network  821 . For example, the communication interface  817  may be a digital subscriber line (DSL) card or modem, an integrated services digital network (ISDN) card, a cable modem, a telephone modem, or any other communication interface to provide a data communication connection to a corresponding type of communication line. As another example, communication interface  817  may be a local area network (LAN) card (e.g. for Ethernet™ or an Asynchronous Transfer Model (ATM) network) to provide a data communication connection to a compatible LAN. Wireless links can also be implemented. In any such implementation, communication interface  817  sends and receives electrical, electromagnetic, or optical signals that carry digital data streams representing various types of information. Further, the communication interface  817  can include peripheral interface devices, such as a Universal Serial Bus (USB) interface, a PCMCIA (Personal Computer Memory Card International Association) interface, etc. Although a single communication interface  817  is depicted in  FIG. 8 , multiple communication interfaces can also be employed. 
         [0043]    The network link  819  typically provides data communication through one or more networks to other data devices. For example, the network link  819  may provide a connection through local network  821  to a host computer  823 , which has connectivity to a network  825  (e.g. a wide area network (WAN) or the global packet data communication network now commonly referred to as the “Internet”) or to data equipment operated by a service provider. The local network  821  and the network  825  both use electrical, electromagnetic, or optical signals to convey information and instructions. The signals through the various networks and the signals on the network link  819  and through the communication interface  817 , which communicate digital data with the computer system  800 , are exemplary forms of carrier waves bearing the information and instructions. 
         [0044]    The computer system  800  can send messages and receive data, including program code, through the network(s), the network link  819 , and the communication interface  817 . In the Internet example, a server (not shown) might transmit requested code belonging to an application program for implementing an exemplary embodiment through the network  825 , the local network  821  and the communication interface  817 . The processor  803  may execute the transmitted code while being received and/or store the code in the storage device  809 , or other non-volatile storage for later execution. In this manner, the computer system  800  may obtain application code in the form of a carrier wave. 
         [0045]    The term “computer-readable medium” as used herein refers to any medium that participates in providing instructions to the processor  803  for execution. Such a medium may take many forms, including but not limited to non-volatile media, volatile media, and transmission media. Non-volatile media include, for example, optical or magnetic disks, such as the storage device  809 . Volatile media include dynamic memory, such as main memory  805 . Transmission media include coaxial cables, copper wire and fiber optics, including the wires that comprise the bus  801 . Transmission media can also take the form of acoustic, optical, or electromagnetic waves, such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, CDRW, DVD, any other optical medium, punch cards, paper tape, optical mark sheets, any other physical medium with patterns of holes or other optically recognizable indicia, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave, or any other medium from which a computer can read. 
         [0046]    Various forms of computer-readable media may be involved in providing instructions to a processor for execution. For example, the instructions for carrying out at least part of the various exemplary embodiments may initially be borne on a magnetic disk of a remote computer. In such a scenario, the remote computer loads the instructions into main memory and sends the instructions over a telephone line using a modem. A modem of a local computer system receives the data on the telephone line and uses an infrared transmitter to convert the data to an infrared signal and transmit the infrared signal to a portable computing device, such as a personal digital assistant (PDA) or a laptop. An infrared detector on the portable computing device receives the information and instructions borne by the infrared signal and places the data on a bus. The bus conveys the data to main memory, from which a processor retrieves and executes the instructions. The instructions received by main memory can optionally be stored on storage device either before or after execution by processor. 
         [0047]    In the preceding specification, various preferred embodiments have been described with reference to the accompanying drawings. It will, however, be evident that various modifications and changes may be made thereto, and additional embodiments may be implemented, without departing from the broader scope of the invention as set forth in the claims that flow. The specification and the drawings are accordingly to be regarded in an illustrative rather than restrictive sense.