# Patent

## Title
Managing chat sessions

## Abstract

Computer system, method and program product for managing a chat session having a plurality of participants. A server sends to each participant in the chat session, a current local time of each other participant in the chat session. A workstation of each participant in the chat session displays an identity and current local time of each other participant in the chat session. The current local time of each other participant in the chat session can be represented by a graphical representation of the current local time of each other participant in the chat session. The server also sends to each participant in the chat session a current date of each other participant in the chat session. The workstation of each participant in the chat session displays the current date of each other participant in the chat session.

## Background
This application is a continuation of U.S. patent application Ser. No. 11/493,111, filed on Jul. 25, 2006.


FIELD OF THE INVENTION
The present invention relates generally to computer systems and the Internet, and more specifically to electronic chat sessions.
BACKGROUND
Chat sessions, such as provided by Microsoft Instant Messenger program, IBM SameTime program, Microsoft MSN Messenger program, Microsoft Windows Messenger program, Yahoo Instant Messenger program, and AOL Instant Messenger program, are well known today. Typically, a person at a client workstation initiates the chat session by invoking his or her chat session client program and identifying one or more other people to participate in the chat session. The person can identify the other people to participate in the chat session by accessing a directory, selecting individuals from a predefined list of people or selecting a predefined group of people. Then the person requests that his or her client computer send to a server, the identifications (such as e-mail addresses or IP addresses) of the people to participate in the chat session. In response, a chat session server program tries to connect to the client workstations of the other people selected to participate in the chat session to determine if the other people are currently on-line. For any of the client workstations of these other people that are currently on-line, the server creates the chat session by invoking their respective chat session client program and identifying the members of the chat session. For any of the client workstations of these other people that are not currently on-line, the server notifies the originator that such people are not available for a chat session at this time. Next, any of the members of the chat session can type a message into a text field on their client workstation, and then “send” the message. In response, the respective chat session client program sends the message to the server, and the server sends it to the other participants in the chat session. In some implementations of chat client programs, communication between clients is done on a peer to peer level, i.e. directly from client to client without mediation by or assistance from a server program. In either implementation, the effect is the same and there is the appearance that the clients are communicating directly to each other in the chat sessions. In response to a chat session message, the client workstations that receive the message will display the message, along with the identity of the sender. In the same manner, other participants can subsequently type a new message at their respective client workstation, and that new message along with the identity of the sender appears on the client workstations of the other workstations, nearly in real time.
Some people leave their client computers on-line most the time, even when they are not available such as when they are off duty, at lunch, away from the office or even sleeping. If another person attempts to create a chat session with a person who has left his or her computer on-line but is not available, the server will nevertheless ping the client computer, receive a favorable response and assume that the person is available to participate in the chat session. Consequently, the server will establish the chat session with this unavailable person, and the initiator may assume that this other person is available. The initiator of the chat session or other available participants, if any, in the chat session may then assume that the unavailable person is reading the chat messages, when that is not the case. This may lead to misunderstandings, omissions in work assignments, etc.
A known IBM Blue Pages program provides a directory of employees worldwide. Under the covers, as known to the industry, this is an LDAP (Lightweight Directory Access Protocol) implementation. When an employee is accessed via the IBM Blue Pages directory, a web page displays directory information (for example, telephone number, geographic location, manager, etc.) as well as the current local time of the employee, and a picture of the globe with a vertical stripe indicating the time zone of the home office of the employee. Also, a brightness of the globe indicates the time of day, i.e. if the local time is midday, the globe will be bright, if the local time is twilight, the globe will be grayish and if the local time is night, the globe will be dark. The IBM Blue Pages directory web page also states the shift of the employee, i.e. first, second or third.
A Lotus Notes Calendar program displays to a person who schedules a meeting the normalized local times of invitees.
An object of the present invention is to help inform participants in a chat session when another participant, presumably joined into the chat session, is not really available for a chat session even through his or her computer is on-line.
SUMMARY OF THE INVENTION
The present invention resides in a computer system, method and program product for managing a chat session having a plurality of participants. A server sends to each participant in the chat session, a current local time of each other participant in the chat session. A workstation of each participant in the chat session displays an identity and current local time of each other participant in the chat session.
According to a feature of the present invention, the current local time of each other participant in the chat session can be represented by a graphical representation of the current local time of each other participant in the chat session.
According to another feature of the present invention, the server sends to each participant in the chat session a current date of each other participant in the chat session. The workstation of each participant in the chat session displays the current date of each other participant in the chat session.



