# Patent

## Title
Unified communication escalation

## Abstract

A method and system for providing message threads with messages of multiple modes of communication in a uniform manner is provided. A messaging system provides a unified communications user interface for message threads that include messages sent using different modes of communications. When a user wants to reply to a message of one mode with a message of another mode, the messaging system displays the communication client application context of the other mode so that the user can prepare and send the message using the appropriate functions. When the instant message is sent, the messaging system adds the instant message to the message thread so that it can be displayed as part of the message thread.

## Background
BACKGROUND
Computer systems provide many different modes of communication through which users can send messages. These modes of communication include electronic mail, Voice over Internet Protocol (“VoIP”), instant messaging, voice mail, and so on. Typically, different communication client applications are used to support different modes of communication. A user who wants to communicate using instant messaging and electronic mail would need to have installed on their computer system an electronic mail client application and an instant messaging client application. Each communication client application, however, provides its own interface or context for its messages. An electronic mail client application may provide a context that includes from, to, subject, and input fields and icons for creating messages, sending messages, replying to messages, resolving addresses, and so on. An instant messaging client application may provide a context that includes a list of contacts that are online, a pop-up window that is displayed when a message arrives, and a chat window for displaying and inputting instant messages.
A sender who wants to send a message to a recipient may want to select a mode of communication that is most appropriate given the “presence” of the recipient. Users may make their presence information available so that other users can decide how best to communicate with them. The presence information may indicate whether a user is logged on (“online”) with an instant messaging service or is logged off (“offline”). Presence information may also provide more detailed information about the availability of the user. For example, even though a user is online, that user may be away from their computer in a meeting. In such a case, the presence information may indicate “online” and “in a meeting.” The presence information may indicate various levels of “presence.” For example, “offline” is a low level of presence, “online—in a meeting” is a higher level of presence, and “online—at desk” is an even higher level of presence. A publishing user (“publisher”) makes their presence information available to others by publishing their presence information to a presence server. The presence server then provides the presence information to subscribing users (“subscribers”). Thus, a presence server may use a subscriber/publisher model to provide the presence information. Whenever the presence information of a user changes, the presence server is notified of the change by that user's computer system and in turn notifies the subscribing users of the change.
A recipient may decide to reply to a message using a mode of communication different from the mode of communication of the original message. For example, a recipient viewing an electronic mail message may reply using instant messaging to provide the response immediately because the sender of the electronic mail message is currently online as indicated by the sender's presence information. In such a case, the recipient would move from the electronic mail client application to the instant messaging client application to send the reply. Similarly, a recipient upon receiving an instant message may reply using VoIP to fully explain the reply because the sender is currently not in a meeting as indicated by the sender's presence information.
A difficulty with sending replies to messages using different modes of communication is that switching communication client applications may cause a user to lose their train of thought. For example, after starting up or switching to an instant messaging client application, the user may not fully remember the substance of their intended reply. Another difficulty is that the content of the original message and the reply message are stored separately. In particular, when a recipient receives a reply that is in a mode different from the mode of the original message, the recipient will not be provided the content of the original message in the reply, unless the sender of the reply copied the content over to the reply. Another difficulty is that the original message and the reply are archived separately with no indication that they form a message thread.
SUMMARY
A method and system for providing message threads with messages of multiple modes of communication in a uniform manner is provided. A messaging system provides a unified communications user interface for message threads that include messages sent using different modes of communications. A message thread with messages of different modes of communication is referred to as a “multi-modal message thread.” The messaging system displays the messages of a multi-modal message thread in a display area that shows the message/reply sequence of the message thread. When a user wants to reply to a message of one mode with a message of another mode, the messaging system displays the communication client application context of the other mode so that the user can prepare and send the message using the appropriate functions. When the instant message is sent, the messaging system adds the instant message to the message thread so that it can be displayed as part of the message thread.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates a display page displaying recent communications and contacts of a user in one embodiment.
FIG. 2 illustrates a display page displaying an electronic mail message in one embodiment.
FIG. 3 illustrates a display page displaying a reply instant message in one embodiment.
FIG. 4 illustrates a display page displaying a further reply instant message in one embodiment.
FIG. 5 illustrates a display page displaying a multi-modal message thread in one embodiment.
FIG. 6 illustrates a display page displaying a multi-modal message thread in which the mode of a reply changes in one embodiment.
FIG. 7 illustrates a display page displaying a voice mail message in one embodiment.
FIG. 8 illustrates a display page displaying a reply voice mail message in one embodiment.
FIG. 9 is a block diagram that illustrates components of the messaging system in one embodiment.
FIG. 10 is a block diagram that illustrates a data structure for a multi-modal message thread store in one embodiment.
FIG. 11 is a flow diagram that illustrates the processing of the display multi-modal message component of the messaging system in one embodiment.
FIG. 12 is a flow diagram that illustrates the processing of the reply to multi-modal message component of the messaging system in one embodiment.
FIG. 13 is a flow diagram that illustrates the processing of the select reply mode component of the messaging system in one embodiment.
FIG. 14 is a flow diagram that illustrates the processing of the send multi-modal reply component of the messaging system in one embodiment.



