Users of computing devices (e.g., laptops, cellular phones, and personal digital assistants) often need to communicate in real time. A common form of real-time communications is provided by instant messaging services. An instant messaging service allows participants at endpoints to send messages and have them received within a second or two by the other participants in a conversation. The receiving participants can then send responsive messages to the other participants in a similar manner. To be effective, a real-time conversation relies on the participants' becoming aware of, reviewing, and responding to received messages very quickly. This quick response is in contrast to conventional electronic mail systems in which the recipients of electronic mail messages respond to messages at their convenience.
When an initiating participant wants to start a real-time conversation, that participant needs to know whether the intended participants are available to respond in real time to a message. If not, then communications via conventional electronic mail, voice mail, or some other mechanism may be more appropriate. For example, if the computing devices of the intended participants are currently powered off, then a real-time conversation may not be possible. Moreover, if their computing devices are currently powered on, but the intended participants are away from their computing devices, a real-time conversation is also not possible. The initiating participant would like to know the availability of the intended participants so that an appropriate decision on the form of communication can be made.
Presence services provide this availability information. The availability status of an entity such as a computing device or a user associated with that computing device is referred to as “presence information.” Presence information identifies the current “presence state” of the user. Users make their presence information available to a presence service so that other users can decide how best to communicate with them. For example, 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 computing device in a meeting. In such a case, the presence state may indicate “online” and “in a meeting.”
When a real-time communication is sent to a user, the user is typically notified that the communication has been received. For example, a real-time communication client may display a pop-up window indicating that a communication has been received along with the other information. The other information may include the identification of the sender of the real-time communication, subject of the real-time communication, and so on. The pop-up window may also include controls for selecting to review the real-time communication, dismissing the pop-up window, and so on.
Users may find pop-up windows or other types of notifications of real-time communications to be both annoying and distracting. For example, a pop-up window that is displayed while the user is creating a document or engaging in another online conversation (e.g., an online conference) or other activity may be distracted from their current activity. To prevent such distractions and subsequent annoyances, real-time communication clients allow users the option of suppressing such notifications. To suppress such notifications, a user may select a menu option provided by the real-time communication client. Similarly, to resume receiving the notifications, the user may also select a menu option.
Users, however, may not have selected the option to suppress such notifications when starting an activity from which they do not want to be distracted. When such users receive a notification of a real-time communication, the users again may become annoyed and distracted. Such users may even be increasingly annoyed because they have to search for and select the menu option to suppress further notifications. Moreover, such users after selecting to suppress notifications may forget to select the option to resume receiving the notifications. Again, the user will be annoyed when they find out that they missed a real-time communication.
To help alleviate some of the annoyance and distraction of such users, a real-time communication client may try to infer when a user does not want to receive such notifications. For example, a real-time communication client may determine that the user is actively editing a document, the user is in a meeting based on a calendar entry, the user is participating in an online conference, the user is presenting a slideshow, and so on and does not want to be interrupted. When the real-time communication client determines that a user does not want to receive such notifications, it suppresses the notification. Otherwise, the real-time communication client provides the notification to the user.
When a real-time communication client correctly infers that a user does not want to receive notifications, the user's experience with the real-time communication client is positive. If, however, the real-time communication client makes an incorrect inference, the user becomes annoyed regardless of whether a notification is suppressed. If the real-time communication client incorrectly infers that the user does not want to be interrupted, it does not notify the user of communication that the user wants to know about. When the user eventually finds out that a real-time communication was missed, the user may become annoyed. Conversely, if the real-time communication client incorrectly infers that the user does want to be interrupted, then it notifies the user of the communication and the user may become annoyed and distracted. If the real-time communication client uses a more restrictive inference so that notifications are suppressed in fewer instances, the user may get annoyed at receiving too many notifications. Conversely, if the real-time communication client uses a less restrictive inference so that notifications are suppressed in more instances, then the user may get annoyed at missing too many real-time communications.
A method and system for controlling event notifications is provided. A notification system, upon receiving an indication of an event, determines whether the user has requested to suppress event notifications. When the user has requested to suppress event notifications, the notification system suppresses the event notification by not notifying the user of the event. When the user has not requested to suppress event notifications, the notification system infers whether the user wants to suppress event notifications. When the notification system infers that the user does not want to suppress event notifications, the notification system provides to the user a normal event notification. When the notification system infers that the user does want to suppress event notifications, the notification system provides to the user a modified event notification.
The notification system provides a technique for receiving a request from a user to suppress event notifications. The notification system, upon receiving an indication of an event, determines whether the user has requested to suppress event notifications. When the user has requested to suppress event notifications, the notification system suppresses the event notification. When the user has not requested to suppress event notifications, the notification system provides to the user a notification of the event. The notification provides a means for the user to request to suppress event notifications. For example, if the notification is a pop-up window, the notification system may add a button to the pop-up window that the user can select to request to suppress event notifications. When the user takes the identified action, the notification system indicates that event notifications are to be suppressed.
The notification system provides a technique for terminating the suppression of event notifications. When a user requests to suppress event notifications, the user also identifies a termination condition for the suppression of event notifications. After receiving a request to suppress event notifications along with a termination condition, the notification system may receive an indication of an event. When the indication is received before the termination condition has occurred, the notification system suppresses notification of the event. When the indication is received after the termination condition has occurred, the notification system notifies the user of the event.
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.
A method and system for controlling event notifications is provided. In one embodiment, a notification system, upon receiving an indication of an event, determines whether the user has requested to suppress event notifications. For example, the user may have manually selected an option of a menu to suppress event notifications. When the user has requested to suppress event notifications, the notification system suppresses the event notification by not notifying the user of the event. When the user has not requested to suppress event notifications, the notification system infers from information available to the computing device whether the user wants to suppress event notifications. When the notification system infers that the user does not want to suppress event notifications, the notification system provides to the user a normal event notification. For example, when the event is the receiving of a real-time communication, a normal event notification may be a pop-up window that identifies the real-time communication and provides the name of the sender along with the subject of the communication. When the notification system infers that the user does want to suppress event notifications, the notification system provides to the user a modified event notification. A modified event notification may be less intrusive than, more private than, or in some other way different from a normal event notification. The modified event notification may be less intrusive by being displayed in a less prominent location than a normal event notification, being displayed on a secondary display, being a subtle audible notification, and so. In this way, if an inference that the user does not want to suppress events notifications is incorrect, the notification system provides at least a modified notification that may be less intrusive, more private, and so on. Moreover, the user can manually indicate that event notifications be suppressed to prevent even a modified event notification when the inference is incorrect.
In one embodiment, the notification system provides a technique for receiving a request from a user to suppress event notifications. The notification system, upon receiving an indication of an event, determines whether the user has requested to suppress event notifications. When the user has requested to suppress event notifications, the notification system suppresses the event notification by not providing an event notification to the user. When the user has not requested to suppress event notifications, the notification system provides to the user a notification of the event. The notification identifies an action that the user can take to request to suppress event notifications. For example, if the notification is a pop-up window, the notification system may add a button to the pop-up window that indicates that the user can request to suppress event notifications by selecting the button. When the user takes the identified action, the notification system indicates that event notifications are to be suppressed. In this way, when the notification system provides an event notification to the user that the user does not want to receive, the user can quickly perform the action (e.g., select a displayed button) to request that event notifications be suppressed. Thus, the user does not need to navigate through a menu system to identify a menu item to suppress event notifications and be further distracted.
In one embodiment, the notification system provides a technique for terminating the suppression of event notifications, that is, resuming the receipt of event notifications. When a user requests to suppress event notifications, the user also identifies a termination condition for the suppression of event notifications or a resumption condition for receipt of event notifications. For example, a termination condition may be after a certain time, when an application that is the focus of the user's attention terminates or is no longer the focus of the user's attention, when the notification system infers that the user wants to resume receiving event notifications, and so on. After receiving a request to suppress event notifications along with a termination condition, the notification system may receive an indication of an event. When the indication is received before the termination condition has occurred, the notification system suppresses notification of the event. When the indication is received after the termination condition has occurred, the notification system notifies the user of the event. In this way, the suppression of event notifications will terminate automatically after a termination condition has been satisfied.
In one embodiment, the notification system may combine various aspects of the invention. The notification system may provide modified notifications when it infers that the user does not want to receive event notifications. The notification system may include within the modified notifications a means for the user to quickly request suppression of event notifications. In addition, the notification system may allow the user to specify a termination condition when the user requests suppression of event notifications.
In one embodiment, the notification system can control providing event notifications to users for arbitrary types of events. As examples, the events may relate to real-time communications such as receipt of instant messages, receipt of an incoming VoIP call, termination of a conference call, receipt of a sports score, receipt of a stock price, and so on. The events may also relate to calendar events such as a reminder of an upcoming meeting, start and end of a meeting, cancellation of a meeting, rescheduling of a meeting, reminder of a birthday, reminder of a task, and so on. The events may also relate to electronic mail messages such as receipt of electronic mail message, reminder that a reply to an electronic mail message has not been received, and so on. The events may relate to status of a computing device such as low battery, an update is pending, disk space is low, a certain component is malfunctioning, and so on.
The computing device on which the notification system is 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 be encoded with computer-executable instructions that implement the notification system, which means a computer-readable medium that contains the instructions. 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, a point-to-point dial-up connection, a cell phone network, and so on.
Embodiments of the notification system may be implemented in various operating environments that include personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, programmable consumer electronics, digital cameras, network PCs, minicomputers, mainframe computers, cell phones, personal digital assistants, smart phones, personal computers, programmable consumer electronics, distributed computing environments that include any of the above systems or devices, and so on.
The notification 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.
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. Accordingly, the invention is not limited except as by the appended claims.