BRIEF DESCRIPTION OF THE FIGURES
FIG. 1 is a block diagram of a distributed computer system, including client workstations with respective chat session client programs and a server computer with a chat session server program, which incorporates the present invention.
FIGS. 2(A-B) form a flow chart of each of the chat session client programs and the chat session server program of FIG. 1.
FIGS. 3(A-F) illustrate time icons to represent the current time of day of the participants of a chat session.
FIG. 4 illustrates two displays of client workstations where the current local times of different participants are accompanied by the current local dates of the different participants.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The present invention will now be described in detail with reference to the figures. FIG. 1 illustrates a distributed computer system generally designated 10. System 10 comprises workstations 12a,b,c,d and a server 14 interconnected via the Internet 20. The workstations 12a,b,c,d include respective CPUs 20a,b,c,d, operating systems 22a,b,c,d, RAMs 24a,b,c,d, ROMs 26a,b,c,d, storages 28a,b,c,d, and monitors 29a,b,c,d according to the prior art. Workstations 12a,b,c,d also include respective chat session client programs 40a,b,c,d with known functions to initiate and participate in a chat session via a chat session server program 50 in server 14. In addition, each of the chat session client programs 40a,b,c,d includes a time display program function according to the present invention to obtain from a chat session server program 50 and display alphanumerically the current local time of each other participant in the chat session. Also, the time display program function can optionally obtain from chat session server program 50 and display graphically a time icon representing the current local time of each other participant in the chat session.
Server 14 includes a CPU 30, operating system 32, RAM 34, ROM 36 and storage 38, according to the prior art. Server 14 also includes chat session server program 50 with a known chat session server function to establish a chat session with two or more participants upon request by one participant and forward chat session messages created by one participant to the other participants. Chat session server program 50 also includes a time management program function according to the present invention to determine a local time of each participant in a chat session, and send the local time in alphanumeric form of each participant in the chat session to each other participant in the chat session. The time management program function of chat session server program 50 also includes an optional feature to generate a graphical representation of the local time of each participant in the chat session and the send the graphical representation of the local time of each participant in the chat session to each other participant in the chat session. Each participant in the chat session then can display the local time in alphanumeric form and optionally display the graphical representation of the local time of each other participant in the chat session at their respective workstations adjacent to their respective chat session window. Alternately, instead of the server program 50 sending the graphical representation of the local time of the participant to the client program, the client program may generate it based on alphanumeric local time of the participant sent by the server program.
FIG. 1 also illustrates examples of displays 31a,b,c,d on client workstation monitors 29a,b,c,d. Displays 31a,b,c,d include respective chat session windows 33a,b,c,d. Chat session windows 33a,b have been configured to display only the current local time in alphanumeric form of each other participant in a chat session, whereas chat session windows 33c,d have been configured to display the current local time in both alphanumeric form and graphical representation of each other participant in the chat session.
FIGS. 2(A-B) form a flow chart of the function and operation of chat session client programs 40a,b,c,d and chat session server program 50. To initiate a chat session with one or more other people at one or more other workstations, an initiator (person) invokes his or her chat session client program (step 100) and selects the names of the one or more other people to participate in the chat session (step 102). The initiating person can look up the other people in a directory or select the other people from a “buddy” list or other list previously defined by the initiating person. Alternately, the initiating person can select a group icon representing a predefined group of people to participate in a chat session. For purposes of explanation, assume that the user of workstation 12a initiates the chat session and selects the users of workstations 12b,c,d to participate in the chat session. In response, the chat session client program 40a workstation sends the names of the selected people to server 14 (step 104). In response, chat session server program 50 looks up the IP address of the workstation(s) 12b,c,d of the selected people (step 106) and then pings the workstation(s) 12b,c,d to determine if the workstation(s) 12b,c,d are currently on line (step 108). Chat session server program 50 then assigns a chat session ID to this chat session, and correlates the names of all the participants in the chat session to the chat session 10 (step 110). Chat session server program 50 then invokes the chat session client programs of such other workstations 12b,c,d which are currently on line, and supplies these workstations 12b,c,d as well as the workstation of the initiating person with the names of all the people in the chat session (whose workstations are currently on-line) and the chat session ID (step 112). Assume that workstations 12b,c,d are all on-line. (If any of the workstations 12b,c,d was not on-line, then server 50 would not include its user in the chat session.) In addition, the chat session server program 50 looks up from a directory (such as IBM Blue Pages directory) the current local time (and date) of the home base/work location of each participant in the chat session and the work shift, if any, of each participant (for example, first, second or third) (step 114). (Optionally, if the participant is noted as “mobile” in the directory, chat session server program 50 queries the mobile workstation of the mobile participant to determine its current location from a GPS device installed in the mobile workstation.) Chat session server program 50 then generates a time icon for each participant to graphically represent the current local time of the participant. Chat session server program 50 also sends to workstations 12a,b,c,d (i.e. the workstation of each participant in the chat session) the shift information, current local time (and date) and corresponding time icon for each other participant in the chat session (step 118). Thus, chat session server program 50 sends to workstation 12a the shift information, current local time and corresponding time icon for the participants at workstations 12b,c,d. Chat session server program 50 sends to workstation 12b the shift information, current local time and corresponding time icon for the participants at workstations 12a,c,d. Chat session server program 50 sends to workstation 12c the shift information, current local time and corresponding time icon for the participants at workstations 12a,b,d. Chat session server program 50 sends to workstation 12d the shift information, current local time and corresponding time icon for the participants at workstations 12a,b,c. In response, the chat session client program at each workstation displays adjacent to a chat session window on their workstation the names of the other people in the chat session along with their work shift information, current local time and optionally the corresponding time icon representing their current local time (step 120). Each workstation displays the time icons only if it is configured to display the time icons. The current time of day and optionally the time icon advise each participant in the chat session as to the work shift and current local time of each other participant in the chat session. Consequently, each participant has some information indicating the likelihood that each other participant in the chat session is really present at his or her workstation. For example, if the current local time of a participant is 3 AM and the person works first shift, then it is unlikely that the person is really present at his or her workstation even though the workstation is currently on line and responded to the ping from server 50. However, if the current local time of a participant is 3 AM but the person works third shift, then it is likely that the person is really present at his or her workstation.
Next, one of the participants in the chat session, such as the user of workstation 12a, types a message into a text field of the chat session on monitor 29a (step 130). In response, the chat session client program sends the message (and a chat session ID) to server 14 (step 134) where chat session server program 50 correlates the chat session ID with the participant(s) in the chat session and the IP addresses of their workstations (step 138). In response, chat session server program 50 looks up the latest current local time of each participant and generates a corresponding time icon. Next, chat session server program 50 sends the current local time, corresponding time icon and message (sent by workstation 12a) to the workstations 12b,c,d of the other participants in the chat session, and the local chat session client program 40b,c,d displays the current message in the chat session window of the respective workstation 12b,c,d (step 150). Workstations 12b,c,d also display the updated current local time and corresponding time icon of each participant adjacent to the name of the participant (step 154). Chat session server program 50 sends the current local time and corresponding time icon to workstations 12a of the other participants in the chat session (step 158), and the local chat session client program 40a displays the updated current local time and corresponding time icon of each other participant in the chat session adjacent to the name of each other participant (step 160). Other participants in the chat session can similarly enter and send messages to the other participants in the chat session. Each time a new message is sent, the current local time and corresponding time icon is updated (where configured) on all workstations 12a,b,c,d. 
FIGS. 3(A-F) illustrate one example of a time icon 300 with six different possible settings represented by six different locations of a vertical oval. The time icon 300 has an overall rectangular shape. A bright sun is illustrated in the left portion of the rectangle to represent morning, and a moon is illustrated in the right portion of the rectangle to represent night time. Proceeding to the right from the bright sun the colors turn from yellow to red to represent the progression of the day from daylight to sunset. Proceeding further to the right from the red region/sunset, the colors progress from light gray to black to represent the progression of the evening from twilight until darkness. FIG. 3(A) includes a vertical oval at the left most region of the rectangle, over the sun, to represent morning as the current local time. FIG. 3(B) includes a vertical oval to the right of the sun, over a yellow region, to represent mid day as the current local time. FIG. 3(C) includes a vertical oval over an orange region to represent afternoon as the current local time. FIG. 3(D) includes a vertical oval over the light gray region to represent dinner time as the current local time. FIG. 3(E) includes a vertical oval over a gray region to represent late evening as the current local time. FIG. 3(F) includes a vertical oval over the right most region of the rectangle, over the moon, to represent night as the current local time.
Optionally, as illustrated in FIGS. 3(A-F), each of the time icons 300 includes a respective line segment 304(A-F) under that portion of the rectangle that corresponds to the person's work shift. As illustrated in FIGS. 3(A) and 3(D), the person works first shift, so a line segment 304a appears under the left third of the rectangle. As illustrated in FIGS. 3(8) and 3(E), the person works second shift, so a line segment 304b appears under the middle third of the rectangle. As illustrated in FIGS. 3(C) and 3(F), the person works third shift, so a line segment 304c appears under the right third of the rectangle.
Optionally, the vertical dark oval used to indicate the time of day along the rectangle is replaced for second and third shift workers by a vertical red rectangle to indicate the graphical representation has taken into account the participant's shift adjustment. A person working first shift is assumed to be the default representation and would appear using the vertical dark oval marker. A person working second or third shift would appear using the vertical rectangular red marker. For example, a person who works second shift, whose local time is 5 PM, appears with a red rectangular marker appearing over the first sixth of the horizontal rectangle. For a first shift worker, a vertical dark oval marker in the first sixth of the horizontal rectangle indicates morning local time as illustrated in FIG. 3(A), but the presence of the vertical red rectangular marker implies that it is like morning for this second shift worker (it is the start of their business day). As another example, a person who works third shift, whose local time is 11 PM, appears with a red rectangular marker appearing over the first sixth of the horizontal rectangle. For a first shift worker, a vertical dark oval marker in the first sixth of the horizontal rectangle indicates morning local time as illustrated in FIG. 3(A), but the presence of the vertical red rectangular marker implies that it is like morning for this third shift worker (it is the start of their business day). Accordingly, the vertical red rectangular marker can appear in the same locations as was previously described for the vertical dark oval, but indicating how far into the normalized business day that participant is after adjusting the local time of the participant relative to the shift they are working.
In some cases, different participants in different time zones will actually have different local days/dates than other participants. Optionally, in step 114, chat session server program 50 determines the current date of each participant, and compares the current date of each participant to the current date of each other participant. If there are any differences, then in step 118, chat session program 50 sends to each participant the current date of each other participant, and each chat session client program displays the current date of each other participant adjacent to the identity of each other participant. FIG. 4 illustrates an example of such a display.
Optionally, if the current local date of a participant is different from that of a viewer, then an arrow or pointer is added to one side edge of the rectangular graphical icon to indicated the difference in date. The arrow or pointer can appear attached to the left side of the horizontal rectangular icon, pointing to the left, to indicate that the date of the participant is one day earlier than the viewer. The arrow or pointer can appear attached to the right side of the horizontal rectangular icon, pointing to the right, to indicate that the date of the participant is one day later than the viewer. The absence of an arrow pointer on either side of the horizontal rectangle indicates that the participant's local time is the same date as the viewer.
It should also be noted that the graphical icon described above may be vertical instead of horizontal in which case all elements of are rotated 90 degrees, and convey the same meanings as described above. Chat session client programs 40a,b,c,d can be loaded into workstations 12a,b,c,d respectively from computer readable media 43a,b,c,d such as magnetic disk or tape, optical media, DVD, semiconductor memory, memory stick, etc. or downloaded from the Internet 20 via respective TCP/IP adapter cards 45a,b,c,d. 
Chat session server program 50 can be loaded into server 14 from computer readable media 49 such as magnetic disk or tape, optical media, DVD, semiconductor memory, memory stick, etc. or downloaded from the Internet 20 via TCP/IP adapter cards 47.
Based on the foregoing, a system, method and computer program product for managing chat sessions have been disclosed. However, numerous modifications and substitutions can be made without deviating from the scope of the present invention. For example, the graphical representation of the business time of day (icon) can vary from what was shown in FIGS. 3(A-F) while still maintaining and conveying the meanings to the viewer. Also, the icon itself can become an interactive user interface selection control versus a static representation of time of day. In that case, the vertical dark oval becomes a “slider” able to be manipulated by the user's mouse, similar to the well known windows slider/scroll bar navigation widget used to control window behavior. A user manipulating the vertical dark oval “slider” back and forth on the horizontal rectangle, requests the chat client program to display a subset of the predefined “buddy” list of users whose time of day matches the position on the horizontal rectangle. Such people would be suited to participate in a live chat session. For example, assume the chat session client program has discovered the times of day for all “buddies” in the “buddy” list and has constructed or obtained the graphical icon representation for each. Assume also that a subset of the buddies are currently in the “morning” hours of their day. A user manipulating the slider to the first of the six positions along the horizontal rectangle, would cause the chat session client program to select the subset from the “buddy” list and display just the records for the subset to the viewer on the user interface. Therefore, the present invention has been disclosed by way of illustration and not limitation, and reference should be made to the following claims to determine the scope of the present invention.

