Sign up to receive free email alerts when patent applications with chosen keywords are publishedSIGN UP

Abstract:

Communicating between electronic devices involves sending messages
between the electronic devices. An original message having an original
source indicator and an intended destination indicator identified is
sent. A reply to that original message is sent by the recipient of the
original message. The reply message has a reply source indicator and a
reply destination indicator. A communication based on the reply message
is sent. The communication based on the reply message has a reply source
indicator that is the same as the intended destination indicator
identified by the sender of the original message. In one example, a
message is sent from computer operating an instant messaging program and
forwarded to a mobile telephone. The reply sent from the mobile telephone
is provided to the sender of the original message without revealing the
telephone number of the mobile telephone to which the original instant
message was forwarded.

Claims:

1. A method for communicating using electronic devices, the method
comprising: receiving an original message having an original source
indicator and an intended destination indicator identified by a sender of
the original message; receiving a reply message to the original message
with the reply message having a reply destination indicator and a reply
source indicator that is different from the intended destination
indicator identified by the sender of the original message; and sending a
communication based on the reply message with the communication having a
reply source indicator that is the same as the intended destination
indicator identified by the sender of the original message.

2. The method of claim 1 further comprising replacing the reply source
indicator in the reply message with the intended destination indicator.

3. The method of claim 1 further comprising: determining whether the
reply source indicator is the same as the intended destination indicator;
and replacing the reply source indicator in the reply message with the
intended destination indicator only if the reply source indicator is
different from the intended destination indicator.

4. The method of claim 3 further comprising receiving an indication as to
whether the reply source indicator in the reply message is to be replaced
with the intended destination indicator, wherein replacing the reply
source indicator in the reply message with the intended destination
indicator only if the reply source indicator is different from the
intended destination indicator comprises doing so only in response to an
indication that the reply source indicator in the reply message is to be
replaced with the intended destination indicator.

5. The method of claim 4 wherein the indication as to whether the reply
source indicator is to be replaced is based on input entered by a sender
of the reply message.

6. The method of claim 1 further comprising enabling the display of the
communication based on the reply message.

7. The method of claim 1 further comprising sending a communication based
on the original message to a mobile device identified by a mobile
telephone number with the mobile device communication having a source
indicator that identifies a temporary telephone number and a destination
indicator that identifies the mobile telephone number of the mobile
device, wherein: receiving the original message comprises receiving an
original message that is sent using an instant message service, the
original source indicator comprises a screen name for an instant message
entity sending the original message, the intended destination indicator
comprises a screen name for an instant message entity who is an intended
recipient of the original message, the reply source indicator of the
received reply message comprises the mobile telephone number of the
mobile device, the reply destination indicator of the received reply
message comprises the temporary telephone number, and the reply source
indicator of the communication based on the reply message comprises the
screen name for the instant message entity who is the intended recipient
of the original message.

8. The method of claim 7 further comprising storing message session
information based on the communication sent to the mobile device
identified by the mobile telephone number.

9. The method of claim 1 wherein the original source indicator comprises
one of a screen name, a mobile telephone number, or a text message
address.

10. The method of claim 1 wherein the original source indicator is
associated with a sender having multiple identities within a
communication service, the method further comprising creating an
association between a primary identity associated with the sender and a
second identity associated with the sender and wherein: receiving the
original message having the original source indicator and an intended
destination indicator identified by the sender of the original message
comprises receiving an original message having an original source
indicator that identifies the primary identity and an intended
destination indicator identified by the sender of the original message
when the sender is signed on to the communication service as the second
identity.

11. The method of claim 1 wherein receiving an original message having an
original source indicator and an intended destination indicator
identified by a sender of the original message comprises receiving, from
a sending mobile telephone device associated with a sending mobile
telephone number, an original message to a destination mobile device
identified by a first destination telephone number with the original
message having a source indicator that identifies the sending mobile
telephone number of the sending mobile device and a destination indicator
that identifies the first destination telephone number of the destination
mobile device, the method further comprising forwarding the original
message to a second destination telephone number associated with the
destination mobile device, wherein: the reply source indicator of the
communication based on the reply message comprises the first destination
telephone number, and the reply destination indicator of the received
reply message comprises the mobile telephone number of the sending mobile
device.

12. A computer program product that, when executed, generates a graphical
user interface on a display device for using a computer service to
communicate, the graphical user interface comprising: a list of potential
message recipients selected by a user as significant to the user wherein:
a mobile device identifier is associated with at least one of the listed
potential message recipients, and a user account identifier is associated
with one or more of the listed potential message recipients; and an
instant message display for a reply message received in reply to an
original message sent to one of the listed potential message recipients,
wherein: the instant message display includes a sender address of the
reply message, and the sender address of the reply message is hidden if
the sender address is different from a destination address specified in
the original message to which the reply message is sent.

13. The computer program product of claim 12 wherein: the computer
service includes an instant messaging computer service, and the list
reflects presence information for each of the listed potential message
recipients identified by the user account identifier.

14. The computer program product of claim 12 wherein the sender address
of the reply message is replaced with the destination address specified
in the original message.

15. The computer program product of claim 14 wherein the sender address
of the reply message is replaced with the destination address specified
in the original message only if the sender address is different from the
destination address specified in the original message.

16. The computer program product of claim 15 wherein the sender address
of the reply message is replaced only in response to an indication that
the sender address of the reply message is to be replaced, the indication
being provided by a sender of the reply message.

17. The computer program product of claim 12 wherein: the reply message
is sent from a mobile telephone, the sender address of the reply message
is a mobile telephone number of the mobile telephone, and the sender
address of the reply message is replaced by a user account identifier
corresponding to the destination address specified in the original
message.

18. A system for communicating using electronic devices, the system
comprising: means for receiving an original message having an original
source indicator and an intended destination indicator identified by a
sender of the original message; means for receiving a reply message to
the original message with the reply message having a reply destination
indicator and a reply source indicator that is different from the
intended destination indicator identified by the sender of the original
message; and means for sending a communication based on the reply message
with the communication having a reply source indicator that is the same
as the intended destination indicator identified by the sender of the
original message.

Description:

CROSS REFERENCE TO RELATED APPLICATIONS

[0001] This application is a continuation of U.S. application Ser. No.
11/023,652 filed on Dec. 29, 2004, which is a continuation-in-part of
U.S. application Ser. No. 10/895,421, filed Jul. 21, 2004, and titled
"Enhanced Buddy List Using Mobile Device Identifiers," which claims the
benefit of 1) U.S. Provisional Application No. 60/488,376, filed Jul. 21,
2003, and titled "Client Software Enabling Communications Between A
Client Computer and Internet Service Provider Host Computers," and 2)
U.S. Provisional Application No. 60/488,749, filed Jul. 22, 2003, and
titled "Client Software Enabling Communications Between a Client Computer
and Internet Service Provider Host Computers--#2." This application is
also a continuation-in-part of U.S. application Ser. No. 10/723,040,
filed Nov. 26, 2003, and titled "Electronic Message Forwarding," and a
continuation-in-part of U.S. application Ser. No. 10/715,213, filed Nov.
18, 2003 and titled "Account Linking," which claims the benefit of 1)
U.S. Provisional Application No. 60/426,806, filed Nov. 18, 2002, and
titled "Software Enabling and Enhancing Communications and Functionality
At A Client Computer," 2) U.S. Provisional Application No. 60/427,566,
filed Nov. 20, 2002, and titled "IM Account Linking and Shadow Mail," and
3) U.S. Provisional Application No. 60/456,963, filed Mar. 25, 2003, and
titled "Account Linking." All of these applications are incorporated by
reference in their entirety.

TECHNICAL FIELD

[0002] This description relates to communicating using an instant
messaging system.

BACKGROUND

[0003] Users of an instant messaging service can communicate virtually in
real time with other instant messaging users. Users may manually create a
buddy list of user names of other users of the instant messaging service,
and may establish instant messaging sessions with those other members
using the buddy list.

[0004] Many people have multiple instant messaging accounts that they use
for different identities or personalities. Conventionally, people only
appeared online with one account at a time, unless multiple instant
messaging clients were run. Therefore, only the buddy list corresponding
to the account that was used to sign into the instant messaging system
was shown. Similarly, messages could only be sent to and from the account
that was used to sign in.

[0017] Like reference symbols in the various drawings indicate like
elements.

DETAILED DESCRIPTION

[0018] People use electronic devices, such as personal computers and
mobile telephones, to send electronic text messages between the
electronic devices. A person may send an original text message that has
an original source indicator and identifies the intended recipient using
an intended destination indicator. The original message may be forwarded
to an account of the recipient that is different from the intended
destination indicator identified by the message sender. The recipient may
access the message at the account to which the message was forwarded. The
sender does not necessarily need to be aware that the message was
forwarded, and does not necessarily need to know the account identifier
to which the message was forwarded. Later, a reply to that original
message may be sent by the person who received the original message. The
reply message (or a communication based on the reply message) has a reply
source indicator that is the same as the intended destination indicator
identified by the sender of the original message. Thus, the account
identifier (such as a screen name of an instant message user or a mobile
telephone number) to which the message is forwarded (and from which the
reply text message is generated) is hidden from the sender of the
original message.

[0019] In one example, a text message sent from a computer operating an
instant messaging program is forwarded to a mobile telephone. The reply
sent from the mobile telephone is provided to the sender of the original
message without revealing the telephone number of the mobile telephone to
which the original instant message was forwarded. In another example, a
text message sent from a mobile telephone to a mobile telephone number of
another mobile telephone is forwarded to an instant messaging account.
The reply from the instant messaging account provided to the sending
mobile telephone does not reveal the instant messaging account identifier
to which the text message was forwarded.

[0020] More generally with respect to instant messaging systems, a buddy
list is a user-definable list of other co-users (i.e., buddies) of an
online or network communications systems that enables the user to
perceive presence information and changes for the co-users in a unique
graphical user interface (GUI) and to track changes to presence status
for the co-users in substantially real-time automatically, where presence
indicates the status of the co-user with respect to the online or network
communications system. The buddy list also provides the user with a
mechanism to initiate communications (e.g., instant messages (IMs),
electronic mail (e-mail), chat, and other communications) with the
co-users. A user may create separate buddy lists of co-users, either with
intersecting or disjoint lists of users, and may label these buddy lists
according to the user's preferences or otherwise.

[0021] Each user account may have one or more buddy lists. When a user
logs on to a system, the user's set of buddy lists is presented to a
buddy list system. The buddy list system attempts to match co-users
currently logged into the system with the entries on the user's buddy
list. Any matches are displayed to the user. As co-users sign on and sign
off, a user's buddy list is updated to reflect these changes. An
indication also may be added to show that a co-user just signed on or
signed off the system.

[0022] In one exemplary implementation, a user may identify a mobile
telephone number to be added to the user's buddy list. The mobile
telephone number also may be assigned a surrogate identifier or alias
(e.g., a name) to be displayed on the user's buddy list to help the user
identify the identity associated with the mobile telephone number. A user
may address an instant message to the mobile telephone number that was
added to the buddy list in lieu of addressing an instant message to a
screen name.

[0023] In another exemplary implementation, a user may link multiple
accounts that are held by the user for use in a communications system,
such as an instant messaging system. Each of the multiple accounts held
by the same user may be identified by a different unique identifier
(e.g., a screen name, a number, a user identity, or another alphanumeric
string). By signing into one of the linked accounts, the linked accounts
all may appear to be signed into the communications system
simultaneously. The user can send and receive communications from each
linked account while appearing to other users as the particular identity
by which the other users know the user. As a result, the user appears to
be online more often and has the potential to receive more
communications.

[0024] A primary account is chosen by the user to sign in to the
communications system. After the primary account is authenticated, a
single graphical user interface (GUI) shows a buddy list, or a list
containing the users of the communications system with which
communications regularly occur, for the primary account and each of the
linked accounts. Thus, by signing onto a single account, the user's other
linked accounts also may be started. The GUI may separate the buddy lists
for the multiple linked accounts.

