So that the manner in which the above recited features, advantages and objects of the present invention are attained and can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to the embodiments thereof which are illustrated in the appended drawings.
It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
Embodiments of the present invention include a method, system, and article of manufacture for monitoring and responding to changes in the “busy-level” of a user interacting with an instant messaging (IM) application. For example, embodiments of the invention may be configured to monitor a busy-level of a user engaging in one or more IM conversations with other users. In such a case, the IM application may be configured to allow a maximum number of concurrent IM conversations before marking the user as busy.
More generally, a user's “busy-level” refers to an activity threshold that can be reached by the initiation of concurrent, ongoing tasks. Ongoing tasks can be anything detectable by the IM application. For example, a user's busy-level may be affected by some, or all, of the following:
Generally, a user's busy-level may begin at zero (i.e., the user is not engaging in any tasks that would increase that user's busy-level). As tasks are initiated and completed over time, the user's busy-level increases and decreases accordingly. When the user's busy-level threshold is reached, the IM application may be configured to place the user in a “busy” state, preventing others from initiating a new IM conversation with that user. Once the user's busy level decreases below the threshold, the IM application automatically returns the user's status to an available state.
Embodiments of the invention may be used by individuals engaging in IM conversations as agents of a “virtual help-desk.” In such a case, an agent may accept additional IM conversations requests from customers, so long as their busy level is not exceeded by taking on an additional request. Doing so may limit the response time customers experience with an on-line agent, increasing customer satisfaction. This may also prevent such an agent from being overwhelmed by a large number of simultaneous IM conversations.
In the following, reference is made to embodiments of the invention. However, it should be understood that the invention is not limited to specific described embodiments. Instead, any combination of the following features and elements, whether related to different embodiments or not, is contemplated to implement and practice the invention. Furthermore, in various embodiments the invention provides numerous advantages over the prior art. However, although embodiments of the invention may achieve advantages over other possible solutions and/or over the prior art, whether or not a particular advantage is achieved by a given embodiment is not limiting of the invention. Thus, the following aspects, features, embodiments and advantages are merely illustrative and are not considered elements or limitations of the appended claims except where explicitly recited in a claim(s). Likewise, reference to “the invention” shall not be construed as a generalization of any inventive subject matter disclosed herein and shall not be considered to be an element or limitation of the appended claims except where explicitly recited in a claim(s).
One embodiment of the invention is implemented as a program product for use with computer systems such as, for example, the computing environment 100 shown in
In general, the routines executed to implement the embodiments of the invention, may be part of an operating system or a specific application, component, program, module, object, or sequence of instructions. Computer programs of the present invention typically are comprised of a multitude of instructions that will be translated by the native computer into a machine-readable format and hence executable instructions. Also, programs include variables and data structures that may reside locally in memory or on storage devices. In addition, various programs described hereinafter may be identified based upon the application for which they are implemented in a specific embodiment of the invention. However, it should be appreciated that any particular program nomenclature that follows is used merely for convenience, and thus the invention should not be limited to use solely in any specific application identified and/or implied by such nomenclature.
Client systems 110, 120, 130, 140, and 150 show a simplified representation of a variety existing computer systems, e.g., desktop computers, server computers, laptop computers, tablet computers, and the like. Additionally, the client systems may be representative of other computing devices such as PDA's (personal digital assistants) and WML (wireless markup language) enabled mobile phones (e.g., mobile phone 140). The invention, however, is not limited to any particular computing system, device or platform and may be adapted to take advantage of new computing systems and devices as they become available. Network 115 may represent any suitable network, including small local area networks, corporate intranets, large wide area networks such as the Internet, or any combination thereof.
As shown, client systems 110, 120, 130, 140, and 150 include an IM application 112 configured to allow one user to engage in an IM conversation with other users. One common example of an IM application 112 includes the Sametime® application available from IBM. However, embodiments of the invention may be adapted for use with any of the numerous commercially available IM applications 112.
As shown, in addition to IM application 112, client 110 includes an activity monitor 114 and busy settings 116. Although shown as discrete components, one of ordinary skill in the art will recognize that activity monitor 114 and/or busy settings 116 may be integrated with IM application 112. As described in greater detail herein, activity monitor 114 may be configured to monitor the busy-level of a user and change that user's IM availability from busy to available, and back, as that user engages in various tasks monitored by activity monitor 114. Busy settings 116 may specify which tasks are monitored by activity monitor 114, the impact of each monitored task on a user's busy-level, as well as the busy threshold for a given user.
As shown, window 205 includes a list 212 of other users currently online that may be sent an instant message. Generally, a user may send an instant message by selecting one of the users from lists 212 and pressing “IM” button 214. In response, IM application 112 may display a dialog box allowing the user to enter content for an instant message and send the instant message. Information about a user from list 212 may be displayed using “get info” button 216.
“Chat” button 218 may be used to initiate an IM conversation with one of the users in list 212. Generally, a user may initiate an IM conversation by selecting one of the users from list 212 and pressing button 216. In response IM application 112 may be configured to display a window such as conversation window 210. In this example, conversation window 210 shows a conversation between an IM application user named “David” and another named “Troy.”
In addition to conversation content 220, conversation window 210 includes a text area 222 for a user to enter new content for an ongoing conversation. Generally, as is known, a user simply types a desired message and presses “send” button 224 to send a new message to another participant to an IM conversation. Conversation content 220 displays the IM conversation as it occurs between users. Conversation window 210 also includes a variety of other interface components commonly found in an IM application 112 not described in detail.
In one embodiment, when a user presses “chat” button 218 to initiate a new IM conversation, the IM application 112 receiving the users request may determine whether the receiving user's status is currently set to “busy.” If so, the user requesting the new IM conversation may be presented with an indication that the other user is currently unavailable. Further, list 212 may display an indication of a status (e.g., “available” or “busy”) for each user in the list.
As stated, in one embodiment, the determination of whether a given user is “available” or “busy” may be determined by an activity monitor 114 using a busy-level threshold specified in configuration settings 116.
As shown, configuration screen 300 includes a set of checkboxes 305, activity scores 310, and threshold setting 315. Generally, screen 310 may allow a given user to configure which activities, contribute to that user's busy-level, how much each activity contributes, and a threshold of how “busy” a user must be before that user's status is set to “busy.”
In this illustration, a user has selected to include each of the available options to contribute to a busy-level. Thus, each “open IM conversation,” each “active IM conversation,” any “active voice calls,” and any “foreground tasks receiving user input” are included in the busy level calculation. Activity scores 310 specify an amount to contribute to a busy-level calculation for each selected activity. Note, as stated, any ongoing tasks that may be detected by IM application 112 may contribute to the busy-level of a given user. Of course, the actual selection (and weight) of activities may depend on a variety of factors and tailored to suit the needs of a particular user. For example, for an IM application 112 running on mobile telephone 140, the only monitored activity might be whether the user is engaged in a voice telephone conversation, in which case the user is set to “busy” for purposes of an IM conversation for the duration of the voice telephone conversation.
While “David's” busy-level exceeds the threshold specified in configuration settings 116, “David's user status may be displayed as busy by the IM application 112 used by other users. For example,
As shown, the method 600 begins at step 610 where a user launches an IM application 112. At step 620, the user's initial busy-level is determined. In one embodiment, activity monitor 114 may determine whether any of the events specified in configuration settings 116 are occurring. For example, the list of monitored events in
Thus, if the user launched IM application 112 while also working on a word processing document, the initial busy level calculated at step 620 would reflect this activity.
A step 630, activity monitor 114 monitors user activity while the IM application is running. As the user engages in various activities, the user's busy-level may increase and decrease. Additionally, whenever the user's busy level increases above (or decreases below) the busy-level threshold specified in configuration settings 116, then activity monitor 114 may change the user's status to “busy” or “available,” accordingly. At step 640, the user may end an IM session by closing IM application 112.
Method 700 beings at step 710 where the activity monitor 114 may determine whether a monitored event has occurred. For example, a user may initiate a new task, or a user may receive a request from another user to begin an IM conversation. More generally, at step 710, activity monitor 114 determines whether any event specified in configuration settings 116 has occurred. If so, the activity monitor 114 may increase the user's busy-level by the amount specified configuration settings 116 (step 750).
After determining whether to increase a user's busy level, the activity monitor determines whether any monitored events have occurred to decrease the user's busy level (step 720). For example, a user may conclude an IM conversation or telephone conversation, or a task that was receiving user input (increasing the user's busy level) may no longer be receiving user input. If so, the activity monitor 114 decreases the user's busy-level by the appropriate amount as specified in configuration settings 116 (step 760).
At step 740, after making the appropriate adjustments to the user's busy level, the activity monitor determines whether the busy-level is above or below the threshold specified in configuration settings 116. If above the threshold, then, at step 770, the activity monitor 114 sets the user's status to “busy.” If below the threshold, then, at step 740, the activity monitor 114 sets the user's status to “available.” Alternatively, rather than set the user's status on each pass through the method 700, the activity monitor 114 may only set a user's status, if after calculating any changes to the user's busy level as part of steps 710 and 720, the status has transitioned from one (i.e., from “busy” to “available” or vice-versa).
While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.
This application is related to the following commonly owned application: U.S. patent application Ser. No. ______, filed on ______, 2006, entitled “METHOD AND APPARATUS FOR MANAGING INSTANT MESSAGING”, Attorney Docket No. ROC920050301US1.