## Claims

1. A method for managing chat sessions, the method comprising the steps of:
generating, by a central processing unit, icons for participants in a chat session based on local times for participants, wherein the icons comprise indicators at positions relative to the icons, and the positions of the indicators identify the local times for the participants in the chat session.

2. The method of claim 1, further comprising:
sending, by the central processing unit, the icons to the participants in the chat session in a manner to cause workstations for the participants in the chat session to display the icons generated for the participants in the chat session.

3. The method of claim 1, wherein the generating step comprises:
identifying, by a central processing unit, the local times for the participants in the chat session.

4. The method of claim 1, wherein workstations of the participants display a window with text fields for messages entered or sent by the participants in the chat session.

5. The method of claim 2, wherein the indicators at positions relative to the icons are first indicators at first positions relative to the icons, and further comprising:
identifying, by the central processing unit, work shifts for the participants in the chat session, wherein the icons generated also comprise second indicators at second positions relative to the icons, and the second positions of the second indicators identify the work shifts for the participants in the chat session.

6. The method of claim 5, wherein the first indicators are ovals and the second indicators are line segments.

7. The method of claim 5, further comprising:
identifying, by the central processing unit, relative positions for the locals times of the participants with respect to the work shifts for the participants; and
setting, by the central processing unit, colors for the first indicators based on the relative positions identified.

