Communications technologies are continuing to proliferate across a variety of different channel types and modalities. Previously, the bulk of person-to-person communications occurred over voice channels, but more recently, a variety of text-based communications modes have become more prevalent. In this environment, end-users may process volumes of incoming or outgoing voice and text-based message traffic, multi-tasking between different types of messages.
Tools and techniques are described for storage and expedited retrieval of messages and responses in multi-tasking environments. Methods provided by these tools may establish active communications with a first contact, and then received indications of secondary communications involving a second contact. These methods may then present user interfaces (UIs) that include representations of the secondary communications. Through the UIs, the methods may receive a selection of one of the secondary communications for an expedited response, and may receive input from the user that provides the expedited response to the secondary communication, while maintaining the active communication in an active state. These methods may provide the expedited response to the secondary communication, based upon the input received from the user.
The above-described subject matter may also be implemented as a method, computer-controlled apparatus, a computer process, a computing system, or as an article of manufacture such as a computer-readable medium. These and various other features will be apparent from a reading of the following Detailed Description and a review of the associated drawings.
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 features or essential features of the claimed subject matter, nor is it intended that this Summary be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this disclosure.
The following detailed description is directed to technologies for storage and expedited retrieval of messages and responses in multi-tasking environments. While the subject matter described herein is presented in the general context of program modules that execute in conjunction with the execution of an operating system and application programs on a computer system, those skilled in the art will recognize that other implementations may be performed in combination with other types of program modules. Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the subject matter described herein may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like.
In the following detailed description, references are made to the accompanying drawings that form a part hereof, and which are shown by way of illustration specific embodiments or examples. Referring now to the drawings, in which like numerals represent like elements through the several figures, aspects of tools and techniques for storage and expedited retrieval of messages and responses in multi-tasking environments will be described.
The graphical elements used in
Turning to the client systems 102 in more detail, the client systems may include one or more processors 104, which may have a particular type or architecture, chosen as appropriate for particular implementations. The processors 104 may couple to one or more bus systems 106 chosen for compatibility with the processors 104.
The client systems 102 may also include one or more instances of computer-readable storage media 108, which couple to the bus systems 106. The bus systems may enable the processors 104 to read code and/or data to/from the computer-readable storage media 108. The media 108 may represent storage elements implemented using any suitable technology, including but not limited to semiconductors, magnetic materials, optics, or the like. The media 108 may include memory components, whether classified as RAM, ROM, flash, or other types, and may also represent hard disk drives.
The storage media 108 may include one or more data structures and modules of instructions that, when loaded into the processor 104 and executed, cause the client systems 102 to perform various techniques for providing improved storage and retrieval of messages and responses in multi-tasking environments. Examples of these modules may include a communications response application 110, which may enable users 112 to interact with the client system 102 in managing and participating with bidirectional voice and/or message flows 114. Examples of the data structures may include communication queues 116, maintained by the communications response application 110 as represented generally by the arrow 118. As incoming communications arrive at the client system 102, or as the users 112 initiate outgoing communications from the client system 102, the communications response application may create entries in the communications queues 116. In turn, the user 112 may select incoming or outgoing communications from the queue as appropriate.
Examples of the end-users 112 may include users handling a high volume of call or text traffic in, typically, a front-line communications support role, whether for a particular team or for an entire enterprise. Without loss of generality, these users may include receptionists, team administrators, switchboard operators, or the like.
The client systems 102 may communicate with one or more external servers or server systems 120 over one or more intermediate networks 122, which generally represent any protocols, adapters, components, and other general infrastructure associated with wired and/or wireless communications networks. Such networks 122 may be global, regional, local, and/or personal in scope and nature, as appropriate in different implementations.
Turning to the server systems 120 in more detail, the server systems may include one or more processors 123, which may have a particular type or architecture, chosen as appropriate for particular implementations. The processors 123 may couple to one or more bus systems 124 chosen for compatibility with the processors 123. The processors 123 and bus systems 124 in the server systems 120 may or may not be upbeat same type and architecture as the processor 104 and bus systems 106 in the client systems 102.
The server systems 120 may also include one or more instances of computer-readable storage media 126, which couple to the bus systems 124. The bus systems may enable the processors 123 to read code and/or data to/from the computer-readable storage media 126. The media 126 may represent storage elements implemented using any suitable technology, including but not limited to semiconductors, magnetic materials, optics, or the like. The media 126 may include memory components, whether classified as RAM, ROM, flash, or other types, and may also represent hard disk drives.
The storage media 126 may include one or more data structures and modules of instructions that, when loaded into the processors 123 and executed, cause the server systems 120 to perform various techniques for providing improved storage and retrieval of messages and responses in multi-tasking environments. Examples of these modules may include modules 128 that provide server-side communications services. More specifically, the modules 128 may enable any number of remote users or contacts 130a and 130n (collectively, contacts 130) to communicate over the network 122 with the client system 102 and/or user 112. These communications with particular contacts 130 may include, but are not limited to, voice, video, and/or text-based message flows, with examples of such voice/message flows denoted respectively at 114a and 114n. In some cases, users 112 may escalate text-based communications to voice and/or video, and vice versa.
Having described at the systems or operating environments 100 for providing improved storage and retrieval of messages and responses in multi-tasking environments, the discussion now turns to a more detailed description of example message flows and related representations as provided by the communications response application. This description is now provided with
Turning to
While the active communication 202 is in an active, ongoing state, with the user 112 and the contact 130a exchanging, for example, voice-based messages, one or more additional contacts (e.g., 130b, 130c, and/or 130n) may initiate or receive any number of secondary communications involving the user 112. In the example shown, the contact 130b may initiate or receive a text message 204 involving the user 112, the contact 130c may initiate or receive an instant message (IM) 206 involving the user 112, and the contact 130n may initiate or receive a voice call 208 involving the user 112. Although not shown explicitly in
While
At the client end, the communications response application 110 may store representations of the active communication 202 and any secondary incoming or outgoing communications (e.g., 204, 206, and/or 208) in the communications queue 116. As shown in
Having described the additional aspects of example message flows and related representations as provided by the communications response application in
Turning to
Turning to the UI elements 302 more specifically, a field 304 may correspond to the representation 210 of the active communication. This field 304 may, for example, provide status information related to the active communication (e.g., duration of the communication, name of the persons involved in the communication, or the like). A selection tool 306 may correspond to the representation 212 of a first secondary incoming or outgoing communication, and a selection tool 308 may correspond to the representation 214 of another secondary communication. For example, the selection tools 306 and 308 may be checkboxes or other suitable UI tools responsive to input from the user 112 to activate the corresponding communication for an expedited response using the tools and techniques described herein. In an example scenario shown in
An input/output tool 312 may be associated with the selection tool 308, as represented by the dashed line connecting blocks 312 and 308 in
In some implementation scenarios, the user 112 may select a given secondary communication using one of the UI selection tools (e.g., 306, 308, or the like), and then input a predefined hot key sequence. In turn, the UI 302 may respond to this hot key sequence by retrieving a predefined response associated with this hot key sequence, and presenting the retrieved response to the secondary communication. In these scenarios, the UI 302 would present only the selection tools 306 and 308, without presenting the additional I/O tool 312.
In other scenarios, the UI 302 may present the I/O tool 312 in response to the user activating, for example, the selection tool 308. As detailed further below, the I/O tool 312 may receive input from the user for either initiating a hotkey sequence, or for retrieving a pre-defined response.
Having described with
Turning to
Turning to the inputs/outputs 314 in more detail, the user 112 may provide one or more alphanumeric character inputs to the input/output tool 312 shown in
The user 112 may view these filtered previous messages in the UI 302, as denoted generally at 416. If any of these filtered previous messages 416 correspond to the message that the user currently wishes to send in response to the secondary communication, the user may select the appropriate message, thereby requesting that this message be sent as a response to the secondary communication. These messages may include, but are not limited to, text-based messages, voice-based messages, video messages, text files, documents, or the like. These messages may be transmitted over any suitable type of network (e.g., Internet Protocol (IP), Short Message Service (SMS), and the like).
On the other hand, if none of the filtered previous messages 416 correspond to what the user wishes to send in response to the secondary communication, the user may continue to enter additional alphanumeric input 408, thereby resulting in an additional filtering process through the store 404 of previous messages. Eventually, the user may either select one of the previous messages that result from this additional filtering, or may enter his or her desired message completely. In some instances, the components and flows shown in
When a user, such as the example user 112, receives a notification of a secondary communication, the user 112 may respond to this notification by activating one of his or her predefined hot key sequences. For example, if the user 112 has defined a plurality of hot key sequences by assigning predefined voice and/or text responses to particular function keys, the user may respond to the secondary communication with a particular message by activating the function key to which that message is assigned. In this manner, the user may respond to secondary communications using relatively few keystrokes (e.g., one or two), thereby demanding relatively little attention from the user, and minimizing any distraction from the active communication in which the user may be involved.
In general,
The user 112 may accept or reject the retrieved message 514 as appropriate, before the message is sent in response to the secondary communication. For example, the user 112 may briefly review the retrieved message 514 to be sure that he or she activated the appropriate hotkey sequence, before sending the message as a response. If the user accepts the retrieved message 514, he or she may request that the message be sent. Otherwise, if the retrieved message 514 is incorrect, the user may activate a different hotkey sequence, until the desired message is successfully retrieved.
Turning to the process flows 600 and more detail, block 602 generally represents establishing a active contact or communication involving a given user (e.g., 112) interacting with a client system (e.g., 102).
Block 604 generally represents receiving an indication of at least one secondary contact or communication that occurs during the active communication established in block 602. As described above, the secondary contact or communication may be incoming or outgoing.
Block 606 generally represents receiving user input directed to a selected secondary contact. For example, the UI described above may include text entry fields that may receive alphanumeric input from the users (e.g., input/output tool 312 in
Decision block 608 generally represents determining whether the input received in block 606 represents a predefined hotkey sequence. If so, the process flows 600 may take Yes branch 610 to block 612. Block 612 represents retrieving and presenting the response or message stored for the hotkey sequence received in block 606.
In turn, decision block 614 represents determining whether the user accepts or rejects the response presented in block 612. For example, in a scenario in which the user activates a predefined hotkey sequence, block 614 may include determining whether the user approves the response or message presented in response to the activated hotkey sequence.
From decision block 614, if the user accepts the response or message presented in block 612, the process flows 600 may take Yes branch 616 to block 618, which represents sending the response or message to the secondary contact. In some scenarios, the process flows may proceed directly from block 606 to block 618, as represented by the dashed arrow in
Returning to decision block 608, if the input received in block 606 is not a predefined hotkey sequence, the process flows 600 may take No branch 622 to block 624. More specifically, if the input received in block 606 is not a predefined hotkey sequence, then most likely the input is alphanumeric keystroke data entered by the user as a preliminary response to the secondary contact. Block 624 represents filtering a store of previous responses or messages (e.g., 404 in
In turn, block 626 represent presenting one or more of the filtered responses to the user for approval or rejection. Afterwards, decision block 614 evaluates whether the user has accepted one of the filtered responses for sending in response to the secondary contact. If so, in the process flows 600 may perform blocks 618 and 620 as described above.
Returning to decision block 614, if the user does not accept any of the filtered responses presented in block 626, the process flows 600 may take No branch 628 to return to block 606, to receive additional input from the user. For example, in a scenario in which the user is providing alphanumeric keystroke input as an expedited response to the secondary contact, the more characters that the user provides, the more precisely that block 626 may filter previous responses.
Returning briefly to the scenario in which the user is activating a hotkey sequence to provide the expedited response, if the user activated the wrong hotkey sequence for a particular secondary contact, then a process flows 600 may take No branch 628 from decision block 614. In this case, block 606 may include the user activating a different predefined hotkey sequence.
In the foregoing manner, the process flows 600, as well as the related component and UI infrastructure described in
Although the subject matter presented herein has been described in language specific to computer structural features, methodological acts, and computer readable media, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features, acts, or media described herein. Rather, the specific features, acts and mediums are disclosed as example forms of implementing the claims.
In addition, certain process and data flows are represented herein as unidirectional only for the purposes of facilitating this description. However, these unidirectional representations do not exclude or disclaim implementations that incorporate bidirectional flows.
The subject matter described above is provided by way of illustration only and should not be construed as limiting. Various modifications and changes may be made to the subject matter described herein without following the example embodiments and applications illustrated and described, and without departing from the true spirit and scope of the present invention, which is set forth in the following claims.
Number | Name | Date | Kind |
---|---|---|---|
6590887 | Lee | Jul 2003 | B1 |
6981223 | Becker et al. | Dec 2005 | B2 |
7230745 | Street, Jr. | Jun 2007 | B1 |
7315613 | Kleindienst et al. | Jan 2008 | B2 |
7848506 | Infosino | Dec 2010 | B1 |
20020130904 | Becker et al. | Sep 2002 | A1 |
20030078033 | Sauer et al. | Apr 2003 | A1 |
20030097406 | Stafford | May 2003 | A1 |
20040264653 | Revisky et al. | Dec 2004 | A1 |
20040268263 | Van Dok et al. | Dec 2004 | A1 |
20050018833 | Wang et al. | Jan 2005 | A1 |
20050198147 | Pastro et al. | Sep 2005 | A1 |
20050286689 | Vuori | Dec 2005 | A1 |
20060026254 | Kessen et al. | Feb 2006 | A1 |
20060132595 | Kenoyer et al. | Jun 2006 | A1 |
20070106948 | Ala-Rantala | May 2007 | A1 |
20070189475 | Pearson | Aug 2007 | A1 |
20080068447 | Mattila et al. | Mar 2008 | A1 |
20080107244 | Setzer et al. | May 2008 | A1 |
20080129816 | Mattila et al. | Jun 2008 | A1 |
20090089683 | Thapa | Apr 2009 | A1 |
Number | Date | Country |
---|---|---|
WO2005088994 | Sep 2005 | AU |
WO2007061251 | May 2007 | KR |
Number | Date | Country | |
---|---|---|---|
20090307606 A1 | Dec 2009 | US |