Abstract:
A system for providing open session based selective broadcasting in an instant messaging system. The instant messaging system user is provided with a mechanism through which they can broadcast a user-defined message to the participants in all currently open instant messaging sessions with the user, or to the participants in a selected subset of currently open instant messaging sessions with the user. The system provides the ability to capture and save a list of the participants receiving a previously broadcast message. The captured participant list can be subsequently recalled and used to broadcast another user defined message when the interruption ends, and the user can resume participation in the sessions.

Description:
FIELD OF THE INVENTION 
       [0001]    The present invention relates generally to instant messaging systems, and more specifically to a method and system for providing open session based selective broadcasting in an instant messaging system. 
       BACKGROUND OF THE INVENTION 
       [0002]    As it is generally known, in computer-based communications, instant messaging systems enable instant communications between two or more people over a communication network such as the Internet. Instant messaging typically requires the use of a client program or logic to provide an instant messaging service. Instant messaging differs from electronic mail (“email”) in that conversations happen in real-time. Instant messaging sessions are sometimes referred to as “chat” sessions. Distribution of on-line “presence” information describing current user states, e.g. whether users are currently on-line and available to participate in an instant messaging session, is a key aspect of existing instant messaging systems. The combination of current user state distribution and the capability to hold real-time, on-line conversations continues to make instant messaging a very useful tool for vital business communications. Examples of existing instant messaging technologies include Qnext, MSN Messenger, AOL Instant Messenger, Yahoo! Messenger, Skype, Google Talk, .NET Messenger Service, Jabber, QQ, iChat and ICQ, and Internet Relay Chat (IRC). 
         [0003]    With the increased use of instant messaging, a problem arises when users find themselves multitasking between multiple instant messaging sessions, and are then interrupted by an external event that must be dealt with, such as a phone ringing, a manager stopping in their office, etc. In such a situation, the user needs to be able to quickly and efficiently inform all of the other users they are currently instant messaging with in the multiple instant messaging session that they are being temporarily interrupted. Similarly, the user needs to be able to inform all of those other users when the interruption is over, and they can resume the instant messaging sessions (e.g. the phone call is over, the manager leaves their office, etc.). 
         [0004]    This problem has not previously been recognized, and existing system design accordingly does not address it. In existing systems, in order for a user to communicate a message to all participants in all current instant messaging sessions in which they are participating, the user must either type or otherwise enter a separate message into each of the individual sessions (e.g. type “be right back—phone rang!” into the text entry field for each session), or copy and paste such a message into each of the session text entry fields. These operations are time consuming and inconvenient, and as a result users typically just tend to the interruption without information the other session participants, potentially resulting in confusion or misunderstanding as to why their responses may be delayed during the interruption. 
         [0005]    Some existing systems allow users to broadcast a message to a separately defined user community, or to all users logged-in at the time the broadcast is sent. Such approaches are not useful with regard to solving the above described problem, since the messages conveyed through them are delivered to a set of recipients different from those who need to be reached (i.e. current participants in multiple open instant messaging sessions of a user that has been interrupted). Accordingly, the recipient set in these existing systems is not responsive to the dynamically changing set of participants for the currently open instant messaging sessions of a given user. Moreover, access to broadcasting features of existing systems is often limited to users having special privileges (e.g. administrator users or the like), and they are not available to ordinary individual users of the instant messaging system. Moreover, existing systems fail to foresee any need to capture a list of participants from multiple instant messaging sessions to which a previous message has been sent (e.g. “sorry—I have to answer the phone. I&#39;ll be right back!”), so that a subsequent message can be sent to that same set of users at the end of the interruption (e.g. “OK—I&#39;m back now.”). 
         [0006]    For the above reasons and others, it would be desirable to have a new system that allows an instant messaging system user to quickly and conveniently communicate with other participants in multiple current instant messaging sessions at the time of an interruption, and to capture the list of participants to which a previous message was sent so that a subsequent message can be sent to those same users when the interruption is over. 
       SUMMARY OF THE INVENTION 
       [0007]    In order to address the above described and other shortcomings of previous techniques, a new method and system are disclosed for providing open session based selective broadcasting in an instant messaging system. In the disclosed system, the instant messaging system user is provided with a mechanism through which they can broadcast a user-defined message to the participants in all currently open instant messaging sessions with the user, or to the participants in a selected subset of currently open instant messaging sessions with the user. The disclosed system further provides the ability to capture and save a list of the participants receiving a previously broadcasted message. The captured participant list can be subsequently recalled and used to broadcast another user defined message when the interruption ends, and the user can resume participation in the sessions. 
         [0008]    The selective broadcasting provided by the disclosed system is advantageous in that it allows a user to send an interruption notification message to an appropriate set of recipients in the context of simultaneous participation by the user in multiple instant messaging sessions. The recipient set is dynamically determined based on the current set of instant messaging sessions a user is participating in. The disclosed approach stands in contrast to that of previous systems that allowed broadcasting of messages by privileged users to all other users in a group or community, without determining the participants in multiple current open sessions of a broadcasting user. 
         [0009]    Thus there is disclosed a new system that allows an instant messaging system user to quickly and conveniently communicate with other participants in multiple current instant messaging sessions at the time of an interruption, and to also capture the list of participants to which a previous message was sent so that a subsequent message can be sent to those same users when the interruption is over. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0010]    In order to facilitate a fuller understanding of the present invention, reference is now made to the appended drawings. These drawings should not be construed as limiting the present invention, but are intended to be exemplary only. 
           [0011]      FIG. 1  is a block diagram showing a graphical user interface and client system for providing user access to a selective broadcast message in an illustrative embodiment; 
           [0012]      FIG. 2  is a block diagram showing a graphical user interface and client for providing user access to the recipient list of a prior selective broadcast message in an illustrative embodiment; 
           [0013]      FIG. 3  is a block diagram showing operation of an illustrative embodiment of the disclosed system to broadcast a message to participants in all current instant messaging sessions of a user; 
           [0014]      FIG. 4  is a block diagram showing operation of an illustrative embodiment of the disclosed system to broadcast a message to participants in a user-selected subset of the current instant messaging sessions of a user; 
           [0015]      FIG. 5  is a block diagram showing operation of an illustrative embodiment of the disclosed system to broadcast a message to recipients of a previous broadcast message; and 
           [0016]      FIG. 6  is a flow chart showing steps performed during operation of an illustrative embodiment of the disclosed system. 
       
    
    
     DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS 
       [0017]      FIG. 1  is a block diagram showing a graphical user interface and client system for providing user access to a selective broadcast message in an illustrative embodiment. As shown in  FIG. 1 , an Instant Messaging Session User Interface display object  10  is one of a plurality of instant messaging user interfaces for corresponding ones of the Currently Open Instant Messaging Sessions  14  of User A. The Currently Open Instant Messaging Sessions  14  are displayed in a graphical user interface of a client device associated with User A, by an Instant Messaging Client  12  contained in the client device of User A. 
         [0018]    As shown in  FIG. 1 , the Instant Messaging Session User Interface  10  includes a Transcript Display Area  16 , in which are displayed instant messages entered into the session by participants in the session (e.g. by participants “arasj@host.com” and “cortd@host.com”). In the example of  FIG. 1 , User A corresponds to the instant messaging session participant “arasj@host.com”. 
         [0019]    The Instant Messaging Session User Interface  10  further includes a Message Entry field  18  for User A to use for entering messages into the instant messaging session “chat session 1” with the session participant “cortd@host.com”. When User A clicks on the Send button  28 , the contents of the Message Entry field  18  is entered into “chat session 1”, and accordingly appears in the Transcript Display Area  16  for viewing by User A, and also in instant messaging session user interface transcript display areas displayed on client devices of other participants in “chat session 1” (i.e. “cortd@host.com”). 
         [0020]    The Instant Messaging Session User Interface  10  also includes an example of a Broadcast Message Command Display Object  20 , through which User A can access selective open session broadcasting features of the disclosed system. In the embodiment of  FIG. 1 , the Broadcast Message Command Display Object  20  includes a Pull Down Menu  22  through which User A can access a number of selective open session broadcast options. The user selectable options shown in  FIG. 1  include an All Currently Open Sessions Option  24  and a Selected Sessions Option  26 . If User A selects (e.g. clicks on) the All Currently Open Sessions Option  24 , the disclosed system operates to enter the contents of the Message Entry field  18  (e.g. “Please hold, phone is ringing”) into all currently open instant messaging sessions in which User A is a participant (e.g. all participants in “chat session 1”, “chat session 2”, “chat session 3”, and “chat session 4”). Moreover, while the contents of the Message Entry field  18  is shown for purposes of illustration in  FIG. 1  as including text, the contents of Message Entry field  18  may alternatively be a link such as a URL (Uniform Resource Locator), or some other type of link or pointer. The instant message made of the contents of Message Entry field  18  is sent to all participants in all currently open instant messaging sessions in which User A is a participant at the time the All Currently Open Sessions Option  24  is selected by User A. 
         [0021]    Alternatively, if User A selects (e.g. clicks on) the Selected Sessions Option  26 , the disclosed system operates to provide a session selection user interface object through which User A can indicate which of the Currently Open Instant Messaging Sessions  14  are to be sent the contents of the Message Entry field  18 . Such a session selection user interface object may, for example, consist of a list of currently open instant messaging sessions (e.g. “chat session 1”, “chat session 2”, “chat session 3”, and “chat session 4”), with check boxes displayed adjacent to each list entry to enable User A to check (e.g. click on) the instant messaging sessions to which the contents of Message Entry field  18  is to be sent. 
         [0022]      FIG. 2  is a block diagram showing a graphical user interface and client for providing user access to the recipient list of a prior selective broadcast message in an illustrative embodiment. As shown in  FIG. 2 , the Pull Down Menu  22  of  FIG. 1  has an additional selective open session broadcast option consisting of the Use Previous Session List Option  40 . The Use Previous Session List Option  40  is displayed following use of one of the other selective open session broadcast options by User A to transmit a previous message, so that a new contents of the Message Entry field  18  (e.g. “I&#39;m back now sorry about the interruption”) can be sent to the same sessions/recipients as the previous message. The User Previous Session List Option  40  reflects the fact that the disclosed system maintains a list of previous sessions and/or individual session participants to which a previous broadcast message was sent using any of the selective open session broadcast options (e.g. the All Currently Open Sessions Option  24  or the Selected Session Option  26 ) in the Pull Down Menu  22 . This enables User A to provide a follow up message informing the previous message recipients that an interruption is over, and that User A can accordingly resume participation in the instant messaging sessions. 
         [0023]      FIG. 3  is a block diagram showing operation of an illustrative embodiment of the disclosed system to broadcast a message to participants in all current instant messaging sessions of a user. As shown in  FIG. 3 , User A Issues Broadcast Command  90  in the Instant Messaging Session User Interface  60  (e.g. by clicking on the All Currently Open Sessions Option  24 ). The broadcast message command is passed to the Instant Messaging Client  52  for User A. In response to the received broadcast message command, the Instant Messaging Client  52  operates to enter a Broadcast Message  92  (e.g. the contents of Message Entry field  18 , such as “Please hold, phone is ringing” or the like) into all the currently open instant messaging sessions in which User A is a participant (e.g. by loading Broadcast Message  92  into message entry fields of the user interfaces  60 ,  62 ,  64  and  66 ). In one embodiment of the disclosed system, the “Send” function in each currently open instant messaging session of User A is automatically invoked (e.g. in the user interfaces  60 ,  62 ,  64  and  66 ), causing the Broadcast Message  92  to be transmitted from Client System  50  for User A to an Instant Messaging Server system  80 , from which the Broadcast Message  92  is then forwarded to the client systems (e.g. client systems  70 ,  72 ,  74  and  76 ) of the participants in all the currently open instant messaging sessions of User A. The Broadcast Message  92  is received by the instant messaging client in each client system (e.g. instant messaging clients  102 ,  106 ,  110  and  114 ), and displayed in the transcript display areas of the instant messaging session user interfaces for each respective instant messaging session participant (e.g. within the instant messaging session user interfaces  104 ,  108 ,  112  and  116 ). 
         [0024]      FIG. 4  is a block diagram showing operation of an illustrative embodiment of the disclosed system to broadcast a message to participants in a user-selected subset of the current instant messaging sessions of a user. As shown in  FIG. 4 , User A Issues Broadcast Command  150  in the Instant Messaging Session User Interface  60  (e.g. by clicking on the Selected Sessions Option  26 ). The broadcast message command is passed to the Instant Messaging Client  52  for User A. In response to the received broadcast message command, the Instant Messaging Client  52  operates to provide User A with a user interface object that allows User A to select which of the currently open sessions in which User A is a participant are to be sent the broadcast message (e.g. a pop-up window including a list of sessions with each session having a check box for user selection). After user selection of the relevant subset of currently open instant messaging sessions, the Instant Messaging Client  52  enters a Broadcast Message  92  (e.g. the contents of Message Entry field  18 , such as “Please hold, phone is ringing” or the like) into the user selected subset of currently open instant messaging sessions in which User A is a participant. For example, in the case where User A has selected the current instant messaging session with User B and the current instant messaging session with User E from the currently open instant messaging sessions of User A, then the Instant Messaging Client  52  loads Broadcast Message  92  into message entry fields of the user interfaces  60  and  66 . In one embodiment of the disclosed system, the “Send” function is automatically invoked in the relevant user interfaces (e.g. in the user interfaces  60  and  66 ), causing the Broadcast Message  92  to be transmitted from Client System  50  for User A to an Instant Messaging Server system  80 , from which the Broadcast Message  92  is then forwarded to the client systems (e.g. client systems  70  and  76 ) of all participants in the user selected subset of open instant messaging sessions for User A. The Broadcast Message  92  is received by the instant messaging client in the client systems for the participants in the selected sessions (e.g. instant messaging clients  102  and  114 ), and displayed in the transcript display areas of the instant messaging session user interfaces for each respective instant messaging session participant in the selected sessions (e.g. within the instant messaging session user interfaces  104  and  116 ). 
         [0025]      FIG. 5  is a block diagram showing operation of an illustrative embodiment of the disclosed system to broadcast a message to recipients of a previous broadcast message. As shown in  FIG. 5 , the Instant Messaging Client  52  maintains a list of the sessions and/or session participant to which a previous broadcast message was sent, shown as Saved List of Participants/Sessions Sent Previous Broadcast Message  170 . The Saved List of Participants/Sessions Sent Previous Broadcast Message  170  may, for example, consist of a list of session identifiers for those sessions to which the previous broadcast message was sent, a list of participant identifiers (e.g. screen names) of participants to which the previous broadcast message was sent, and/or other specific indicators of relevant sessions and/or session participants. 
         [0026]    As shown in  FIG. 5 , User A Issues Broadcast Command  190  in the Instant Messaging Session User Interface  60  (e.g. by clicking on the Use Previous Session List Option  40 ). The broadcast message command is passed to the Instant Messaging Client  52  for User A. In response to the received broadcast message command, the Instant Messaging Client  52  operates to access the Saved List of Participants/Sessions Sent Previous Broadcast Message  170  to determine the set of instant messaging sessions and/or session participants to which a New Broadcast Message  192  (e.g. the contents of Message Entry field  18 , such as “I&#39;m back now sorry about the interruption”) is to be sent. For example, in the case where the previous broadcast command was the Broadcast Command  92  of  FIG. 4 , through which User A indicated that the instant messaging sessions with User B and User E were to be sent the previous broadcast message (e.g. “Please hold, phone is ringing”), then the Saved List of Participants/Sessions Sent Previous Broadcast Message  170  would include indications of the instant messaging sessions in which User B and User E were participants, and/or indications of User B and User E (e.g. screen names for User B and User E). Based on the contents of the Saved List of Participants/Sessions Sent Previous Broadcast Message  170 , the Instant Messaging Client  52  would then operate to enter the Broadcast Message  192  into the instant messaging sessions indicated by the Saved List of Participants/Sessions Sent Previous Broadcast Message  170 . For example, in the case where User A has selected the current instant messaging session with User B and the current instant messaging session with User E from the currently open instant messaging sessions of User A, then the Instant Messaging Client  52  loads Broadcast Message  92  into message entry fields of the user interfaces  60  and  66 . In one embodiment of the disclosed system, the “Send” function is automatically invoked in the relevant user interfaces (e.g. in the user interfaces  60  and  66 ), causing the Broadcast Message  92  to be transmitted from Client System  50  for User A to an Instant Messaging Server system  80 , from which the Broadcast Message  92  is then forwarded to the client systems (e.g. client systems  70  and  76 ) of all participants in the previously stored list of participants/sessions to which a previous broadcast message was sent. The Broadcast Message  92  is received by the instant messaging client in the client systems for the participants in the relevant sessions (e.g. instant messaging clients  102  and  114 ), and displayed in the transcript display areas of the instant messaging session user interfaces for each respective instant messaging session participant (e.g. within the instant messaging session user interfaces  104  and  116 ). 
         [0027]    The client systems  50 ,  70 ,  72 ,  74  and  76  of  FIGS. 3-5  may be any specific type of a computer system or intelligent electronic device, such as a desktop, laptop, or palmtop computer system, or a personal digital assistant, cell phone, or other electronic device. Each of the client systems  50 ,  70 ,  72 ,  74  and  76  include or control a display device capable of displaying graphical user interfaces (e.g. including user interfaces  60 ,  62 ,  64 , and  66  for user A, and including user interfaces  104 ,  108 ,  112 , and  116  for users B, C, D and E) to the local users the respective client systems, such as a liquid crystal display (LCD), cathode ray tube (CRT), interferometric modulator display (IMOD), light emitting diode (LED), or the like. 
         [0028]    Those skilled in the art will recognize that the instant messaging clients of the illustrative embodiments (e.g. instant messaging client  12  of  FIGS. 1 and 2  and instant messaging client  52  of  FIGS. 3-5 ) may be embodied using software or firmware, such as computer application program code, operating system program code, middleware, and/or wholly or partly using digital hardware components, such as application specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), and the like, and/or combinations of hardware and/or software or firmware. 
         [0029]    Those skilled in the art will also recognize that the client and server systems of the illustrative embodiments (e.g. client systems  12 ,  52 ,  70 ,  72 ,  74  and  76  and server system  80 ) may each include one or more processors, and program storage, such as memory, for storing program code executable on such processors, as well as input/output devices and/or interfaces. The client systems  12 ,  52 ,  72 ,  74  and  76  and the server system  80 , are interconnected to a computer or data communication network (e.g. the Internet, a Local Area Network, etc.) through one or more of such input/output devices or interfaces, and through which may further be provided communication to a number of other client systems and/or other server systems. 
         [0030]      FIG. 6  is a flow chart showing steps performed during operation of an illustrative embodiment of the disclosed system. As shown in  FIG. 6 , at step  200 , the user of the disclosed system joins multiple instant messaging sessions, for example using an instant messaging client on a client device. At step  202 , the instant messaging client displays an instant messaging session user interface for each of the currently opened instant messaging sessions of the user in a graphical user interface on a display device of the client system. Each instant messaging session user interface for each currently open instant messaging session includes a broadcast message user interface object (e.g. Broadcast Message Command Display Object  20 ), through which the user can issue selective open session broadcast commands. 
         [0031]    At step  204 , the disclosed system receives a broadcast message command issued by the user, for example through the broadcast message user interface object in one of the instant messaging session user interfaces for the user&#39;s currently open instant messaging sessions. At step  206 , the disclosed system (e.g. the instant messaging client on the user&#39;s client device) calculates the currently open instant messaging sessions and/or participants to which the broadcast message is to be sent. The calculation of which sessions and/or participants to which the broadcast message is to be sent may be based on the type of broadcast command. For example, the broadcast command may indicate that the broadcast message is to be sent to all currently open instant messaging sessions of the user, to a user indicated subset of the currently open instant messaging sessions of the user, or to a set of sessions/participants indicated by a previously saved list of sessions/participants to which a previous broadcast message was sent. 
         [0032]    At step  208 , the disclosed system enters the message to be broadcast into the instant messaging sessions determined at step  206 , and the Send function is automatically invoked in each of those sessions. At step  210 , the instant messaging client of the disclosed system saves a list of participant/sessions to which the broadcast message was sent at step  208  for future reference. 
         [0033]    While in the above description, the illustrative examples involve instant messaging sessions between a local user and one other participant, the present system is not so limited. Accordingly, the broadcast features of the present invention can be applied to instant messaging sessions in which a local user (e.g. User A), is one participant with multiple other participants. 
         [0034]    Further, while in the above description certain functions and/or operations are described as being performed by a client portion of a client/server instant messaging system architecture, the present system is not so limited. Accordingly, alternative embodiments may be based on non-client/server models, and functions and/or operations described in the above examples as performed in a client portion of a client/server design may alternatively be performed in the server portion, and vice versa. 
         [0035]    Moreover, while the above description regarding illustrative embodiments of the disclosed system includes examples of specific user interface display objects, which may be embodied as menus, graphical buttons, dialog boxes, and the like, and/or combinations thereof, the present invention is not limited to the specific examples above. Accordingly, those skilled in the art will recognize that alternative embodiments may use any specific type or kind of user interface display object that may be appropriate to accomplish the necessary operations. 
         [0036]    The disclosed system can take the form of an entirely software embodiment, an entirely hardware embodiment, or an embodiment containing both software and hardware elements. The figures include block diagram and flowchart illustrations of methods, apparatus(s) and computer program products according to an embodiment of the invention. It will be understood that each block in such figures, and combinations of these blocks, can be implemented by computer program instructions. These computer program instructions may be loaded onto a computer or other programmable data processing apparatus to produce a machine, such that the instructions which execute on the computer or other programmable data processing apparatus create means for implementing the functions specified in the block or blocks. These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the block or blocks. The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the block or blocks. 
         [0037]    Those skilled in the art should readily appreciate that programs defining the functions of the present invention can be delivered to a computer in many forms; including, but not limited to: (a) information permanently stored on non-writable storage media (e.g. read only memory devices within a computer such as ROM or CD-ROM disks readable by a computer I/O attachment); (b) information alterably stored on writable storage media (e.g. floppy disks and hard drives); or (c) information conveyed to a computer through communication media for example using wireless, baseband signaling or broadband signaling techniques, including carrier wave signaling techniques, such as over computer or telephone networks via a modem. 
         [0038]    While the invention is described through the above exemplary embodiments, it will be understood by those of ordinary skill in the art that modification to and variation of the illustrated embodiments may be made without departing from the inventive concepts herein disclosed.