DETAILED DESCRIPTION
A method and system for providing message threads with messages of multiple modes of communication in a uniform manner is provided. In one embodiment, a messaging system provides a unified communications user interface for message threads that include messages sent using different modes of communications. A message thread with messages of different modes of communication is referred to as a “multi-modal message thread.” The messaging system displays the messages of a multi-modal message thread in a display area that shows the message/reply sequence of the message thread. As an example, a multi-modal message thread may include a first electronic mail message, a first instant message that replies to the first electronic mail message, a second instant message that replies to the first instant message, and a second electronic mail message that replies to the second instant message. In such a case, the messaging system may display the first electronic mail message, followed by the first instant message, followed by the second instant message, followed by the second electronic mail message. Thus, the messaging system displays the entire context of the message thread even though the message thread includes messages of different modes. When a user wants to reply to a message of one mode with a message of another mode, the messaging system displays the communication client application context of the other mode so that the user can prepare and send the message using the appropriate functions. For example, if a user replies to an electronic mail message using an instant message, the messaging system may display the electronic mail message and an instant messaging window for input and sending of the reply instant message. When the instant message is sent, the messaging system adds the instant message to the message thread so that it can be displayed as part of the message thread. Because the messaging system displays multi-modal message threads and allows input of messages of different modes, a user can send messages of various modes while viewing the context of the entire message thread and within a communication client application context that is appropriate to the mode of communication.
In one embodiment, the messaging system may automatically select a mode of communication for replies to messages of the message threads. When a recipient wants to respond to a message of one mode, the messaging system may select a different mode for the reply based on the presence of the sender of the replied-to message. For example, if the message being replied to is an electronic mail message, the messaging system may automatically select an instant messaging mode for replying when the sender is currently online. The automatic selecting of a mode of communication that relies on a higher level of presence is referred to as “escalation” of the mode of communication. In some instances, the messaging system may automatically select a mode that relies on a lower level of presence, which is referred to as a “de-escalation” of the mode of communication. For example, if a user wants to reply to an instant message when the sender of the instant message is no longer online, the messaging system may select an electronic mail message mode of communication for the reply. In this way, users are relieved of the burden of having to select a mode of communication that is most appropriate for the recipient's current presence.
FIG. 1 illustrates a display page displaying recent communications and contacts of a user in one embodiment. Display page 100 includes a recent communications area 101, a contacts area 102, and a message display area 103. The recent communications area identifies recent communications that the user has received. In this example, the user has recently received electronic mail messages from John Doe and Mary Smith, a voice mail from Mary Smith, a meeting invitation from Mark Davis, and an instant message from Mark Davis. The communications have associated icons representing their modes of communication. The contacts area lists various contacts of the user along with an indication of the presence of the contacts. In this example, the user has contacts Mark Davis, John Doe, and Mary Smith. John Doe is currently online, and Mark Davis and Mary Smith are currently offline. When the user selects a message from the recent communications area, the messaging system displays that message in the message display area.
FIG. 2 illustrates a display page displaying an electronic mail message in one embodiment. Display page 200 includes a recent communications area 201, a contacts area 202, a message display area 203, and an electronic mail message 204. In this example, the user selected the electronic mail message from John Doe. In response, the messaging system retrieved the electronic mail message and displayed it in the message display area. The messaging system may invoke a component of the electronic mail client application to display the message in an electronic mail message context. In this example, the electronic mail context includes the familiar from and subject fields and the familiar reply and forward functions. When the user selects the reply function, the messaging system determines the appropriate mode of communication and invokes the component of the client application of that mode of communication.
FIG. 3 illustrates a display page displaying a reply instant message in one embodiment. Display page 300 includes a recent communications area 301, a contacts area 302, a message display area 303, an electronic mail message 304, and an instant message 305. The messaging system displayed an instant message reply area when the user selected the reply function of the electronic mail message. The messaging system determined that, since John Doe was currently online, an instant message was an appropriate mode of communication. The messaging system then invoked a component of the instant messaging client application to display a blank chat window within the reply area. The user then entered the reply into the chat window and selected the send function. At that point, the messaging system created a multi-modal message thread containing the electronic mail message and the instant message. Because the chat window is displayed just below the electronic mail message, the user can view the context of the electronic mail message to which the user is replying.
FIG. 4 illustrates a display page displaying a further reply instant message in one embodiment. Display page 400 includes a recent communications area 401, a contacts area 402, a message display area 403, an electronic mail message 404, a first instant message 405, and a second instant message 406. The second instant message 406 corresponds to a reply instant message sent by the recipient of the first instant message. The electronic mail message, the first instant message, and the second instant message form a multi-modal message thread. Since the message thread that was initiated with John Doe's electronic mail message is now multi-modal, the messaging system replaced the icon for that message in the recent communications area with an icon to indicate multi-modal (“MM”).
FIG. 5 illustrates a display page displaying a multi-modal message thread in one embodiment. Display page 500 includes a recent communications area 501, a contacts area 502, a message display area 503, an electronic mail message 504, a first instant message 505, a second instant message 506, and a third instant message 507. In this example, when the user selected to reply to the second instant message, the messaging system determined that, since John Doe was still online, the reply should be an instant message. In this example, however, John Doe went offline before the instant message was sent.
FIG. 6 illustrates a display page displaying a multi-modal message thread in which the mode of a reply changes in one embodiment. Display page 600 includes a recent communications area 601, a contacts area 602, a message display area 603, a first electronic mail message 604, a first instant message 605, a second instant message 606, and a second electronic mail message 607. The contacts area indicates that the John Doe is currently offline. Since John Doe went offline before instant message 507 (FIG. 5) was sent, the messaging system changed the instant message to be an electronic mail message and displayed the content of the instant message as the second electronic mail message.
FIG. 7 illustrates a display page displaying a voice mail message in one embodiment. Display page 700 includes a recent communications area 701, a contacts area 702, a message display area 703, and a voice mail message 704. The messaging system displayed the voice mail message in response to the user selecting Mary Smith's voice mail indicator displayed within the recent communications area. The messaging system invoked a component of a voice mail client application to display the voice mail message in the appropriate context. The voice mail client application may have converted the audio of the voice mail to text using speech recognition techniques. Alternatively, the voice mail message may be represented by an icon that a user can select to hear the content of the voice mail message.
FIG. 8 illustrates a display page displaying a reply voice mail message in one embodiment. Display page 800 includes a recent communications area 801, a contacts area 802, a message display area 803, a voice mail message 804, and an electronic mail message 805. When the user selected to reply to the voice mail message, the messaging system determined that, since Mary Smith is not online and is in a meeting, the appropriate mode for the reply was electronic mail message. The messaging system then invoked a component of the electronic mail message client application to control the inputting and sending of the reply electronic mail message.
FIG. 9 is a block diagram that illustrates components of the messaging system in one embodiment. The messaging system 930 may be connected to a presence server 901, an electronic mail server 902 and other messaging servers, and user computing systems 903 via communications link 920. The messaging system may interact with various components of communication client applications such as an electronic mail component 931, a voice mail component 932, an instant messaging component 933, a VoIP component 934, and a calendar component 935. The messaging system may include a unified communications component 940 and a multi-modal message thread store 941. The unified communications component provides the user interface for interacting with multi-modal message threads in a uniform manner. The multi-modal message thread store stores an indication of the multi-modal message threads. The messaging system also includes a determine presence component 942, a select reply mode component 943, a send multi-modal reply component 944, a display multi-modal message component 945, and a reply to multi-modal message component 946. The determine presence component determines the current presence of a user to whom a message is to be sent. The select reply mode component selects a mode of communications for a reply message. The send multi-modal reply component controls the sending of a reply message. The display multi-modal message component displays a multi-modal message thread. The reply to multi-modal message component generates a reply to a multi-modal message and invokes the send multi-modal reply component to send the reply.
FIG. 10 is a block diagram that illustrates a data structure for a multi-modal message thread store in one embodiment. The data structure 1000 may include a multi-modal message index 1001 with an entry for each multi-modal message thread. Each entry contains an identifier of the multi-modal message thread and a pointer to a multi-modal message table 1002. Each multi-modal message table contains an entry for each message of a multi-modal message thread. Each entry contains an indication of the mode of the message along with an identifier of the message. The identifier of a message may be a reference provided by a communication client application that stores the actual message. For example, an entry of “email 0151” indicates that the message is an electronic mail message with an identifier of “0151.” One skilled in the art will appreciate that this data structure is just one example of a data structure for storing multi-modal message threads. Other data structures may include hash tables, linked lists, tree structures, and so on.
The computing devices on which the messaging system may be implemented may include a central processing unit, memory, input devices (e.g., keyboard and pointing devices), output devices (e.g., display devices), and storage devices (e.g., disk drives). The memory and storage devices are computer-readable media that may contain instructions that implement the messaging system. In addition, the instructions, data structures, and message structures may be stored or transmitted via a data transmission medium, such as a signal on a communications link. Various communications links may be used, such as the Internet, a local area network, a wide area network, or a point-to-point dial-up connection.
The messaging system may be implemented on various computing systems or devices including personal computers, server computers, multiprocessor systems, microprocessor-based systems, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like. The messaging system may be used by various computing systems such as personal computers, cell phones, personal digital assistants, consumer electronics, home automation devices, and so on.
The messaging system may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, and so on that perform particular tasks or implement particular abstract data types. Typically, the functionality of the program modules may be combined or distributed as desired in various embodiments.
FIG. 11 is a flow diagram that illustrates the processing of the display multi-modal message component of the messaging system in one embodiment. The component 1100 is passed the identifier of a multi-modal message thread and displays its messages in a message display area. In block 1101, the component retrieves the multi-modal table corresponding to the passed identifier. In blocks 1102-1106, the component loops selecting and displaying each message. In block 1102, the component selects the next message of the multi-modal message thread. In decision block 1103, if all the messages have already been selected, then the component returns, else the component continues at block 1104. In block 1104, the component retrieves the message identifier of the selected message. In block 1105, the component retrieves the message from the communication client component of the selected message. In block 1106, the component displays the retrieved message and then loops to block 1102 to select the next message. The component may display the retrieved message by invoking the appropriate communication client applications.
FIG. 12 is a flow diagram that illustrates the processing of the reply to multi-modal message component of the messaging system in one embodiment. The component 1200 selects a mode of communication, inputs a message, and sends the message as a reply. In block 1201, the component invokes the select reply mode component to select an appropriate mode of communication. In block 1202, the component inputs the message for the reply by invoking the appropriate communication client application. In decision block 1203, if the message is to be sent, then the component continues at block 1204, else the component returns. In block 1204, the component invokes the send multi-modal reply component to send the reply and update the multi-modal message thread store. The component then returns.
FIG. 13 is a flow diagram that illustrates the processing of the select reply mode component of the messaging system in one embodiment. The component 1300 is passed a recipient and an indication of the mode of the message that is being replied to. The component selects an appropriate reply mode that may be based in part on the last mode. For example, if the last mode was a voice mail, then the messaging system may select VoIP as the reply mode. In contrast, if the last mode was an electronic mail message, then the messaging system may select instant message as the reply mode. In block 1301, the component invokes the determine presence component to determine the current presence of the recipient. In block 1302, the component retrieves custom rules for the recipient. In one embodiment, the messaging system may allow custom rules to be defined for selecting an appropriate reply mode. The custom rules may be provided by the user of the messaging system or by an administrator of an enterprise. The rules may be a series of conditions and associated reply modes. To apply the rules, the component may check each condition until one is satisfied and return the associated reply mode of that satisfied condition. In decision block 1303, if custom rules have been found, then the component continues at block 1304, else the component continues at block 1305. In block 1304, the component applies the custom rules and returns the selected mode. In blocks 1305-1308, the component loops selecting default rules until all the rules have been selected or a condition of a rule has been satisfied. In block 1305, the component selects the next default rule. In decision block 1306, if all the default rules have already been selected, then the component returns a default mode, else the component continues at block 1307. In decision block 1307, if the condition of the selected rule is satisfied, then the component continues at block 1308, else the component loops to block 1305 to select the next default rule. In block 1308, the component selects the mode of the selected rule whose condition is satisfied and then returns the selected mode.
FIG. 14 is a flow diagram that illustrates the processing of the send multi-modal reply component of the messaging system in one embodiment. The component 1400 is passed a current mode, a recipient, and a message. The component determines a new mode of communication and, if different from the previously selected mode of communication for the message (e.g., a reply), converts the message to the new mode of communication, sends the message, and updates the multi-modal message thread store. In block 1401, the component invokes the select reply mode component to determine a new reply mode. In decision block 1402, if the new reply mode is the same as the previous reply mode, then the component continues at block 1404, else the component continues at block 1403. In block 1403, the component converts the message to the new reply mode. In block 1404, the component sends the message using the appropriate communication client application. In block 1405, the component updates the multi-modal message thread store with the newly sent message and then returns.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims. The messaging system may select a reply mode that factors in the different levels of presence of multiple recipients. For example, the messaging system may select a reply mode that is based on the recipient with the lowest level of presence. Alternatively, the message system may use a different mode for each recipient and store an indication of the different modes in the multi-modal message thread store. The messaging system may also be implemented on a web server that provides the user interface via web pages. Accordingly, the invention is not limited except as by the appended claims.

