BACKGROUND OF THEINVENTION1. Field of the InventionThe present invention relates to wireless communication systems and, moreparticularly, to a wireless communication system utilizing subscriber statusinformation to enable a user to determine the status of a mobile device associated withthe intended recipient of a call or message prior to any attempt to contact that person.
2. Description of the Related ArtThere are already several hundred million subscribers to wirelesscommunication services throughout the world. With this proliferation of wirelesscommunications, it is becoming more and more likely that parties will interact withone another in instances where the only means of communication for one or bothparties is through wireless communication systems. Wireless communication refers tothe situation in which at least one party is making use of a portable, wireless two-wayinteractive communication device and a wireless network. Portable, wirelesstwo-way interactive communication devices can, for example, include personal digitalassistants (PDAs), two-way pagers, palm-sized computers and mobile phones.
Wireless carriers operate wireless networks that support wirelesscommunications between parties. These carriers, such as providers of cellular phoneor pager services, typically have knowledge of the activation status (e.g. on or off) ofserviced devices. Wireless carriers also tend to know the location of the portablewireless two-way interactive communication devices of its subscribers, at least withinits range of coverage. This activation and location information may be used bywireless carriers for the purpose of centrally managing calls to and from itssubscribers (e.g., tracking position or automatic call redirection).
Often one or both of the parties want to communicate with each other inreal- time. Such real-time communications is offered by portable wireless two-way interactive devices, referred to as mobile devices herein, such as mobile or cellularphones and two-way pagers. However, even when one or both parties havemobile devices, real-time communications between them are available only whentheir mobile devices are in a mode of operation capable of receiving incomingcommunications. Hence, when one attempts to reach another party having amobile device, which may be powered off (also referred to as off-line), the calldoes not go through. Instead, the calling party may hear a message to the effect of"the subscriber you have called is either out of range or the phone off." In thissituation, the calling party has wasted time trying to contact an inactive mobiledevice. From the perspective of the carriers, their limited resources (e.g. channelcapacity) have been utilized in an inefficient and unprofitable (i.e. calls toinactive devices are generally not billed) manner to contact an inactive mobiledevice.
It would be desirable to have apparatuses and methods which facilitateobtaining and using information regarding mobile device status information formobile devices of interest.
SUMMARY OF THE INVENTIONThe present invention is directed to a communication system that makesavailable and utilizes status information so that users of the communicationsystem are informed about the status of monitored mobile devices of interestbefore attempting to interact with those mobile devices. Subscribers having thisservice will have available near real-time information as to which associates (i.e.individuals or groups of interest to the subscriber for purposes of communication)may be contacted immediately and which associates are unavailable. Additionalinformation relating to why an associate of interest is unavailable (e.g. "I'm in ameeting") or when they plan to be available may also be provided. Since manyusers will choose not to call mobile devices that are deactivated, wireless carriers may experience a reduction in unbilled resource utilization, since subscribers aregenerally not billed for calls to inactive devices. The interaction between themobile device of the user and the monitored mobile devices can be through aphone call or a text message, either of which can be rapidly achieved withminimal user effort by the inventive apparatus and method.
Furthermore, the invention can be implemented in numerous ways, includingas a method, an apparatus or device, a user interface, a computer readablemedium, and a system. Several embodiments of the invention are discussed below.
As a mobile device, one embodiment of the invention includes a displayscreen, and computer program code for causing the display screen to display (i) anidentifier for each of one or more portable, wireless two-way interactivecommunication device(s) and (ii) a status indicator pertaining to each of the oneor more mobile devices, and a processor operatively connected to the displayscreen, wherein the processor operates to execute the program code.
As a method for operating a mobile device having a display screen, oneembodiment of the invention includes the stages of receiving status informationfor one or more monitored mobile devices, and producing a screen display on thedisplay screen in accordance with the status information received. The screendisplay produced may include identifiers for the monitored mobile devices andstatus indicators pertaining to the monitored mobile devices, with the statusindicators indicating whether the monitored mobile devices were active orinactive during the last monitoring cycle. The screen display may include a shortmessage from a user associated with a particular monitored mobile device (e.g."I'm in a meeting").
As a user interface for a mobile device having a display screen and an userinterface, one embodiment of the invention includes: a list of users from anaddress book associated with a first mobile device, one or more of the users beingassociated with other mobile devices; and a status indication indicating anoperational status of a mobile device associated with one of the users on the list. The list of users and their status indications are displayed on the display screen ofthe first mobile device. Navigation through the list of users in an address bookand selection of individual users is achieved using the user interface of the firstmobile device.
As a computer readable medium including computer program code foroperating a mobile device having a display screen, one embodiment of theinvention includes: computer program code for receiving status information (e.g.identifiers, short messages and activation status for designated mobile devices);and computer program code for producing a screen display on the display screenin accordance with the status information. The screen display may include anidentifier, a short message and a status indicator for designated mobile devices,the status indicator indicating whether the designated devices are active orinactive. Optionally, the computer readable medium may include code forinteracting with a user to designate mobile devices for which status information isrequired.
As a computer readable medium including computer program code foroperating a mobile device having a display screen, another embodiment of theinvention includes: computer program code for receiving status information (e.g.an identifier, a short message and an activation status for designated mobiledevices); computer program code for storing said received status information;computer program code for comparing user entered identifiers (e.g. a dialledphone number) with the received interface information; and computer programcode for performing a desired action when an attempt is made to interact with adesignated mobile device having an inactive status indicator or a designatedmobile device experiences a change in its status.
The advantages of the present invention are numerous. Differentembodiments or implementations may yield one or more of the followingadvantages. One advantage of the invention is that users can be informed ofstatus information pertaining to designated mobile devices. Another advantage of the invention is that users are able to send, receive and reply to short messages toand from associates having mobile devices (e.g. instant messaging). Still anotherpotential advantage of the invention is that status alerts can be provided whendesignated mobile devices experience a change in status. Yet another advantageof the invention is a privacy control mechanism that allows the users of themonitored mobile devices to control the release of their own operational statusinformation since there may be occasions where the user does not want thisinformation released or desires to have control of the release of this information.
Other aspects and advantages of the invention will become apparent fromthe following detailed description taken in conjunction with the accompanyingdrawings, which illustrate, by way of example, the principles of the invention.
BRIEF DESCRIPTION OF THE DRAWINGSThe present invention will be readily understood by the following detaileddescription in conjunction with the accompanying drawings, wherein like referencenumerals designate like structural elements, and in which:
The present invention is directed to a communication system that makesuse of status information so that users of the communication system are informedabout the status of designated portable wireless two-way interactive devices (alsoreferred to as mobile devices herein) before attempting to establish contact withthose devices. The method of communication between the mobile devices can bethrough a phone call or a text-based message, either of which can be rapidlyachieved with minimal user effort (e.g. softkey activation). As such, a user of amobile device is able to have an indication that the mobile device/associate (ordevices/associates) of interest were active during a recent monitoring cycle priorto attempting to contact that device/associate (or devices/associates).
Mobile devices include, but are not limited to personal digital assistants(PDA) portable devices, cellular phones, palm-sized computing devices, andwireless capable remote controllers. It is not unusual for such devices to have lessthan 1% of the computing resources found in a personal computer. These mobiledevices typically have a small display screen and a limited user interfacemechanism (e.g., a phone keypad) for user interactions with server devices andwireless networks providing mobile subscriber services. These characteristics areuseful in achieving the desired size, weight, power and mobility features whichhave proven to be important for mass-market mobile devices.
Embodiments of the invention are discussed below with reference toFigures 1A-8. However, those skilled in the art will readily appreciate that thedetailed description given herein with respect to these figures is for explanatorypurposes as the invention extends beyond these limited embodiments.
Figure 1A is a block diagram of awireless communication system 100which may be utilized to implement the method of the present invention. Thewireless communication system 100 typically includes a plurality ofmobiledevices 102. Themobile devices 102 are supported by awireless carrier network104 that facilitates voice and data communications to and from themobile devices102. Thewireless carrier network 104 couples to awired network 108 through agateway server 106. Thewired network 108 is, for example, the Internet, a localarea network (LAN), or a wide area network (WAN). Thewireless carriernetwork 104 can be any of a variety of types of wireless networks, for example,Cellular Digital Packet Data (CDPD), Global System for Mobile Communications(GSM), Code Division Multiple Access (CDMA), Personal Handy Phone System(PHS) and Time Division Multiple Access (TDMA) networks.
Gateway server 106 can be referred to as a proxy server for themobiledevices 102 ofwireless carrier network 104. Since the communication protocolused inwireless carrier network 104 is often different from that used in thewirednetwork 108, one of the functions of thegateway server 106 is to translate from one communication protocol to another. One of ordinary skill in the art wouldunderstand that the functions ofgateway server 106 may be performed by anetwork server device which includes or is capable of including a connectionmechanism betweenwireless carrier network 104 andwired network 108.
Wireless communication system 100 includes a statusinformationmanagement server 110 and anassociate status server 112, which may be aseparate server device or its functions may be performed bygateway server 106.According to the present invention,mobile devices 102 can display and otherwiseprocess lists of monitored associates, which may indicate not only an identifier forthe users associated with particular mobile devices, but also status information forthose mobile devices and short messages from the users (e.g. "I'll be availableafter 2 PM").
Statusinformation management server 110 retrieves and stores statusinformation for a plurality of mobile devices serviced bywireless network 104.Wireless network 104 monitors device status information for serviced devices foruse in conjunction with network operation and maintenance.Associate statusserver 112 maintains a list or record of mobile devices/associates to be monitoredfor the subscribers (also referred to as users) ofmobile devices 102. Statusinformation for the monitored mobile devices/associates is managed and updatedas required. In accordance with the principles of the present invention, thisinformation may include monitored device activation status, changes in activationstatus and short messages from the users of the monitored devices.
A wireless carrier infrastructure is associated withwireless carrier network104. For example, the wireless carrier infrastructure generally includes a basestation and an operations and maintenance center. The base station controls radioor telecommunication links with the mobile devices serviced. The operations andmaintenance center typically includes a mobile switching center that performs theswitching of calls between the mobile devices and other fixed or mobile networkusers. Further, the operations and maintenance center manages mobile services, such as authentication and oversees the proper operation and setup of thewireless network. The wireless carrier infrastructure also maintains user accountsfor each of the mobile network users. Status information for the mobile devicemay be associated with a user account. This status information may include useridentification information, device activation status, and a short message from theuser or location information.
According to one embodiment, the communication protocol used by statusinformation management server 110 and thewired network 108 is the well knownHyperText Transfer Protocol (HTTP) or Secure HyperText Transfer Protocol(HTTPS), a secure version of HTTP, and runs on Transmission Control Protocol(TCP). In one embodiment, the communication protocol between thewirelesscommunication devices 102 and thegateway server 106 via thewireless carriernetwork 104 is Handheld Device Transport Protocol (HDTP) (formerly known asSecure Uplink Gateway Protocol (SUGP)) or Wireless Access Protocol (WAP).
The associate's list and short messages may be generated in a markuplanguage such as Handheld Device Markup Language (HDML) and WirelessMarkup Language (WML). HDML and WML are similar to HyperText MarkupLanguage (HTML) in that they are tag based document languages. HDML andWML use a set of commands or statements specified in a group of cards (referredto as a deck) that specify how information is to be displayed on a display screenof themobile devices 102 and how themobile devices 102 operate with respectto user interaction with the display screen. Normally, a number of cards aregrouped into the deck and the deck is exchanged between themobile devices 102andgateway server 106. Further, as would be understood by one havingordinary skill in the art, the invention may be practised by directly coupling thewireless carrier network 104 to thewired network 108 without using thegatewayserver 106. Alternatively, a server device contained within the framework of thewired network 108 could perform the functions of thegateway server 106.
Note that themobile devices 102 can also be referred to as wireless clientdevices or wireless communication devices. Themobile devices 102 can take avariety of forms, including personal digital assistants (PDAs), mobile telephones(e.g., cellular telephones), etc. Typically, as noted above, themobile devices 102include a screen display and have processing capabilities, which is less robustthan that associated with conventional personal computers.
Figure 1B is an illustration of amobile device 150, which may be used inconjunction with the wireless communication system described in Figure 1A toimplement the method of the present invention.Mobile device 150 may be, forexample, a mobile telephone suitable for use asmobile devices 102 illustrated inFigure 1A. Thewireless communication device 150 includes adisplay screen152, akeypad 154, softkeys (156A and 156B) and associated softkey identifiers158A and 158B that allows a user thereof to interact withmobile device 150.Additionally, themobile device 150 includes aspeaker 158 and amicrophone 160as may be found in conventional mobile telephones.
Keypad 154 includes, in one embodiment, a typical phone keypad andvarious control buttons, such as generic buttons and navigation (e.g., upward anddownward arrow) buttons. The typical phone keypad includes twelve buttons, ofwhich ten buttons are consecutively numbered 0 to 9, one button is for "*" sign,and another button is for "#" sign. Although not necessary for practising theinvention, thekeypad 154 provides convenient means for a user to interact withmobile device 150. It should be understood, by one having ordinary skill in theart, that having a phone keypad is not a requirement to practice the presentinvention. Some mobile devices have no physical keys at all, such as those palm-sizedcomputing devices that use soft keys or icons as an input mechanism.
In accordance with the principles of the present invention, a user of amobile device (e.g. mobile device 102) has access to status information relating toone or more monitored mobile devices. The particular mobile devices selectedfor monitoring may be associated with a user/network application (e.g. an address book), input by the user directly, or generated by a third party as a result of someaffiliation between the user/mobile device receiving the status information and theusers/mobile devices being monitored. Regardless of the means of identification,a list or grouping of mobile devices to be monitored for a particular user is storedon a server device (e.g. associates status server 112). Theassociates statusserver 112 periodically requests status information for monitored mobile device.These requests are forwarded to the statusinformation management server 110which retrieves the requested status information for the monitored mobile devicesfrom associated network resources (i.e. a Home Location Register (HLR) or aVisitor Location Register (VLR) associated with a monitored mobile device). Thisinformation is stored and passed to the requesting entity (e.g. users of mobiledevices 102) exercising control over the list/grouping of monitored mobile devicesdescribed above. One of ordinary skill in the art would understand that thefunctions of the statusinformation management server 110 and theassociatesstatus server 112 may be performed by a single server device. Additionally, thefunctions of both the statusinformation management server 110 and theassociates status server 112 may be performed bygateway server 106.
Figure 2A is a block diagram of agateway server device 200, which maybe used in conjunction with the wireless communication system described inFigure 1A to implement the method of the present invention.Gateway serverdevice 200 is, for example,gateway server 106 of Figure 1A.Gateway serverdevice 200 is coupled between thewired network 108 and thewireless carriernetwork 104 of Figure 1A and performs tasks associated with network access,protocol conversion and account management. To avoid obscuring the primaryaspects of the present invention, well-known methods, procedures, componentsand circuitry associated withgateway server device 200 are not described indetail.
Gateway server device 200 includes a Land Control Protocol (LCP)interface 202 that couples towired network 108, and a Wireless Control Protocol(WCP)interface 206 that couples to thewireless carrier network 104. Aserver module 210 is coupled between the LCP interface 202 and theWCP interface206.
Server module 210 performs traditional server processing as well asprotocol conversion processing from one communication protocol to anothercommunication protocol (i.e. between the protocol used by wireless networks andprotocols used by the wired networks). According to one embodiment, theprotocol conversion processing can be implemented as a separate module referredto as a mapper. In the case of protocol conversion between HDTP and HTTP, theconversion is a data mapping relationship. As would be understood by thoseskilled in the art,WCP interface 206 can be readily replaced by another interfacemodule when thewireless carrier network 104 uses a different communicationprotocol; the same is true of LCP interface 202 when thewired network 108 usesa different communication protocol.
Theserver module 210 also includes anaccount manager 212 and anaccount interface 214.Account manager 212 manages a plurality of useraccounts for the mobile devices serviced by theproxy server device 200. It isunderstood that the user accounts may be stored in another network servercoupled to theproxy server device 200. In other words, the user accounts can bekept in a database that is physically placed in another computing device coupled tothewired network 108.
Gateway server device 200 also includes aprocessor 218 and astoragecomponent 220.Processor 218 performs operations in accordance withinstructions fromserver module 210. It would be understood by those skilled inthe art thatgateway server device 200 is a piece of hardware equipment thatincludes one or more processors (e.g., processor 218), working memory (e.g.,storage 220), buses, interfaces and other components.Server module 210includes program code, which causesproxy server device 200 to performdesignated tasks. It would also be understood by those skilled in the art thatproxy server device 200, may perform the functions of the associates status server (e.g.112 of Figure 1A).
Figure 2B is a diagram of arepresentative data structure 222 for a useraccount, which may be used to implement the method of the present invention.As previously notedgateway server device 200, which may begateway server106 of Figure 1A, maintains user accounts for various users or subscribers.These user accounts are also known as subscriber accounts. Therepresentativedata structure 222 includes adevice ID field 224, asubscriber ID field 226, and auser information field 228.Device ID field 224 includes a device ID, andsubscriber ID field 226 includes a subscriber ID. For example, in Figure 2B, therepresentative device ID is "93845823", and the representative subscriber ID is"861234567-10900_pn.mobile.xyz.net". Theuser information 228 can includeaccount configuration information, user preferences, etc. These lists or groups ofmobile devices/associates to be monitored may be stored in association with theuser account file for the entity receiving the status information for the monitoredmobile devices.
Figure 2C is a block diagram of amobile device 250, which may be used inconjunction with the wireless communication system described in Figure 1A toimplement the method of the present invention.Mobile device 250 includes aWCP interface 252 that couples towireless network 104 via a radio-frequency(RF) transceiver (not shown) to receive incoming and outgoing signals. A deviceidentifier (ID)storage 254 supplies a device ID viaWCP interface 252.
The device ID identifies a specific code that is associated withmobiledevice 250. The device ID is used bygateway server device 200 to associate themobile device 250 with a user account stored in thegateway server device 200.The device ID can be a phone number of the device or a combination of an IPaddress and a port number. An example of a combination of an IP address and aport number is 204.163.165.132:01905 where 204.163.165.132 is the IPaddress and 01905 is the port number. The device ID is further associated with a subscriber ID (i.e. in the Equipment Identification Registry (EIR) and the HomeLocation Registry (HLR)) authorized by a wireless carrier network as part of theprocedures to activate a subscriber account for themobile device 250. Thesubscriber ID may take the form of, for example, 861234567-10900_pn.mobile.att.netby AT&T Wireless Service. The subscriber ID is aunique identification formobile device 250. Each of the mobile devices servicedby a proxy server device (e.g.gateway server device 106 of Figure 1) has aunique device ID that is associated with a respective user account.
Mobile device 250 also includes voice circuitry 266 (e.g., a speaker and amicrophone) and the associated hardware (e.g., an encoder/decoder 264, aprocessor 268 and keypad circuitry 262) which provide telephony functions in atelephone mode of operation which is separate and distinct from a data mode ofoperation used when interfacing with a proxy server device. In the telephonemode of operation, a user can causemobile device 250 to place a phone call toanother party having a phone, either wireless or land-based.
Mobile device 250 includes aclient module 256, which works inconjunction withprocessor 268 and the workingmemory 258 to perform theprocessing tasks performed bymobile device 250. These include: establishing acommunication session with a proxy server device via a wireless network,requesting and receiving data via the wireless network, displaying information onthe mobile device display screen through the use ofdisplay circuitry 260, andreceiving user input from a user via a keypad controlled bykeypad circuit 262.Additionally,client module 256 contains computer code to causeprocessor 268 toexecute instructions to control the operation of, among other things, a browser. Inone embodiment, the browser is a micro-browser, which typically requires lesscomputing power and memory than the HTML browsers used in personalcomputers. One such micro-browser is available from Phone.com located at 800Chesapeake Drive, Redwood City, CA 94063, the assignee of the presentinvention.
Figure 2D is a block diagram ofdatabase storage 280, which may beused in conjunction with the implementation of the method of the presentinvention.Database storage 280 includes astatus data store 282, an associatesmapping data store 284, and amessage data store 286.Status data store 282stores status information for monitored mobile devices on the user's associate list.Associates mappingdata store 284 stores the user's lists of associates and anyinformation required to retrieve status information for those associates (e.g. useridentifiers and access rights).Message data store 286 stores messages beingexchanged between subscribers or users of thewireless communication system100. More specifically,message data store 286 stored in thedatabase 280 maybe used to store "instant text messages" that can be exchanged between mobiledevices. Some of these messages may be stored by the user of a monitoredmobile device and scheduled for delivery when an inquiry is made as to the statusof that device. For example, if the user of a monitored mobile device intends tohave their device off for the weekend they can create and store a message to thateffect.
The
status data store 282 stores, updates and manages status informationfor monitored mobile devices on a user's list. This status information includes theactivation status of the monitored mobile device. The activation status may beactive (on-line) , inactive (off-line) or inactive with the time period of inactivitygiven. The activation status represents the last known activation status of themonitored device as registered during a preceding monitoring cycle. Active oron-line typically means that the mobile device is registered with a wirelessnetwork and can send and receive messages (e.g. phone calls or data messages).A representative SQL table of a relational database that can implement the
statusdata store 282 is as follows:
In this example, the associate identifier column represents an internalidentifier used by thestatus data store 282 to identify a subscriber. The statuscolumn is used to hold the status of the subscriber's mobile device. The namecolumn contains the subscriber's name. The phone column contains the phonenumber of the subscriber's mobile device. Hence, this SQL table not onlyprovides status information for associates but also related information such asphone number and name, which may be used by user interfaces to facilitatecommunications.
The associate
mapping data store 284 stores data identifying the associatesof the user. The associate
mapping data store 284 may also store informationrelating to the wireless carrier network providing service to the associate's mobiledevice and alert types to be provided. A representative SQL table of a relationaldatabase that can implement the associate
mapping data store 284 is as follows:
The subscriber column is the unique identifier representing the user(subscriber). The associate column is the unique identifier representing anassociate of the subscriber (i.e., an associate is on the subscriber's associate list).The unique identifier representing an associate of the subscriber may includeinformation relating to the carrier network providing service to the associate. Thestatus column is used to hold the status of the subscriber's mobile device asregistered during the most recent monitoring cycle. The message alert columndetermines whether the subscriber desires a message alert when the activation status of a monitored mobile device changes.
Note that alerts relating to activation status changes in monitored mobiledevices may be sent to parties other than the subscriber who initiated statusmonitoring. For example, consider the situation where a subscriber desired to setup a teleconference with a plurality of associates having mobile devices and one ofthe associates was off-line. When the activation status of the off-line associatechanges an alert could be sent to all parties concerned, notifying them that theteleconference could (or would) now proceed.
The
message data store 286 is responsible for storing the text messagesthat users send to each other. A representative SQL table of a relational databasethat can implement the
message data store 286 is as follows:
The message column contains the message, and the sent_date columncontains the date the message was sent. The need_alert column provides anindication that the subscriber desires an alert when the activation status of amonitored associate's mobile device changes.
Figure 3A is a flow diagram showing the stages of the client-sideassociateslist processing operation 300 according to one embodiment of thepresent invention. The associateslist processing operation 300 is, for example,performed on a mobile device, such as themobile devices 102 illustrated in Figure1A.
Associateslist processing operation 300 is initiated by user interaction viathe user interface of the mobile device. Once initiated, a request for associatesinformation is sent at 302 to the associates status server (e.g.associates statusserver 112 of Figure 1A). Then a determination is made 304 as to whether areply to the request has been received from the associates status server. When adetermination is made 304 that the reply has not yet been received, the associateslist processing operation 300 awaits the reception of the reply until the reply isreceived or a time-out is reached. Once the reply to the request (e.g. an associateslist including status information) has been received, the associates list, with statusinformation including mobile device activation status, is processed (e.g.displayed) by the requestingdevice 306.
Next, a determination is made 308 as to whether user input has beenreceived. Once user input has been received, a determination is made 309 as towhether the user has requested to discontinue the associateslist processingoperation 300. For example, a user may determine that the mobile device for anassociate of interest is off-line and may want to end processing. When thedetermination is made 309 that the associateslist processing operation 300 is toend, the associateslist processing operation 300 is terminated. Otherwise, if themobile device for the associate of interest is on-line, adecision 310 determineswhether a text message or a voice call (or some other communications methodsuch as causing the contacted device to vibrate or make some sound or performsome other task) is to be made or sent to the selected one of the associates of thedisplayed associates list. Here, both the sending and receiving communicationdevices are assumed to support both text messages (e.g., instant messages),voice calls and/or other communication means (e.g. audio and non-audio alerts).Often, a user desiring to communicate with an associate will prefer sending ashort text message to the associate -such as when either user is in a meeting andcannot carry on a voice call but can discretely send a short text message.
When a determination is made 310 that a voice call is to be attempted, acall to the selected associate may be initiated 312. On the other hand, when the determination is made 310 that a text message is to be sent, the mobile deviceenters a text entry mode of operation where a user of the mobile device may entera text message. Next, the entered text message is sent 316 to the selectedassociate. After the text message is sent the associateslist processing operation300 is complete and ends.
According to the principles of the present invention, a list or grouping ofmobile devices to be monitored for a requesting mobile device is maintained andmanaged on a remote server device (e.g.associates status server 112 of Figure1A). When a user of the monitoring mobile device requests, this list or groupingis forwarded via a wireless communication network (e.g.wireless carrier network104 of Figure 1A) in a format that may be processed by the requesting mobiledevice. That format may take any suitable form, for example, a markup languagesuch as HDML, WML, XML, HTML, or cHTML. Once received by therequesting mobile device, the list or grouping may be displayed and the user ofthe requesting mobile device may take some action based on the informationcontained in the list or grouping. That action may be an attempt to contact one ormore of the users of one of the monitored mobile devices based on contactinformation (e.g. phone numbers or URIs) embedded in or otherwise associatedwith the list or grouping.
Figure 3B is a flow diagram of associate status informationrequestprocessing operation 350 by a server device having access to that informationaccording to one embodiment of the present invention. The associates statusinformationrequest processing operation 350 is, for example, performed by theStatus InformationManagement Server System 110 as illustrated in Figure 1A.
Associates statusinformation processing operation 350 begins with adetermination 352 as to whether a request for status information for one or moreassociates on an associates list (i.e., the monitored mobile devices associated withusers of interest) has been received at a first server device having access to thatinformation. The request may be sent by a second server device (e.g.associate status server 112 of Figure 1A) acting on behalf of a mobile device (e.g.mobiledevices 102 of Figure 1A) or by the mobile device itself. It is important to notethat the functions of the status information management server (e.g. 110 of Figure1A) and the associate status server may be performed by the same server deviceif the monitoring and monitored mobile devices belong to the same wireless carriernetwork.
The associate of interest may be identified by a subscriber identifierretrieved from a database (e.g., associates mapping data store 284). Next, adetermination is made at 354 as to whether the requestor has access rights to therequested status information. The user of a monitored mobile device wouldtypically need to provide some indication that the requested information may bereleased. For example, when the account for the monitored mobile device is setup, the user could specify that this information may be universally released whenrequested or a request for a release could be sent to the user. Access rights aredescribed in further detail below.
If the user has access rights to the requested status information, then theinformation is retrieved at 356. Otherwise the process is terminated. Theretrieved status information and related information is forwarded to the requestingentity 358 (i.e. associate status server 112) and ultimately to the monitoringmobile device in a suitable format. For example, with a mobile device using anetwork browser supporting HDML, then one suitable display format would be anHDML deck in which a series of screen displays are provided within the deck. Thesuitable display format could also be a text file or a markup language such asWML, HTML, XML, compact HTML or any suitable file format. Informationrelating to the status of monitored mobile devices may also be presented to theuser using symbols (e.g. icons), sounds and other notification methods.
Figure 3C is a flow diagram which provides additional details relating toaccess rights which may be associated with the status information describedabove. When a request for status information for a designated mobile device (i.e. Mobile DeviceA) is received at 362, where that request is associated with asubscriber's associates list (i.e. SubscriberB's List), then a determination is madeat 364 as to whether the subject subscriber (i.e. SubscriberB) has receivedpermission from the user of the subject mobile device (i.e. Mobile DeviceA) toreceive the requested status information. If the subject subscriber has permissionto receive the requested status information (access rights), then the requestedstatus information for the subject mobile device (i.e. Mobile DeviceA) isretrieved at 366 and the subject subscriber's list (i.e. SubscriberB's List) isupdated.
According to the principles of the present invention, a list of mobiledevices allowing access to their status information may be generated andassociated with a monitoring mobile device. The status information for themonitored mobile devices, which may include device activation status, devicestatus change or a short message from the user of one of the monitored mobiledevices, is retrieved from the wireless network entity which tracks suchinformation. This information may be stored on an intermediate server device(e.g.associates status server 112 of Figure 1A) where it is managed and updatedas required. When the monitoring mobile device requests this information, a filein a suitable format (e.g. a markup language) is forwarded. Once received, themonitoring mobile device processes this file. When the user of the monitoringmobile device examines the associates list or attempts to contact one of themonitored associates, status information relating to the monitored mobile devicesis presented on the display screen (or via some other aspect of the user interface)of the monitoring mobile device. This allows the user to make an informeddecision as to whether or when (or how) to contact the user of one of themonitored mobile devices.
Figures 4A and 4B are flow diagrams which provide additional details ofthe client-side associateslist processing operation 400 described in conjunctionwith Figure 3A above. The associateslist processing operation 400 is, for example, performed by a client application that is executed by a mobile device,such as themobile devices 102 illustrated in Figure 1A.
Associateslist processing operation 400 is initiated when a user of amobile device requests the display of a current associates list. Once initiated, arequest for an associate list is sent 402 to the server device having access to thestatus information (e.g.,associate status manager 112 of Figure 1A). Then, adetermination is made 404 as to whether a reply has been received to the request.If a reply has not yet been received, the associateslist processing operation 400awaits the reception of the reply from the server device processing the request ora expiration of a predefined time period. Once a determination is made 404 thatthe reply has been received, an associates list and associated status informationare displayed 406. The associates list can be provided as text or may be providedin a format such as a deck of HDML cards. Such HDML cards could include apriority designator, a message body, or a Universal Resource Locator (URL) thatpoints to another deck of cards which may provide information needed forsubsequent actions.
At this point, as explained in detail below, the associateslist processingoperation 400 waits for a user of the mobile device to interact with the mobiledevice to make a selection, typically a selection with respect to designation of oneof the associates on the associates list being displayed. As discussed below, inthis embodiment, associateslist processing operation 400 controls designation ofan associate, creating and sending text messages, initiating voice calls, or otherprocessing tasks.
Once the associates list and any associated status information aredisplayed 406, a determination is made 408 as to whether a user input has beenreceived. If the determination is made 408 that a user input has not yet beenreceived, associateslist processing operation 400 awaits the reception of a userinput or a timeout. Once the determination has been made 408 that a user inputhas been received, a determination is made 410 as to whether the user input is an associate selection. When the determination is made 410 that the user hasselected a particular associate, a status indicator for the selected associate isdisplayed 412 (if not already displayed) and any associated messages are alsodisplayed (i.e. "In a Meeting Till 5"). Status indicators may be displayed/updatedfor all monitored associates when the associates list is displayed/updated or statusinformation may be provided only when a particular associate is selected.
When a determination is made 410 that a user input is not an associateselection, then another determination is made 414 as to whether the user input isa voice call request. When the determination is made 414 that the user input is avoice call request, a call confirmation is displayed 416. Thedisplay 416 of thecall confirmation is optional but can be useful to inform the user of the phonenumber or address to be called. The call is placed at 420 to the selected number.Following the placement of the call, the associateslist processing operation 400 iscomplete and ends.
When the determination is made 414 that the user input is not a voice callrequest, another determination is made 422 as to whether the user input is a textmessage request. When the determination is made 422 that the user input is atext message request, a text entry area is displayed 424. The text entry areaallows the user to enter the text for the text message to be sent. Anotherdetermination is then made 426 as to whether a user has finished providing thetext for the text message and has requested to send the text message. Once thedetermination is made 426 that the text message has been entered in the textdisplay area and a request to send the text message has been received, then thetext message is sent 428 to the selected associate. After the text message hasbeen sent 428, the associateslist processing operation 400 is complete and ends.
Note that since the call or text message was requested through theassociates list, the user of the mobile device performing the associateslistprocessing operation 400 is able to determine whether the mobile device of theassociate of interest is able or unable to receive a message (a text message or a voice call) before attempting to deliver the message. Note also that the user ofthe mobile device performing the associateslist processing operation 400 need notenter the phone number or address of the associate designated for receipt of amessage because that information may be extracted from the associates list bymeans well known in the art.
When the determination is made 422 that the user input is not a textmessage request, another determination is made 430 as to whether the user inputis for another type of request. When the determination is made 430 that the userinput is another type of request, other processing may be performed 432 asrequired. Such other processing can vary widely with implementation, but mayinclude forwarding a message (voice or text) to an alternate device associatedwith the monitored mobile device or causing the mobile device of interest toperform some task (e.g. an audio or non-audio alert). Following this otherprocessing, the associateslist processing operation 400 is complete and ends.
Alternatively, when the determination is made 430 that the user input isnot another type of request, another determination is made 434 as to whether theuser desires to end the associateslist processing operation 400. As an example,once the associateslist processing operation 400 is terminated (or otherwiseends), the client application on the wireless communication device can transitionto another mode or application. When the determination is made 434 that atermination request has been received, the associateslist processing operation400 is complete and ends. On the other hand, when thedecision 434 determinesthat a termination request has not been received, then the associateslistprocessing operation 400 returns to 408 as is shown in Figures 4A and 4B.
As an example of a representative graphical user interface for theassociateslist processing operation 400, Figure 4C illustrates screen displaysassociated with presenting an associates list and sending a text message.Initially, ascreen display 450 having anassociates list 451 is displayed. Here,presumably, the user of the mobile device havingscreen display 450 displayed on its display screen lists "Bill Jobs", "Steve Gates" and "John Doe" as associateswithin theassociates list 451.Screen display 450 also includes aselectionindicator 452 indicating the particular one of the entries being selected. In thisexample, the first entry ("Bill Jobs") is selected.Screen display 450 also displaysstatus indicators 454, 456 and 457. Thestatus indicators 454, 456 and 457 aredisplayed based on the status information for the selected associate's mobiledevice. Thestatus indicators 454 and 456 displayed adjacent to "Bill Jobs" and"Steve Gates" respectively indicate that these associates have their mobile deviceactive (or on-line) as of the last monitoring cycle. Thestatus indicator 457displayed adjacent "John Doe" indicates that the associate's mobile device isinactive (or off-line) as of the last monitoring cycle. Thescreen display 450 alsoprovides a "Contact"softkey 458 which enables the user to send either a text orvoice message to the selected associate, and a "Menu"softkey 460 whichenables the user to refresh the display screen with a Menu screen display offeringthe user additional choices.
Upon user selection of the "Contact"softkey 458 with the selectedassociate being "Bill Jobs", ascreen display 462 is presented on the displayscreen. Thescreen display 462 indicates the associate and provides the user witha choice of message type, namely, place a voice call or send a text message. Thescreen display 462 also includes a selection indicator 464 that the user can controlto pick the message type to be used. The screen display 462a shows the voice callmessage type being selected, and thus has a "Call"softkey 466. When the useractivates the "Call"softkey 466, the voice call is invoked. Alternatively, whenthe select indicator 464 indicates that a text message is desired, screen display462b is presented on the display screen. In this case, thesoftkey 466 is a "Send"softkey 468. Upon activation of the "Send"softkey 468, ascreen display 470 ispresented on the display screen and allows the user to enter text for a textmessage.
In one embodiment, the status information management server systemreturns a deck of cards (e.g., HDML or WML cards) to the mobile device that implement the associates list with associated status information. The deck ofcards, for example, can be used to implement the display screens 450, 462a, 462band 470 shown in Figure 4C.
Figure 4D illustrates screen illustrates an interactive associates listprocessing method according to an embodiment of the invention. In this alternateembodiment a user attempting to contact "John Doe" by dialling hisphone number480 when his mobile device is listed as inactive might see a screen display likethat presented inscreen display 484. In this example, the associates mobiledevice activation status information is stored in the background and an attempt todial a number for a particular mobile device having an off-line status indicationcauses a text message to be generated which indicates that "John Doe's" phone isinactive but gives the user the option of trying the call anyway or requestingnotification when "John Doe's "phone becomes active 490.
Figure 5A is a flow diagram of the steps involved innotificationprocessing operation 500 according to one embodiment of the invention.Notification processing operation 500 is, for example, performed by a networkbrowser or client-application executing on a mobile device.Notification processingoperation 500 begins with adetermination 502 as to whether an alert isrequested. In effect, when an alert is requested,notification processing operation500 is initialized. In particular, when a determination is made 502 that an alert isrequested, a list of alert types is displayed 504, for example, on the display screenof the mobile device. Then, one of the alert types is selected 506 by a user of themobile device. Next, an alert of the selected type issetup 508 for a selectedassociate. Typically, the alert is setup by notifying the status informationmanagement system (110 of Figure 1A) that an alert should be sent to themobile device of the user (of the monitoring mobile device) when a designatedmobile device displays a status change. Followingalert setup 508, the establish-notificationprocessing operation 500 is complete and ends.
Figure 5B is a block diagram of apresence detection system 550according to one embodiment of the invention. Thepresence detection system 550 includes a statusinformation management server 552, which couples to agateway server device 554, a Short Message Service Center (SMSC) 556, and amobile switching center 558.Presence detection server 552 is a network serverthat collects and consolidates availability information for monitored mobiledevices from various sources. Statusinformation management server 552 canintegrate with a variety of network elements in order to gather a near real timeportrait of the status information for a plurality of monitored mobile devices. Theprecise integration technique will depend on the particular wireless network themobile device is utilizing. For example, in a North American CDMA (IS-95)wireless network, the statusinformation management server 552 can integratewith an IS-41 network to gather IS-41 events, such as mobile activation. In aGSM network, the statusinformation management server 552 could gather MAPevents. Similarly, in other types of networks, the status information managementserver, or a functional equivalent, will gather status information relating todesignated monitored mobile devices.
The statusinformation management server 552 will also be capable ofgathering events and information from other network elements, including thegateway server device 554 and theSMSC 556. In one embodiment, the statusinformation management server 552 receives a variety of platform-specificevents, and applies techniques specific to those events in order to determinesubscriber availability. For example,gateway server device 554 knows when thesubscriber's mobile device has registered for a browsing session, and can reportthis as an event. As another example, theSMSC 556 knows when messages arepending for the user (i.e., indicating user unavailability). As still anotherexample, themobile switching center 558 will know when the mobile deviceregisters with the network, when it misses a periodic re-registration, etc. Theseevents can be analysed to obtain a reliable indication of the overall status of amonitored mobile device. For example, if theSMSC 556 reports that messagesare pending, then the mobile device is marked as not available. Later, theMSC 558 may report that the mobile device has registered on the network, indicatingthat the mobile device is once again available.
In one embodiment, status information stored in the
status data store 282and the associate
mapping data store 284 is used to trigger status notifications.The status
information management server 552 is responsible for updating thestatus field in the
status data store 282. A representative algorithm for thesepurposes is as follows:
Figure 6A is a flow diagram of applicationnotification processingoperation 600 according to one embodiment of the invention. Applicationnotification processing operation 600 is initialized when a mobile device receivesan alert notification. The alert notification pertains to an alert previously setup inaccordance, for example, with the establishnotification processing operation 500illustrated in Figure 5A.
The applicationnotification processing operation 600 begins with adetermination 602 as to whether a status alert has been received. Once a statusalert has been received, the application notifyprocessing operation 600 is effectively initialized. Once initialized, the received status alert is placed 604 inan alert inbox. The alert typically resides in the memory of the mobile device thatreceived the status alert. In other words, the incoming status alert is associatedwith the particular mobile device that previously setup the alert request. Next, adetermination is made 606 as to whether the received status alert is a high priorityalert. When the determination is made 606 that the received status alert is a highpriority alert, a notification message informing of the status change that invokedthe status alert is displayed 608. When the received status alert is not a highpriority alert, a decision is made 606 which causes the displaying 608 of thenotification message to be bypassed or delayed.
In general, the priority levels for the alerts can include high priority,medium priority, low priority and no priority. Different actions can be setup asresponses to each type of priority. For example, with high priority, a message canimmediately pop-up on the display screen and a beep can be caused to occur.With a minimum priority, no message pop up occurs, but the mobile device canbe caused to emit a beep. With low priority, a light or symbol can be caused toflash. With no priority, no notification is performed.
Following thedisplay 608 of the notification message or following thedecision 606 when the displaying 608 is bypassed, a determination is made 610as to whether a status alert message is to be viewed. When the determination ismade 610 that a request to view the status alert message has not been received,another determination is made 612 as to whether a quit has been requested.When a termination request is received, the application notifyprocessing operation600 ends. Alternatively, when a termination request has not been received, theapplication notifyprocessing operation 600 repeats as illustrated in Figure 6A.On the other hand, when thedecision 610 determines there has been a request toview the status alert message, the status alert message is displayed 614.Thereafter, the application notifyprocessing 600 can prepare and send a replymessage to the sender. The processing used to prepare and send a replaymessage can be similar to the blocks 308-318 of Figure 3A.
As an example of a representative graphical user interface for theapplication notifyprocessing operation 600, Figures 6B and 6C illustraterepresentative screen displays that can appear on the display screen of the mobiledevice and which are related to receiving status alerts. Figure 6B illustrates arepresentative high priority notificationmessage screen display 620. Here, theuser of the mobile device having thescreen display 620 displayed on its displayscreen has "Bill Jobs" as an associate and requested a high priority alert when "BillJobs" comes on-line. The high priority notification message pops up on thedisplay screen to immediately notify the user of the mobile device. In thisexample, the high priority notificationmessage screen display 620 includes amessage statement 622 ("Bill Jobs is on-line"), atime stamp 624 indicating when"Bill Jobs" came on-line, and aphone number 626 for "Bill Jobs". Thescreendisplay 620 also provides an "OK"softkey 628 and a "Call"softkey 630 whichenables the user to send either a text or voice message to the associate that is thesubject of the alert.
Figure 6C illustrates a representative alertinbox screen display 632having a briefalert message 634. The briefalert message 634 indicates that "BillJobs" is on-line. The alertinbox screen display 632 is displayed on the displayscreen when the inbox is selected. Thescreen display 620 also provides an "OK"softkey 628, which enables the user to receive more details (such as the screendisplay 620) pertaining to the alert or to send either a text or voice message to theselected associate.
Figure 6D is a flow diagram of message read andreply processingoperation 650 according to one embodiment of the invention. Message read andreply processing operation 650 is performed by a mobile device upon receiving anincoming text message. Message read andreply processing operation 650 beginswith adecision 652 as to whether a text message has been received. In effect,decision 652 causes message read andreply processing 650 to be invoked once atext message has been received. After receiving the text message, the textmessage is displayed 654. As an example, many mobile devices have an inbox for receiving incoming text messages. Hence, the text message can be stored inthe inbox for subsequent retrieval by a user of the mobile device. Once the textmessage is retrieved from the inbox, it is displayed on the display screen of themobile device.
After the text message has been displayed, message read andreplyprocessing operation 650 determines atdecision 656 whether a user input hasbeen received. If no user input has been received,decision 656 causes messageread andreply processing 650 to await user input. Once user input has beenreceived, a determination is made 658 as to whether the user input is a voice callrequest. When a determination is made 658 that the user input is a voice callrequest, a call is placed 660 to the sender. Here, the recipient of the textmessage is able to efficiently place a call to the sender of the text message toprovide a response to the message during the voice call. After the call has beenplaced to the sender, message read andreply processing operation 650 iscomplete and ends.
Alternatively, when the determination is made 658 that the user input isnot a voice call request, another determination is made 662 as to whether the userinput is a text message request. When the determination is made 662 that theuser input is a text message request, a reply message is prepared and sent 664.After the reply message has been sent, the message read andreply processingoperation 650 is complete and ends.
When the user input is neither a voice call request, or a text messagerequest a determination is made 666 as to whether the user input is a terminationrequest. When the user input is a termination request, message read andreplyprocessing operation 650 is complete and ends. Alternatively, when the userinput is not a termination request, the message read andreply processingoperation 650 repeats thedecision 656 and subsequent processing stages.
FIG. 6E illustrates a representative textmessage screen display 670 that isdisplayed on the display screen of the mobile device. Textmessage screen display 670 includes asender designation 672, amessage body 674 and a telephonenumber indicator 676 for the sender. Here, themessage body 674 contains aquestion for the recipient -- "Want to have lunch?". The user of the mobile devicethat has received the incoming text message can then either directly call thesender using a "Call"softkey 678, or prepare and send a reply text message usinga "Reply"softkey 680. When the user of the mobile device selects the "Reply"softkey 680, ascreen display 682 is presented on the display screen of the mobiledevice. Thescreen display 682 is a reply text entry screen that enables the user ofthe mobile device to enter a reply text message.Screen display 682 also includesa "Send"softkey 684, which enables the user to send the reply message to thesender of the original text message.
Figure 7A is a flow diagram of privacysettings processing operation 700according to one embodiment of the invention. Privacy settings processingoperation700 begins with adetermination 702 as to whether a privacy adjustmentis requested. When the determination is made 702 that a privacy adjustment isrequested, privacysetting processing operation 700 is initialized; otherwise, theprivacysettings processing operation 700 is bypassed. For example, the user of amobile device could use the this operation to limit or prevent status monitoring oftheir mobile device.
Once privacysetting processing operation 700 is initialized, a list ofprivacy settings are displayed 704. For example, the list of privacy settings isdisplayed on a display screen of the mobile device. Next, one of the privacysettings is selected 706. Here, a user of the mobile device views the list ofprivacy settings being displayed 704 and selects one of the privacy settings to beutilized with respect to the mobile device. Then, a privacy indicator for thesubscriber is set 708 based on the selected privacy setting. Here, the privacyindicator for the user (subscriber) is stored in a database (e.g., associatemappingdata store 284 of database storage 280) for subsequent retrieval. For example,the database storage can bedatabase storage 112 illustrated in Figure 1A ordatabase 280 illustrated in Figure 2D. After the privacy indicator for the subscriber is set 708, the privacysettings processing operation 700 is completeand ends.
As an example of a representative graphical user interface for privacysettings processing operation 700, Figure 7B illustrates representative screendisplays presenting a associates list and setting of alert priorities. Initially, ascreen display 750 having anassociates list 751 is displayed. Here, presumably,the user of the mobile device havingscreen display 750 displayed on its displayscreen has "Bill Jobs", "Steve Gates" and "John Doe" as associates. These threeassociates are contained withinassociates list 751.Screen display 750 alsoincludes aselection indicator 752 indicating the particular one of the entries beingselected. In this example, the first entry ("Bill Jobs") is selected. Thescreendisplay 750 also displaysactivation status indicators 755, 756 and 757. Theactivation status indicators for each of the entries of associates list 751 aregenerated based on the status information. Thestatus indicator 756 displayedadjacent "Steve Gates" indicates that associate "Steve Gates" has his mobiledevice active (or on-line) as of the last monitoring cycle. The status indicators(755 and 757) displayed adjacent to associates "Bill Jobs" and "John Doe"respectively, provides an indication that these associates have their devicesinactive (or off-line) as of the most recent monitoring cycle.Screen display 750also provides a "Talk"softkey 756 which enables a user to send either a text orvoice message to the selected associate, and a "Menu"softkey 758 which enablethe user to refresh the display screen with a Menu screen display offering the useradditional choices. Additionally,indicator 754 provides an indication to the userthat a change of status alert has been set for associate "Steve Gates".
Upon user selection of the "Menu"softkey 758 where the selectedassociate is "Bill Jobs", ascreen display 760 is presented on the display screen.Thescreen display 760 indicates a list of menu items available to the user,namely, Alerts, Privacy, and Add Associate operations.Screen display 760 alsoincludes aselect indicator 762 indicating the particular one of the entries(operations) being selected. In this example, the first entry ("Alerts") is selected.Screen display 760 also provides an "OK"softkey 764 to invoke the selectedentry (operation).
Upon user selection of the "OK"softkey 764 with the "Alerts" beingselected, ascreen display 766 is presented on the display screen.Screen display766 indicates a list of alert types available to the user, namely, high, medium, lowand none.Screen display 766 also includes aselect indicator 768 indicating theparticular one of the alert types being selected. In this example, the first alert type("High") is selected. Thescreen display 766 also provides an "OK"softkey 764to invoke the selected alert type.
Additionally, the user of a monitored mobile device can choose to havetheir status information augmented with user supplied information. For example,the user can input a text string such as "I am in a meeting" or "I am busy" or "Iam available" or an iconic symbol with a well-known or predefined meaning. Thisinformation is combined with the network status information (e.g. active orinactive) to provide a near real-time indication of a monitored user's status andavailability for exchanging messages.
The associates list may be associated with or used in conjunction withapplications resident within the mobile device. Address book applications,calendar applications and email applications are examples of such applications.For example, the associates list could be generated from a users address book orlocal contact list. Changes to the address book would be reflected in theassociates list and the user would not be required to make duplicate entries. Oneof ordinary skill in the art would understand that the process is also applicable tonetwork applications (e.g. an address book resident on a network server butmanaged from the mobile device).
Figure 8 is a flow diagram of an addressbook processing operation 800according to one embodiment of the invention. Addressbook processingoperation 800 is, for example, performed by a client-side application for thewireless communication device. The addressbook processing operation 800 need not be performed by a network browser operable on the mobile device, but can bea stand alone application or embedded within another functional application, suchas an address book application.
The addressbook processing operation 800 initially activates anaddressbook 802. Here, the address book is displayed on a display screen of the mobiledevice. The address book, for example, includes names and telephone numbersfor people or businesses. The address book (or phone book) can also includeaddresses for the people or the businesses. The people or businesses within theaddress book may be referred to as contacts. The address book is provided by anaddress book application that executes on the mobile device.
Next, status information for the contacts in the address book isobtained 804. As an example, the status information can be obtained from aserver and database such as theserver 110 andassociate status server 112illustrated in Figure 1A. Next, contacts in the address book are displayed 806with the associated status information. By displaying the status informationassociated with the contacts, the user of the mobile device using the address bookcan determine whether communication devices (and perhaps what communicationdevices if any), are in use (active) by their contacts listed in the address book.
Next the user is queried 808 as to whether the user desires to initiatecommunications with one of the contacts in the address book. When adetermination is made 808 that the user does desire to initiate communicationswith one of the contacts in the address book, another determination is made 810as to whether the message to be sent is a text message or a voice call. When thedetermination is made 810 that the message to be sent is a voice call, a call to theselected contact is placed 812. On the other hand, when the determination ismade 810 that the message to be sent is a text message, the text message isprovided 814. For example, the text message can be provided by data entry froma user of the mobile device. Next, the text message is sent 816 to the selectedcontact. After the text message has been sent 816 or after the call to the selected contact is placed 812, addressbook processing operation 800 is complete and theroutine ends.
Alternatively, when a determination is made 808 that a message (text orvoice) is not to be sent (i.e., a communications is not to be initiated), anotherdetermination is made 818 as to whether a termination request has been received.When a determination is made 818 that a termination request has been received,addressbook processing operation 800 is complete and ends. On the other hand,when the a determination is made 818 that a termination request has not beenreceived, then addressbook processing operation 800 returns to repeat thedecision 808 and subsequent blocks.
In accordance with the principles of the present invention, statusinformation relating to one or more monitored devices is presented to the user of amonitoring mobile device. In one embodiment, the status information includes astatus indicator (e.g. a symbol or icon) which provides an indication of theoperational status (e.g. on or off) of a monitored device. Generally, a remotemobile device is active if it is able to receive messages (e.g., voice calls or textmessages). In the case of a cellular phone, active means that the cellular phone isturned on and within range of a supporting wireless network carrier. On the otherhand, inactive may mean that the cellular phone is either turned off or not incontact with the wireless network providing service. Note that due to variouspossible network and system delays, the status information obtained may notactually reflect the current status of monitored devices. Thus, the statusinformation reflects the status of the monitored mobile device as was indicatedduring the most recent monitoring cycle for which information could be obtained.
Note that while Figures 4C and 7B use a particular symbol for the statusindicator, any suitable symbol or other visual indication may be used. Otherindicators, symbols, alphanumeric characters, icons, or other visually distinctobjects may be used to indicate the status of remote devices. The statusinformation can also be more specific in terms of the information conveyed by using one or more status indicators. Namely, status indicators could indicate thatthe associated mobile device is active, was recently active, not active or has anunknown activation status. The status indicators could also indicate whether themobile device is in use or out of range. Also, in the case where the monitoredstatus information is unknown, such an indication could be displayed.Additionally, the status identifier or an additional identifier or symbol can beprovided to indicate whether the telephone number associated with the remotedevice corresponding to a contact is for a land-based phone or a wireless phone.Still further, the status indicators could vary as a function of the type ofcommunications device.
The invention can take the form of a computer readable code on acomputer readable medium (i.e. a substrate). The computer readable medium is adata storage device that can store data, which can thereafter, be read by acomputer system. Examples of a computer readable medium include read-onlymemory, random-access memory, CD-ROMs, magnetic tape, optical data storagedevices and carrier waves. The computer readable medium can be distributedover a network coupled computer system so that the computer readable code isstored and executed in a distributed fashion.
The advantages of the invention are numerous. Different embodiments orimplementations may yield one or more of the following advantages. Oneadvantage of the invention is that users can be visually informed of statusinformation pertaining to other communication devices, even wirelesscommunication devices. Another advantage of the invention is that user are ableto send, receive and reply to test messages with associates on wirelesscommunication devices with great ease. Still another potential advantage of theinvention is that status alerts can be provided when friends or associates come on-linewith their wireless communication devices. Yet another advantage of theinvention is a privacy control mechanism that allows users to control thedissemination of their status information. Yet another advantage of the invention is that wired communications devices, even desktop computers, can utilize thefeatures of the invention.
The many features and advantages of the present invention are apparentfrom the written description, and thus, it is intended by the appended claims tocover all such features and advantages of the invention. Further, since numerousmodifications and changes will readily occur to those skilled in the art, it is notdesired to limit the invention to the exact construction and operation as illustratedand described. Hence, all suitable modifications and equivalents may beconsidered to fall within the scope of the invention.