[0025] After authentication, communications to and from the account to be
linked may occur. A communication interface enables the specification of
a linked account from which the communications are sent to a recipient of
the communications. If the communications with the recipient from the
selected linked account are allowed to occur, the communications are
sent. Also, communications directed to any of the linked accounts may be
received and made perceivable to the user. When a message is received,
the account to which the message was sent is determined, and the response
to the message is configured to automatically send from that account.
Notifications of the status of users listed on the buddy lists for the
linked accounts are also presented. The notifications specify the account
whose buddy list contains the user whose status merited notification.

[0026] For illustrative purposes, FIG. 1 shows an example of a
communications system for implementing techniques for transferring
electronic data. 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.

[0027]FIG. 1 shows a communications system 100 that is capable of
delivering and exchanging data between a requestor system 105 and an
instant message provider system 110 through a communications link 115.
The communications system 100 may be used to send and receive instant
messages, and to forward a communication based on an instant message to a
mobile telephone device 170 through a cellular system 180. The
communications link 115 may include communications pathways 150 and 155
that enable communications through one or more delivery networks 160.

[0028] The requestor system 105 may include a client system, and the
provider system 110 may include a host system. The requestor system 105
typically includes one or more requestor devices and/or requestor
controllers (not shown), and the provider system 110 typically includes
one or more provider devices and/or provider controllers (not shown). For
example, the requestor system 105 or the provider system 110 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 requestor system 105 or the
provider system 110), or a combination of one or more general-purpose
computers and one or more special-purpose computers. The requestor system
105 and the provider system 110 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").

[0029] The requestor device (or the provider device) is generally capable
of executing instructions under the command of a requestor controller (or
a provider controller). The requestor device (or the provider device) is
connected to the requestor controller (or the provider controller) by a
wired or wireless data pathway that is capable of delivering data.

[0030] An example of a requestor controller or a provider controller is a
software application loaded on the requestor system 105 or the provider
system 110 for commanding and directing communications enabled by the
requestor system 105 or the provider system 110. 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 requestor system 105 or the provider system
110 to interact and operate as described. The requestor controller and
the provider 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 the
requestor system 105 or the provider system 110.

[0031] The provider system 110 may include a communication interface such
as an electronic mail gateway. For instance, the provider system 110 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 110 enables communications between the provider system 110 and
other systems through, for example, the communications link 115.

[0032] The provider system 110 includes an offline mobile proxy 140 and a
wireless server 145 configured to enable communications between the
client system 105 and a mobile telephone device 170 through a cellular
system 180.

[0033] The provider system 110 also includes a desktop instant messaging
server 130 that operates instant messaging server software configured to
process communications sent from and received by users of an instant
messaging service. In particular, the desktop instant messaging server
130 is configured to exchange instant messages and communications related
to the instant message service between the client system 105 and the
provider system 110 over the communication link 115. The desktop instant
messaging server 130 itself may be substantially similar to, or may be,
an implementation of the provider system 110. In one implementation, the
desktop instant messaging server 130 may include an ability to link
multiple screen names belonging to a single user account, though the
desktop instant messaging server 130 need not necessarily be able to do
so. The desktop instant messaging server 130 includes privacy control
information 130A that is used to determine whether a message (or a
portion thereof) should be provided to an intended recipient. The privacy
control information 130A may be applied to instant messages and/or text
messages sent from the wireless server to the mobile telephone device 170
through the cellular system 180. For example, the privacy control
information 130A may include rules identified by a user that are applied
by an account associated with the user when receiving instant messages or
text messages. Undesired words may be entered into privacy control
information associated with the user and messages including those words
may be blocked or the words deleted from the message, as determined by
the user.

[0034] The desktop instant messaging server 110 also includes code
segments 130B that enable a user to configure a buddy list associated
with an instant messaging screen name. More particularly, the code
segments 130B enable a user to identify a screen name or other type of
instant messaging identifier (such as an ICQ Number or a user account
identifier) to be added to the user's buddy list, as described more fully
below. The code segments 130B also enable a user to identify a mobile
telephone number to be added to the user's buddy list. The mobile
telephone number also may be assigned a surrogate identifier or alias
(e.g., a name) to be displayed on the user's buddy list to help identify
the identity associated with the mobile telephone number. An instant
message may be addressed to the mobile telephone number in lieu of
addressing an instant message to a screen name, as described more fully
below.

[0035] The desktop instant messaging server 130 also includes code
segments 130C to enable a user to configure the user's instant messaging
account. In particular, the code segments 130C enable a user to identify
a mobile telephone number to be associated with the user's instant
messaging user account. The mobile telephone number is stored in
association with the user account in a user-device registry 135. The code
segments 130C also enable a user to optionally request that instant
messages be forwarded as text messages to the user's mobile telephone
number when the user is offline--that is, not signed in to the instant
messaging service.

[0036] The provider system 110 also includes an offline mobile proxy 140
that represents the online presence and/or availability of a user of the
instant messaging system when the user is offline, thus enabling
communications to offline users via alternative communication schemes
(e.g., SMS text messaging), even if an instant messaging service is
configured to restrict messaging to users who reflect online presence.
The offline mobile proxy 140 represents to the desktop instant messaging
server 130 that the user is capable of receiving an instant message when
the user is actually offline. Accordingly, when the user is offline, the
user's availability may be perceived by others and messages sent to them
may be received using an alternative communications scheme (e.g., SMS
text messaging). For instance, an offline user who has registered a
mobile device (e.g., a cellular telephone) as available to receive
messages while the user is otherwise offline remains listed as available
for messaging on the buddy lists of users who subscribe to the user's
online presence. Moreover, an instant message intended for an offline
user is received by the desktop instant messaging server 130 and provided
to the wireless server 145, which communicates a text message based on
the original instant message to the mobile telephone device 170
associated with the offline user. The text message is communicated from
the wireless server 145 to the mobile telephone device 170 thorough the
cellular system 180.

[0037] The offline mobile proxy 10 includes code segments 140A to manage
online presence information. When the desktop instant messaging server
130 detects that a user has signed off the instant messaging service, the
desktop instant messaging server 130 communicates the status of the user
to the offline mobile proxy 140, which executes code segment 140A to
indicate to the desktop instant messaging server 130 that the user is
online. In one implementation, the offline mobile proxy 140 also executes
code segment 140A to update, or enable the update of, the screen name
associated with a user to show a mobile indicator adjacent to the user's
screen name on each of the buddy lists that include the user's screen
name. The mobile indicator indicates that the user is available at the
user's mobile device to receive messages generated through manipulation
of the buddy list in the ordinary manner, and also indicates that the
user is not logged on to the desktop instant messaging service, as
described more fully with respect to FIGS. 2A-2D.

[0038] The offline mobile proxy 140 also includes code segments 140B that
may be executed by the offline mobile proxy 140 to determine whether to
forward an instant message sent to the mobile telephone device 170
associated with the intended recipient of the original instant message.
In one example, the offline mobile proxy 140 executing the code segments
140B may determine whether a user is associated with a mobile telephone
number (such as by accessing user-device registry 135), and, if so,
whether instant messages should be forwarded to the mobile telephone
number conditionally based on a user state (e.g., offline) or request, or
unconditionally (e.g., by mirroring all messages to the mobile
telephone). Accordingly, the offline mobile proxy 140 executing the code
segments 140B may determine to forward the instant message only when the
user is offline, or it instead may determine to forward the instant
message only when the user has configured the user's account to forward
instant messages. In yet another example, the offline mobile proxy 140
executing the code segments 140B may determine that an instant message
should be forwarded to a mobile device when the instant message is
addressed to a mobile telephone number or addressed to a name that is
assigned to a mobile telephone number. In any event, when the offline
mobile proxy 140 determines that an instant message is to be forwarded to
a mobile device, the instant message is provided to the wireless server
145.

[0039] The wireless server 145 includes code segments 145A configured to
create message session entries for original instant messages and to store
such message session entries in the message session information in a data
store 145B. The message session entry data store 145B may be transient or
persistent storage. The message session information may include a sender
screen name, a recipient screen name, a temporary reply telephone number
assigned by the wireless server 145 to facilitate a reply to the text
message sent to the mobile telephone device 170, and a recipient mobile
telephone number. The sender screen name and a recipient screen name are
obtained from the original instant message received by the wireless
server 145. The temporary reply telephone number is assigned by the
wireless server 145 from a pool of temporary telephone numbers. The
temporary reply telephone number may be in the form of a short code--that
is, a number of lesser or greater digits than conventional telephone
numbers, which nevertheless indicate a destination to the wireless server
145. When the temporary reply telephone number is such a short code, the
cellular system 180 also may include a process for routing a text message
that is sent to one of the short codes assigned by the wireless server
145 to the provider system 110. In contrast, the temporary reply
telephone number may be a full-length traditional telephone number, or
another routing code useful to enable the cellular system 180 to route
the text message to the provider system 110.

[0040] The wireless server 145 also includes code segments 145C configured
to prepare, based on an original instant message, a text message that is
based on the short message service (SMS) protocol, which is particularly
useful in communicating short text messages with mobile devices, such as
mobile telephones. The code segments 145C include addressing operations,
such as using the user-device register 135 to identify the mobile
telephone number of the recipient identified in the instant message,
address the text message to the identified mobile telephone number, and
use the temporary reply telephone number as the source address in the
text message to which replies to the text message are routed in the form
of text messages. The code segments 145C also may include operations to
convert the instant message to a different character set that is used by
the text message. For example, an instant message may use an ASCII
character set or a Unicode character set, whereas the text message may
use a GSM ("Global System for Mobile Communications") character set. In
such a case, the code segments 145C are configured to convert the instant
message from the ASCII or Unicode character set to the GSM character set.

[0041] Similarly, the wireless server 145 also includes code segments 145D
configured to prepare an instant message that corresponds to a reply text
message sent from the mobile telephone device 170 in response to the text
message based on the original instant message. The code segments 145D may
include code segments configured to convert the character set of the
message from a character set used by the text message service to the
character set used by the instant message service. The code segments 145D
also may include addressing operations, which include replacing the
destination address of the reply text message with the instant messaging
account name of the sender of the original instant message. This may be
accomplished by accessing the message session entry created when the
original instant message was forwarded as a text message to the mobile
telephone device 170. For example, the message session information may be
identified through the use of the temporary reply telephone number
assigned as the destination address of the reply text message. In
particular, a message session entry may be identified in which the
temporary reply telephone number of the entry corresponds to the
destination address of the reply text message and the destination
telephone number of the entry corresponds to the source address of the
reply text message. Using both the temporary reply telephone number and
the destination telephone number collectively to identify the message
session entry may be useful to enable the concurrent assignment of the
same temporary telephone number for multiple text messages, which, in
turn, may help to reduce the number of temporary telephone numbers needed
by the wireless server 145.

[0042] The code segments 145D also are configured to determine a source
address to use for the reply instant message. In particular, the code
segments 145D include addressing operations to determine a source
address, and thus a sender identifier, to associate with the reply
instant message for perception by a recipient of the reply instant
message. The source address may be determined based on the recipient
indicator identified by the sender in the original message such that the
sender is only presented with identity information available to the
sender at the time when the original message was sent.

[0043] In a first illustrative example, if an instant message initially
specified a screen name as its destination address, replies to that
forwarded instant message similarly specify the screen name as the reply
source address, even if the replies originate from a mobile device as SMS
text messages. In a second illustrative example, if a forwarded instant
message initially specified a telephone number as its destination
address, replies to that instant message similarly specify the telephone
number as the reply source address.

[0044] In addition or alternatively, the source address to be reflected
for a reply message may be determined, at least in part, based on
information other than the destination address of the original instant
message specified by the reply recipient, which is determined as
available to the reply recipient, for example, through an inspection of
the recipient's address book or buddy list. As such, the actual source of
the reply (e.g., mobile telephone number or screen name) may not be
hidden from users who otherwise are aware of such information. In fact,
it may be advantageous to reveal the actual reply source in addition to
the destination address specified by the reply recipient in the original
message, so as to reveal information about the reply source while
providing the reply recipient some continuity and understanding of the
nature of the message as a reply to the original message. For example,
the instant message interface may reveal an indication formatted as
follows: "<screen name specified by reply recipient in their original
message> (mobile telephone number actually used to generate
response)<mobile telephone number>:" or "screen name (sent by
555-1212):". The process of determining a source address to use as the
displayed sender indication of an instant message display for the reply
instant message is described more fully below.