8. A system for managing chat sessions, the system comprising:
one or more processor units, a memory, and one or more computer readable storage devices; and
first program instructions to generate icons for participants in a chat session based on local times for participants, wherein the icons comprise indicators at positions relative to the icons, and the positions of the indicators identify the local times for the participants in the chat session, wherein the first program instructions are stored in at least one of the computer readable storage devices for execution by at least one of the processor units via the memory.

9. The system of claim 8, further comprising:
second program instructions to send the icons to the participants in the chat session in a manner to cause workstations for the participants in the chat session to display the icons generated for the participants in the chat session, wherein the second program instructions are stored in at least one of the computer readable storage devices for execution by at least one of the processor units via the memory.

10. The system of claim 8, wherein the first program instructions include:
program instructions to identify the local times for the participants in the chat session.

11. The system of claim 8, wherein workstations of the participants display a window with text fields for messages entered or sent by the participants in the chat session.

12. The system of claim 9, wherein the indicators at positions relative to the icons are first indicators at first positions relative to the icons, and further comprising:
third program instructions to identify work shifts for the participants in the chat session, wherein the icons generated also comprise second indicators at second positions relative to the icons, and the second positions of the second indicators identify the work shifts for the participants in the chat session, wherein the third program instructions are stored in at least one of the computer readable storage devices for execution by at least one of the processor units via the memory.