## Claims

1. A method in a computing system with a processor and a memory for providing multi-modal message threads, the method comprising:
receiving a selection of a message, the message being from a sender and having a send mode of communication;
displaying to a user the message in context of the send mode;
receiving from the user an indication to reply to the displayed message; and
in response to receiving the indication to reply,
automatically determining by the computing system a reply mode of communication to use when sending a reply to the message, wherein when the reply is to be sent to multiple recipients with different levels of presence, the determining selects a reply mode that is a multiple mode so that the reply is sent to each recipient in a mode that is appropriate to that recipient, the reply mode, for at least one of the multiple recipients being different from the send mode;
inputting from the user the reply in context of a determined reply mode, the context of the determined reply mode being different from the context of the send mode;
generating a multi-modal message thread that includes a reference to the message and a reference to the reply;
storing the multi-modal message thread with the reference to the message and the reference to the reply; and
sending to each recipient, the reply in accordance with the reply mode for that recipient, the reply including an indication that it is a reply to the message

wherein the stored multi-modal message thread includes references to messages and replies sent using different modes of communication.

2. The method of claim 1 including displaying an indicator of the send mode for the message and, after the reply is sent, changing the indicator to be of a multi-modal mode.

3. The method of claim 1 wherein the inputting of the reply includes invoking a component of a communication client application for the reply mode.