[0045] The communications link 115 typically includes a delivery network
160 that provides a direct or indirect communication between the
requestor system 105 and the provider system 110, irrespective of
physical separation. Examples of a delivery network 160 include the
Internet, the World Wide Web, WANs, LANs, analog or digital wired and
wireless telephone networks (e.g., PSTN, ISDN, and various forms of DSL),
radio, television, cable, satellite, and/or any other delivery mechanism
for carrying data. The communications link 115 may include communication
pathways 150 and 155 that enable communications with the delivery network
160. Each of the communication pathways 150 and 155 may include, for
example, a wired, wireless, cable or satellite communication pathway.

[0046] The mobile telephone device 170 is associated with a mobile
telephone number to which telephone calls may be routed over the cellular
system 180. The mobile telephone device 170 also may be associated with a
SMS address that typically is the same as the mobile telephone number
associated with the mobile telephone device 170, though this need not
necessarily be so. The mobile telephone device 170 is capable of
receiving, displaying, processing, and sending text messages over the
cellular system 180.

[0047] The cellular system 180 may include a cellular network that is
capable of transmitting and receiving digital or analog signals using
cellular technologies, including Advanced Mobile Telephone System (AMPS),
Narrowband Advanced Mobile Telephone Service (NAMPS), Frequency Shift
Keying (FSK), Frequency Division Multiple Access (FDMA), Time Division
Multiple Access (TDMA), and Code Division Multiple Access (CDMA), or any
standard, such as Global System for Mobile Communications (GSM) or
Cellular Digital Packet Data (CDPD). Alternatively, the cellular system
180 may be any type of telephone network capable of transmitting text
messages to any type of telephone or mobile device.

[0048] In general, the communications system 100 may be used to send an
instant message sent from the client system 105 to the provider system
110, which transforms the instant message to a corresponding text message
that is routed over the cellular system 180 to the mobile telephone
device 170. The original instant message may be addressed to a mobile
telephone number of the mobile telephone device 170, or the original
instant message may be addressed to a screen name and forwarded to the
mobile telephone device 170 based on an association, in the user-device
registry 135, between the screen name and the mobile device, and based
further on detection of offline status of the mobile device user. Also,
the original instant message may be addressed to a screen name that is
linked to another screen name, which, in turn, is associated with the
mobile telephone number of the mobile telephone device 170.

[0049] The user of the mobile telephone device 170 may reply, or respond,
to the received text message. The reply text message is sent over the
cellular system 180 to the provider system 110. The provider system 110
transforms the reply text message to a reply instant message that is
presented to the sender of the original instant message. The sender
indication displayed for the reply instant message is the same as the
recipient indication selected by the sender for the original instant
message. Thus, the only addressing or account information revealed to the
sender of the original instant message is the information available to
the sender of the original instant message. In some cases, the source of
a reply message, such as the reply text message or the reply instant
message, is disguised, hidden or obfuscated so that the addressing or
account information unknown to the sender is not revealed to the sender.

[0050] Referring to FIGS. 2A-2C, interfaces 200A-200C are displayed for
configuring a buddy list associated with user of a communications system.
The interfaces 200A-200C may be displayed, for example, when a process to
add a new buddy to a buddy list is initiated by a user and executed by a
processor. More particularly, FIG. 2A displays an interface 200A for
adding a new entity as a buddy on a user's buddy list. The interface 200A
includes an option 210A to add an entity identified by a screen name, an
ICQ number or some other type of instant messaging identifier, and an
option 215A to add an entity identified by a mobile telephone number to
the buddy list associated with the user.

[0051] An entity identified by a instant message identifier may be
referred to as an instant message entity or a potential message
recipient. An entity identified by a mobile telephone number may be
referred to as a mobile telephone entity, a mobile telephone buddy, a
cell phone buddy, or a potential message recipient. Each of the options
210A and 215A is selectable by the user using selection indications
associated with the option 210A or 215A, respectively, to identify the
type of entity (e.g., a mobile telephone entity or an instant messaging
entity) to be added as a buddy to the buddy list.

[0052] When the user selects to save the entry and thus add an instant
messaging entity to the user's buddy list, the interface 200A includes an
entry portion 220A to which the user may identify the instant messaging
identifier of the entity. The interface 200A also includes a control 225A
to add the entity entered in the entry portion 220A to the user's buddy
list and to close the interface 200A. The interface 200A also includes a
control 230A to cancel and thus close the interface 200A without adding
an entity to the buddy list.

[0053]FIG. 2B displays an interface 200B for adding a new entity
identified by a mobile telephone number as a buddy. As shown, when the
user selects to add a cell phone number to the user's buddy list by
selecting the cell phone number option 215B, the interface 200B includes
an entry portion 220B to which the user may enter the cell phone number
to be added to the user's buddy list. The entry portion 220B is
partitioned into separate sections that correspond to parts of a
telephone number, though the entry portion 220B need not necessarily be
partitioned. In some implementations, the same entry portion may be used
to enter an instant message entity and a mobile telephone number entity.

[0054]FIG. 2C displays an interface 200C that presents a message 210C to
the user, indicating that the mobile telephone number has been saved as a
buddy on the user's buddy list. The interface 200C also presents a name
entry portion 250C configured to accept user input of text to be assigned
as a name to be displayed in the buddy list for the mobile telephone
number entered in interface 200B. It is important to note that the name
displayed for the mobile telephone number is not linked to or otherwise
associated with a screen name for a user. Thus, the entry of a mobile
telephone number on a user's buddy list may help to enable an instant
message user to send an instant message to an entity that is not
otherwise configured to use instant messaging services wherein the
processor is further configured to use instant messaging services other
than those used by the sending instant message user, which may or may not
be compatible/integrated with the instant message services used by the
sending instant message user. Moreover, entry of this mobile information
enables instant message communications with users whose screen names are
unknown to the sender, even if they subscribe to a common and/or
compatible/integrated instant message service.

[0055] Referring to FIG. 2D, a buddy list interface 200D is displayed for
a user of a communication system capable of sending instant messages to a
mobile telephone number that is not associated with a user of the instant
messaging service. The buddy list interface 200D includes a buddy list
for each linked account for an entity having screen name AIMUIUser.

[0056] In one exemplary implementation, only one account's buddy list 202a
is shown at a time. The buddy list 202a includes one or more screen
names. For example, the buddy list 202a includes, among other screen
names, the screen name 204a, BHeikes8. The screen names are used to
address communications to and from the specified accounts. The screen
names may be separated into one or more groups. Each group is listed with
a name, a number of people from the group that are currently logged in to
the communications system, and the total number of people in the group.
For example, group 206a is named AIM, and seven out of the eleven members
of the group are logged in to the communications system (as shown by the
numbers following the name of the group).

[0057] The buddy list interface 200D includes tabs 208a-208e that can be
used to access the buddy lists for the various linked accounts. There is
one tab for each of the linked accounts. For example, tab 208a is for an
account named AIMUIUser, tab 208b is for an account named AOLMember, tab
208c is for an account named AIMUser, tab 208d is for an account named
AIMUser2, and tab 208e is for an account named PersonalsUser@love.com, an
account from a partner domain. The buddy list for an account is displayed
when the tab for that account is selected. For example, the buddy list
202a is displayed because the tab 208c for the account named AIMUser has
been selected.

[0058] A setup button 210 allows for configuration of the currently
displayed buddy list. Selecting the setup button 210 enables the addition
and deletion of screen names, such as screen name 204a, and groups, such
as group 206a, to the buddy list 202 that is currently displayed. In one
implementation, adding a screen name to a buddy list of a linked account
causes the screen name to be added to the buddy lists of the other linked
accounts. After selecting a screen name 204 from the buddy list,
selecting an IM button 212 causes display of an interface for
communicating with the account corresponding to the selected screen name.
In one implementation, the user may be given an option to add one or more
linked accounts.

[0059] The buddy list 202a includes a mobile telephone entity 205D for
which the mobile telephone number is displayed as the entity identifier.
The buddy list 202a also includes a mobile indicator 207D that indicates
that a mobile telephone number is the only known means for contacting the
entity associated with the name (here, BMVassallo) adjacent to the mobile
indicator 207D. Thus, BMVassallo is an alias for a mobile telephone
number that is not associated with an instant message account or screen
name.

[0060] The buddy list 202a also includes a mobile indicator 210D adjacent
to an instant message entity listed on the buddy list 202a and positioned
to reflect that the user account for Steve Clark is configured to send
instant messages sent by the Steve Clark entity to a mobile telephone
number associated with the instant message account of the Steve Clark
entity because the Steve Clark entity is offline.

[0061] In one implementation, the indicator 220D shows that the user
account for the AIMUIUser is configured to send instant messages sent by
the AIMUIUser entity to a mobile telephone number associated with the
instant message account of the AIMUIUser when the AIMUIUser entity is
offline. In particular, the indicator 210D indicates that "Mobile IM is
enabled" for the AIMUIUser entity. This may be useful to remind the user
that the user's account is configured to forward instant messages to a
mobile telephone when the user is offline. In another implementation, the
indicator 220D may be used to reflect whether an instant message account
for an entity included in the buddy list 202a is configured to send
instant message sent to the entity to a mobile telephone number
associated with the instant message account for the buddy. Thus, the
indicator 220D may be used to reflect the instant message mobile
forwarding capability associated with a buddy when the buddy is selected
on the buddy list 202a. In this other implementation, the indicator 220D
would not appear in the interface 200D when a buddy selected on the buddy
list 202a has not enabled a mobile forwarding capability for the selected
buddy's instant message account.

[0062]FIG. 3 illustrates a process 300 for communicating between two
electronic devices, such as a client system of an instant messaging
service and a mobile telephone device capable of receiving, processing,
displaying and transmitting text-messages. The process 300 may be
performed, for example, by a processor on the provider system 110 of FIG.
1.

[0063] The process 300 begins when a user creates an original message that
includes a source indicator and an intended destination indicator and the
original message is received by the provider system (step 310). The user,
who may be referred to as a sender, may create the message using an
instant messaging application to identify a buddy from within the user's
buddy list as the intended destination indicator. Accordingly, the
intended destination indicator may be, for example, a screen name or a
mobile telephone number of an entity listed on the sender's buddy list.
Alternatively, the original message may be a text message created by the
sender using mobile telephone device configured for text messaging, as
described later.

[0064] Subsequently, the provider system receives a reply message from the
intended recipient of the original message (step 320). The reply message
includes a reply source indicator that indicates an address from which
the reply was sent and a reply destination indicator that indicates an
address to which the reply is destined. For example, the reply message
may be a text message sent by the mobile telephone device to which the
original message was delivered.

[0065] The provider system optionally determines whether the reply source
indicator of the reply message is the same as the intended destination
indicator and takes appropriate action based on that determination (step
330). For example, the provider system may access a message session entry
that corresponds to the communication and compare the reply source
indicator with the destination indicator of the original message
received. When the reply source indicator is different from the
destination indicator, the provider system may replace the reply source
indicator in the reply message with the destination indicator of the
original message; otherwise, the provider system need not necessarily
take any action.

[0066] The provider system sends a communication based on the reply
message with the communication having a reply source indicator that is
the same as the intended destination indicator identified by the sender
of the original message (step 340). For example, the provider system may
create an instant message based on a text message sent from the mobile
telephone device. The instant message is sent to the destination
indicated in the received reply message or a destination that corresponds
to the destination indicated in the received reply message, as described
later with respect to FIGS. 5A-7.

