U.S. patent number 7,117,445 [Application Number 10/611,027] was granted by the patent office on 2006-10-03 for multi-mode communication apparatus and interface for contacting a user.
This patent grant is currently assigned to Danger, Inc.. Invention is credited to Kelly D. Berger.
United States Patent |
7,117,445 |
Berger |
October 3, 2006 |
Multi-mode communication apparatus and interface for contacting a
user
Abstract
A system and method for providing multi-mode communication
options on a data processing device. A method according to one
embodiment of the invention includes: receiving an incoming
electronic message having an identifiable sender address; querying
data storage to determine if the sender address is a known sender
address; if the sender address is a known sender address, then
automatically retrieving alternate contact information associated
with the sender address; and automatically generating an interface
containing the alternate contact information, the interface
accessible by the user of the data processing device.
Inventors: |
Berger; Kelly D. (Milpitas,
CA) |
Assignee: |
Danger, Inc. (Palo Alto,
CA)
|
Family
ID: |
33541235 |
Appl.
No.: |
10/611,027 |
Filed: |
June 30, 2003 |
Prior Publication Data
|
|
|
|
Document
Identifier |
Publication Date |
|
US 20040268265 A1 |
Dec 30, 2004 |
|
Current U.S.
Class: |
715/752;
379/88.2; 455/415; 715/733; 715/751; 715/747; 379/93.24; 379/88.19;
455/556.1; 715/822 |
Current CPC
Class: |
H04M
3/42059 (20130101); G06Q 10/107 (20130101); H04L
51/38 (20130101); H04M 1/72472 (20210101); H04M
1/72436 (20210101); G06F 1/1622 (20130101); H04M
1/0225 (20130101); H04L 51/04 (20130101); H04L
51/28 (20130101); H04M 1/72448 (20210101); H04M
2203/652 (20130101); H04M 1/27453 (20200101); H04M
2250/60 (20130101) |
Current International
Class: |
G06F
3/00 (20060101); H04M 3/42 (20060101) |
Field of
Search: |
;345/752,776,864,963,733,744,745,747,751,758,811,810,812,821,822,825,700
;379/88.11,88.17,88.19,88.2,88.22,90.01,93.01,93.05,93.06,93.23,93.24,93.25,110.01
;455/344,412,413,414,415,74,553,556,557,566 |
References Cited
[Referenced By]
U.S. Patent Documents
Foreign Patent Documents
|
|
|
|
|
|
|
WO 98/36344 |
|
Aug 1998 |
|
WO |
|
WO 00/30003 |
|
May 2000 |
|
WO |
|
Other References
"Multimedia Telephone Caller Recognition", IBM Technical Disclosure
Bulletin, vol. 34 No 10A, Mar. 1992, pp. 315-316. cited by examiner
.
U.S. Appl. No. 10/611,019, filed Jun. 30, 2003. cited by examiner
.
U.S. Appl. No. 10/262,298, filed Sep. 30, 2002. cited by examiner
.
Excite Home Page, http://www.excite.com/, 1 page Aug. 1, 2000.
cited by other .
Alta Vista Home Page, http://www.altavista.com/, 1 Page Aug. 1,
2000. cited by other .
Yahoo Home Page, http://www.yahoo.com/, 1 page Aug. 1, 2000. cited
by other .
Anita Komlodi, Key Frame Preview Techniques For Video Browsing,
Digital Library Research Group, College of Library and Information
Services University of Maryland, pps. 118-125. cited by other .
Appenzeller, et al.., "User-friendly Access Control For Public
Network Ports", IEEE, pp. 699-707 , Mar. 1999. cited by
other.
|
Primary Examiner: Bayerl; Raymond J.
Attorney, Agent or Firm: Blakely, Sokoloff, Taylor &
Zafman, LLP
Claims
What is claimed is:
1. A method implemented on a data processing device comprising:
receiving an incoming electronic message from a message sender, the
electronic message having an identifiable sender address; querying
data storage to determine if the sender address is a known sender
address; if the sender address is a known sender address, then
automatically retrieving alternate contact options associated with
the sender address; automatically generating an interface
containing the alternate contact options, the alternate contact
options prioritized based on a presumption of the location of the
sender of the electronic message and selectable by the user of the
data processing device via a mouse or other cursor control device;
and upon detecting a selection of a particular contact option by
the user, causing the data processing device to contact the sender
using the selected contact option.
2. The method as in claim 1 wherein the incoming electronic message
is an incoming email message.
3. The method as in claim 1 wherein the incoming electronic message
is an instant message.
4. The method as in claim 1 wherein the alternate contact options
are listed and prioritized in a menu within the interface.
5. The method as in claim 1 wherein the presumption is based on the
origin of the sender address.
6. The method as in claim 5, further comprising: wherein an
alternate contact option is included or excluded in the alternate
contact options based on the origin of the sender address.
7. The method as in claim 1 wherein the list is further prioritized
based on contact preferences specified by the user.
8. The method as in claim 1 wherein querying data storage comprises
querying an address book maintained on the data processing
device.
9. The method as in claim 1 wherein querying data storage comprises
querying a contact database maintained on the data processing
device.
10. The method as in claim 1 wherein the interface is a graphical
interface displayed on a display of the data processing device.
11. The method as in claim 1 further comprising: detecting presence
information associated with the sender of the electronic message,
wherein the presumption is based on the detected presence
information.
12. The method as in claim 11 wherein the presence information
comprises an indication as to whether the sender is logged into a
particular instant messaging session.
13. The method as in claim 1 wherein causing the data processing
device to contact the sender further comprises: executing a
communication application configured to communicate with the sender
according to the selected type of contact option.
14. The method as in claim 13 wherein the selected contact option
is email and wherein the communication application comprises an
email client through which the user may transmit an email to the
sender.
15. The method as in claim 13 wherein the selected contact option
is a telephone call and wherein the communication application
comprises a telephony application through which the user may place
a telephone call to the sender.
16. The method as in claim 1, wherein an alternate contact option
is included or excluded in the alternate contact options based on
the presumption of the location of the sender of the electronic
message.
17. The method as in claim 1, wherein an alternate contact option
is included or excluded in the alternate contact options based on
presence information associated with the sender of the electronic
message.
18. The method as in claim 1, wherein the presumption is based on
the location of the user device.
19. A method implemented on a data processing device having voice
telephony capabilities comprising: receiving an incoming telephone
call and caller identification ("ID") information associated with
the telephone call; querying data storage using the caller ID
information to determine if any additional contact options exist
for contacting the caller; if the additional contact options exist,
then automatically retrieving the additional contact options, or a
subset thereof; automatically generating an interface containing
the additional contact options, the additional contact options
within the interface prioritized based on a presumption of the
location of the caller and selectable by the user of the data
processing device via a mouse or other cursor control device; and
upon detecting a selection of a particular contact option by the
user, causing the data processing device to contact the sender
using the selected contact option.
20. The method as in claim 19 wherein at least one of the
additional contact options comprises an email address.
21. The method as in claim 19 wherein at least one of the
additional contact options comprises an instant messaging
address.
22. The method as in claim 19 wherein the additional contact
options are listed and prioritized in a menu within the
interface.
23. The method as in claim 22 wherein the list is further
prioritized based on contact preferences specified by the user.
24. The method as in claim 19 further comprising: detecting
presence information associated with the caller, wherein the
presumption is based on the detected presence information.
25. The method as in claim 24 wherein the presence information
comprises an indication as to whether the caller is logged into an
instant messaging session.
26. The method as in claim 19 wherein querying data storage
comprises querying an address book maintained on the data
processing device.
27. A method executed on a data processing device comprising:
displaying a list of received electronic messages on a display of
the data processing device; upon selection of a specified one of
the electronic messages by a user, gathering additional contact
options associated with the sender of the specified one of the
electronic messages; automatically generating an interface from
which the user may select one of the additional contact options to
contact the sender via a mouse or other cursor control device, the
additional contact options prioritized based on a presumption of
the location of the sender of the specified one of the electronic
messages; and upon detecting a selection of a particular contact
option by the user, causing the data processing device to contact
the sender using the selected contact option.
28. The method as in claim 27 wherein the list of received
electronic messages comprise a list of email messages within the
user's inbox.
29. The method as in claim 27 wherein the additional contact
options are listed and prioritized in a menu within the
interface.
30. The method as in claim 27 wherein the presumption is based on
the origin of the sender address.
31. The method as in claim 27 wherein querying data storage
comprises querying an address book maintained on the data
processing device.
32. The method as in claim 27 wherein the interface is a graphical
interface displayed on a display of the data processing device.
33. The method as in claim 27 further comprising: detecting
presence information associated with the sender of the specified
one of the electronic messages, wherein the presumption is based on
the detected presence information.
34. The method as in claim 33 wherein the presence information
comprises an indication as to whether the sender is logged into a
particular instant messaging session.
Description
BACKGROUND
1. Field of the Invention
This invention relates generally to the field of data processing
systems. More particularly, the invention relates to multi-mode
apparatus and interface for providing multiple options for
contacting a user.
2. Description of the Related Art
Electronic messaging applications such as email and instant
messaging and personal information management ("PIM") applications
such as electronic calendars and address books have become
irreplaceable tools in today's business environment. Virtually all
corporate employees rely on electronic messaging applications and
PIM applications in one form or another. In addition, a growing
number of users rely on portable, multi-purpose telephony devices
which include both electronic messaging and PIM capabilities. Once
such device is the Hiptop.TM. communicator designed by Danger,
Inc., and distributed by T-Mobile, Inc.
One limitation of current multi-purpose telephony devices is that
the different messaging and PIM applications do not interact with
one another to exchange information in a useful manner. For
example, although the user's address book may contain a variety of
communication channels for contacting other users, no mechanism
exists for automatically proving this information to the user when
the user is working within a different application (e.g., within
the email application). Such interaction would be useful in a
variety of circumstances. For example, when the user receives a new
email message, it would be beneficial to provide the user with a
list of alternate communication channels for the sender of the
email message (e.g., telephone number, instant messaging address, .
. . etc).
Accordingly, what is needed is an improved suite of PIM/messaging
applications. What is also needed is a suite of PIM/messaging
applications which interact together in a variety of useful ways.
What is also needed is an interface which provides
context-sensitive options for contacting a user from within
PIM/messaging applications.
SUMMARY
A method implemented on a data processing device is described
comprising: receiving an incoming electronic message having an
identifiable sender address; querying data storage to determine if
the sender address is a known sender address; if the sender address
is a known sender address, then automatically retrieving alternate
contact information associated with the sender address; and
automatically generating an interface containing the alternate
contact information, the interface accessible by the user of the
data processing device.
BRIEF DESCRIPTION OF THE DRAWINGS
A better understanding of the present invention can be obtained
from the following detailed description in conjunction with the
following drawings, in which:
FIG. 1a illustrates a service communicating with a data processing
device according to one embodiment of the invention.
FIGS. 1b d illustrates an exemplary data processing device on which
embodiments of the invention may be implemented.
FIG. 2 illustrates one embodiment of a system for linking personal
information management and messaging applications.
FIG. 3a illustrates one embodiment of a multi-mode communication
interface for contacting a user.
FIG. 3b illustrates a multi-mode communication log according to one
embodiment of the invention.
FIGS. 4a b illustrate one embodiment of a multi-mode interface for
contacting a user.
FIG. 5 illustrates one embodiment of the invention employed in
conjunction with an incoming email message.
FIG. 6 illustrates one embodiment of the invention employed in
conjunction with an incoming voice telephone call.
FIG. 7 illustrates one embodiment of a system for managing contact
information for multiple users.
FIG. 8 illustrates one embodiment of an interface for entering
different presence profiles.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
Throughout the description, for the purposes of explanation,
numerous specific details are set forth in order to provide a
thorough understanding of the present invention. It will be
apparent, however, to one skilled in the art that the present
invention may be practiced without some of these specific details.
In other instances, well-known structures and devices are shown in
block diagram form to avoid obscuring the underlying principles of
the present invention.
Embodiments of a Data Processing Service
Embodiments of the invention may be implemented on a wireless
device 110 which communicates with a data processing service 100 as
illustrated generally in FIG. 1. Embodiments of a service 100 and
data processing device 110 are described in co-pending application
entitled NETWORK PORTAL SYSTEM, APPARATUS AND METHOD, Ser. No.
09/714,897, now U.S. Pat. No. 6,721,804, filed Nov. 15, 2000, and
SYSTEM AND METHOD FOR INTEGRATING PERSONAL INFORMATION MANAGEMENT
AND MESSAGING APPLICATIONS, Ser. No. 10/262,298, filed Sep. 30,
2002 (hereinafter "co-pending applications"), which are assigned to
the assignee of the present application and which are incorporated
herein by reference. Certain features of the service 100 and an
exemplary data processing device 110 will now be described followed
by a detailed description of a multi-mode communication interface
for contacting a user and a system and method for dynamically
managing presence and contact information. It should be noted,
however, that the specific data processing device and system
architecture described in the co-pending applications are not
required for implementing the underlying principles of the
invention. Rather, the embodiments of the invention described below
may be implemented on virtually any type of data processing device
including standard personal computers, personal digital assistants
and wireless telephones.
In one embodiment, the service 100 converts standard applications
and data into a format which each data processing device 110 can
properly interpret. Thus, as illustrated in FIG. 1a, one embodiment
of the service 100 includes content conversion logic 120 for
processing requests for Internet content 140. More particularly,
the service 100 acts as a proxy for the data processing device 110,
forwarding Internet requests 140, 141 to the appropriate Internet
site 130 on behalf of the data processing device 110, receiving
responses from the Internet site 130 in a standard Internet format
(e.g., Web pages with embedded audio/video and graphical content,
e-mail messages with attachments, . . . etc), and converting the
standard Internet responses 142 into a format which the data
processing device 110 can process (e.g., bytecodes as described in
the co-pending applications).
For example, the conversion logic 120 may include a hypertext
markup language ("HTML") rendering module (not shown) for
interpreting HTML code and downloading any embedded content in the
HTML code (e.g., graphics, video, sound, . . . etc) to the service
100. The conversion logic 120 may then combine the HTML code and
embedded content and generate a set of bytecodes for accurately
reproducing the requested content on the data processing device
110. As described above, in one embodiment, the bytecodes may be
Java bytecodes/applets. However, the conversion logic 120 may
generate various other types of interpreted and/or non-interpreted
code, depending on the particular type of data processing device
110 being used (e.g., one with an interpreter module or one
without).
Because one embodiment of the service 100 maintains an intimate
knowledge of the capabilities/configuration of each data processing
device 110 (e.g., screen size, graphics/audio capabilities,
available memory, processing power, user preferences, . . . etc) it
can reconstruct the requested Internet content accurately, while at
the same time minimizing the bandwidth required to transmit the
content to the device 110. For example, the conversion logic 120
may perform pre-scaling and color depth adjustments to the
requested content so that it will be rendered properly within the
data processing device's 110's display. In making these
calculations, the conversion may factor in the memory and
processing power available on the data processing device 110. In
addition, the conversion logic 120 may compress the requested
content using a variety of compression techniques, and thereby
preserve network bandwidth.
An Exemplary Data Processing Device
An exemplary data processing device on which embodiments of the
invention are implemented is illustrated in FIGS. 1b d. The data
processing device 110 includes a keyboard 101, a control knob/wheel
102 (e.g., for scrolling between menu items and/or data), and a set
of control buttons 105 (e.g., for selecting menu items and/or
data).
The display 103 is pivotally coupled to the data processing device
110 and pivots around a pivot point 109, located within a pivot
area 104, from a first position illustrated in FIG. 1b to a second
position illustrated in FIGS. 1c d. When in the first position the
display 103 covers the keyboard 101, thereby decreasing the size of
the device 110 and protecting the keyboard 101. Even when the
display is in the first position, however, the control knob 102 and
control buttons 105 are exposed and therefore accessible by the
user. The motion of the display 103 from the first position to a
second position is indicated by motion arrow 106 illustrated in
FIGS. 1b c. As illustrated, when in the second position, the
keyboard 101 is fully exposed. Accordingly, the display is
viewable, and data is accessible by the user in both a the first
position and the second position (although access to the keyboard
is only provided in the first position).
In one embodiment, the data processing device 110 is also provided
with audio telephony (e.g., cellular) capabilities. To support
audio telephony functions, the embodiment illustrated in FIGS. 1b d
includes a speaker 120 for listening and a microphone 121 for
speaking during a telephone conversation. Notably, the speaker 120
and microphone 121 are positioned at opposite ends of the data
processing device 110 and are accessible when the screen 103 is in
a closed position and an open position.
Application Linking
As illustrated in FIG. 2, a plurality of PIM and messaging
applications may be executed on the data processing device 110
including, but not limited to, an e-mail client 202, an instant
messaging client 204, an electronic calendar 206, an electronic
address book 208 and a telephony module 210 for providing two-way
audio communications via a wireless network 220. As indicated in
FIG. 2, the telephony module 210 may employ automatic number
identification ("ANI") techniques for identifying incoming
callers.
In one embodiment of the invention, the PIM and messaging
applications 202 210 executed on the data processing device 110
interact with one another through an application interface 200
(e.g., in the various ways set forth below). Although the interface
200 is illustrated within the data processing device 110 in FIG. 2,
certain functions performed by the interface 200 may be executed on
the service 100.
In one embodiment, the address book 208 acts as a central
repository for contact information. Thus, any time a user enters
new contact data from within any of the applications, the contact
data is stored by the address book application 208. For example,
when the user enters a new email address or a new instant messaging
"buddy" to his/her buddy list, the new address/ buddy is
automatically stored within the address book. Alternatively, in one
embodiment, a central data repository for contact information is
maintained on the data processing device 110 (e.g., a central
database) and is directly accessible by each of the PIM/messaging
applications 202 210 including but not limited to the address book
application 208. The underlying principles of the invention remain
the same regardless of how the contact information is stored and
managed on the data processing device 110 and/or the service
100.
Multi-Mode Communication
One embodiment of the invention allows the user of the data
processing device 110 to easily choose an appropriate communication
mode (e.g., voice telephony, instant messaging, email, multimedia
message service, . . . etc) based on context, and to easily switch
between communication modes. As illustrated in FIG. 3a this
embodiment includes a multi-mode communication module 300 for
generating a communication interface 305 using the contact data 301
stored on the data processing device. In one embodiment, the
communication interface includes a list of communication options
for contacting a particular message originator or caller. The list
of communication options may include all the available ways in
which the user of the data processing device 110 may respond to the
originator of a highlighted email message, instant message or an
incoming telephone call.
As illustrated in FIG. 3a, in one embodiment, the multi-mode
communication module 300 generates the communication interface 305
in response to communication events and context information
provided by the various communication applications (e.g., the email
client 202, the instant messaging client 204, the voice telephony
module 210, . . . etc). By way of example, and not limitation,
communication events may include the receipt of a new email
message, a new instant message, an incoming telephone call, or any
other type of information indicating the current communication
state of the data processing device 110. The context information
may include, for example, an indication as to which applications
are currently active, the current state of the active applications
(e.g., which messages are highlighted within the active
applications) and/or the current online status of the user (e.g.,
whether the user is logged in to an email application or listed as
"online" for an instant messaging session).
FIG. 4a illustrates an exemplary email client with a group of email
messages 405 stored in the user's inbox and FIG. 4b illustrates a
specific type of communication interface 305--i.e., a
context-sensitive communication menu 400 generated by the
multi-mode communication module 300. The communication menu 400
includes a list of options for contacting the sender of each email
message. In the specific example illustrated in FIG. 4b, one
particular email message 401 is highlighted and the
context-sensitive communication menu 400 includes an option to
"respond via email" to the sender of the highlighted email message
401; two options for calling the sender of the email message at two
different numbers; two options for sending an instant message to
the sender of the email message using two different instant
messaging accounts; and an option to open the user's address book
entry (e.g., to retrieve/review additional information related to
the sender).
In addition, one entry in the context-sensitive menu provides an
option for searching for "additional contact options." In one
embodiment, the search for "additional contact options" includes
searching for additional information related to the sender of the
email on the Internet or other external network (e.g., such as
searching an internet White Pages or Yellow Pages directory).
Various additional communication options may be included within the
context-sensitive communication menu 400. In one embodiment, the
multi-mode communication module 300 includes an option for
initiating a multi-party response to a particular message. For
example, one option may allow the end-user to initiate a group
instant messaging chat session with all the recipients of the
selected email message.
In one embodiment, the multi-mode communication module 300
generates the context-sensitive communication menu 400 in response
to a specific cursor control manipulation, such as "right clicking"
on the email message with a mouse or similar cursor control device
or selecting a designated key from the data processing device's
keyboard. In one embodiment, holding down the control knob 102 on
the data processing device 110 for a specified period of time
(e.g., 1/2 second) generates the communication menu 400.
Alternatively, or in addition, the multi-mode communication module
300 may generate the context-based communication menu 400
automatically, in response to incoming communication events such as
the receipt of a new email message, instant message or telephone
call.
In one embodiment, the multi-mode communication module 300 builds
the context-based communication menu 400 dynamically, by first
identifying the originator of the incoming email message, instant
message or voice telephone call (e.g., using the sender's email
address, instant messaging address or phone number, respectively)
and then searching the data processing device 110 to determine the
alternate communication channels over which the originator may be
contacted. In an embodiment in which all of the contact information
is maintained by the address book application 208, the multi-mode
communication module 300 may query the address book program to
retrieve the contact information (e.g., via the interface 200). In
another embodiment, rather than querying the address book
application 208, the multi-mode communication module 300 may access
the contact information directly from the data file or database in
which the contact information is stored on the data processing
device 110 or the service 100. Thus, in this embodiment, the
address book program 208 does not need to be actively running for
the multi-mode communication module 300 to gain access to the
underlying contact data. As mentioned above, however, the
underlying principles of the invention are not limited to any
particular technique for storing and/or retrieving contact
data.
In one embodiment, each of the entries within the context-based
communication menu 400 identifies an appropriate communication
application for contacting the sender. For example, the entries for
calling the originator's "work" and "home" numbers may be
associated with the voice telephony application 210 and the entries
for Instant messaging may be associated with an appropriate instant
messaging client 204 (e.g., a Yahoo! instant messaging client and
the AOL instant messaging client). Thus, in response to a selection
of one of the entries from within the communication menu 400, the
appropriate application is automatically executed and initialized
using the specific phone number, email address or instant messaging
address associated with the entry. In this manner, the user may
quickly and efficiently generate a response to the message
originator.
Although described above primarily within the context of an email
client, the underlying principles of the invention may be
implemented within virtually any type of communication application
including an instant messaging application, a voice telephony
application, a short message service ("SMS") application and/or a
multimedia message service ("MMS") application, to name a few. For
example, when the user receives an incoming telephone call, a list
of contact options may be provided, similar to the list of contact
options within the communication menu 400 illustrated in FIG.
4b.
Moreover, in one embodiment, the communication menu 400 (or other
type of communication interface 305) generated by the multi-mode
communication module 300 is configurable by the user to provide a
specified list of prioritized contact options. For example, the
user may specify that, for incoming telephone calls, the multi-mode
communication module 300 should provide instant messaging addresses
first in the communication menu 400, thereby making them more
easily accessible to the user, followed by SMS addresses and then
email addresses.
In one embodiment, the multi-mode communication module 300 uses
presence information from the instant messaging client (e.g.,
whether the message sender is logged in or logged off a particular
instant messaging account) or the location associated with the
sender's email address (e.g., "work" or "home") to prioritize or to
include/exclude the various communication options within the
communication menu 400. For example, if a user is not logged in to
a particular instant messaging account, then the multi-mode
communication module 300 may not include an option for that
account. Moreover, in one embodiment, if the multi-mode
communication module 300 determines that the email message was sent
from the sender's work email account, or if the sender is logged
into his/her work instant messaging account, then the multi-mode
communication module 300 may prioritize the sender's work telephone
number above the sender's home telephone number in the list.
Three examples of system operation with different communication
clients will now be described with respect to the flowcharts in
FIGS. 5 6. Referring to FIG. 5, upon receipt of a new telephone
call at 500, the data processing device initially notifies the user
with an on-screen incoming call dialog, a specified sound, and/or
LEDs on the data processing device. At 505, the multi-mode
communication module 300 determines whether the caller's telephone
number (e.g., identified using ANI techniques) is stored on the
data processing device 110 (e.g., in the user's address book) or
the service 100. If not, then the process terminates. If so, then
at 510, the multi-mode communication module 300 retrieves any
instant messaging addresses and determines whether the caller is
logged in to a particular instant messaging account (if one
exists). If the caller is logged in to an instant messaging
account, then the multi-mode communication module 300 generates an
option to send an instant message within the incoming call dialog
(e.g., in the form of an "instant message" button). If the caller
is not logged in to a particular instant messaging account (or if
no account exists), then at 511, the multi-mode communication
module 300 generates an incoming call dialog with one or more
alternate communication options (e.g., email, SMS, MMS, . . . etc).
Alternatively, or in addition, the multi-mode communication module
300 may simply generate a menu containing all of the possible
communication channels for contacting the caller (e.g., as
described above).
FIG. 6 illustrates one example of system operation for new email
messages. At 600, a new email message is received in the user's
inbox. At 605, the multi-mode communication module 300 determines
whether the email address is stored on the data processing device
110 or service 100 (e.g., in the user's address book). If no, then
the process terminates. If so, then at 610, the multi-mode
communication module 300 retrieves telephone numbers associated
with the sender of the email message. At 615, the multi-mode
communication module 300 evaluates presence information to
prioritize the telephone numbers. For example, if the email is sent
from the user's work email address, then the multi-mode
communication module 300 may prioritize the user's work telephone
above all others (as described above). At 615, the multi-mode
communication module 300 generates a new email message dialog
containing the highest priority telephone number(s). In one
embodiment, a single "callback" button is provided for a single
telephone number, thereby allowing the user to easily call back the
sender by selecting a specified key on the data processing device
110. This type of operation may be particularly useful for
situations where the user is operating the device with only one
hand (e.g., while driving a car).
As illustrated in FIG. 3b, one embodiment of the invention employs
a multi-mode communication log generator 350 for generating a
multi-mode communication log 351 in response to various different
communication events (e.g., new email messages, new incoming voice
calls, new instant messages, . . . etc). Thus, Unlike the call logs
available on most mobile phones today, the multi-mode call log 351
includes a list of all recent communication events including, for
example, sent/received email messages, instant messaging
conversations, MMS messages, SMS messages, incoming/outgoing voice
calls and voice messages. In one embodiment, a multi-mode log
viewer 355 is provided to allow the end-user to review the entries
in the multi-mode log 351. In one embodiment, the user may click on
any of the communication events within the log and, in response,
the multi-mode communication module 300 will generate a multi-mode
interface 305 (e.g., such as the communication menu 400 illustrated
in FIG. 4b) containing a variety of contact options for the sender
of the logged communication event.
In one embodiment, in response to the user selecting a particular
calendar entry from the electronic calendar application 206, the
multi-mode communication module 300 will generate a multi-mode
communication menu 400 such as the one illustrated in FIG. 4b.
Specifically, in one embodiment, the multi-mode communication menu
400 will contain a list of options for communicating with the
meeting owner and/or all of the meeting attendees. A similar menu
may also be generated from within the to-do list or tasks
application. For example, the multi-mode communication menu 400 may
contain a list of options for initiating communication with the
person or persons who are assigned a particular task.
System and Method for Dynamically Managing Presence and Contact
Information
As used herein, "presence" information refers to any information
describing the status of a user with respect to one or more
different communication channels. As mentioned above, instant
messaging systems provide an indication of different types of
presence information (e.g., "User X is Idle").
In addition to managing presence information for instant messaging
sessions, one embodiment of the invention manages presence
information for a variety of other communication channels.
Specifically, as illustrated in FIG. 7 one embodiment of the
service 100 includes a presence management module 700 for managing
presence information associated with each user. Three different
data processing devices 710, 712 and 714 illustrated in FIG. 7 are
associated with three different users--"User A," "User B" and "User
C," respectively. In one embodiment, the data processing devices
are multi-function wireless devices which support standard voice
telephony communication and electronic messaging communication
(e.g., email, instant messaging, SMS, MMS . . . etc).
In operation, the service 100 continually maintains up-to-date
presence information for each user within a user database 705, and
provides the presence information to other users upon request. In
one embodiment, the presence information identifies all
communication channels which are currently available for
communicating with the user. The availability of the different
communication channels may be automatically detected by the
presence management module 700. For example, if User A is currently
out of range of the wireless network, the presence management
module 700 may update User A's presence information to indicate
that User A is no longer available for real time communication
channels such as instant messaging or voice telephony. As such, if
User B and/or User C subscribes to User A's presence information,
then upon checking the current status of User A, User B and/or User
C will see that User A is unavailable for real time communication.
As such, Users B and C may choose to send User A an email message
instead of calling User A and being automatically transferred to
voicemail.
In one embodiment, the presence management module 700 provides
users with a prioritized list of available communication channels
in the form of a context-based communication menu 400 such as that
illustrated in FIG. 4. For example, if User A is out of range of
the wireless network as described above, then, the presence
management module may prioritize the non-real-time communication
channels such as email or voicemail above the real time
communication channels such as instant messaging and voice
telephony. Conversely, if User A is within range of the network,
then the presence management module 700 may prioritize real time
communication channels above non-real-time communication
channels.
In addition to, or in lieu or, automatic presence updates as
described above, in one embodiment, the presence information
maintained by the presence management module 700 is programmable by
each end user. For example, during a meeting, User A may wish to
disable the telephony capabilities of the data processing device
710 and, instead, rely on instant messaging, SMS and/or email for
communicating with Users B and C. Accordingly, User A may configure
the presence management module 700 to indicate to Users B and C
that the only communication channels available during the meeting
are instant messaging, SMS and/or email.
As illustrated in FIG. 8, in one embodiment, users may define a
list of "presence profiles" 800. Each presence profile 800 includes
a list of the communication channels 810 made available to
specified users or predefined groups of users 808. Returning to the
previous example, User A may define a presence profile for
attending a meeting (e.g., identified as "In Meeting" in FIG. 8)
and may indicate that, during the meeting, the only communication
channels which should be made available to other users are instant
messaging and email. In addition, as illustrated, User A may
indicate available communication channels on a user-by-user or
group-by-group basis. For example, User A may indicate that
Personal users (i.e., users included within User A's "Personal"
group) should be provided all available communication channels
during a meeting whereas all other user should be provided with
only instant messaging and email. Various additional presence
profiles, groupings of users and/or associated communication
channels may be defined while still complying with the underlying
principles of the invention.
Other exemplary presence profiles illustrated in FIG. 8 include
"Work", "Telecommute", "Out of Office", "Home", "On the Go",
"Driving", "Quiet." For each profile, there are settings for the
preferred communication mode for each category of contacts in the
address book. By way of example, the Work profile may specify that
business contacts should communicate with the user via the user's
work number, work IM name and/or work email address, whereas
personal contacts should communicate with the user's personal email
address. For the Home profile, the user's business contacts may see
a voice mail indicator while the user's personal contacts see that
the user is available at his/her home phone number. For the Driving
profile, the user may choose to set his/her IM status as offline
and ask all contacts to call the user's mobile telephone number. In
the Quiet profile, the user may specify that he/she is not
available for a phone call but is available for instant messaging.
Accordingly, in one embodiment, when the Quiet profile is active,
all incoming calls are routed immediately into voice mail and the
missed call dialog is displayed. The foregoing examples are used
for the purpose of explanation only and should not be read to limit
the scope of the invention. A virtually unlimited number of
different presence profiles may be defined while still complying
with the underlying principles of the invention.
In one embodiment, the presence management module 700 is configured
to switch between different presence profiles either manually
(e.g., in response to manual requests by the user) or
automatically, in response to defined triggering events. In one
embodiment, different presence profiles are triggered based on a
specified time of day and/or day of the week. For example, the
presence management module 700 may trigger User A's "Work" presence
profile at 8:30 AM every morning and User A's "Home" presence
profile at 5:00 PM every evening (i.e., assuming that User A
typically arrives at work by 8:30 AM and leaves work at 5:00
PM).
In one embodiment, the calendar program 206 is configured to
communicate with the presence management module 700 (e.g., via
interface 200) to activate different presence profiles based on
stored calendar events. For example, each calendar entry may
include an option for selecting a specific presence profile. Once a
particular presence profile is selected for a calendar entry, the
presence management module 700 will trigger that profile during the
date and time of the calendar entry.
Each user may define a set of all other users who are permitted to
subscribe to their presence information. For example, User A may
explicitly permit User B and User C to subscribe to his/her
presence information but exclude all other users. As a result, the
presence management module 700 will only provide presence
information to Users B and C.
The presence management module 700 may not merely store the
presence information within the user database 705 on the service
100. Rather, in one embodiment, the presence management module 700
actively updates the presence information on each of the data
processing devices 710, 712, and 714 in response to changes in a
user's presence. For example, when User A's presence changes, the
presence management module 700 dynamically transmits presence
updates to User B and User C. The presence information will then be
readily available on User B's and User C's data processing devices
712, and 714, respectively, when User B or user C attempts to
contact User A. In one embodiment, the presence information is
linked to different contacts within each user's address book 208
and may be stored within the address book application 208
itself.
It should be noted that a central service 100 such as illustrated
in FIG. 7 is not required for complying with the underlying
principles of the invention. For example, in one embodiment, data
processing devices may exchange presence information directly with
one another (e.g., on a peer-to-peer basis).
In addition, various types of information other than presence
information may automatically be transmitted to users. For example,
if User A's blog or online photo album has been updated, then the
presence management module 700 may automatically send a message to
all users who have access to User A's presence information (e.g.,
User B and User C). The message may indicate that new information
is available. Alternatively, the presence management module 700 may
send the blog posts or the new photos directly to the User B's
and/or User C's user's devices, 712 or 714, respectively, directly
(e.g., using a designated push mechanism such as MMS or email).
Location information allows the user to switch profiles
automatically. You can set your current location to a certain
profile, and when your device enters that location the user's
profile is switched. For example, when you are at work you can set
your current location to the Work profile. Then your profile will
switch to Work when you come within proximity of the office. This
could be enabled with using the cell ID information that is
available from the radio since the software doesn't need to know
the physical location of the device.
In one embodiment, as soon as a user modifies his/her contact
information, the presence management module 700 will automatically
update the contact information on other user's data processing
devices. For example, if User A's home phone number changes, then
this change will automatically be transmitted from the presence
management module 700 and updated within User B's and/or User C's
address book (i.e., assuming that User B and User C subscribe to
User A's presence and/or contact information). Likewise, if User
B's or C's contact information changes, then the changes will
automatically be reflected in User A's address book.
Embodiments of the invention may include various steps as set forth
above. The steps may be embodied in machine-executable instructions
which cause a general-purpose or special-purpose processor to
perform certain steps. Alternatively, these steps may be performed
by specific hardware components that contain hardwired logic for
performing the steps, or by any combination of programmed computer
components and custom hardware components.
Elements of the present invention may also be provided as a
machine-readable medium for storing the machine-executable
instructions. The machine-readable medium may include, but is not
limited to, floppy diskettes, optical disks, CD-ROMs, and
magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or
optical cards, propagation media or other type of
media/machine-readable medium suitable for storing electronic
instructions. For example, the present invention may be downloaded
as a computer program which may be transferred from a remote
computer (e.g., a server) to a requesting computer (e.g., a client)
by way of data signals embodied in a carrier wave or other
propagation medium via a communication link (e.g., a modem or
network connection).
Throughout the foregoing description, for the purposes of
explanation, numerous specific details were set forth in order to
provide a thorough understanding of the invention. It will be
apparent, however, to one skilled in the art that the invention may
be practiced without some of these specific details. For example,
multi-purpose telephony/data processing devices are particularly
suitable for implementing certain aspects of the invention because
these devices can initiate communication over a variety of
communication channels (e.g., voice, IM, email, SMS, MMS, . . .
etc). However, the underlying principles are not limited to these
types of devices. For example, the underlying principles of the
invention may be implemented within standard personal computer
configurations standard wireless telephones, and/or other types of
communication devices (e.g., vehicle communication devices).
Moreover, although the invention was described in the context of
specific types of messaging applications (e.g., email, instant
messaging, . . . etc), the underlying principles of the invention
are not limited to any particular type of messaging
application.
In fact, by employing embodiments of the invention described above,
all communication devices may be provided with a "contact me here"
button that allows the user to set that device as the preferred
communication channel. For telephony devices, in contrast to the
"do not disturb" button found on most office phones, a "Set as
Preferred Phone Number" button may be provided. When a user sits
down at his/her desk and selects this button, the telephony device
communicates with the presence management module 700 to change the
preferred number to the office number. Similarly, when the user
gets in his/her car and start the engine, the built-in automobile
communication system changes the preferred voice contact number to
the car's telephone number. Similarly, the IP telephone integrated
within the user's PC may automatically set the preferred contact
number to the PC's telephone number when the user logs in. In
addition, the user's IM client application may automatically set
the user's preferred IM contact when logs in to an IM session.
Numerous additional communication applications are considered to be
within the scope of the present invention.
Accordingly, the scope and spirit of the invention should be judged
in terms of the claims which follow.
* * * * *
References