1. Technical Field
The present disclosure relates to communication environments and more specifically to identifying and presenting context- and contact-specific information in a communication environment.
2. Introduction
In a rich communication environment, users often deal with and manage a large number of contacts, sometimes ranging into the hundreds or even thousands of contacts. Each contact can have multiple pieces of information such as name, phone number, email address, home address, and so forth. Modern communication systems typically manage and provide access to such vast amounts of information via a contact list, or directory of people and associated information. A communication system can retrieve information from the contact list to provide to a user. For example, when the user makes a voice over IP phone call to a colleague, the communication system can display the picture of the colleague on the communication device for easy identification. In another example, in a multi-party audio conference, when a user moves the mouse pointer over a name or icon of a contact, the conference system can display a pop-up window to show more detailed contact information for that contact.
The information pertaining to the contacts in the contact list is limited to basic contact information that is either static and seldom changed over time, information pulled from a corporate directory or some other data source, such as a social network or an instant messaging server. These data sources provide only the most basic information, such as phone number and email address, and do not endeavor to provide additional information which may be useful or relevant to the user in that particular communication context.
Additional features and advantages of the disclosure will be set forth in the description which follows, and in part will be obvious from the description, or can be learned by practice of the herein disclosed principles. The features and advantages of the disclosure can be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features of the disclosure will become more fully apparent from the following description and appended claims, or can be learned by the practice of the principles set forth herein.
An example communication environment, communication system, or communication client can expand beyond providing static information about contacts in a contact list, and can display more detailed, context-aware, intelligent information snippets about one or more contacts in the contact list. Specifically, the communication system can gather information about the past and present behaviors of each individual in a contact list, such as various statistics and communication history. Then, at a later time, the communication system can display the appropriate information about the contacts in the contact list in a non-obtrusive way, such as via a pop-up dialog window in a graphical user interface of a laptop or video conferencing device, on a second screen device such as a tablet or smartphone, or via a wearable computing device such as smart glasses or a smart watch. The communication system can select which information to display to the user based on current and/or previous context or activities of the user and/or an indicated contact.
In a teleconferencing system, when a user hovers a mouse pointer over a name or icon of a contact, the system can display a pop-up window with not only “basic” information such as a profile picture, contact information, or a phone number. The system can also display a graph highlighting the communication history between the user and the person, for example. During a conference call or other meeting, if one of the expected participants is late to join, the system can present a pop-up indicating whether the missing expected participant has a tendency to be tardy based on past meeting records, can show his current location based on location data reported by his or her smartphone, can show his or her presence information, or can prepare an editable one-click option to send him or her a text message. For example, the system can prepare a one-click option to send a message “What is your ETA?” but users can edit the body of the message or to where the message will be directed prior to clicking
This approach presents context-specific relevant information or communication options dynamically rather than providing fixed or simple generic contact information. The system gathers information about user behavior statistics, selects part of the information that is relevant to another user given a current context and a similarity of that current context to previously recorded context situations, and displays the information in an unobtrusive way or makes it available or easily discoverable for the user.
Disclosed are systems, methods, and non-transitory computer-readable storage media for displaying context-aware contact details. An example system can gather information associated with behavior of a first user, wherein a list of contacts on a communication system for a second user contains the first user. The system can select, from the information, an information snippet related to a current activity context of one of the first user or the second user. The system can display the information snippet to the second user while the second user interacts with an identifier of the first user on the communication system in the current activity context. The information snippet can include, but is not limited to, a conversation history between the first user and the second user, context-specific data related to the first user, a document, an address, contact information of the first user, an image, an email message, availability of the first user, presence information of the first user, or relationship information between the first user and the second user. In one variation, the system can further detect an information requesting event from the second user, and display the information snippet to the second user in response to the information requesting event. The information requesting event can be, for example, placing a mouse pointer over an avatar of the first user, clicking on an icon associated with the first user, a spoken voice command, a text query, a gesture, the first user joining a communication session, or receipt of a meeting invite. The system can gather information associated with behavior of a first user by identifying data sources associated with the first user, and requesting from the data sources parts of the information that also relate to the second user or to the current activity context.
Further, the system can track how the second user interacts with the information snippet, and modify how additional information snippets are selected based on how the second user interacts with the information snippet. In another variation, the system can also retrieve permissions associated with the first user, and select the information snippet related to a current activity context based on the permissions.
Various embodiments of the disclosure are described in detail below. While specific implementations are described, it should be understood that this is done for illustration purposes only. Other components and configurations may be used without parting from the spirit and scope of the disclosure. The present disclosure addresses identifying and presenting context-specific contact information in a non-obtrusive way. Multiple variations shall be described herein as the various embodiments are set forth.
An example communications device 104 acting as a context-specific contact information system can offer a richer experience when interacting with an identifier or representation of a contact in a contact list. The identifier or representation of the contact can be a name, an icon, a photo, an ID number, a dial-in number, a label, an animation, and so forth. The exact type of identifier or representation can vary from device type to device type, and can include other suitable identifiers not listed herein. The system can intelligently gather and display information that is most pertinent and helpful to a user depending on a current communication context. The context can reflect, for example, what the user and/or the contact are doing, what the user and/or the contact have scheduled or planned to do, presence information of either the user or the contact, and so forth. In one example, during a video conference a participant places the mouse pointer over another conference participant's avatar. In response, the system can display a pop-up window with additional context-sensitive information for that specific interaction and for that specific relationship between that pair of participants. The additional context-sensitive information can include information such as when the other participant joined the video conference, some of the topics that she has addressed during the conference so far, related email correspondence that you had exchanged with her prior to the conference, her current location, documents recently discussed by the two participants, social networking messages, common friends, joint task items, and so forth. The communication system can monitor participants' behavior as they interact with the system and with each other. When multiple participants are interacting with each other via the system, the system can use this information as well as additional context information to enhance the experience by identifying, retrieving, and providing dynamically selected or generated contact data, suggestions, or actions based on the current context.
The communications device 104 can monitor context continuously and prepare or maintain a set of context-aware contact details for each other participant in the video conference so that the communications device 104 is ready to present that information upon a user request. Alternatively, the communications device 104 can receive a request to display context-aware contact details, determine context after receiving the request, and then fetch the contact details for display based on the context. This approach may introduce some latency or delay while the communications device 104 gathers context information and then gathers contact details.
While
In another variation, the communications device 104 can deliver context-aware contact details to the user via a non-visual channel. For example, the communications device 104 can use a whisper or text-to-speech voice to provide context-aware contact details in a left audio channel while the audio-only conference continues in the right audio channel. In this way, even in a display-less interface the user can still receive context-aware contact details.
Having disclosed some basic system components and concepts, the disclosure now turns to the exemplary method embodiment shown in
The example system can gather information associated with behavior of a first user, wherein a list of contacts on a communication system for a second user contains the first user (502). The system can select, from the information, an information snippet related to a current activity context of one of the first user or the second user (504). The system can display the information snippet to the second user while the second user interacts with an identifier of the first user on the communication system in the current activity context (506). The information snippet can include, but is not limited to, a conversation history between the first user and the second user, context-specific data related to the first user, a document, an address, contact information of the first user, an image, an email message, availability of the first user, presence information of the first user, or relationship information between the first user and the second user. In one variation, the system can further detect an information requesting event from the second user, and display the information snippet to the second user in response to the information requesting event. The information requesting event can be, for example, placing a mouse pointer over an avatar of the first user, clicking on an icon associated with the first user, a spoken voice command, a text query, a gesture, the first user joining a communication session, or receipt of a meeting invite. The system can gather information associated with behavior of a first user by identifying data sources associated with the first user, and requesting from the data sources parts of the information that also relate to the second user or to the current activity context.
Further, the system can track how the second user interacts with the information snippet, and modify how additional information snippets are selected based on how the second user interacts with the information snippet. In another variation, the system can also retrieve permissions associated with the first user, and select the information snippet related to a current activity context based on the permissions.
A brief description of a basic general purpose system or computing device in
The system bus 110 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. A basic input/output (BIOS) stored in ROM 140 or the like, may provide the basic routine that helps to transfer information between elements within the computing device 100, such as during start-up. The computing device 100 further includes storage devices 160 such as a hard disk drive, a magnetic disk drive, an optical disk drive, tape drive or the like. The storage device 160 can include software modules 162, 164, 166 for controlling the processor 120. Other hardware or software modules are contemplated. The storage device 160 is connected to the system bus 110 by a drive interface. The drives and the associated computer-readable storage media provide nonvolatile storage of computer-readable instructions, data structures, program modules and other data for the computing device 100. In one aspect, a hardware module that performs a particular function includes the software component stored in a tangible computer-readable storage medium in connection with the necessary hardware components, such as the processor 120, bus 110, display 170, and so forth, to carry out the function. In another aspect, the system can use a processor and computer-readable storage medium to store instructions which, when executed by the processor, cause the processor to perform a method or other specific actions. The basic components and appropriate variations are contemplated depending on the type of device, such as whether the device 100 is a small, handheld computing device, a desktop computer, or a computer server.
Although the exemplary embodiment described herein employs the hard disk 160, other types of computer-readable media which can store data that are accessible by a computer, such as magnetic cassettes, flash memory cards, digital versatile disks, cartridges, random access memories (RAMs) 150, read only memory (ROM) 140, a cable or wireless signal containing a bit stream and the like, may also be used in the exemplary operating environment. Tangible computer-readable storage media, computer-readable storage devices, or computer-readable memory devices, expressly exclude media such as transitory waves, energy, carrier signals, electromagnetic waves, and signals per se.
To enable user interaction with the computing device 100, an input device 190 represents any number of input mechanisms, such as a microphone for speech, a touch-sensitive screen for gesture or graphical input, keyboard, mouse, motion input, speech and so forth. An output device 170 can also be one or more of a number of output mechanisms known to those of skill in the art. In some instances, multimodal systems enable a user to provide multiple types of input to communicate with the computing device 100. The communications interface 180 generally governs and manages the user input and system output. There is no restriction on operating on any particular hardware arrangement and therefore the basic features here may easily be substituted for improved hardware or firmware arrangements as they are developed.
For clarity of explanation, the illustrative system embodiment is presented as including individual functional blocks including functional blocks labeled as a “processor” or processor 120. The functions these blocks represent may be provided through the use of either shared or dedicated hardware, including, but not limited to, hardware capable of executing software and hardware, such as a processor 120, that is purpose-built to operate as an equivalent to software executing on a general purpose processor. For example the functions of one or more processors presented in
The logical operations of the various embodiments are implemented as: (1) a sequence of computer implemented steps, operations, or procedures running on a programmable circuit within a general use computer, (2) a sequence of computer implemented steps, operations, or procedures running on a specific-use programmable circuit; and/or (3) interconnected machine modules or program engines within the programmable circuits. The system 100 shown in
Embodiments within the scope of the present disclosure may also include tangible and/or non-transitory computer-readable storage media for carrying or having computer-executable instructions or data structures stored thereon. Such tangible computer-readable storage media can be any available media that can be accessed by a general purpose or special purpose computer, including the functional design of any special purpose processor as described above. By way of example, and not limitation, such tangible computer-readable media can include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions, data structures, or processor chip design. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or combination thereof) to a computer, the computer properly views the connection as a computer-readable medium. Thus, any such connection is properly termed a computer-readable medium. Combinations of the above should also be included within the scope of the computer-readable media.
Computer-executable instructions include, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Computer-executable instructions also include program modules that are executed by computers in stand-alone or network environments. Generally, program modules include routines, programs, components, data structures, objects, and the functions inherent in the design of special-purpose processors, etc. that perform particular tasks or implement particular abstract data types. Computer-executable instructions, associated data structures, and program modules represent examples of the program code means for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described in such steps.
Other embodiments of the disclosure may be practiced in network computing environments with many types of computer system configurations, including personal computers, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. Embodiments may also be practiced in distributed computing environments where tasks are performed by local and remote processing devices that are linked (either by hardwired links, wireless links, or by a combination thereof) through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
The various embodiments described above are provided by way of illustration only and should not be construed to limit the scope of the disclosure. For example, the principles herein can be incorporated into a corporate unified communications server, a web-based instant messaging service, or any other communication platform or client. Various modifications and changes may be made to the principles described herein without following the example embodiments and applications illustrated and described herein, and without departing from the spirit and scope of the disclosure.