[0067] In some implementations, the provider system may replace the reply
source indicator with the destination indicator of the original message
without first determining whether such action is needed as described
previously with respect to step 330. However, when the reply source
indicator is the same as the destination indicator, the provider system
may be replacing the reply source indicator unnecessarily. In some
instances, it may be more efficient for the provider system to always
replace the reply source indicator in lieu of determining whether the
replacement is necessary.

[0068] The provider system optionally enables the display of the
communication based on the reply message (step 350). This may be
accomplished, for example, by having the provider system send an instant
message to the client system for display by the instant messaging
application on the client system.

[0069] Alternatively or additionally, whether the mobile telephone number
to which an instant message has been forwarded is revealed in a reply
message may be controlled based on a user preference. In one example, a
user preference for a user account may indicate whether the user
associated with the user account desires to reveal a mobile telephone
number. In another example, a user may be prompted when sending a reply
to an instant message that has been forwarded to determine whether the
mobile telephone number is to be revealed in the reply. When the user
wishes to reveal the mobile telephone number, the source indicator of the
reply instant message indicates the mobile telephone number to which the
original instant message was forwarded and from which the reply message
originated. This may be accomplished by using the destination mobile
telephone number in the message session entry as the source indicator of
the reply instant message. Alternatively, the source indicator of the
reply instant message may correspond to the source address in the reply
instant message.

[0070] Before discussing additional detail regarding the method by which
an instant message is communicated to a mobile telephone enabled with
text messaging, an example format that may be used for a message session
information entry is described with respect to FIG. 4. FIG. 4 shows an
example data structure 400 for a message session information entry in
simplified form. The data structure 400 includes a message session
identifier 410 to uniquely identify each entry in the message session
information. The data structure 400 also includes an original sender 420
that identifies an original source indicator of the original instant
message sent by the sender, and an original recipient 430 that identifies
an intended destination indicator for the original instant message.

[0071] The data structure 400 also includes a temporary reply telephone
number 440 that may be used as a source indicator in text messages sent
to a mobile telephone device based on an instant message directed to
recipient 430. The temporary reply telephone number 440 also may be used
as a destination indicator for a reply text message sent from the mobile
telephone device in response to text messages sent to the mobile
telephone device based on the original instant message.

[0072] The data structure 400 also includes a destination mobile telephone
number 450 that identifies the destination mobile telephone device of a
text message sent to the mobile telephone device based on the original
instant message. The destination mobile telephone number 450 may be used
as a destination indicator in a text message sent to a mobile telephone
device based on a mobile telephone number that is associated with the
recipient 430 of the original instant message. Alternatively, the
destination mobile telephone number 450 may correspond to the mobile
telephone number specified in the buddy list entry or input by command
line entry, for example, when the original instant message is directed to
a mobile telephone identity such as mobile telephone identity 205D of
FIG. 2 or sent using a dialog box or command line entry to specify a
mobile telephone number as the destination address for a message
initiated via instant messaging.

[0073] The data structure 400 also may include an indication 460 of a
destination type of the original instant message (e.g., whether the
message is directed to an instant message account entity (such as a
screen name) or a mobile telephone entity). The indication 460 also may
be referred to as a destination flag. An indication of the type of
original destination may be discerned from information other than the
indication 460, enabling confirmation or elimination of indication 460.
For example, some implementations may include a destination mobile
telephone number 450 only when the recipient 430 is an instant message
entity and the recipient account is associated with a mobile telephone
number to which instant messages are to be sent as text messages. In such
a case, a determination of the type of entity that is associated with the
destination of the original instant message may be based on whether the
destination mobile telephone number 450 is filled in for the entry.
Stated differently, some implementations may fill in the destination
mobile telephone number 450 only when the recipient 430 is an instant
message entity (and is not a mobile telephone entity); otherwise, the
destination mobile telephone number 450 is not filled in (when the
recipient 430 is a mobile telephone entity).

[0074] The data structure 400 also may include a creation timestamp 470 or
other indication of when the message session entry was created, the age
of the entry, or a time when the entry is to expire. The creation
timestamp 470 may be useful to guide the deletion, expiration, or purging
of aging message session entries in message session information.

[0075] FIGS. 5A-5F show a process 500 by which a client system
communicates an instant message through an instant messaging provider
system to a mobile telephone that is enabled with text messaging
capabilities, and by which a reply to the instant message is returned to
the client system. The process 500 involves a client system 505, an
instant messaging provider system 510, a cellular system 580, and a
mobile telephone 570 enabled with text messaging capabilities. The client
system 505 may be an implementation of the requestor system 105 of FIG.
1. The instant messaging provider system 510 may be an implementation of
the instant messaging provider system 110 of FIG. 1. The cellular system
580 may be an implementation of the cellular system 180 of FIG. 1. The
mobile telephone 570 may be an implementation of the mobile telephone
device 170 of FIG. 1.

[0076] In general, the process 500 enables an instant message sent by the
client system 505 to be received and processed by the instant messaging
provider system 580, which, in turn, sends a text message based on the
instant message to the mobile telephone 570 over the cellular system 580.
A user associated with the mobile telephone 570 replies to the text
message received by the mobile telephone 570. The reply text message is
sent from the mobile telephone 570 over the cellular system 580 to the
instant messaging provider system 580. The instant messaging provider
system 580 sends to the client system 505 a reply instant message based
on the reply text message received from the mobile telephone 570. The
reply instant message includes the intended destination of the original
instant message as the source indicator of the reply instant message.
Thus, the source indicator of the reply instant message prevents
disclosure of any information that was not previously available to, and
used by, the sender of the original instant message. This may be useful,
for example, to protect a mobile telephone number associated with the
intended recipient of the original instant message from being revealed to
the sender of an instant message when the instant message is forwarded to
the recipient's mobile telephone number by the instant messaging provider
system 580.

[0077] More particularly, a user associated with the client system 505
identifies an intended recipient of the instant message by selecting an
entity from the user's buddy list and enters text for the instant
message, which is received by the client system 505 (step 520CL). The
instant message, as described previously, includes a source indicator of
the instant message that indicates that the instant message is sent from
the sender's instant message account. This may be accomplished by
identifying the sender's screen name as the source indicator. The instant
message also includes a destination indicator that identifies the entity
selected from the user's buddy list. The selected entity may be a mobile
telephone entity for which a mobile telephone number, rather than an
instant message user account, is identified as the destination address of
the instant message. Alternatively, the selected entity may be an instant
message entity for which a user account of the instant message service is
identified as the destination address of the instant message. The client
system 505 sends the instant message, which may be referred to as an
original instant message, to the instant messaging provider system 580
(step 522CL).

[0078] The instant messaging provider system 510 receives the instant
message (step 522PS) and detects the mobile presence of the intended
recipient of the instant message (step 52PS). Detecting mobile presence
may include determining whether the instant message needs to be routed as
a text message to a mobile telephone, and determining whether the
original instant message is addressed to a mobile telephone entity (e.g.,
a mobile telephone entity was selected by the sender of the original
instant message), which implies the need to route the original instant
message as a text message to the mobile telephone. When the original
instant message is addressed to an instant message entity (e.g., a screen
name), the mobile presence of the intended recipient may be detected
based on the offline status of the instant message entity that has
configured the user's instant message account to forward instant messages
to a mobile telephone number. In some implementations, the detection of
mobile presence of the intended recipient may be determined merely by
querying on-line presence information to determine whether the user
account is associated with a mobile indicator, as previously described.

[0079] In response to detecting the mobile presence of the intended
recipient (step 524PS), the instant messaging provider system 510
determines a mobile telephone number of the intended recipient (step
526PS). This may be accomplished, for example, by accessing a user-device
registry, such as user-device registry 135 of FIG. 1, that associates a
mobile telephone number with a user account when an instant message
entity is the intended recipient of the original instant message. In
contrast, when a mobile telephone entity is the intended recipient of the
original instant message, the mobile telephone number of the entity may
be determined directly from the entity.

[0080] The instant messaging provider system 510 also determines a
temporary reply telephone number for the text message (step 528PS), as
described previously.

[0081] The instant messaging provider system 510 creates an entry of
message session information that corresponds to the original instant
message (step 530PS). Using the data structure 400 as an example, a
message session identifier 410 is assigned to uniquely identify the
message session entry, the sender indication of the original instant
message is stored as the original sender 420, the intended destination is
stored as the original recipient 430, the temporary reply telephone
number is stored as the temporary reply telephone number 440, and the
determined mobile telephone number is stored as the destination mobile
telephone number 450 in the message session entry. Thus, in this example,
when the intended recipient of the original instant message is a mobile
telephone entity, the original recipient 430 and the destination mobile
telephone number 450 both reflect the same mobile telephone number. When
the intended recipient of the original instant message is an instant
message entity, the original recipient 430 is the screen name of the
intended recipient and the destination mobile telephone number 450 is the
mobile telephone number to which the user associated with the screen name
desires instant messages to be forwarded. The indication 460 of the
destination type also is set to indicate that a screen name was
identified as the recipient by the sender of the original instant message
when the intended recipient of the original instant message is an instant
message entity. In contrast, when the intended recipient of the original
instant message is a mobile telephone entity, the indication 460 is set
to indicate a mobile telephone number was identified as the recipient by
the sender of the original instant message.

[0082] Referring also to FIG. 5B, the instant messaging provider system
510 creates a text message based on the instant message using the
determined mobile telephone number as the destination address and using
the temporary reply telephone number as the source address (step 532PS).
The instant messaging provider system 510 then sends the text message to
the cellular system 580 (step 534PS), which, in turn, receives and sends
the text message to the mobile telephone 570 (step 534CES).

[0083] The mobile telephone 570 receives the text message and enables a
user of the mobile telephone 570 to review and respond to the text
message (step 534MT). The mobile telephone 570 receives, from user input,
reply text (step 536MT).

[0084] Referring also to FIG. 5c, the mobile telephone 570 creates a reply
text message using the reply text as the message text, using the mobile
telephone number as the reply source address, and using the temporary
reply telephone number as the reply destination address (step 538MT). As
is conventional, the reply text message uses the source address of the
text message (here, the mobile telephone number of the mobile telephone
570) as the destination address of the reply text message. The reply text
message uses the destination address of the text message (here, the
temporary reply telephone number) as the source address of the reply text
message. The mobile telephone 570 then sends the reply text message to
the cellular system 580 (step 540MT), which, in turn, receives and
forwards the reply text message to the instant messaging provider system
510 (step 540CES). For example, the cellular system 580 may determine
that the reply text message is to be forwarded to the instant messaging
provider system 510 based on the temporary reply telephone number in the
reply text message.

[0085] The instant messaging provider system 510 receives the reply text
message (step 540PS) and creates a reply instant message based on the
reply text message by using the message text as the message text of the
instant message (step 542PS).

[0086] Referring also to FIG. 5D, the instant messaging provider system
identifies an entry in the message session information that corresponds
to the original instant message that inspired the reply text message
(step 544PS). The entry is identified based on the mobile telephone
number in the source address of the reply text message and the temporary
reply telephone number in the destination address of the reply text
message (step 544PS). This may be accomplished, for example, by searching
message session information for an entry that has a temporary reply
telephone number 440 that corresponds to the destination address of the
reply text message and a destination mobile telephone number 450 that
corresponds to the source address of the reply text message.

[0087] The instant messaging provider system 510 then uses the message
session entry to determine whether the destination of the original
instant message was identified by the sender as an instant message
account or a mobile telephone number (step 546PS). To do so, the instant
messaging provider system 510 may access the indication 460 of the
destination in the message session entry or, alternatively, the instant
messaging provider system 510 may access the destination mobile telephone
number4 450 of the message session entry, as described previously.

[0088] Referring also to FIG. 5E, when the original instant message was
directed by the sender to an instant message entity, the instant
messaging provider system 510 uses the recipient 430 of the message
session entry as the source address of the reply instant message that
corresponds to the reply text message (step 548PS). In contrast, when the
original instant message was directed by the sender to a mobile telephone
entity, the instant messaging provider system 510 uses the destination
mobile telephone number 450 of the message session entry as the source
address of the reply instant message that corresponds to the reply text
message (step 550PS). In this case, when the text message was not
forwarded by the cellular system to a different mobile telephone number
(as may occur, for example, if the mobile telephone 570 had enabled call
forwarding to forward the text message to another mobile telephone
number), the destination mobile telephone number 450 is the same as the
source address of the reply text message received by the instant
messaging provider system 510.

