U.S. patent application number 15/495911 was filed with the patent office on 2017-08-10 for routing and displaying messages for multiple concurrent instant messaging sessions involving a single online identity.
This patent application is currently assigned to Google Inc.. The applicant listed for this patent is Google Inc.. Invention is credited to Barry APPELMAN, James A. ODELL.
Application Number | 20170230314 15/495911 |
Document ID | / |
Family ID | 43805929 |
Filed Date | 2017-08-10 |
United States Patent
Application |
20170230314 |
Kind Code |
A1 |
ODELL; James A. ; et
al. |
August 10, 2017 |
ROUTING AND DISPLAYING MESSAGES FOR MULTIPLE CONCURRENT INSTANT
MESSAGING SESSIONS INVOLVING A SINGLE ONLINE IDENTITY
Abstract
Routing and displaying instant messages includes receiving a
first request to establish a first instant messaging session
associated with an instant messaging online identity assigned to a
user using a first instant messaging controller. The first instant
messaging session is established in response to the first request,
where the first instant messaging session includes a first state. A
second request from the user is received to establish a second
instant messaging session associated with the instant messaging
online identity assigned to the user using a second instant
messaging controller that differs from the first instant messaging
controller. The second instant messaging session is established in
response to the second request, where the second instant messaging
session includes a second state. An instant message designated for
the instant messaging online identity assigned to the user is
received and a determination is made on where to route the instant
message based on routing criteria. The routing criteria includes
the first state of the first instant messaging session and the
second state of the second instant messaging session. The instant
message is routed based on the determination of where to route to
the instant message.
Inventors: |
ODELL; James A.; (Potomac
Falls, VA) ; APPELMAN; Barry; (McLean, VA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Google Inc. |
Mountain View |
CA |
US |
|
|
Assignee: |
Google Inc.
Mountain View
CA
|
Family ID: |
43805929 |
Appl. No.: |
15/495911 |
Filed: |
April 24, 2017 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
14333699 |
Jul 17, 2014 |
|
|
|
15495911 |
|
|
|
|
13078278 |
Apr 1, 2011 |
8799380 |
|
|
14333699 |
|
|
|
|
10927091 |
Aug 27, 2004 |
7921163 |
|
|
13078278 |
|
|
|
|
60584478 |
Jul 2, 2004 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
H04L 61/1564 20130101;
H04L 51/14 20130101; H04L 51/04 20130101; H04L 51/38 20130101 |
International
Class: |
H04L 12/58 20060101
H04L012/58; H04L 29/12 20060101 H04L029/12 |
Claims
1-34. (canceled)
35. A method for routing instant messages, the method comprising:
receiving, at an instant messaging server from an instant messaging
online identity, an indication of a message type to be excluded
from sending to one or more device types associated with the
instant messaging online identity; receiving, at the instant
messaging server, a first instant message addressed to the instant
messaging online identity; determining, at the instant messaging
server, that the first instant message is of the message type to be
excluded from sending to one or more device types; when a device
associated with the instant messaging online identity is of a same
type as the one or more device types, not routing the first instant
message to that device; and when a device associated with the
instant messaging online identity is not of a same type as the one
or more device types, routing the first instant message to that
device.
36. The method of claim 35, wherein the message type includes an
instant message type.
37. The method of claim 35, wherein the device includes a cellular
phone.
38. A method for routing instant messages, the method comprising:
receiving, at an instant messaging server from an instant messaging
online identity, message routing criteria for message exclusion
according to one or more of device, message type and sender
category; receiving, at the instant messaging server, a first
instant message addressed to the instant messaging online identity;
determining a message type and a sender category of the first
instant message; when the first instant message is determined to
include a message type or a sender category contained in the
message exclusion of the message routing criteria associated with a
device and received from the instant messaging online identity, not
routing the first instant message to that device; and when the
first instant message is determined to not include a message type
or a sender category contained in the message exclusion of the
message routing criteria associated with the device and received
from the instant messaging online identity, routing the first
instant message to that device.
39. The method of claim 38, wherein the message type includes an
instant message.
40. The method of claim 38, wherein the device includes a cellular
phone.
41. A system configured for routing instant messages, the system
comprising: one or more processors; and a computer readable medium
coupled to the one or more processors having stored thereon
software instructions that, when executed by the one or more
processors, cause the one or more processors to perform operations
including: receiving, at an instant messaging server from an
instant messaging online identity, message routing criteria for
message exclusion according to one or more of device, message type
and sender category; receiving, at the instant messaging server, a
first instant message addressed to the instant messaging online
identity; determining a message type and a sender category of the
first instant message; when the first instant message is determined
to include a message type or a sender category contained in the
message exclusion of the message routing criteria associated with a
device and received from the instant messaging online identity, not
routing the first instant message to that device; and when the
first instant message is determined to not include a message type
or a sender category contained in the message exclusion of the
message routing criteria associated with the device and received
from the instant messaging online identity, routing the first
instant message to that device.
42. The system of claim 41, wherein the message type includes an
instant message.
43. The system of claim 41, wherein the device includes a cellular
phone.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority from U.S. Provisional
Application No. 60/584,478, filed Jul. 2, 2004, and titled "Routing
and Displaying Messages for Multiple Concurrent Instant Messaging
Sessions Involving a Single Online Identity," which is incorporated
by reference.
TECHNICAL FIELD
[0002] This document relates to techniques for routing and
displaying messages for multiple concurrent instant messaging
sessions involving a single online identity.
BACKGROUND
[0003] Instant messaging is one manner in which people may
communicate with other people. A user may be able access an instant
messaging online identity multiple times from multiple different
devices. For example, the user may be logged into the user's
instant messaging online identity through an instant messaging
application on the user's desktop personal computer at home. At the
same time, the user may be logged into the same instant messaging
online identity through an instant messaging application on the
user's personal digital assistant. An instant message routing and
displaying scheme is desirable to address those situations when the
user is logged into the same instant messaging online identity
multiple times, potentially from multiple different devices.
SUMMARY
[0004] In one general aspect, routing and displaying instant
messages includes receiving a first request to establish a first
instant messaging session associated with an instant messaging
online identity assigned to a user using a first instant messaging
controller. The first instant messaging session is established in
response to the first request, where the first instant messaging
session includes a first state. A second request from the user is
received to establish a second instant messaging session associated
with the instant messaging online identity assigned to the user
using a second instant messaging controller that differs from the
first instant messaging controller. The second instant messaging
session is established in response to the second request, where the
second instant messaging session includes a second state. An
instant message designated for the instant messaging online
identity assigned to the user is received and a determination is
made on where to route the instant message based on routing
criteria. The routing criteria includes the first state of the
first instant messaging session and the second state of the second
instant messaging session. The instant message is routed based on
the determination of where to route to the instant message.
[0005] Implementations may include one or more of the following
features. For example, the first state and the second state may
include a user-defined state. The first state and the second state
may include an active state. The first state and the second state
may include an idle state. The first state and the second state may
include a user-set state. The user-set state may include an away
state.
[0006] The instant message may be displayed using the instant
messaging controller to where the instant message was routed.
[0007] The first instant messaging controller may include a
computer program running on a personal computer and the second
instant messaging controller may include a computer program running
on a mobile device. The mobile device may include a cellular phone.
The mobile device may include a personal digital assistant.
[0008] The first instant messaging controller and the second
instant messaging controller may include the computer programs
running on different mobile devices. The mobile devices may include
at least one cellular phone. The mobile devices may include at
least one personal digital assistant.
[0009] The first instant messaging controller and the second
instant messaging controller may include computer programs running
on different personal computers.
[0010] The routing criteria may include a type of device that the
first instant messaging controller and the second instant messaging
controller are running on. Determining where to route the instant
message may include identifying a subset of less than all of the
instant messaging sessions.
[0011] These general and specific aspects may be implemented using
a system, a method, or a computer program, or any combination of
systems, methods, and computer programs.
[0012] Other features will be apparent from the description and
drawings, and from the claims.
DESCRIPTION OF DRAWINGS
[0013] FIG. 1 is a flow chart of an exemplary process for routing
messages for multiple concurrent instant messaging sessions
involving a single online identity.
[0014] FIG. 2 is a flow chart of an exemplary process for
determining where to route an incoming instant message based on
routing criteria.
[0015] FIG. 3 is an exemplary table indicating a state of multiple
concurrent instant messaging sessions per device.
[0016] FIGS. 4 and 5 are exemplary graphical user interfaces (GUIs)
for enabling an online identity to select message routing
criteria.
[0017] FIG. 6 is a block diagram of a communications system.
[0018] FIG. 7 is an expansion of the block diagram of FIG. 6.
[0019] Like reference symbols in the various drawings may indicate
like elements.
DETAILED DESCRIPTION
[0020] In general, a user may have multiple, simultaneous instant
messaging sessions that are associated with a user's single instant
messaging account or identity. The user may conduct the multiple,
concurrent instant messaging sessions using multiple instant
messaging controllers (e.g., software applications). For example, a
user may establish an instant messaging session associated with the
user's instant messaging online identity using an instant messaging
controller on a personal computer. Concurrently, the user may
establish another instant messaging session associated with the
user's instant messaging online identity using an instant messaging
controller on a mobile device. Thus, the user may log into the same
instant messaging online identity multiple times to establish
multiple instant messaging sessions using different instant
messaging controllers on different devices. With the establishment
of each instant messaging session, the user's Buddy List may be
accessed and presented to the user, such that the user receives an
indication of which buddies are online. The user may communicate
using instant messages with the buddies from each of the different
devices.
[0021] In this example, when an instant message is sent to the
user, routing criteria is used to determine where to route the
incoming instant message. In one exemplary implementation, the
routing criteria includes the state of the different instant
messaging sessions. For instance, if both instant messaging
sessions described above are active, then the instant message may
be routed to both instant messaging controllers on the different
devices. If, however, the instant messaging session on the mobile
device is active and the instant messaging session on the personal
computer is idle, then the instant message may be routed only to
the instant messaging controller on the mobile device. In this
particular instance, by not routing the incoming instant message to
the idle instant messaging session, which in this case is on the
personal computer, the user's privacy is protected because the
instant message is not routed to and will not be displayed by the
device with the idle state. For example, the user may no longer be
operating the instant messaging session running on the personal
computer (e.g., physically relocated from the location of the
personal computer) and is now only communicating using the instant
messaging session on the mobile device. The state of the instant
messaging session may be established by the user or it may be set
based on other predefined criteria (e.g., lack of manipulation of
the personal computer or mobile device may be used to infer idle
state).
[0022] In another exemplary implementation, the routing criteria
includes the state of the instant messaging sessions and a type of
device used to establish the instant messaging session. In the
example provided above, for instance, if the user sets a forwarding
preference on the personal computer to forward instant messages to
the wireless device when the personal computer is idle, then the
instant message is routed based on an active instant message
session on the instant messaging controller on the wireless device
and the idle state on the personal computer.
[0023] FIG. 1 illustrates an exemplary process 100 for routing
instant messages when there are multiple, concurrent instant
messaging sessions using the same instant messaging online
identity. A first request is received to establish a first instant
messaging session associated with an instant message online
identity assigned to a user using a first instant messaging
controller (step 110). In response to the first request, the first
instant messaging session is established. The first instant
messaging session is associated with a first state (step 120). A
second request is received from the user to establish a second
instant messaging session associated with the instant messaging
online identity assigned to the user using a second instant
messaging controller that differs from the first instant messaging
controller (step 130). In response to the second request, the
second instant messaging session is established. The second instant
messaging session is associated with a second state (step 140).
[0024] When an instant message is received that is designated for
the instant messaging online identity assigned to the user (step
150), a determination is made of where to route the instant message
based on routing criteria. The routing criteria includes the state
of the first instant messaging session and the state of the second
instant messaging session (step 160). The instant message is routed
based on the determination of where to route the instant message
(step 170).
[0025] The user may request to establish an instant messaging
session associated with an instant messaging online identity using
an instant messaging controller (steps 110 and 130). References to
the user request to establish an instant messaging session include
user initiated actions on a device having an instant messaging
controller and any automated request that an instant messaging
controller on a device may initiate to establish an instant
messaging session. Thus, the request to establish an instant
messaging does not necessarily require a literal request from the
user but instead may be, for example, the automatic launch of an
instant messaging controller as part of the start-up sequence for a
device.
[0026] Typically, a user is associated with an instant messaging
online identity. The instant messaging online identity may be
maintained at a remote location by an instant messaging service
provider. In one implementation, a user may subscribe to an instant
messaging online identity with a commercial instant messaging
service provider, such as those provided by America Online, Inc.,
Yahoo, Inc., Microsoft, Inc., and other instant messaging service
providers. In another implementation, a user may be a part of an
enterprise instant messaging service and may have an instant
messaging online identity as part of the enterprise system. In some
cases, the instant messaging online identity may be part of both a
commercially available instant message service provider and an
enterprise instant message provider. In another implementation, the
user may have an instant messaging online identity in a
point-to-point ("P2P") instant messaging system.
[0027] The instant messaging online identity may be accessed by the
user through the use of the online identity and a password. For
example, the online identity may include a set of alphanumeric
characters, symbols, tokens, or other types of online identities.
In one implementation, a screen name may be used as the online
identity. The instant messaging online identity typically includes
information related to the user such as a user's profile. The
user's profile may include the user's preferences and a
user-defined list of other co-users or co-subscribers, which may be
called a user's buddy list.
[0028] In general, a user's buddy list may be maintained with or
accessible as part of a user's profile and may be made accessible
using a user interface (UI) that provides the online status and
capabilities of certain screen names, i.e., "buddies," identified
by the user. In particular, the instant message service provider
may inform the user whether or not identified buddies are online,
i.e., currently accessing the instant messaging service provider,
enterprise host, or PTP node, as the case may be. The instant
message service provider also informs any other user who has
identified the user as a buddy that the user is currently
online.
[0029] An instant messaging session includes a time from when a
user requests and establishes the instant messaging session until
the user logs off or is otherwise disconnected from the instant
messaging session. A single instant messaging session may include
one or more separate instant message exchanges with one or more
buddies. An instant message may include a text or non-text (e.g.,
audio, video) instant message.
[0030] In one implementation, one aspect of establishing the
instant messaging session (steps 120 and 140) includes notifying
the user of his buddies that are online and notifying other users,
who list the user as a buddy, that the user is online. When the
first instant messaging session is established (step 120), the
other users may be notified that the user is online. When the
second instant messaging session is established (step 140), the
other users may not be re-notified that the user is online because
the second instant messaging session is associated with the same
instant messaging online identity as the first instant messaging
session.
[0031] An instant messaging session may be established using an
instant messaging controller and a device. An example of a device
is a general-purpose computer capable of responding to and
executing instructions in a defined manner. Other examples include
a special-purpose computer, a personal computer ("PC"), a
workstation, a server, a laptop, a cellular communications device,
a Web-enabled telephone, a personal digital assistant ("PDA"), a
Web-enabled PDA, an interactive television set, a settop box, a
video tape recorder ("VTR"), a DVD player, an on-board (i.e.,
vehicle-mounted) computer, or any other component, machine, tool,
equipment, or some combination thereof capable of responding to and
executing instructions.
[0032] An example of a controller, including an instant messaging
controller, is a software application (e.g., operating system,
browser application, microbrowser application, server application,
proxy application, gateway application, tunneling application,
e-mail application, instant messaging client, online service
provider client application, interactive television client
application, and/or Internet service provider client) loaded on a
device to command and direct communications enabled by the device.
Other examples include a computer program, a piece of code, an
applet, a Java applet, a script, an instruction, another device, or
some combination thereof, for independently or collectively
instructing the device to interact and operate as desired. The
controller may be embodied permanently or temporarily in any type
of machine, component, physical or virtual equipment, storage
medium, or propagated signal capable of providing instructions to a
device. In particular, the controller (e.g., software application,
computer program) may be stored on a storage media or device (e.g.,
ROM, magnetic diskette, or propagated signal) readable by a general
or special purpose programmable computer, such that if the storage
media or device is read by a computer system, the functions
described herein are performed.
[0033] A buddy list may be used to facilitate instant messaging
communications between users. For example, a user can activate an
instant messaging user interface that is pre-addressed to a buddy
simply by selecting the screen name of an online buddy from the
buddy list.
[0034] Alternatively, by way of example, if a recipient is not a
"buddy," the first user generally initiates instant messaging
communications by activating a blank instant messaging user
interface and then addressing that interface to the online identity
(e.g., screen name) of the intended recipient. When necessary, a
user may look up the screen name of an intended recipient using the
intended recipient's e-mail address or other means.
[0035] In response to receiving a request from the user to
establish an instant messaging session (steps 110 and 130), the
instant messaging session is established and is associated with a
state (steps 120 and 140). The instant messaging session may derive
its state from the state of the instant messaging controller, the
state of the device that the instant messaging controller is
running on, or a combination of the state of the instant messaging
controller and the state of the device.
[0036] The instant messaging session may include a user-set state
or a nonuser-set state, which may include aspects that are
configurable by the user. For example, a nonuser-set state for an
instant messaging session may include an active state. The active
state is an indication that the user is or has recently been active
within the instant messaging controller and/or the device that the
instant messaging controller is running on. The active state
includes when a user has established an instant messaging session
and has been active in the instant messaging controller, the device
or a combination of the instant messaging controller or the device
within a configurable period of time. In one implementation, a user
is considered to be active on the device when the user is using or
has recently used within a configurable period of time an input
device, such as, for instance, a mouse, a keyboard, a keypad, a
touchpad, a touch screen, a stylus, or a voice-input mechanism. A
user may be consider to be active when a movement of the device is
detected or has been recently detected within a configurable period
of time by a motion sensor that is included as part of the device.
A user may be considered active in the instant messaging controller
when the user is performing or has recently performed an action
within the instant messaging controller. In one implementation, the
user may be active on the device and not active in the instant
messaging controller. If the active state is based only on activity
of the instant messaging controller, then the instant messaging
session would be in an inactive state.
[0037] Another example of a nonuser-set state for an instant
messaging session may include an idle state. The idle state
includes when a user has established an instant messaging session
but has not been active in one or more of the instant messaging
controller, the device, or a combination of the instant messaging
controller or the device within a configurable period of time. In
one implementation, if the state of the instant messaging session
is based only on the state of the instant messaging controller,
then it is possible for the session to be idle when the user is
active on the device.
[0038] One example of a user-set state includes an away state. The
away state may function similar to the idle state, except that the
user sets the away state.
[0039] Other users who list the user as a buddy on their buddy
lists may perceive the state of the user's instant messaging
session. Furthermore, the user-set states and the non-user states
may include providing information to other users to indicate that
the user is not available. The information may be provided
automatically in response to another user sending the user an
instant message. The user may use default notifications or may
customize notifications that are provided to the other users. For
example, a user who attempts to communicate with another user who
is in an idle or an away state may receive a notification that the
user is idle or away.
[0040] Another example of a user-set state is a forwarding state.
In one implementation, the forwarding state enables instant
messages to be forwarded to another device. Specifically, for
example, the forwarding state may include forwarding received
instant messages to another device that is in an active state, such
as a wireless or a mobile device, when one device is in an idle or
away state.
[0041] After the user establishes an instant messaging session
(steps 120 and 140), instant messages may be received for the user
(step 150). A determination may be made as to where to route
received instant messages based on routing criteria (step 160). In
one exemplary implementation, the routing criteria includes the
states of the established instant messaging sessions.
[0042] In one implementation, instant messages sent to the user are
routed through an intermediary, such as, for example, an instant
messaging server. The instant message server may include a
collection of one or more related servers that perform one or more
instant messaging functions, including tracking users who have
established one or more instant messaging sessions with their
instant messaging online identity. The instant messaging server may
make the determination on where to route received instant messages
based on the routing criteria (step 160).
[0043] Once the determination is made of where to route an incoming
instant message, the instant message is routed based on the
determination (step 170). In one implementation, the instant
message is routed to one or more instant messaging controllers that
are associated with respective instant messaging sessions. The
routed instant message may be made visually and/or audibly
perceptible to the user on the device that is running the instant
messaging application.
[0044] FIG. 2 illustrates an exemplary process 160 for determining
where to route an incoming instant message based on routing
criteria, where the routing criteria includes the states of the
established instant messaging sessions. It should be understood
that process 160 is provided as merely one exemplary determination
routing scheme and that other determination routing schemes also
are contemplated by this disclosure.
[0045] If there is one or more active instant messaging sessions
(step 205), the incoming instant messages are routed to all of the
active instant messaging sessions and the instant message is not
routed to any away or idle instant messaging sessions (step 210).
By routing incoming instant messages to only the active instant
messaging sessions and not to any idle or away instant messaging
sessions, the user's privacy is protected. For instance, the user
may have established an instant messaging session using an instant
messaging controller at home on a personal computer. The user also
may have established an instant messaging session using an instant
messaging controller on a mobile device. If the user leaves home
and does not end the established instant messaging session on the
personal computer, the instant messaging session will eventually go
into an idle state. While the instant messaging session on the
personal computer is in an idle state and the instant messaging
session on the mobile device is in an active state, the instant
messages are not routed to the personal computer and are only
routed to the instant messaging controller on the mobile
device.
[0046] If one or more are in idle or away states instant messaging
sessions and an instant messaging forwarding state has been set
(step 215), then the instant message is routed to the device
designated as the instant messaging forwarding device (step 220).
The instant messaging forward state routes the instant message to a
designated device. For example, the device may include a mobile or
a wireless device that is capable of receiving instant messages as
a text message even when an no instant messaging controller is
running on the device. Thus, with the instant messaging forward
set, the instant message may be routed to a particular device as a
text message.
[0047] If all of the established instant messaging sessions are
idle or away (step 225), then the instant message is routed to one,
more, or all of the idle and away instant messaging sessions (step
230). For example, in one implementation, routing incoming instant
messages to all of the idle and away instant messaging sessions
ensures that the user does not miss and incoming instant message.
Since no instant messaging sessions are active in this situation,
one cannot be sure where the user might be available to receive the
instant message.
[0048] If the user's instant messaging online identity is able to
store incoming instant messages for routing at a future time (step
235), then incoming instant messages are simply held at the instant
messaging online identity for routing at some future time (step
240). Otherwise, the sender of the incoming instant message is
notified that the user is offline (step 245).
[0049] Referring to FIG. 3, an exemplary table 300 illustrates a
table that may be maintained to track the established, multiple
concurrent instant messaging sessions for an online identity on a
per device basis. Table 300 may be tracked by the intermediary,
such as, for example, the instant messaging server described above.
An online identity's established instant messaging sessions may be
tracked by device 310 and by the state of the instant messaging
session 320. In exemplary table 300, the online identity has
established three instant messaging sessions: an instant messaging
session on the online identity's home personal computer, designated
in the table as "PC-Home"; an instant messaging session on the
online identity's laptop computer, designated in the table as
"Laptop"; and an instant messaging session on the online identity's
cellular phone, designated in the table as "Cellular Phone."
[0050] Alternatively, table 300 may track the established instant
messaging session using information in addition to or other than a
device name. For example, table 300 may be used to track the
established instant messaging session by an address of the device,
such as, the Internet Protocol (IP) address the device used to
establish the instant messaging session.
[0051] Table 300 reflects the current state of the instant
messaging session 320 for each device 310 for the online identity.
Table 300 may be used (e.g., by the instant messaging server) to
make the determination on where to route the received instant
messages based on the routing criteria (e.g., the state of the
instant messaging session per device) (see step 160). In exemplary
table 300, the state of the instant messaging session for the
session designated as "PC-Home" is "Active," the state of the
instant messaging session for the session designated as "Laptop" is
"Idle," and the state of the instant messaging session for the
session designated as "Cellular Phone" is "Away."
[0052] In one exemplary implementation, the user may establish the
routing criteria for messages by device and message type. Referring
to FIG. 4, the user may be presented with a graphical user
interface (GUI), such as, for example, GUI 400. Exemplary GUI 400
may be presented to the user to enable the user (e.g., online
identity "AIM User" 405) to direct the type of message that should
be routed to each specific device 410. GUI 400 may be accessible
from an instant messaging controller available on any one of the
devices 410 for the online identity 405. Selections made in GUI 400
from one instant messaging controller may be saved in a
corresponding inclusion list maintained at a remote location, such
as, for example, at the instant messaging server.
[0053] Exemplary message types include instant messages 425, short
message service (SMS) messages 430, and emails 435. The online
identity 405 may select which message types should be routed to a
specific device 410 using selection bubbles 440. In one exemplary
implementation, the user-selected routing criteria may take
precedence over routing criteria based on the state of an instant
messaging session. For instance, if the online identity
affirmatively selects that instant messages 425 should be routed to
the cellular phone device, then instant messages will be routed to
the cellular phone even if cellular phone is in an idle or away
state. In another exemplary implementation, the user-selected
routing criteria may work in tandem with the routing criteria based
on the state of the instant messaging session.
[0054] Alternatively, in another exemplary implementation, GUI 400
may be arranged to operate as an exclusion list by enabling the
online identity 405 to select the device 410 and the type of
messages that the online identity 405 does not want routed to a
specific device or specific devices. For instance, if the online
identity affirmatively selects that instant messages 425 should not
be routed to the cellular phone device, then instant messages will
not be routed to the cellular phone even if the cellular phone is
in an active state. Selections made in GUI 400 from one instant
messaging controller may be saved in a corresponding exclusion list
maintained at a remote location, such as, for example, at the
instant messaging server.
[0055] In another exemplary implementation, the user may establish
routing criteria for messages by device, message type, and by
sender category. Referring to FIG. 5, GUI 500 illustrates that the
online identity 405 may direct the routing of specific messages
(e.g., instant messages 425, SMS messages 430, and emails 435) to
specific devices 410 by sender category. In one implementation, the
sender categories may correspond to the online identity's grouping
of buddies in their Buddy List. For instance, the online identity
may group their buddies into groups called "Family" 550, "Work"
555, and "Buddies" 560. GUI 500 may present these user-defined
buddy groups to the online identity 405 so that the identity can
select to which device 410 specific types of messages should be
routed based on the buddy group that the sender belongs.
[0056] As discussed above with respect to GUI 400 of FIG. 4, GUI
500 may correspond to either an inclusion list or an exclusion list
and the corresponding list may be maintained at a remote location,
such as, for example, at the instant messaging server for use in
determining where to route incoming messages. In one exemplary
implementation, GUI 500 may be presented with even more granularity
to the online identity by presenting a list of the identity's
buddies and enabling the identity to select message routing based
on the specific buddy that sent the incoming message.
[0057] FIGS. 6 and 7 illustrate an exemplary block diagram 600 and
700 of a communications system that may be used as part of the
implementation of the features described above.
[0058] For illustrative purposes, FIGS. 6 and 7 show an example of
a communications system for implementing techniques for
transferring electronic data, including instant messages. For
brevity, several elements in the figures described below are
represented as monolithic entities. However, as would be understood
by one skilled in the art, these elements each may include numerous
interconnected computers and components designed to perform a set
of specified operations and/or may be dedicated to a particular
geographical region.
[0059] Referring to FIG. 6, a communications system 600 is capable
of delivering and exchanging data between a user system 605 and a
provider system 610 through a communications link 615. The user
system 605 may include a client system and the provider system 610
may include a host system. The user system 605 typically includes
one or more user devices 620 and/or user controllers 625, and the
provider system 610 typically includes one or more provider devices
635 and/or provider controllers 640. For example, the user system
605 or the provider system 610 may include one or more
general-purpose computers (e.g., personal computers), one or more
special-purpose computers (e.g., devices specifically programmed to
communicate with each other and/or the user system 605 or the
provider system 610), or a combination of one or more
general-purpose computers and one or more special-purpose
computers. The user system 605 and the provider system 610 may be
arranged to operate within or in concert with one or more other
systems, such as, for example, one or more Local Area Networks
("LANs") and/or one or more Wide Area Networks ("WANs").
[0060] The provider system 610 may include a communication
interface such as an electronic mail gateway. For instance, the
provider system 610 may include a dedicated mailing system that is
implemented by specialized hardware or executed by a general
purpose processor capable of running various applications, such as
electronic mailer programs, and capable of employing various file
transfer protocols, such as the Simple Mail Transfer Protocol
("SMTP"). The communications interface of provider system 610
enables communications between the provider system 610 and other
systems through, for example, communications link 615.
[0061] The user device 620 (or the provider device 635) is
generally capable of executing instructions under the command of a
user controller 625 (or a provider controller 640). The user device
620 (or the provider device 635) is connected to the user
controller 625 (or the provider controller 640) by a wired or
wireless data pathway 630 or 645 capable of delivering data.
[0062] The user device 620, the user controller 625, the provider
device 635, and the provider controller 640 each typically include
one or more hardware components and/or software components. An
example of a user device 620 or a provider device 635 is a
general-purpose computer (e.g., a personal computer) capable of
responding to and executing instructions in a defined manner. Other
examples include a special-purpose computer, a workstation, a
server, a device, a component, other physical or virtual equipment
or some combination thereof capable of responding to and executing
instructions. The user device 620 and the provider device 635 may
include devices that are capable of peer-to-peer
communications.
[0063] An example of a user controller 625 or a provider controller
640 is a software application loaded on the user device 620 or the
provider device 635 for commanding and directing communications
enabled by the user device 620 or the provider device 635. Other
examples include a program, a piece of code, an instruction, a
device, a computer, a computer system, or a combination thereof,
for independently or collectively instructing the user device 620
or the provider device 635 to interact and operate as described.
The user controller 625 and the provider controller 640 may be
embodied permanently or temporarily in any type of machine,
component, physical or virtual equipment, storage medium, or
propagated signal capable of providing instructions to the user
device 620 or the provider device 635.
[0064] The communications link 615 typically includes a delivery
network 660 making a direct or indirect communication between the
user system 605 and the provider system 610, irrespective of
physical separation. Examples of a delivery network 660 include the
Internet, the World Wide Web, WANs, LANs, analog or digital wired
and wireless telephone networks (e.g., PSTN, ISDN, and xDSL),
radio, television, cable, satellite, and/or any other delivery
mechanism for carrying data. The communications link 615 may
include communication pathways 650 and 655 that enable
communications through the one or more delivery networks 660
described above. Each of the communication pathways 650 and 655 may
include, for example, a wired, wireless, cable or satellite
communication pathway.
[0065] An electronic information store 680 may be connected to the
provider system 610, included as a component of the provider system
610, and/or connected to the delivery network 660. The electronic
information store 680 may be a repository for electronic
information that may be in an indexed and/or searchable format. For
example, in one implementation, the electronic information store
680 may be used to store information related to instant messaging
online identities.
[0066] FIG. 7 illustrates a communications system 700 including a
user system 705 communicating with a provider system 710 through a
communications link 715. User system 705 typically includes one or
more user devices 720 and one or more user controllers 725 for
controlling the user devices 720. Provider system 710 typically
includes one or more provider devices 735 and one or more provider
controllers 740 for controlling the provider devices 735. The
communications link 715 may include communication pathways 750 and
755 that enable communications through the one or more delivery
networks 760.
[0067] Examples of each element within the communications system of
FIG. 7 are broadly described above with respect to FIG. 6. In
particular, the provider system 710 and communications link 715
typically have attributes comparable to those described with
respect to the provider system 610 and the communications link 615
of FIG. 6. Likewise, the user system 705 of FIG. 7 typically has
attributes comparable to and illustrates one possible
implementation of the user system 605 of FIG. 6.
[0068] The user device 720 typically includes a general-purpose
computer 770 having an internal or external storage 772 for storing
data and programs such as an operating system 774 (e.g., DOS,
Windows.TM., Windows 95.TM., Windows 98.TM., Windows 2000.TM.,
Windows Me.TM., Windows XP.TM., Windows NT.TM., OS/2, or Linux) and
one or more application programs. Examples of application programs
include authoring applications 776 (e.g., word processing programs,
database programs, spreadsheet programs, or graphics programs)
capable of generating documents or other electronic content; client
applications 778 (e.g., stand alone e-mail client or AOL client,
CompuServe client, AIM client, AOL TV client, or ISP client, all of
which may include a built-in or embedded e-mail or instant
messaging client) capable of communicating with other computer
users, accessing various computer resources, and viewing, creating,
or otherwise manipulating electronic content; and browser
applications 780 (e.g., Netscape's Navigator or Microsoft's
Internet Explorer) capable of rendering standard Internet content
and also capable of supporting a web-based e-mail client and a
web-based instant messaging client.
[0069] The general-purpose computer 770 also includes a central
processing unit 782 (CPU) for executing instructions in response to
commands from the user controller 725. In one implementation, the
user controller 725 includes one or more of the application
programs installed on the internal or external storage 772 of the
general-purpose computer 770. In another implementation, the user
controller 725 includes application programs stored in and
performed by one or more device(s) external to the general-purpose
computer 770.
[0070] The general-purpose computer also includes a communication
device 784 for sending and receiving data. One example of the
communication device 784 is a modem. Other examples include a
transceiver, a set-top box, a communication card, a satellite dish,
an antenna, or another network adapter capable of transmitting and
receiving data over the communications link 715 through a wired or
wireless data pathway 750. The general-purpose computer 770 also
may include a TV tuner 786 for receiving television programming in
the form of broadcast, satellite, and/or cable TV signals. As a
result, the user device 720 can selectively and/or simultaneously
display network content received by communications device 784 and
television programming content received by the TV tuner 786.
[0071] The general-purpose computer 770 typically includes an
input/output interface 788 for wired or wireless connection to
various peripheral devices 790. Examples of peripheral devices 790
include, but are not limited to, a mouse 791, a mobile phone 792, a
personal digital assistant 793 (PDA), a MP3 player (not shown), a
keyboard 794, a display monitor 795 with or without a touch screen
input, a TV remote control 796 for receiving information from and
rendering information to subscribers, and an audiovisual input
device 798.
[0072] Although FIG. 7 illustrates devices such as a mobile
telephone 792, a PDA 793, and a
[0073] TV remote control 796 as being peripheral with respect to
the general-purpose computer 770, in another implementation, such
devices may themselves include the functionality of the
general-purpose computer 770 and operate as the user device 720.
For example, the mobile phone 792 or the PDA 793 may include
computing and networking capabilities and function as a user device
720 by accessing the delivery network 760 and communicating with
the provider system 710. Furthermore, the user system 705 may
include one, some or all of the components and devices described
above.
[0074] The described systems, methods, and techniques may be
implemented in digital electronic circuitry, computer hardware,
firmware, software, or in combinations of these elements. Apparatus
embodying these techniques may include appropriate input and output
devices, a computer processor, and a computer program product
tangibly embodied in a machine-readable storage device for
execution by a programmable processor. A process embodying these
techniques may be performed by a programmable processor executing a
program of instructions to perform desired functions by operating
on input data and generating appropriate output. The techniques may
be implemented in one or more computer programs that are executable
on a programmable system including at least one programmable
processor coupled to receive data and instructions from, and to
transmit data and instructions to, a data storage system, at least
one input device, and at least one output device. Each computer
program may be implemented in a high-level procedural or
object-oriented programming language, or in assembly or machine
language if desired; and in any case, the language may be a
compiled or interpreted language. Suitable processors include, by
way of example, both general and special purpose microprocessors.
Generally, a processor will receive instructions and data from a
read-only memory and/or a random access memory. Storage devices
suitable for tangibly embodying computer program instructions and
data include all forms of non-volatile memory, including by way of
example semiconductor memory devices, such as Erasable Programmable
Read-Only Memory (EPROM), Electrically Erasable Programmable
Read-Only Memory (EEPROM), and flash memory devices; magnetic disks
such as internal hard disks and removable disks; magneto-optical
disks; and Compact Disc Read-Only Memory (CD-ROM). Any of the
foregoing may be supplemented by, or incorporated in,
specially-designed ASICs (application-specific integrated
circuits).
[0075] It will be understood that various modifications may be made
without departing from the spirit and scope of the claims. For
example, advantageous results still could be achieved if steps of
the disclosed techniques were performed in a different order and/or
if components in the disclosed systems were combined in a different
manner and/or replaced or supplemented by other components.
Accordingly, other implementations are within the scope of the
following claims.
* * * * *