BACKGROUNDInstant messaging (IM) applications have become increasingly popular as they allow users to exchange text messages using conventional mobile and stationary computing devices, such as PDAs, cell phones, laptop and desktop computers and the like. Typically, an application running on the computing device allows the user to access a list of contacts to quickly initiate a messaging session with a selected friend, co-worker or other user. Each contact is associated with an identifier that allows the messaging infrastructure to route messages to the designated user. Additionally, the messaging application provides presence information to allow the user to determine which of the contacts are currently on-line.
IM allows a user to send and receive messages nearly instantaneously with other IM service users over a network or collection of networks, such as the Internet. IM services are provided by service providers such as “MICROSOFT” Corporation. A computer connected to the Internet can access the IM service using a client application. The client application can be implemented as a local client or a browser based client. A local client is a program which is stored on the computer and provides an interface allowing a user to access the IM service. A browser based client is a program which is generally provided by a web server. The interface loaded from the server allows the user to access the IM service. IM services are provided to an IM service domain, which is comprised of entities having an account with the IM service.
To use IM, a user establishes an account by providing account information including a user identifier, a password, and a list of messenger contacts. Subsequent login to the service requires the user to provide the user identifier and password. Upon confirmation of the login information with the user's account information, the particular client (either local or browser based) displays an interface indicating the user's presence, messenger contact list and the presence of each contact. Presence is a status indication of whether an entity is online or offline. In another embodiment, a presence can have a state of “busy”, “away”, “out to lunch”, or other states. If the entity, such as the user or a contact on the user's messenger contact list, is logged in to a messenger server within the IM service, than the entity's presence is “online”. Otherwise, the presence for the entity is “offline”.
The user may select a contact from the messenger contact list displayed in an IM interface to initiate a conversation. Once selected, the client application associated with each conversation member provides a conversation window. In some IM systems, the client applications associated with a conversation receive direct contact information for each other to provide direct communication between them. In other IM services, the client applications for each conversation member are connected to each other through the IM system. When a conversation member sends a message, the IM system receives the message, finds the recipient member's computer location and routes the message to the particular computer. IM services such as “WINDOWS LIVE MESSENGER” use this method. Instant messaging (IM) services are typically limited to interactions between users of a specific messaging service/network, although some services offer inter-connectivity between services/networks.
Short Message Service (SMS) is a service that enables users to exchange short text messages over a communication network. Text messages can originate from various sources, such as by a mobile device (e.g., mobile phone, PDA, etc.) configured to exchange text messages. SMS is a store and forward service, i.e., text messages are not sent directly from sender to recipient, but always via a Short Message Service Center (SMSC). The SMSC handles and manages the text messages by routing text messages between mobile users via each device's Mobile Station International Subscriber Directory Number (MSISDN).
SUMMARYOne aspect of the present technology is to enable communication between users communicating through different messaging services. By way of example only, a first user may select a contact from their “buddy” list, compose an IM and send the IM to the contact. If the “buddy” is offline, he will receive the IM as a text message on his mobile device via an SMS. An instant message includes, among other things, a source address and a destination address. The source address of the IM is an identifier associated with the IM user. The destination address of the IM is an identifier associated with the selected contact. In one embodiment, the source address and destination address comprise IM identifiers (e.g., email addresses, nicknames, etc.).
In order for the contact to receive a text message via an SMS, a routing system converts the IM to a text message. A text message format also includes a source address and a destination address. However, the source address and destination address of a text message comprise mobile device numbers (e.g., MSISDNs). When the routing system receives the IM, the system identifies the selected contact's mobile device number (e.g., MSISDN) based on the destination address contained in the IM. A temporary MSISDN is allocated to the IM user. The IM is converted to a text message, using the temporary MSISDN allocated to the IM user as the source address and the contact's MSISDN as the destination address. The text message is routed to the contact via an SMS. Using a valid MSISDN, rather than a short code, allows the service to work across different mobile networks.
Another aspect of the present technology is to allow the contact that received the text message to deliver a reply text message to the IM user. The text message received by the contact identifies that the message was sent from a certain MSISDN (the MSISDN temporarily allocated to the IM user). Users typically will not reply to a text message from an unfamiliar MSISDN. Thus, in one embodiment, the text message sent to the contact also includes the identifier of the IM user that sent the original IM. When the contact composes and sends a reply text message via an SMS, the reply text message includes a source address and a destination address. The source address is the contact's MSISDN. The destination address is the MSISDN temporarily allocated to the IM user. When the routing system receives the reply text message, the system converts the reply text message to a format suitable for delivery to the IM user via an IM service.
In order to send the reply text message to the IM user, the system determines the identifier of the IM user based on the MSISDN in the destination address of the reply text message, which is the MSISDN temporarily allocated to the IM user. The system also determines the contact's identifier based on the MSISDN contained in the source address of the reply text message, which is the MSISDN of the contact's mobile device. The contact's identifier is placed in the source address of the reply IM and the IM user's identifier is placed in the destination address of the reply IM. The reply IM, containing the text from the reply text message, is then routed to the IM user via an IM service.
Another aspect of the present technology is to re-use the temporarily allocated MSISDNs across multiple concurrent communication sessions. In one embodiment, the system generates a communication session table for tracking each communication session. Each time a communication session is initiated, the IM identifier of the IM user is associated with a temporary MSISDN. Both are also associated with the IM identifier and MSISDN of the “buddy” the IM user is sending the IM to. The table allows the service to route messages between a large number of subscribers using a relatively small pool of MSISDNs for allocation to IM users.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 provides a block diagram illustrating one embodiment of the network architecture of the present technology.
FIG. 2 provides a block diagram of a computer system for performing the methods described herein.
FIGS. 3A-3B provide block diagrams illustrating several communication connections between IM users and SMS users.
FIG. 4 provides an exemplary communication table.
FIG. 5 provides a flowchart diagram illustrating delivery of an instant message to a mobile device user via a short message service.
FIG. 6 provides a flowchart diagram illustrating additional detail of converting the instant message to a text message.
FIG. 7 provides a flowchart diagram illustrating one embodiment of allocating a Session ID to an instant message user.
FIG. 8 provides a flowchart diagram illustrating delivery of a text message to an instant message user via an instant message services.
FIG. 9 provides a flowchart illustrating one embodiment of converting a text message to an instant message.
FIG. 10 provides an exemplary mobile phone and instant message interface.
DETAILED DESCRIPTIONThe technology described herein enables bi-directional IM sessions between IM users communicating via an IM service and mobile phone users communicating via an SMS. An MSISDN is temporarily allocated to the IM user so that a routing system can transmit messages across different networks when SMS interconnectivity is involved. In one embodiment, the MSISDN is allocated to the IM user by a cellular network operator. An IM received from an IM user is converted to a text message suitable for delivery to a mobile device user via an SMS. The MSISDN allocated to the IM user is the source address of the text message while the mobile device MSISDN is the destination address. If the mobile device user composes and sends a reply text via an SMS, the reply text message is converted to an IM, and based on the MSISDN allocated to the IM user, is routed back to the IM user as an IM via an IM service.
FIG. 1 illustrates an exemplary network architecture of the present technology. Thesystem100 enables communication between a user sending instant messages via anIM client18 and a user sending text messages via amobile device12. TheIM client18 shown inFIG. 1 is illustrated as a personal computer for sending and receiving instant messages via anetwork108. A user may use other devices such as, but not limited to, laptop computers, cellular phones, PDAs, etc. Thenetwork108 may comprise an IM service (e.g., WINDOWS LIVE, AOL, etc.). Themobile device12 shown inFIG. 1 is illustrated as a mobile phone to send and receive a text messages via anetwork110. A user may use other devices to send/receive text messages such as, but not limited to, a PDA, and the like. Thenetwork110 may comprise any SMS service.
Thesystem100 generally includes arouting system102, an instant message gateway (IM GW)104, a short messaging service center (SMSC)106, afirst network108 and asecond network110. Therouting system102 includesconverters112, anMSISDN allocator114 and adatabase116. Theconverters112 convert messages suitable for delivery via an IM service into a message suitable for delivery via an SMS and vice versa. The MSISDN allocator114 dynamically allocates MSISDNs to IM users (described in more detail later). As will be described in more detail later, thedatabase116 maps the user identifiers and MSISDNs involved in each communication session established between an IM user and an SMS user.
With reference toFIG. 2, an exemplary system for implementing an IM-SMS communication system includes a general purpose computing device in the form of acomputer210. Components ofcomputer210 may include, but are not limited to, aprocessing unit220, asystem memory230, and asystem bus221 that couples various system components including the system memory to theprocessing unit220. Thesystem bus221 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus.
Computer210 may include a variety of computer readable media. Computer readable media can be any available media that can be accessed bycomputer210 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, as well as removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, random access memory (RAM), read only memory (ROM), EEPROM, flash memory or other memory technology, CD-ROMs, digital versatile discs (DVDs) or other optical disc storage, magnetic cassettes, magnetic tapes, magnetic disc storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed bycomputer210. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as RF and other wireless media. Combinations of any of the above are also included within the scope of computer readable media.
Thesystem memory230 includes computer storage media in the form of volatile and/or nonvolatile memory such asROM231 and RAM232. A basic input/output system (BIOS)233, containing the basic routines that help to transfer information between elements within computer910, such as during start-up, is typically stored inROM231. RAM232 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processingunit220. By way of example, and not limitation,FIG. 2 illustratesoperating system234,application programs235,other program modules236, andprogram data237.
Thecomputer210 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,FIG. 2 illustrates ahard disc drive241 that reads from or writes to non-removable, nonvolatile magnetic media and a magnetic disc drive951 that reads from or writes to a removable, nonvolatilemagnetic disc252.Computer210 may further include an opticalmedia reading device255 to read and/or write to an optical media.
Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, DVDs, digital video tapes, solid state RAM, solid state ROM, and the like. Thehard disc drive241 is typically connected to thesystem bus221 through a non-removable memory interface such asinterface240.Magnetic disc drive251 and opticalmedia reading device255 are typically connected to thesystem bus221 by a removable memory interface, such asinterface250.
The drives and their associated computer storage media discussed above and illustrated inFIG. 2, provide storage of computer readable instructions, data structures, program modules and other data for thecomputer210. InFIG. 2, for example,hard disc drive241 is illustrated as storingoperating system244,application programs245,other program modules246, andprogram data247. These components can either be the same as or different fromoperating system234,application programs235,other program modules236, andprogram data237.Operating system244,application programs245,other program modules246, andprogram data247 are given different numbers here to illustrate that, at a minimum, they are different copies.
A user may enter commands and information into thecomputer210 through input devices such as akeyboard262 and apointing device261, commonly referred to as a mouse, trackball or touch pad. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to theprocessing unit220 through auser input interface260 that is coupled to thesystem bus221, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). Amonitor291 or other type of display device is also connected to thesystem bus221 via an interface, such as avideo interface290. In addition to the monitor, computers may also include other peripheral output devices such asspeakers297 andprinter296, which may be connected through an outputperipheral interface295.
Thecomputer210 may operate in a networked environment using logical connections to one or more remote computers, such as aremote computer280. Theremote computer280 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to thecomputer210, although only a memory storage device981 has been illustrated inFIG. 2. The logical connections depicted inFIG. 2 include a local window network (LAN)271 and a wide window network (WAN)273, but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet.
When used in a LAN networking environment, thecomputer210 is connected to theLAN271 through a network interface oradapter270. When used in a WAN networking environment, thecomputer210 typically includes a modem272 or other means for establishing communication over theWAN273, such as the Internet. The modem272, which may be internal or external, may be connected to thesystem bus221 via theuser input interface260, or other appropriate mechanism. In a networked environment, program modules depicted relative to thecomputer210, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,FIG. 2 illustratesremote application programs285 as residing onmemory device281. It will be appreciated that the network connections shown are exemplary and other means of establishing a communication link between the computers may be used.
FIG. 3A illustrates, for the purpose of describing the technology herein only, exemplary communication sessions between IM users18(1) and18(2) and SMS users12(1) and12(2). In particular,FIG. 3A illustrates threeindividual communication sessions120,122 and124: afirst communication session120 has been established between IM user18(1) and SMS user12(1); asecond communication session122 has been established between IM user18(1) and SMS user12(2); and athird communication session124 has been established between IM user18(2) and SMS user12(2). As will be discussed in more detail later, the IM user18(1) has been temporarily allocated a Session ID X (e.g., an MSISDN) in connection withcommunication sessions120 and122 and IM user18(2) has been allocated a different Session ID, Session ID Y, in connection withcommunication session124.FIG. 3B illustrates the scenario whereonly communication sessions120 and126 have been established. Thecommunication session120 has been established between IM user18(1) and SMS user12(1). Thecommunication session126 has been established between IM user18(2) and SMS user12(2). As will be discussed in more detail later, session ID X has been allocated to both IM user18(1) and IM user18(2). The communication sessions and users shown inFIGS. 3A-3B will be referred to throughout to describe several aspects the present technology. In one embodiment, the IM users and SMS users are subscribers of the same mobile network operator. Alternatively, the IM users and SMS users are subscribers of different mobile network operators.
FIG. 5 illustrates exemplary steps for routing an IM sent from an IM user to an SMS user as a text message via an SMS. By way of example only,FIG. 5 will be described in the context of IM user18(1) sending an IM to SMS user12(1).FIG. 5 is, of course, not limited to these two users. IM services often allow the IM user to maintain a list of people (e.g., “buddy” list or contact list) with whom to interact. For the purpose of describing this technology only, the IM user18(1) composed an IM by selecting the IM identifier associated with the SMS user12(1) (e.g., “Bob123”) from his contact list when theIM window1002 appears (seeFIG. 10). The IM user18(1) composes the message “Bob. R U available to talk right now?”
Atstep502, the instant message is received by theIM gateway104 from IM user18(1). The IM received from the IM user18(1) contains certain information which, among other things, includes a source address, a destination address and a message. In one embodiment, the source address of the IM is the email address of the IM user18(1). In alternative embodiments, the source address of the IM may comprise a nickname, “buddy” name, etc. associated with the IM user18(1) (each referred to as an “identifier”). The destination address of the IM received from the IM user18(1) is an IM identifier associated with the contact selected from the IM user's18(1) contact list, which in this case, is the SMS user12(1). As shown inFIG. 10, SMS user12(1), shown in thewindow1002 as “Bob123”, is offline.
At this point, because SMS user12(1) is offline, therouting system102 will deliver the IM to SMS user12(1) via an SMS. To do so, therouting system102 generates a text message based on the IM received instep502 and routes the text message toSMSC106. In order to have bidirectional communication within an SMS system across networks, both the source address and the destination address of the text message are valid MSISDNs. Otherwise, the message would be limited to routing within a single network because short codes, for example, are network specific.
Here, the originating message was an IM composed by IM user18(1), and was not sent from a mobile device. Thus, atstep504, theMSISDN allocator114 of therouting system102 allocates a Session ID (e.g., MSISDN) to the IM user18(1). By way of example only, a pool of MSISDNs is controlled by a network operator, and each valid MSISDN in the pool is reserved for use only as a Session ID. One example of valid MSISDN is a telephone number that includes a Country Code+National Destination Code (NDC)+Subscriber Number. For example, the MSISDN 14155551212 comprises the Country Code 1 (United States), NDC 415 (415 area code) and Subscriber Number (555-1212).
One advantage of the present technology is that valid MSISDNs are allocated to the IM user as opposed to short codes, etc. This allows the present technology to send messages between users across different cellular networks (e.g., the SMS user is a subscriber of a different cellular network operator than the IM user). Another advantage is that dynamically allocating MSISDNs to IM users allows the cellular network operator to use a small pool of MSISDNs for the service, eliminating the need to allocate a dedicated MSISDN for each IM user using the service. Of course, it is within the scope of the technology to allocate one MSISDN to each IM user. By way of example only, a cellular network operator could reserve 1,000 MSISDNs for the communication service described herein. Each of these 1,000 MSISDNs is allocated to an IM user when communicating with an SMS user, and may be reallocated to another IM user when returned or released back to the cellular network operator pool. For the purpose of describing the technology only, theMSISDN allocator114 allocates the MSISDN “14155551212” to IM user18(1), atstep504.
Thedatabase116 maps and stores each communication session. Each communication session is uniquely identified by a combination of identifiers: the SMS MSISDN of the SMS user's mobile device and the MSISDN temporarily allocated to the IM user.
FIG. 4 provides an example of a table400 generated and maintained by thedatabase106. Using the table400 shown inFIG. 4, thedatabase106 tracks, for eachcommunication session ID402,IM user information404 andSMS user406. As discussed above,communication session124 is established between IM user18(2) and SMS user12(2). For communication session ID124 (408), thedatabase106 stores the followingIM user information404 associated with communication session124: IM identifier is “BigCharlie” and the temporary MSISDN is 16505551212. Thedatabase106 also stored the following information associated with the SMS user (12(2): IM identifier is “LonelyGuy” and the MSISDN of the SMS user's mobile device is 14085551212. For thecommunication session120, the database stores the followingIM user information402 in table400: IM identifier associated with the IM user18(1) is “Alice999” and the temporary MSISDN assigned to IM user18(1) is 14155551212. The table400 also stores theSMS user information406 associated with the communication session120: the IM identifier associated with SMS user12(1) is “Bob123” and the MSISN of the SMS user's mobile device is 19175551212.
In order to deliver the IM composed by the IM user18(1) to the SMS user12(1) via an SMS, therouting system102 generates a text message suitable for delivery to SMS user12(1) via an SMS. A format suitable for delivering text messages via an SMS includes, among other things, a source MSISDN and a destination MSISDN. In this case, the destination MSISDN is the MSISDN of the mobile device of the SMS user12(1). The source MSISDN is the MSISDN temporarily allocated to the IM user18(1). Atstep506, therouting system102 determines the MSISDN of the mobile device associated with the identifier contained in the destination address of the IM composed by IM user18(1). Using the example provided inFIG. 5, therouting system102 obtains the IM identifier contained in the destination address of the IM, which is the “buddy” name selected by the IM user18(1) in his contact list (“Bob123”), and determines the MSISDN of the contact's mobile device. For the purpose of describing this technology only, the MSISDN of the SMS user's12(1) mobile phone is 19175551212. The system looks up the MSISDN of the SMS user in the IM user's address book that is stored in the IM servers. The MSISDN of each of the IM user's “buddies” may be entered into the IM user's address book in various methods, e.g.: (1) manually entered by the IM user through the IM client, (2) automatically taken from the SMS user's profile on the IM service (in case he also has an IM service account), where it was entered by the SMS user during his service registration to the IM service or later, or (3) synchronized from the IM user's mobile phone address book and matched with the corresponding “buddy” entry, according to the email address field, first and last name etc. The system may look up the MSISDN of the SMS user by other methods.
Atstep508, theconverter112 in therouting system102 converts the IM to a text message suitable for delivery to the SMS user12(1) via an SMS.FIG. 6 illustrates the detail of step508 (convert IM to SMS) inFIG. 5. Atstep602, a text message is generated that includes, among other things, a source address, a destination address and a text body. Atstep604, the source address of the text message is designated as the MSISDN that has been allocated to the IM user18(1), 14155551212. Atstep606, the destination address of the text message is designated as the MSISDN of the mobile device of the SMS user's12(1), 19175551212.
Atstep608, the message contained in the IM is placed into the text body of the text message. Atstep610, the IM user's18(1) user identity is placed in the text body of the text message. For the purpose of describing this technology only, the IM user's IM identifier is “Alice999.” Other identifiers associated with the IM user18(1) may be placed in the text body of the text message. At this point, a text message has been generated based on the IM received from the IM user18(1), and is ready to be routed to theSMSC106.
Atstep510, the text message generated by therouting system102 is routed by theSMSC106 to the MSISDN of the mobile device of the SMS user12(1). Because the source address of the text message is a valid MSISDN, the text message can be delivered to the SMS user12(1) across networks, if necessary. The SMS user12(1) receives the text message “Hi Bob. R U available to talk right now?” on hismobile phone1004.FIG. 10 shows an exemplary text message received by the SMS user with the IM user's identity inserted into the text body of the text message. Step610 is not required. The SMS user12(1) can identify that the text message was sent from “14155551212” (not shown inFIG. 10). Users will often delete text messages received from unknown phone numbers. Here, SMS user12(1) will not recognize the MSISDN 14155551212 because the MSISDN is not stored in his mobile device address book. Thus, adding the IM user's identifier (“Alice999”) in the body of the text message helps the SMS user12(1) recognize who sent the text message because the SMS user12(1) will likely recognize the IM identifier.
FIG. 7 illustrates additional detail of one embodiment of step504 (allocating Session ID) provided inFIG. 5. Atstep702, therouting system102 receives the IM from theIM gateway104. As discussed above, the IM includes a source address, a destination address and a message. The source address of the IM is the IM identifier of the IM user18(1) (e.g., “Alice999”). The destination address of the IM is the IM identifier of the SMS user12(1) (e.g., “Bob123”) shown in the contact list (seeFIG. 10).
Atstep704, therouting system102 identifies the MSISDN associated with the IM identifier Bob123. As described above, the system may look up the MSISDN associated with the IM identifier via several different methods. For the purpose of describing the technology only, the SMS user12(1) is not currently communicating with any other IM users, and the MSISDN associated with the IM identifier Bob 123 is 19175551212. Atstep706, therouting system102 determines that no other communication sessions are already established that contain the MSISDN of the mobile device of the SMS user12(1). In one embodiment, therouting system102 accesses thedatabase116 to determine if any of the communication sessions contain the MSISDN 19175551212. Thus, atstep714, theMSISDN allocator114 allocates an available MSISDN to the IM user18(1) (e.g., 14155551212).
Atstep716, the IM received from the IM user18(1) is converted to a text message (Step508 inFIG. 5). The MSISDN allocated to the IM user18(1), 14155551212, is the source address of the text message and the MSISDN of the mobile device of the SMS user12(1), 19175551212, is the destination address of the text message.
If the destination MSISDN was involved in another communication session with another IM user, steps708-712 would be performed (discussed later herein). By way of example only, suppose that thecommunication session122 between IM user18(1) and SMS user12(2) was established prior to the IM user18(2) composing and sending an IM to SMS user12(2). In this case, atstep706, therouting system102 determines that a prior communication session with SMS user12(2) has been established. Atstep708, therouting system102 identifies that the prior communication session iscommunication session122 based on looking up the MSISDN of SMS user12(2) in thedatabase116.
Atstep710, therouting system102 identifies that IM user18(1) has been allocated MSISDN, 14155551212. Atstep712, therouting system102 allocates a different Session ID (e.g., 16505551212) to IM user18(2). In this scenario, SMS user12(2) receives text messages from both IM user18(1) and IM user18(2). Allocating two different MSISDNs to the two IM users allows SMS user12(2) to identify that the text messages are being sent from two different users. A text message received from IM user18(1) will be identified as sent by “14155551212” while text messages received from IM user18(2) will be identified as sent by “16505551212.” The SMS user12(2) may also reply individually to eachIM user18 by replying to different MSISDNs.
EachIM user18 is temporarily allocated an MSISDN. The temporary MSISDN allocated to an IM user effectively allows anIM user18 to deliver an IM to a mobile device via an SMS, regardless of whether the IM user and the SMS user are subscribers of the same network operator. The temporary MSISDN allocated to theIM user18 also allows a mobile device user to reply to the IM user via an SMS. In one embodiment, eachIM user18 is allocated a dedicated MSISDN. However, MSISDNs are a limited and valuable resource for network operators. Thus, in an alternative embodiment, a network operator will reserve a limited number of MSISDNs, and dynamically allocate the MSISDNs to IM users as necessary for communicating with anSMS user12. Any number of MSISDNs may be reserved for this use. If, for example, 1,000 MSISDNs were reserved, eachSMS user12 could simultaneously receive text message from 1,000 users. If the number of allocated MSISDNs required for communicating with asingle SMS user12 approaches the total number of reserved MSISDNs, the network operator may designate additional MSISDNs for such use.
FIG. 8 illustrates exemplary steps for delivering a reply text message back to theIM user18 via an IM service. Upon receiving a text message, theSMS user12 selects “reply” on the mobile device and composes a reply text message. When theSMS user12 selects “send,” the text message is sent from themobile device1004 back to theSMSC106. Using the example provided inFIG. 3A, SMS user12(1) sends a reply text message “Yes I am. RU?” to IM user18(1).
Atstep802, therouting system102 receives the reply text message from theSMSC106. The reply text message includes a source address, a destination address and reply text. The source address of the reply text message is the MSISDN of the mobile device of the SMS user12(1), 19175551212. The destination address of the reply text message is the MSISDN temporarily allocated to the IM user18(1), 14155551212, which was the source address of the text message sent to the SMS user12(1).
In order to deliver the reply text message to the IM user18(1) via an IM service, the reply text message must first be converted to an IM. An IM requires an IM identifier for both the source address and the destination address. Atstep804, therouting system102 identifies the IM identifier associated with the MSISDN contained in the destination address of the reply text message. For example, therouting system102 determines that the MSISDN 14155551212 is the destination address in the text message. Thesystem120 looks in thedatabase106 for the MSISDN in the table400 to match the IM identifier “Alice999” with the MSISDN. The IM identifier provides the email address and device location to send the IM.
Atstep806, therouting system102 identifies the MSISDN in the source address of the reply text message. Based on matching the MSISDN in the table400, thesystem102 identifies the IM identifier associated with the MSISDN of the mobile device of the SMS user12(1), 19175551212. Using the example provided above, the IM identifier associated with the MSISDN 19175551212 is “Bob123.”
Atstep808, therouting system102 converts the reply text message into an IM. Atstep810, therouting system102 routes the IM to theIM gateway104. TheIM gateway104 transmits the IM to IM user18(1) via theIM network108.
FIG. 9 illustrates exemplary steps for converting the reply text message into an IM (step808). As discussed above, an IM service sends messages between IM users based on source addresses and destination addresses. Atstep902, therouting system102 designates the IM identifier (“Bob123”) associated with the SMS user's12(1) MSISDN (“Bob123”) as the source address of the IM. BY way of example only, thesystem102 looks up the MSISDN obtained in the source address of the reply text message in thedatabase116, and identifies the IM identifier associated with the MSISDN. Atstep904, therouting system102 designates the IM identifier associated with the IM user18(1) (“Alice999”) as the destination address of the IM. Atstep906, therouting system102 imports the text portion of the reply text message into the IM text body (e.g., “Yes I am. R U?”). At this point, theIM gateway104 is ready to deliver the IM to the destination address designated in the IM (step810).
Referring back toFIG. 3A, IM user18(1), now selects the IM identifier (“LonelyGuy”) from her “buddy” list and composes an IM. The IM identifier “LonelyGuy” is the identifier of SMS user12(2). Because SMS user12(2) is offline, SMS user12(2) is available only through his mobile device. In order to deliver the IM to the SMS user12(2), the IM must be converted to a format suitable for delivery via an SMS. An SMS format requires a source MSISDN and a destination MSISDN. Atstep502, therouting system102 receives this second IM from the IM user18(1) via theIM gateway104. Therouting system102 recognizes that a temporary MSISDN has already been allocated to IM user18(1), 14155551212. Thus,step504 is not necessary, and there is no need to allocate a new or second MSISDN to IM user18(1). The MSISDN previously allocated to “Alice999” for thecommunication session120 with “Bob123” is reused during thecommunications session122 with “LonelyGuy.” Accordingly, a new MSISDN is not required every time an IM user sends an instant message to an SMS user. Atstep506, therouting system102 determines the MSISDN of the mobile device of the SMS user12(2), 14085551212. Atstep508, therouting system102 converts the IM received from IM user18(1) into a text message suitable for delivery to the mobile device of the SMS user12(2) via an SMS.
Atstep510, therouting system102 transmits the text message to theSMSC106. This text message contains a source address comprising the temporary MSISDN allocated to IM user18(1), a destination address comprising the MSISDN associated with SMS user12(2), and a text message. In one embodiment, the text message contains the user identifier associated with IM user18(1) (e.g., “Alice999”). SMS user12(2) receives a text message on his mobile device, and can identify who sent the text message by either recognizing the MSISDN temporarily allocated to IM user18(1) or, more likely, recognizing the IM identifier.
Upon receiving the text message, SMS user12(2) composes and sends a reply text message from his mobile device back to IM user18(1). The reply text message includes a source address (the MSISDN of the mobile device of SMS user12(2)), a destination address (the MSISDN temporarily allocated to IM user18(1)), and reply text. Referring back toFIG. 8, when SMS user12(2) composes and sends a reply text message to IM user18(1), therouting system102 receives the reply text message from theSMSC106, atstep802. Therouting system102 identifies the IM identifier associated with the MSISDN allocated to IM user18(1), atstep604.
Atstep806, the IM identifier associated with the MSISDN located in the source address of the reply text message is identified. Thus, therouting system102 determines the IM identifier associated with SMS user12(2) (e.g., “LonelyGuy”). Atstep808, the reply text message is converted to an IM. Atstep810, the IM is routed to theIM gateway104, and ultimately forwarded to IM user18(1). From the perspective of the IM user18(1), she is “chatting” with SMS user12(1) and SMS user12(2). For example, it appears to IM user18(1) that SMS user12(1) and SMS user12(2) are online and are communicating with her via an IM service. From the perspective of the SMS user12(1) and the SMS user12(2), they are each “texting” with IM user18(1) via an SMS.
Suppose IM user18(2) now composes and sends an IM to SMS user12(2) by selecting IM user's12(2) “buddy” name (“LonelyGuy”) in his contact list and typing a message, i.e., “How was the ski trip?”. Atstep702, therouting system102 receives the instant message from IM user18(2). The source address of the IM is the IM identifier associated with IM user18(2) (e.g., “BigCharlie”) and the destination address of the IM is the IM identifier associated with SMS user12(2), “LonelyGuy.” Atstep704, the MSISDN of the mobile device of SMS user12(2) is identified as 14085551212.
Atstep706, it is determined whether any active communication sessions include the MSISDN of the mobile device of SMS user12(2). For the purpose of describing this technology only, thecommunication session122 has previously been established and is still active. Thus, atstep708, thecommunication session122 is identified as an active session that includes the MSISDN of the mobile device of the SMS user12(2). Atstep710, the MSISDN allocated to the IM user18(2) is identified. IM users communicating with the same SMS user should not be allocated the same MSISDN so that the SMS user can distinguish who is sending the messages. Atstep712, an available MSISDN is allocated to IM user18(2) that differs from the MSISDN allocated to IM user18(1).
MSISDNs are temporarily allocated to an IM user and are returned to the pool when the communication session has ended (or some predetermined time after). Therouting system102 attempts to avoid allocating a recently returned MSISDN to a new IM user communicating with an SMS user who was recently receiving text message from the recently returned MSISDN. Otherwise, it will appear to the SMS user that they are receiving new messages from the prior user.
At this point, SMS user12(2) is receiving text messages from IM user18(1) and IM user18(2). SMS user12(2) is able to differentiate who is sending her text messages because the source address of each text message is the MSISDN temporarily allocated to theIM user18 sending the message. For example, when SMS user12(2) receives a text message from IM user18(1), the text message will contain the message “sent from 14155551212,” and optionally contain the IM identifier, “Alice999,” in the body of the text message. When SMS user12(2) receives a text message from IM user18(2), the text message will contain the message “sent from 16505551212,” and optionally contain the IM identifier, “BigCharlie,” in the body of the text message.
Atstep714, the IM message from IM user18(2) is converted to a text message suitable for delivery via an SMS. The source address of the text message is the MSISDN allocated to IM user18(2) for thiscommunication session124, 16505551212. The destination address of the text message is the MSISDN of the mobile device of SMS user12(2). The message is inserted into the body of the text message, atstep718. Atstep720, therouting system102 routes the text message to theIM gateway104, which forwards the text message to the MSISDN of the mobile device of SMS user12(2). If the SMS user12(2) composes and sends a reply text message to IM user18(2), steps802-810 inFIG. 8 are performed to route the reply text message back to IM user18(2) via an IM service.
The foregoing detailed description of the technology herein has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the technology to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. The described embodiments were chosen in order to best explain the principles of the technology and its practical application to thereby enable others skilled in the art to best utilize the technology in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the technology be defined by the claims appended hereto.