[0089] In some implementations, in lieu of steps 544PS-548PS being
performed, the instant messaging provider system 510 uses the original
recipient 430 as the source address of the reply text message received by
the instant messaging provider system 510. Thus, when the original
recipient is a mobile telephone entity, the source address indicates the
mobile telephone of the mobile telephone entity. When the original
recipient is an instant message entity, the source address indicates the
screen name of the instant message entity and does not indicate the
mobile telephone number to which the instant message was forwarded.

[0090] Referring also to FIG. 5F, the instant messaging provider system
510 then sends the reply instant message to the client system (step
552PS). The client system, in turn, receives and displays the reply
instant message for the sender of the original instant message (step
552CS).

[0091] FIGS. 6 and 7 illustrate exemplary messages that may be sent, for
example, using the process 500 of FIG. 5. FIG. 6 shows a flow 600 of
exemplary messages inspired by an instant message sent from a client
system and directed to an instant message account (e.g., screen name). A
message session entry 615 having message session information is created
as part of the process during which the messages are created and
processed. The entry 615 is not part of the message flow 600 but is used
to create and process messages in the flow 600.

[0092] The flow 600 of exemplary messages includes a message 610 that
represents an original instant message sent by a sender from an instant
message client system to an instant messaging provider system. The
original instant message 610 is directed to a screen name that
corresponds to an instant message account for which mobile instant
message forwarding is enabled. In particular, the screen name to which
the original instant message is directed is "Steve Clark," which may
correspond to the buddy 210D in the buddy list 200D of FIG. 2D. The
screen name of the sender (here, AIMUIUser) is identified as the source
indicator of the original instant message 610.

[0093] The flow 600 also includes a message 620 that represents a text
message (e.g., an SMS text message) generated based on the original
instant message 610. The text message 620 (which also may be referred to
as an original text message) is created by the instant messaging provider
system based on the original instant message using the message session
entry 615. The text message 620 is sent to the cellular system for
routing to the mobile telephone associated with the intended recipient
(here, Steve Clark). The text message 620 identifies the mobile telephone
number associated with Steve Clark as the destination address and
identifies a temporary reply telephone number (described earlier) as the
source address. As illustrated, the temporary reply telephone number is a
short code that indicates to the cellular system that the messages so
identified are to be routed to the instant messaging provider system.

[0094] The flow 600 also includes a message 630 that represents a reply
text message that may be sent from the mobile telephone of Steve Clark to
the instant messaging provider system. The reply text message 630 is
created by the mobile telephone in response to user input. The reply text
message 630 identifies the mobile telephone number associated with Steve
Clark as the source address and identifies a temporary reply telephone
number as the destination address. It is sent from the mobile telephone
to the cellular system, which forwards the reply text message to the
instant messaging provider system based on the destination address in the
reply text message.

[0095] The flow 600 also includes a message 640 that represents a reply
instant message generated based on the reply text message. The reply
instant message 640 is created by the instant messaging provider system
with the use of message session entry 615. The instant messaging provider
system identifies the message session entry 615 based on the destination
address and source address of the reply text message. The reply instant
message 610 identifies the recipient of the reply instant message as the
sender instant message account (here, "AIMUIUser"). Moreover, because the
original instant message 610 identified the intended recipient using a
screen name (here, "Steve Clark"), the reply instant message 60
identifies the sender of the reply instant message also using the same
screen name (here, "Steve Clark"). As illustrated by the flow 600, the
mobile telephone number to which the instant message is forwarded (and
from which the reply text message is generated) is hidden from the sender
of the original instant message.

[0096] In contrast to FIG. 6, FIG. 7 shows a flow 700 of exemplary
messages exchanged in the process 500 of FIG. 5 that are inspired by an
instant message sent from a client system and directed to a mobile
telephone number (e.g., a mobile telephone buddy), and an entry 715 of
message session information that corresponds to a message session entry
created as part of the process 500. The original instant message 710 is
directed to a mobile telephone number. In particular, the mobile
telephone number entity to which the original instant message is directed
is "703-123-4567," which may correspond to the buddy 205D in the buddy
list 200D of FIG. 2D. The screen name of the sender (here, AIMUIUser) is
identified as the source indicator of the original instant message 710,
as was the source indicator of the original instant message 610 in FIG.
6.

[0097] The flow 700 also includes an original text message 720 that is
based on the original instant message 710. The original text message 720
is created by the instant messaging provider system based on the original
instant message using the message session entry 715. The original text
message 720 also identifies the mobile telephone number identified as the
recipient account name in the message session entry 715 to which the
original instant message was sent as the destination address and
identifies a temporary reply telephone number as the source address. The
original text message 720 is sent to the cellular system for routing to
the mobile telephone number identified as the destination address (here,
"703-123-4567").

[0098] The flow 700 also includes a message 730 that represents a reply
text message that is sent from the mobile telephone associated with the
mobile telephone number 703-123-4567 to the instant messaging provider
system. The reply text message 730 identifies the mobile telephone number
of 703-123-4567 as the source address and identifies the temporary reply
telephone number as the destination address.

[0099] The flow 700 also includes a reply instant message 740 that is
based on the reply text message 730. The reply instant message 740 is
created by the instant messaging provider system with the use of message
session entry 715. The instant messaging provider system identifies the
message session entry 715 based on the destination address and source
address of the reply text message. Because the original instant message
710 identified the intended recipient as a mobile telephone number (here,
"703-123-4567"), the reply instant message 740 also identifies the sender
of the reply instant message as being a mobile telephone number (here,
"703-123-567"). The reply instant message 740 identifies the recipient of
the reply instant message as the sender instant message account (here,
"AIMUIUser"). As illustrated by the flow 700, the mobile telephone number
to which the original instant message is directed is the same as the
source indicator of the reply instant message.

[0100] The techniques and concepts described with respect to forwarding an
instant message directed to a screen name to a mobile telephone without
revealing the mobile telephone number to which the instant message was
forwarded may be used when the source indicator of an instant message or
a destination indicator of an instant message is based on a linked
account.

[0101] Referring to FIG. 8, a buddy list interface 800a has been displayed
for a user of a communications system with linked accounts. The user has
two linked accounts, one with a screen name of AIMUIUser, and one with a
screen name of AIMUser. The buddy list interface 800a includes a buddy
list 802a for the account with screen name AIMUIUser and a buddy list
802b for the account with the screen name AIMUser. The buddy list 802a is
displayed first because the screen name AIMUIUser was used to sign in to
the communications system. In addition, two other users, a user with a
screen name OtherUser1 and a user with a screen name OtherUser2 are
logged in to the communications system, and the corresponding buddy list
interfaces 800b and 800c, respectively, are displayed. OtherUser1 and
OtherUser2 do not maintain any linked accounts, so the buddy list
interfaces 800b and 800c each only display a single buddy list 802c or
802d, respectively. The buddy list 802c for OtherUser1 includes the
screen name AIMUIUser, which indicates that the account with the screen
name AIMUIUser is logged in to the communications system. The buddy list
802d for OtherUser2 includes the screen name AIMUIUser, which indicates
that the account with the screen name AIMUser is logged in to the
communications system. Even though the account with the screen name
AIMUser did not directly log in to the communications system, the account
is still shown as logged in because the account is linked to the account
with the screen name AIMUIUser, which was used to log in to the
communications system.

[0102] Referring to FIG. 9A, communications may be sent to and from the
linked accounts using a communications interface 900. The communications
interface 900 includes a recipient indicator 902 that indicates a
recipient of the messages sent with the communications interface 900 and
a sender indicator 904 that indicates a sender of the messages sent with
the communications interface 900. For example, the communications
interface 900 is used to send communications from the screen name
OtherUser1 to the screen name AIMUIUser. The communications interface 900
is seen by the user with the screen name OtherUser1 as the user sends
messages to the screen name AIMUIUser. The screen name OtherUser1 may
send messages to the screen name AIMUIUser after seeing the screen name
AIMUIUser on the buddy list interface 800b from FIG. 8. The screen name
AIMUIUser appeared on the buddy list interface 800b from FIG. 8 because
the account with the screen name AIMUIUser logged directly in to the
communications system.

[0103] A message transcript text box 906 displays the text of the messages
sent between the sender and the recipient. Further messages may be
specified in a message text box 908. Once specified in the message text
box 908, the message may be sent by selecting a send button 910.

[0104] Referring to FIG. 9B, a different communications interface 900 is
displayed for the user with the screen name AIMUIUser after a message is
sent from the user with the screen name OtherUser1. The communications
interface 900 is used by the user with the screen name AIMUIUser to send
a response to the user with the screen name OtherUser1. The recipient
indicator 902 indicates that the screen name OtherUser1 is the recipient
of messages sent with the communications interface 900. Similarly, the
sender indicator 904 indicates that the screen name AIMUIUser is the
sender of messages sent with the communications interface 900. Messages
may be sent from the account with the screen name AIMUIUser because the
account with the screen name AIMUIUser was used to log directly in to the
communications system.

[0105] Referring to FIG. 9c, a communications interface 900 may be
displayed for the user with a screen name OtherUser2. The communications
interface 900 is used to send communications from the screen name
OtherUser2 to the screen name AIMUser. The communications interface 900
is seen by the user with the screen name OtherUser2 as the user sends
messages to the screen name AIMUser. The screen name OtherUser2 may send
messages to the screen name AIMUser after seeing the screen name AIMUser
on the buddy list interface 800c from FIG. 8. The screen name AIMUser
appeared on the buddy list interface 800c from FIG. 8 because the account
with the screen name AIMUser is linked to the account with the screen
name AIMUIUser, which was used to log directly in to the communications
system.

[0106] Referring to FIG. 9D, a different communications interface 900 is
displayed for the user with the screen name AIMUser after a message is
sent from the user with the screen name OtherUser2. The user with the
screen name AIMUser is the same as the user with the screen name
AIMUIUser because the corresponding accounts are linked. The
communications interface 900 is used by the user with the screen name
AIMUIUser or AIMUser to send a response to the user with the screen name
OtherUser2. The recipient indicator 902 indicates that the screen name
OtherUser2 is the recipient of messages sent with the communications
interface 900. Similarly, the sender indicator 904 indicates that the
screen name AIMUser is the sender of messages sent with the
communications interface 900. Messages may be sent from the account with
the screen name AIMUser because the account with the screen name AIMUser
is linked to the account with the screen name AIMUIUser, which was used
to log directly in to the communications system. Furthermore, the user
with the screen names AIMUIUser and AIMUser may transparently send
messages using the communications interface 900 from two linked accounts
simultaneously.

[0107] Referring to FIG. 10A, a communication interface 900 has a
different appearance before a first message is sent. The communication
interface 900 includes a sender selection box 1002 in which the account
from which the communication is sent is specified. All communications
sent using the communication interface 900 appear to be from the account
selected in the sender selection box 1002. For example, the account with
the screen name AIMUIUser has been selected as the sender of the
communication, and all communications will appear to be from that
account. The screen names of all the linked accounts are presented in and
may be selected from the sender selection box 1002. An expanded sender
selection box 1004 includes the names of all of the linked accounts from
which the communication interface 900 may be sent. The expanded sender
selection box 1004 may be displayed below the sender selection box 1002
when the arrow on the right side of the sender selection box 1002 is
selected. The expanded sender selection box 1004 also may be displayed
below the sender selection box 1002 when attempting to scroll through the
selections included in the sender selection box 1004.