4. The method of claim 1 wherein the displaying of the message includes invoking a component of a communication client application for the reply mode.

5. The method of claim 1 including after inputting the reply, re-determining the reply mode based on current presence of the sender.

6. The method of claim 1 including displaying a multi-modal message thread by selecting each message of the thread and its mode and displaying each message in context of its mode.

7. The method of claim 1 wherein the determining of the reply mode selects an online reply mode when the presence of the sender indicates that the sender is online.

8. The method of claim 1 wherein when the send mode is electronic mail message and the sender is online, the determining of the reply mode selects instant messaging.

9. The method of claim 1 including providing rules for controlling the determining of the reply mode.

10. A computer-readable storage medium that is not a signal containing instructions for controlling a computing system to generate multi-modal message threads, by a method comprising:
providing a multi-modal message thread store that stores multi-modal message threads, each multi-modal message thread having
references to messages and modes of communication of the messages, a multi-modal message thread having messages with different modes of communication;
displaying a multi-modal message thread by selecting each message of the multi-modal message thread and its mode and displaying each message in context of its mode; and
when a user indicates to reply to a displayed message of the displayed multi-modal message thread,
automatically determining by the computing system a reply mode based on presence of a recipient of the reply, wherein when the reply is to be sent to multiple recipients with different levels of presence, the determining selects a reply mode that is a multiple mode so that the reply is sent to each recipient in a mode that is appropriate to that recipient, the reply mode for at one of the recipients being different from the mode of communication of the displayed message;
inputting the reply in context of the reply mode; and
updating the multi-modal message thread store to add the reply to the displayed multi-modal message thread.