13. The system of claim 12, wherein the first indicators are ovals and the second indicators are line segments.

14. The system of claim 12, further comprising:
fourth program instructions to identify relative positions for the locals times of the participants with respect to the work shifts for the participants; and
fifth program instructions to set colors for the first indicators based on the relative positions identified, wherein the fourth program instructions and the fifth program instructions are stored in at least one of the computer readable storage devices for execution by at least one of the processor units via the memory.

15. A computer program product for managing chat sessions, the computer program product comprising:
a computer readable storage device; and
program instructions, stored on the computer readable storage device, for generating icons for participants in a chat session based on local times for participants, wherein the icons comprise indicators at positions relative to the icons, and the positions of the indicators identify the local times for the participants in the chat session.

16. The computer program product of claim 15, further comprising:
program instructions, stored on the computer readable storage device, for sending the icons to the participants in the chat session in a manner to cause workstations for the participants in the chat session to display the icons generated for the participants in the chat session.

17. The computer program product of claim 15, wherein the program instructions for generating the icons for the participants in the chat session comprise:
program instructions for identifying the local times for the participants in the chat session.

18. The computer program product of claim 15, wherein workstations of the participants display a window with text fields for messages entered or sent by the participants in the chat session.

19. The computer program product of claim 16, wherein the indicators at positions relative to the icons are first indicators at first positions relative to the icons, and further comprising:
program instructions, stored on the computer readable storage device, for identifying work shifts for the participants in the chat session, wherein the icons generated also comprise second indicators at second positions relative to the icons, and the second positions of the second indicators identify the work shifts for the participants in the chat session.

20. The computer program product of claim 19, wherein the first indicators are ovals and the second indicators are line segments.