[0108] The recipient of the communication is specified using the recipient
selection box 1006. For example, the account with the screen name
AIMBuddy has been selected as the recipient of the communication. The
screen names of possible recipient accounts are presented in and may be
selected from the recipient selection box 1006. The screen name of the
recipient also may be typed in the recipient selection box 1006. An
expanded recipient selection box 1008 includes the names of possible
recipients of messages sent using the communication interface 900. The
expanded recipient selection box 1008 may be pre-populated with the names
included in a buddy list for the sender selected in the sender selection
box 1002. The expanded recipient selection box 1008 may be displayed
below the recipient selection box 1006 when the arrow on the right side
of the recipient selection box 1006 is selected. The expanded recipient
selection box 1008 also may be displayed below the recipient selection
box 1006 when attempting to scroll through the selections included in the
recipient selection box 1006. In one implementation, as the sender is
changed in the sender selection box 1002, the names of possible
recipients of messages are changed to correspond to the newly selected
sender's buddy list.

[0109] Alternatively or additionally, a recipient for the message may be
chosen from a buddy list, such as a buddy list from the buddy list
interface 800a of FIG. 8. In this case, the screen name for the recipient
may be entered automatically in the recipient selection box 1006, and the
screen name of the account whose buddy list the recipient was chosen from
may be automatically entered in the sender selection box 1002.

[0110] The message to be sent is typed into the message text box 908.
After specification of the sender with the sender selection box 1002, the
recipient with recipient selection box 1006, and the message in the
message text box 1008, a send button 1010 is used to send the message
from the sender to the recipient.

[0111] Referring to FIG. 10B, the appearance of the communication
interface 900 changes after the send button 1010 is pressed for the first
time. In one exemplary implementation, once the sender and recipient
accounts have been specified and one message has been sent from the
sender to the recipient, the sender and recipient accounts may not be
changed. Therefore, the sender selection box 1002 and the recipient
selection box 100 are removed from the communication interface 900. A
recipient indicator 1002 indicates the recipient chosen in the recipient
selection box 100, and a sender indicator 100 indicates the recipient
chosen in the sender selection box 1002. A transcript text box 906
replaces the sender selection box 1002 and the recipient selection box
100. The transcript text box 1006 includes the text of each message that
has been sent between the sender and recipient accounts using the
communication interface 900, as well as an indication of whether the
sender account or the recipient account sent the message.

[0112] A new message to be sent may be entered in the message text box
1008, and the message may be sent to the specified recipient by selecting
the send button 1010. In addition, the recipient may be added to the
sender's buddy list by selecting an add buddy button 1010.

[0113] Referring to FIG. 10c, before messages are delivered to the chosen
recipient account from a chosen sender account, a determination is made
as to whether the sender and recipient accounts are allowed to send
messages to each other. If not, then the message that was specified in
the message text box 1008 is not delivered to the recipient after the
send button 1010 was selected. Instead, a message from the communications
system appears in the transcript text box 1006 to inform the user that
communication between the selected sender and recipient accounts may not
occur. In addition, the recipient indicator 1002 indicates the
communication was intercepted by the communications system, but the
sender indicator 1004 still indicates the recipient chosen in the sender
selection box 1002.

[0114] Communication between two accounts may be denied if the accounts do
not belong to the same domain. For example, if the recipient belongs to a
gaming club, but the sender does not, then the sender may not be allowed
to send messages to the recipient. In general, communication may be
denied if the sender does not have permission to send messages to the
recipient or if the recipient denies a request to communicate with the
sender.

[0115] Referring to FIG. 11A, a process 1100 is used by a sender to
initiate communications with a recipient. The process 1100 begins when
the sender chooses one of the accounts linked to the account used to sign
in to the communications system (step 1102). Next, the recipient of the
communications is chosen (step 1104). The compatibility of the chosen
sender and recipient accounts is checked to verify that communication
between the sender and the recipient is allowed to occur (step 1106). If
so, the sender account is free to send communications to the recipient
(step 1108).

[0116] Referring to FIG. 11B, a process 1150 is used to respond to a
message received from a user of the communications system. The process
1150 begins when a message is received from a user of the communication
system by a client program that is running for multiple linked accounts
(step 1152). The intended recipient of the message is determined (step
1154). The intended recipient is one of the linked accounts for which the
client program is running. A response to the original message is sent
from the linked account to which the original message was addressed (step
1156). The determination of the intended recipient account of the
original message is automatic. Should a response to the original message
be sent, it will automatically appear to be from the account to which the
original message was sent.

[0117] Referring to FIG. 12A, a process 1200 is used to forward messages
to locations where recipients are available to receive them. Because
accounts may be linked, the same account may be signed in to the
communications system at multiple physical locations. A message is sent
to every location where a recipient of the message is signed in to the
communications system and may be replied to at any of the locations where
the recipient account is signed in to the communications system. If an
away message is up, the message is forwarded to the next location that
does not have an away message up, where the locations are ordered based
on the time of sign in. If away messages are up at all locations where
the recipient account is signed in, the message is held at the location
where the recipient account first signed in to the communications system.

[0118] The process 1200 begins when a message is received by the
communications system (step 1202). A set of locations at which a
recipient of the message is signed in to the communications system is
identified (step 1204). The locations are the places where the message
may be received by the recipient. The message is sent to one of the set
of identified locations (step 1206). A determination is made as to
whether the location is available to receive the message (step 1208). In
other words, a determination is made as to whether the location has an
away message displayed. If the location is available to receive the
message because it does not have an away message displayed, then the
message is left at the location (step 1210). If the location is unable to
receive the message because an away message is up, then it is determined
if there is another location that may be available to receive the message
(step 1212). If there are no other locations that may receive the
message, then the message is held at the location where the recipient
first signed in to the communications system (step 1214). Otherwise, the
message is forwarded to the next location in the set of locations, based
on the sign in time of the recipient (step 1216). A determination is made
as to whether the new location may receive the message (step 1208). If
so, the message is left at the location (step 1210). Otherwise, if
another location exists (step 1212), the message is forwarded to the new
location (step 1216). In this manner a message may be passed between all
of the locations where the recipient is signed in to the communications
system so that the recipient can receive and respond to the message.

[0119] Referring also to FIG. 12B, a linking scenario 1250 is illustrated.
Seven accounts 1252-1264 have been linked together using different
relationships between pairs of directly linked accounts. The type of
relationship used to directly link a pair of accounts determines whether
a different pair of accounts may be indirectly linked. For example, a
bi-directional link exists between the accounts in FIG. 12B. A
bi-directional link is a two-way link such that linking a first account
to a second account means that the second account also is linked to the
first account. Therefore, two relationships are created with a single
link. In other implementations, one-way linking may be used between
accounts, so a reflexive relationship does not necessarily exist between
two linked accounts. For two accounts to appear linked to one another in
a system using one way linking, each account has to create a link to the
other account.

[0120] More particularly, in FIG. 12B, bi-directional links exist between
different accounts, and SN1 is linked to SN2, SN3, SN4, and SN5. Thus,
when SN1 is used to sign in to the communications system, SN2, SN3, SN4,
and SN5 appear as aliases of SN1. SN2 is linked to SN1 and SN7, which
appear as aliases of SN2 when SN2 is used to sign in to the
communications system. SN3 is linked to SN1, which appears as an alias of
SN3 when SN3 is used to sign in to the communications system. Similarly,
SN4 is linked to SN1, which appears as an alias of SN4 when SN4 is used
to sign in to the communications system, and SN5 also is linked to SN1,
and SN1 appears as an alias of SN5 when SN5 is used to sign in to the
communications system. SN6 is linked to SN7, which appears as an alias of
SN6 when SN6 is used to sign in to the communications system. Finally,
SN7 is linked to SN2 and SN6, which appear as aliases of SN7 when SN7 is
used to sign in to the communications system.

[0121] Using the linking scenario 1250 to illustrate the process 1200 of
FIG. 12A, imagine that SN1 was used to sign in at a first location and
that SN2 was used later to sign in at a second location. SN1 is linked to
SN2, SN3, SN, and SN5, so messages for SN1, SN2, SN3, SN, and SN5 may be
received at the first location. SN2 is linked to SN1 and SN7, so messages
for SN1, SN2, and SN7 may be received at the second location. If the
first location has an away message up and the second location does not
have an away message up, then messages sent to SN1 and SN2 are forwarded
to the second location. If the second location has an away message up,
messages for SN1 and SN2 are forwarded to the first location, while
messages for SN7 are held at the second location, the only place where
SN7 is signed in. If both locations are have away messages displayed,
then the messages for SN1 and SN2 are held at the first location, where
SN1 and SN2 first signed in, and messages for SN7 are held at the second
location, where SN7 first signed in.

[0122] Referring to FIGS. 13A-13D, a process 1300 is used to forward
messages to locations where recipients are available to receive them. In
contrast to FIG. 12A where instant messages were forwarded to one of
several linked instant message accounts, the process 1300 also includes
forwarding an instant message as a text message to a mobile telephone. In
general, a message is sent to every location where a recipient of the
message is signed in to the communications system and may be replied to
at any of the locations where the recipient account is signed in to the
communications system. If an away message is up, the message is forwarded
to the next location that does not have an away message up, where the
locations are ordered based on the time of sign in. If mobile presence of
the intended recipient is detected, the message is forwarded to the
mobile telephone number of the recipient. If away messages are up at all
locations where the recipient account is signed in and a mobile telephone
is not detected, the message is held at the location where the recipient
account first signed in to the communications system.

[0123] Like process 1200, the process 1300 begins when a message addressed
to an intended recipient is received by the communications system (step
1302). A set of locations at which a recipient of the message is present
online to the communications system is identified (step 1304). The
locations are the places where the message may be received by the
recipient. In some cases, a location at which a recipient of the message
is present online to the communications system may be a mobile telephone
location. For example, the intended recipient may be signed off from the
communications system and the offline mobile proxy server 140 of FIG. 1
may represent the online presence of the intended recipient to enable
forwarding of an instant message to the intended recipient's mobile
telephone, as described previously with respect to FIG. 1.

[0124] The message is sent to one of the set of identified locations where
the recipient is present online (step 1306). A determination is made as
to whether the location is available to receive the message (step 1308).
In other words, a determination is made as to whether the location has an
away message displayed. If the location is available to receive the
message because it does not have an away message displayed, then the
message is left at the location (step 1310), and the process 1300 ends.

[0125] If the location is unable to receive the message because an away
message is up, then it is determined if there is another location that
may be available to receive the message (step 1312). If so, the message
is forwarded to the next location in the set of locations, based on the
sign in time of the recipient (step 1313). A determination is made again
as to whether the location may receive the message (step 1312). If so,
the message is held at the location (step 1314). Otherwise it is
forwarded to another location if one exists. In this manner, a message
may be passed between all of the locations where the recipient is signed
in to the communications system so that the recipient can receive and
respond to the message.

[0126] If there are no other locations that may receive the message (step
1312), a determination is made as to whether a mobile presence is
detected for the recipient (step 1315). This may be accomplished, for
example, as described previously with respect to step 524PS of FIG. 5A.
If there are no other locations that may receive the message (step 1312)
and a mobile presence the recipient then the message not detected (step
1315), the message is held at the location where the recipient first
signed in to the communications system (step 1320).

[0127] In response to detecting the mobile presence of the intended
recipient (step 1315), a mobile telephone number of the intended
recipient is determined (step 1325). This may be accomplished, for
example, as described previously with respect to step 526PS of FIG. 5A. A
temporary reply telephone number for the text message is determined (step
1330), for example, as described previously with respect to step 528PS of
FIG. 5A. An entry of message session information that corresponds to the
original instant message is created (step 1335). This may be
accomplished, for example, as described previously with respect to step
530PS of FIG. 5A. A text message is created based on the instant message
using the determined mobile telephone number as the destination address
and using the temporary reply telephone number as the source address
(step 1340), such as described previously with respect to step 532PS of
FIG. 5B. The text message is sent to the cellular system (step 1345), for
example as described previously with respect to FIG. 1 and step 534PS of
FIG. 5B.

[0128] A reply text message is received where the reply text message has
the temporary reply telephone number as the reply destination address and
has the mobile telephone number as the reply source address (step 1350).
A reply instant message is created based on the reply text message by
using the message text as the message text of the instant message (step
1355). An entry is identified in the message session information that
corresponds to the original instant message that inspired the reply text
message (step 1360). The entry is identified based on the mobile
telephone number in the source address of the reply text message and the
temporary reply telephone number in the destination address of the reply
text message (step 1360). This may be accomplished, for example, as
described previously with respect to step 544PS of FIG. 5D.