11. The computer-readable storage medium of claim 10 including sending the reply in accordance with the reply mode.

12. The computer-readable medium storage of claim 10 including displaying an indicator of multi-modal for a multi-modal message thread.

13. The computer-readable storage medium of claim 10 wherein the inputting of the reply includes invoking a component of a communication client application for the reply mode.

14. The computer-readable storage medium of claim 10 wherein the displaying of a message of a multi-modal message thread includes invoking a component of a communication client application for the mode of the message.

15. The computer-readable storage medium of claim 10 including providing rules for controlling the determining of the reply mode.

16. A computing system for providing multi-modal message threads, comprising:
a plurality of communication applications for modes of communication, a communication application for receiving, sending, and storing
messages for the mode of communication of the communication application;
a multi-modal message thread store having threads with messages of different modes, a multi-modal message thread storing, for each message of the multi-modal message thread, a reference to the message in the context of the communication application for the mode of communication of the message;
a memory storing computer-executable instructions of
a component that displays multi-modal message threads that are stored in the multi-modal message thread store;
a component that receives from a user an indication to reply to a message of a displayed multimodal message thread;
a component that, upon receiving an indication to reply to a message of a displayed multimodal message thread, automatically selects a reply mode to use when sending a reply to the message of the multi-modal message thread, the reply mode being automatically selected based on presence of a recipient of the reply, wherein when the reply is to be sent to multiple recipients with different levels of presence, the determining selects a reply mode that is a multiple mode so that the reply is sent to each recipient in a mode that is appropriate to that recipient, the reply mode for at least one of the recipients being different from the mode of communication of the message; and
a component that replies to the message of the multi-modal message thread by inputting a reply in context of an automatically determined reply mode, updating the multi-modal message thread of the multi-modal message thread store, and sending the reply in accordance with the automatically determined reply mode; and

a processor for executing the computer-executable instructions stored in the memory.

17. The computing system of claim 16 including a component that displays an indicator of multi-modal when displaying an indication of a multi-modal message thread.

18. The computing system of claim 16 wherein the component that displays multi-modal message threads displays the messages of the threads in context of their modes.