[0129] The message session entry is used to determine whether the
destination of the original instant message was identified by the sender
as an instant message account or a mobile telephone number (step 1365).
This may be accomplished, for example, as described previously with
respect to step 546PS of FIG. 5D.

[0130] When the original instant message was directed by the sender to an
instant message entity (step 1370), a reply instant message is created
where the recipient of the message session entry is used as the source
address of the reply instant message that corresponds to the reply text
message (step 1375).

[0131] In contrast, when the original instant message was directed by the
sender to a mobile telephone entity (step 1370), a reply instant message
is created where the destination mobile telephone number of the message
session entry is used as the source address of the reply instant message
that corresponds to the reply text message (step 1380).

[0132] The reply instant message is sent to the account from which the
original instant message was received (step 1385) and the process 1300
ends.

[0133] The techniques and concepts of protecting information used to
direct messages from being revealed, in a reply message, to a user who is
not known to possess that information have been described in the context
of forwarding an original instant message to a mobile telephone as a text
message. The techniques and concepts may be applicable when a text
message that originates from a mobile telephone is forwarded to an
instant message service for presentation to an instant message recipient.
In such a case, when the original text message identifies a screen name
of the instant message recipient, the reply from the instant message
service that is presented as a reply text message need not obfuscate the
screen name of the reply sender. This is because the original text
message identified the screen name and the reply that identifies the same
screen name does not reveal information (here, the screen name) to the
original sender.

[0134] Alternatively, when the original text message identifies a mobile
telephone number that is forwarded to an instant message recipient from
which a reply is received from the instant message service, the reply
text message may obfuscate the screen name of the reply sender. This is
because the original text message did not identify the screen name of the
reply sender and a reply text message that identified the screen name of
the sender of the reply would reveal information (here, the screen name)
that the sender of the original text message was not known to possess.

[0135]FIG. 14 shows a process 1400 for forwarding a SMS text message
addressed to a telephone number at either a mobile device in the SMS text
message format or one or more instant message (IM) message receivers
displaying an IM message interface, depending upon whether there is an IM
message receiver available to receive IM messages.

[0136] In some implementations, the SMS text message recipient subscribes
to both the SMS service and the IM service. At the time of the
registration of the services, the recipient receives an SMS address, or
has one already assigned, which is typically the telephone number of the
mobile device number for the SMS service. For example, an SMS text
message recipient Jane Smith is assigned an SMS text message address
650.555.1212, which is her mobile telephone number. A user of a mobile
phone may send an SMS text message to the mobile phone of Jane Smith by
specifying the phone number 650.555.1212 as the destination address. An
email address, such as 6505551212@serviceprovider.com, may also be used
for sending a text message from an email client program to the SMS center
of the service provider for deliver as the SMS text message to the mobile
device at the address of 650.555.1212.

[0137] Meanwhile, she registers a screen name representing her identity in
an IM service system, e.g. JaneSmith1. When setting up her user profile,
she associates her screen name of her IM service with the mobile device
number of her SMS services. Thus, for example, the user profile database
of the dynamic message control server associates the screen name
"JaneSmith1" with the mobile device number 650.555.1212.

[0138] The user profile database may also associate her screen name with
other profile information regarding the recipient, such as preferences of
Jane Smith in routing SMS messages as instant messages. For example, she
may specify user preference information that directs the determination
process in forwarding SMS text messages as IM messages and user
preference information for applying filters to forwarded messages. For
example, the filters may include a SPAM filter, a rate-limiting filter,
do-not-message list filters or even do-not-call list filters to limit the
text messages received at her mobile phone.

[0139] In some implementations, the SMS text message sender instructs the
SMS originator to send an SMS text message to a mobile device address
that includes the mobile device number (step 1402). The SMS server
receives the SMS text message and forwards it to a dynamic message
control server (step 1404). The dynamic message control server makes
decisions with regard to various actions that can be taken with the SMS
text message, such as whether to forward the SMS message as an instant
message, or whether or not to forward the SMS message in its original
form.

[0140] Subsequently, the dynamic message control server determines whether
the recipient at the mobile device number enables the SMS forwarding
feature (step 1406). The SMS text message is forwarded to the mobile
device number directly (step 1408) if it is determined that the recipient
at the mobile device number did not enable the SMS forwarding feature
(step 1406).

[0141] If it is determined that the recipient at the mobile device number
enabled the SMS forwarding feature (step 1406), the SMS server proceeds
to determine whether the recipient desires to forward the SMS message as
an instant message (step 1410) to the IM service address by checking
against the user preference profile.

[0142] If it is determined that the recipient does not desire to forward
the SMS message as an instant message (step 1410), the SMS text message
is forwarded to the intended mobile device number at the mobile phone
number (step 1408).

[0143] If the recipient desires to forward the SMS message as an instant
message (step 1410), it is then determined whether an IM receiver is
available to receive IM messages (step 1412).

[0144] In some implementations, it may be dynamically determined whether
the recipient's IM service receiver is available to receive an IM message
(step 1412). If it is determined that the recipient's IM service receiver
is not available to receive an IM message (step 1412), the SMS text
message is forwarded to the intended mobile device address as the SMS
text message (step 1408). However, if it is determined that the
recipient's IM service receiver is available to receive an IM message
(step 1412), the SMS text message is forwarded as an instant message to
the recipient's IM display interface for delivery (step 1414). Various
features can be implemented in forwarding the SMS message as the IM
message. These features are discussed below in connection with their
respective figures.

[0145] In some implementations, the recipient's IM display interface may
be on a computer display device. In another implementation, the
recipient's IM display interface may be on a mobile device, such as a
personal digital assistant (PDA) or a mobile telephone. Once the instant
messaging interface is initiated, the information for establishing the
real-time or near real-time communication with the IM message receiving
device is sent to an IM server so that IM messages can be delivered in
real time or near real time.

[0146] In some implementations, the IM user can also respond to the sender
of the SMS message using an IM that is forwarded to the SMS service (step
1414). For example, the server which forwards the SMS message to the IM
receiver is aware of the source of the SMS message. When the IM receiver
responds to the sender of the SMS message by an IM message, the server
automatically converts the IM message into an SMS message for delivery to
the sender. When this SMS message is delivered to the device used by the
SMS text message sender, it would appear to originate from the phone
number originally addressed.

[0147] In some implementations, a process may be provided to log the date
and time for the delivery of the message to email addresses, the instant
message identifiers or the storage medium. The process also may provide
for forwarding the electronic messages to a storage medium that
temporarily or permanently stores the electronic messages. The messages
can be forwarded according to the time and date preferences of the
instant message receiver.

[0148] In this way, the SMS services and the IM services may be connected.
This also may enable an IM service subscriber to enable access to SMS
service by the IM service community. For example, SMS text messages can
be received as instant messages routed to IM service clients on which the
IM service client is signed onto as determined by the IM server in a
dynamic real-time fashion.

[0149] Meanwhile, an SMS text message sender with SMS-enabled mobile
phones would not have to learn anything new, as unfamiliarity with a new
technology may become an obstacle for some users. By virtue of sending an
SMS text message to a mobile device number that happens to be registered
for an SMS text messaging to IM forwarding feature, an SMS text message
user can communicate with an IM user who is present on the instant
messaging system via the IM user interface.

[0150] Moreover, a person who uses both instant messaging and SMS can
maintain contact with those who only know the person by the person's
mobile phone number. Thus someone who wishes to maintain contact with the
person would not have to know the person's IM identity. A SMS text
message could be sent to the mobile phone number of the person.

[0151] This also may help to facilitate domain sharing with wireless
carriers and provides a method of automatically absorbing a large amount
of wireless telephone service customers when they sign on IM services.
For example, if a wireless telephone service customer's telephone number
is registered with an IM service with an SMS screen name, the wireless
telephone number automatically may become eligible for SMS message
forwarding services. Thus, the SMS subscriber may be able to go online
through an IM client, receive an IM message and receive an SMS text
message sent to the wireless telephone number.

[0152]FIG. 15 depicts a process 1500 for selectively forwarding
electronic messages based on user preferences. A variety of actions can
be taken when forwarding the electronic messages based on user
preference. For example, the user can choose whether or not the SMS
messages shall be forwarded and to where the SMS message should be
forwarded. The user preference may be set when registering an SMS service
or an IM service, or changed later.

[0153] More particularly, after a SMS text message addressed to a
telephone number is received (step 1502), the dynamic message control
server determines whether to forward the SMS text message regardless of
the availability of the IM receiver based on user preference (step 1504).
If it is determined that the SMS text message shall be forwarded as an
SMS text message regardless of the availability of the IM receiver based
on user preference (step 1504), the SMS text message is forwarded to the
mobile phone of the addressed telephone number as a SMS text message
without sending it as an instant message (step 1506). Stated differently,
the IM service is blocked with regard to the SMS text message sender.

[0154] If it is determined that the SMS text message shall not be
forwarded as a SMS text message regardless of the availability of the IM
receiver based on user preference (step 1504), the dynamic message
control server then detects whether a receiver of the instant message
identifier associated with the telephone number is available to receive
instant messages (step 1508).

[0155] If it is determined that the receiver of the instant message
identifier associated with the telephone number is not available to
receive instant messages (step 1508), the SMS text message is forwarded
to the addressed telephone number as a SMS text message without sending
it as an instant message (step 1506). However, if the receiver of the
instant message identifier associated with the telephone number is
available to receive instant messages (step 1508), the SMS text messages
is forwarded to the receiver of the instant message identifier based on
the user preference (step 1510).

[0156] In this way, an IM service user controls whether or not the user
wants to receive a SMS text message as an instant message.

[0157] An instant message is generated and forwarded to the instant
message receiver of the instant message identifier, such as a screen name
(step 1512). In one implementation, the recipient of the SMS text message
may choose to use one specific user interface to receive messages and
manage her conversations. A variety of the electronic devices can be
configured to display the IM service user interface. Such electronic
devices include, but are not limited to, a computer terminal, a personal
data assistant (PDA), a mobile or wired telephone receiver or other
mobile devices. After the user uses the selected device for receiving
instant messages, e.g., by starting the software program for the user
interface and connecting to an instant message server using the screen
name, the selected device becomes available to receive instant messages.

[0158] For example, Jane Smith can sign onto her computer to enjoy the
rich messaging experience that an IM service client provides. The IM
client can group messages from the same person within one window. When an
SMS text message can be forwarded to an IM service client, the SMS text
message recipient can sign onto an IM interface to receive the SMS text
message using the IM service client, providing a better experience than a
SMS text message interface while including some of the same
functionality, e.g., grouping messages from the same person into a
conversation.

[0159]FIG. 16 illustrates a process 1600 for selectively forwarding a SMS
text message according to its source information.

[0160] More particularly, once the SMS server receives an SMS text message
(step 1602), the source information about the originating and the
destination telephone numbers of the SMS text message is packaged (step
1604). Without sending the SMS text message itself, the packet including
the source information of the SMS text message is sent to the dynamic
message control server (step 1606). Once received by the dynamic message
control server, the content of the packet is checked against the user
preference (step 1608).

[0161] In some implementations, the user preference can be set by the
destination telephone number user or the parents who exercise parental
control of a teenager user. For example, a destination telephone number
user can indicate in the user preference that a SMS text message
originated from a specific telephone number should be blocked. In this
case, the dynamic message control server checks if the packet for the
destination telephone number includes a specified telephone number. If it
does, the message is blocked or filtered according to the user
preference.

[0162] It is then determined whether the SMS text message should be
forwarded or not to the destination telephone number (step 1610). If it
is determined that the SMS text message can continue onto its
destination, then the SMS text message is delivered to the SMS-enabled
mobile phone or an IM service receiver (step 1612). Alternatively, if it
is determined that the SMS text message should not continue onto its
destination, no attempt to deliver the SMS text message is made (step
1614).

[0163] In some implementations, a user can choose to block forwarding of
all other SMS text messages but allow only certain types of SMS text
messages to reach the mobile phone or the IM service receiver according
to the source information. For example, a user may register the
preference to receive SMS text message from only two sources, e.g. the
telephone numbers from the user's parents and from the user's boss.
Alternatively, a user may register the preference to receive all SMS text
messages except one or more specified source telephone numbers.

[0164] FIGS. 17-19 describe techniques by which a text message addressed
to a mobile telephone number, and sent from a mobile telephone device, is
forwarded to an instant message account address. A reply sent to the
mobile telephone number from the instant message account address does not
reveal the instant message account from which the reply originated.

[0165]FIG. 17 shows an example data structure 1700 for a message session
information entry in simplified form. In contrast to the data structure
400 of FIG. 4, the data structure 1700 includes data to support
obfuscating the instant message account address from which is sent a
reply message to a text message sent from a mobile telephone device.

[0166] The message session information in the data structure 1700 includes
a message session identifier 1710 to uniquely identify each entry in the
message session information. The data structure 1700 also includes an
original sender mobile telephone number 1720 that identifies an original
source indicator of the original instant message sent by the sender
(i.e., the mobile telephone number of the mobile telephone device from
which the original text message was sent), and an original recipient
mobile telephone number 1730 that identifies the mobile telephone number
to which the original text message was addressed (i.e., the intended
destination indicator for the original text message).

[0167] The data structure 1700 also may include a temporary destination
telephone number 1740 that may be used by the cellular system to identify
when a text message needs to be routed to the instant message provider
system. For example, a person may indicate that text messages sent to the
person's mobile telephone number are to be forwarded to an instant
message system by setting up automatic call forwarding from the person's
mobile telephone number to a temporary destination telephone number,
which may be, for example, a short code. In such a case, the cellular
system may be configured to forward text messages addressed to one of the
set of short codes to the instant message provider system, as described
previously. If the person wanted to keep the person's instant message
account hidden in a reply, the person also may need to set up the
person's instant message account to include the person's mobile telephone
number and the temporary destination telephone number to be used. Thus,
the temporary destination telephone number 1740 also may be used to
identify a text message to be forwarded to the instant message provider
system from the cellular system and may serve to inform the instant
message provider system as to the instant message account to which the
text message is to be forwarded.

[0168] The data structure 1700 also includes a destination screen name
1750 that identifies the destination screen name (or other type of
instant message entity identifier or other type of instant message
account identifier) to which the text message is to be forwarded. The
destination screen name 1750 may be used as a destination indicator in an
instant message based on the text message addressed to the original
recipient mobile telephone number 1730.

[0169] The data structure 1700 also may include an indication 1760 of a
message session type (e.g., whether the message session information
relates to forwarding an instant message to a mobile telephone (as
described previously with respect to FIG. 4) or relates to forwarding a
text message from a mobile telephone to an instant message account).

[0170] The data structure 1700 also may include a creation timestamp 1770
or other indication of when the message session entry was created, the
age of the entry, or a time when the entry is to expire. The creation
timestamp 1770 may be useful to guide the deletion, expiration, or
purging of aging message session entries in message session information.

[0171] FIGS. 18A-18E shows a process 1800 by which a mobile telephone
communicates a text message through a cellular system to an instant
message provider system and, in turn, to a instant message client system,
and by which a reply to the text message is returned to the mobile
telephone. The process 1800 involves a mobile telephone 170 enabled with
text messaging capabilities, a cellular system 180, an instant messaging
provider system 110, and a client system 105. In general, the process
1800 enable an text message sent by the mobile telephone 170 to be
forwarded to, and processed by, the instant messaging provider system
110, which, in turn, sends an instant message based on the text message
to the client system 105. An instant message user associated with the
client system receives the instant message and replies to the instant
message using the client system 105. The reply instant message is sent
from the client system 105 to the instant messaging provider system 110.
The instant messaging provider system 110 sends to the cellular system
105 a reply text message based on the reply instant message received from
the client system 105. The reply text message includes the mobile
telephone number to which the original text was sent as the source
indicator of the reply text message. Thus, the source indicator of the
reply text message prevents disclosure of any information that was not
previously available to, and used by, the sender of the original instant
message (e.g., the screen name of the instant message user associated
with the mobile telephone number to which the original text message was
addressed). This may be useful, for example, to protect a screen name
associated with the intended recipient of the original text message from
being revealed to the sender of the text message when the text message is
forwarded to the recipient's screen name by the instant messaging
provider system 110.

[0172] More particularly, a user associated with the mobile telephone 170
identifies an intended recipient of a text message by entering the
recipient's mobile telephone number, enters text for the text message,
and sends the text message to the cellular system, which is received by
the client system 105 (step 1820MT). The text message includes a source
indicator of the text message that indicates that the text message is
sent from the sender's mobile telephone number. The text message also
includes a destination indicator that identifies the mobile telephone
number entered by the user.

[0173] The mobile telephone 170 sends the text message, which may be
referred to as an original text message, to the cellular system 180 (step
1822MT).

[0174] The cellular system 180 receives the text message (step 1822CES)
and forwards the text message to a temporary telephone number associated
with the mobile telephone number to which the text message was sent (step
1824CES). This may be accomplished, for example, in a manner similar to
conventional call forwarding where a telephone call sent to one telephone
number is automatically routed to a different telephone number.

[0175] The cellular system 180 forwards the text message to the instant
message provider system 110 based on the temporary telephone number to
which the text message was forwarded (step 1826CES). This may be
accomplished, for example, as described previously with respect to 540CES
of FIG. 5c. The temporary telephone number may be referred to as a second
telephone number or as a temporary destination telephone number.

[0176] The instant message provider system 110 receives the text message
addressed to the temporary mobile telephone number where the source
address reflects the mobile telephone number of the device from which the
original text message was sent (step 1826PS).

[0177] Referring also to FIG. 18B, the instant message provider system 110
identifies a screen name based on the temporary destination telephone
number to which the text message was forwarded, as reflected in the
destination address of the text message (step 1830PS). For example, a
user associated with the original mobile telephone number may have
configured the user's instant message account to identity a mobile
telephone number (to which the text message is originally addressed, in
this example) and a temporary telephone number for forwarding the text
message to the instant message provider system. As such, the instant
message provider system 110 is able to identify an original mobile
telephone number and a screen name to be associated with an message
session entry for the received text message, such as the message session
information 1700 described previously with respect to FIG. 17.

[0178] The instant message provider system 110 creates an message session
information entry, which may be an implementation of message session
information 1700 described previously with respect to FIG. 17 (step
1831PS). The message session information entry identifies the destination
screen name as the screen name identified in step 1830PS, the original
sender mobile telephone number as the source address of the received text
message and the temporary destination telephone number as the destination
address of the received text message. The original recipient mobile
telephone number in the message session information entry is identified
based on the screen name, as described above.

[0179] Referring also to FIG. 18c, the instant message provider system 110
creates an instant message based on the original text message by using
the identified screen name as a destination address and, like the text
message received by the instant message provider system 110, the original
sender mobile telephone number is the source address for the message
(step 1832PS).

[0180] When the instant message entity (e.g., a user) associated with the
screen name is signed on with the client system 105 (e.g., the user is
online), the instant message provider system 110 sends the instant
message to the client system 105 (step 1834PS).

[0181] The client system 105 receives the instant message and enables a
user of the client system 105 to review and respond to the instant
message (step 1834CS). Subsequently, the client system 105 receives, from
user input, reply text (1836CS) and (referring also to FIG. 18D) creates
a reply instant message using the mobile telephone number source address
of the message received as the destination address and using the screen
name destination address of the message received as the source address
(step 1838CS). The client system 105 sends the reply instant message to
the instant message provider system 110 (step 1840PS).

[0182] The instant message provider system 110 identifies, based on the
mobile telephone number in the destination address and the screen name in
the source address of the reply instant message, a message session entry
that corresponds to the reply instant message (step 1842PS).

[0183] Referring also to FIG. 18E, the instant message provider system 110
creates a reply text message based on the reply instant message (step
1844PS). The destination address in the reply text message is the mobile
telephone number in the destination address (as is the case for the
instant message reply received). The source address in the reply text,
however, is the original recipient mobile telephone number identified in
the message session information entry identified in step 1842PS. The
instant message provider system 110 sends the reply text message to the
cellular system 180 (step 1846PS).

[0184] The cellular system 180 receives the reply text message and
forwards the message, based on the destination mobile telephone number,
to the mobile telephone 170 (step 1846CES). The mobile telephone 170
receives the reply text message and enables the user of the mobile
telephone 170 to view the reply text message (step 1846MT).

[0185] FIG. 19 illustrates exemplary messages that may be sent, for
example, using the process 1800 of FIGS. 18A-18E. FIG. 19 shows a flow
1900 of exemplary messages inspired by a text message sent from a mobile
telephone and directed to another mobile telephone from which a reply
message is sent. A message session entry 1915 having message session
information is created, based on instant message account information
1917, as part of the process during which the messages are created and
processed. The entry 1915 and information 1917 are not part of the
message flow 1900 but are used to create and process messages in the flow
1900.

[0186] The flow 1900 of exemplary messages includes a message 1910 that
represents an original text message sent by a sender from a mobile
telephone having the telephone number 703-345-6789 to a mobile telephone
having the telephone number 703-123-4567.

[0187] The entity associated with the destination telephone number
703-123-4567 has set up call forwarding to the temporary destination
telephone number 703-234-5678, as shown in message 1920. The message 1920
is forwarded from the cellular system to the instant message system.

[0188] The flow 1900 also includes a message 1930 that represents an
instant message generated by the instant message system based on the
message 1920. The instant message is directed to the screen name
BobSmith123, based on the instant message account information 1917 that
identifies a screen name associated with the temporary destination
telephone number from which the text message 1920 was forwarded. The
instant message service creates message session entry 1915 based on
message 1930 and/or instant message account information 1917.

[0189] The flow 1900 also includes a message 1940 that represents an
instant message SMS text message) that represents a reply instant message
that may be sent from the client system of Bob Smith to the instant
messaging provider system. The reply instant message 1940 is created by
the client system in response to user input. The reply instant message
1940 identifies the instant message account of BobSmith123 as the source
address and identifies, as the destination address, the mobile telephone
number of the mobile telephone from which the original text message was
sent. The destination telephone number of the message 1940 is the same as
the source address in the instant message 1930 on which the reply message
1940 is based.

[0190] The flow 1900 also includes a message 1950 that represents a reply
text message generated based on the reply instant message. The reply text
message 1950 is created by the instant messaging provider system with the
use of message session entry 1915. The instant messaging provider system
identifies the message session entry 1915 based on the destination
address and source address of the reply text message. In particular, the
reply instant message 1940 identifies the recipient of the reply instant
message as the original sender mobile telephone number (here,
"703-345-6789") and the source of the reply instant message as the
destination screen name (here, "BobSmith123").

[0191] The text message 1950 is sent to the cellular system for routing to
the mobile telephone from which the original text message was originated
(i.e., "703-345-6789"). As illustrated by the flow 1900, the instant
message account (e.g., screen name) to which the text message is
forwarded (and from which the reply text message is generated) is hidden
from the sender of the original text message.

[0192] Although the techniques and concepts often are described above in
terms of SMS text messaging, the techniques and concepts may be applied
to other types of messages, such as a Multimedia Messaging Services (MMS)
message, a video message and an audio message. Similarly, the techniques
and concepts have been describe in terms of receiving an instant message
is received at desktop computer receive instant messages addressed to the
instant message identifier. Other electronic devices configured to
receive instant messages may be used, such as a laptop computer, a
personal data assistant (PDA) and a telephone receiver.

[0193] 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.

[0195] 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. As another example, a screen name is
used throughout to represent a unique identifier of an account, but any
other unique identifier of an account may be used when linking accounts.
Accordingly, other implementations are within the scope of the following
claims.