The present invention is directed to sensing and reporting various types of user presence at a buddy list client device. A buddy list client device refers to any type of device capable of displaying a buddy list or any device for which some type of user presence can be sensed and displayed in a buddy list on another device. User presence refers to any way in which a user of a buddy list client device is directly or indirectly interacting with the buddy list client device. Examples of various types of user presence are described in greater detail below Examples of buddy list client devices can include, but are not limited to, Internet Protocol Television (IPTV) clients, digital cable receivers, personal computers (PCs), personal digital assistants (PDAs), digital video recorders (DVRs), digital music players, etc.
As illustrated in
The IPTV clients 110, 120, 130, 140, 150, and 160 respectively include buddy list functions 112, 122, 132, 142, 152, and 162, which display buddy lists on the respective TVs 114, 124, 134, 144, 154, and 164. A user of an IPTV client 110, 120, 130, 140, 150, and 160 can have a corresponding buddy list which is displayed on the user's TV 114, 124, 134, 144, 154, and 164. The buddy list for a particular user displays a list of buddies (i.e., users of other IPTV clients) selected by the user, and shows status information for each buddy. The status information for a buddy can reflect user presence of the buddy on an IPTV client. The buddy lists of the users of each IPTV client 110, 120, 130, 140, 150, and 160 are stored in a database 172 on the server 170.
The IPTV clients 110, 120, 130, 140, 150, or 160 sense user presence and send status information to the server 170 corresponding to the sensed user presence. User presence, as described above, refers to any direct or indirect interaction between a user and an IPTV client (or any other buddy list client). Examples of various types of user presence are described in greater detail below. The server 172 sends the status information to the IPTV clients 110, 120, 130, 140, 150, and 160 to be displayed on the buddy lists to reflect the user activity of the buddies in the buddy lists displayed by the IPTV clients 110, 120, 130, 140, 150, and 160. For example, if there is a change in the user presence on IPTV client 110, IPTV client 110 sends status information indicating the change in user presence to the server 170. The server 170 then checks the database 172 to determine which users of the other IPTV clients 120, 130, 140, 150, and 160 list the user of IPTV client 110 as a buddy. If the users of IPTV clients 120 and 130 list the user of IPTV client 110 as a buddy, the server sends the status information to IPTV clients 120 and 130, and IPTV clients 120 and 130 update the buddy lists displayed on TVs 124 and 134, respectively, to display the status information in order to reflect the change in user presence on IPTV client 110.
A buddy list client, such as the IPTV clients of
In addition to an IPTV client, other types of buddy list client devices (i.e., computer devices) may be used to perform various functions, such as Voice over Internet Protocol (VoIP) telephone calling, email, storing audio and video files, and a calendar function. It is also possible that one buddy list client device, such as an IPTV client or a PC, be able to perform multiple functions. Accordingly, the buddy list can display status information that reflects a variety of types of user presence associated with different functions being performed by buddy list client devices associated with buddies. These types of presence can include, but are not limited to, whether a buddy is watching TV, what channel a buddy is watching, what program a buddy is watching, whether a buddy is currently on a VoIP telephone call, whether new audio or video content is stored on a buddy's device (i.e., computer, IPTV set top box, or other network device), and whether a new appointment is stored in a buddy's calendar. Additionally, a computer, IPTV client, wireless router, or other network-enabled computing device can be equipped to detect whether a registered wireless device of a user is within a limited range in order to detect physical presence of the user. A registered wireless device refers to any device that has wireless connectivity with a limited range, such as RFID, Bluetooth, WiFi, etc. Accordingly, in order to detect a registered wireless device, wireless functionality (e.g., antenna, radio, etc.) can be added to the buddy list client. When the buddy list client detects the registered wireless device of a user within its range, status information indicating physical presence of the user at the buddy list client can be displayed on buddy lists where the user is a buddy.
As illustrated in
At step 410, the buddy list client senses user presence. As described above, the buddy list client can sense different types of user presence. At step 420, the buddy list client transmits status information corresponding to the sensed user presence to a server via a data network, such as the Internet. The buddy list client continuously loops through steps 410 and 420 while the buddy list application is running, such that whenever there is a change to the user presence, the buddy list client senses the change in user presence (step 410) and transmits updated status information corresponding to the change in user presence to the server (step 420).
Referring to
At step 515, the buddy list client sends a TV presence signal to the server. If it is sensed that the TV is turned on at step 510, the buddy list client sends a TV presence start signal to the server to indicate that the TV is on. If it is sensed that the TV is turned off at step 510, the buddy list client sends a TV presence end signal to the server to indicate that the TV is off, thereby indicating that this client is no longer “present”. When the buddy list client sends the TV presence start signal, the buddy list client can also send a channel and/or a program signal to the server to indicate what channel/program the TV is on. The buddy list client can also send the channel and/or the program signal whenever a change in the channel and/or the program is sensed.
At step 520, the buddy list client senses whether a telephone call is started or ended. For example, the buddy list client can sense whether a user begins or ends a VoIP telephone call. If the buddy list client senses that a user begins or ends a telephone call at step 520, the method proceeds to step 525. If the buddy list client does not sense that a user begins or ends a telephone call at step 520, the method proceeds to step 530.
At step 525, the buddy list client sends a telephone presence signal to the server. When it is sensed that the user begins a telephone call at step 520, the buddy list client sends a telephone presence start signal to the server to indicate that the user is on the telephone. When it is sensed that the user ends a telephone call at step 520, the buddy list client sends a telephone presence end signal to the server to indicate that the user is no longer on the telephone.
At step 530, the buddy list client senses whether a registered wireless device enters or leaves a range of the IPTV client. As described above, a registered wireless device can refer to any device that has wireless connectivity with a limited range, such as RFID, Bluetooth, WiFi, etc. If the buddy list client senses that a registered wireless device enters or leaves the range of the IPTV client at step 530, the method proceeds to step 535. If the buddy list client does not sense that a registered wireless device enters or leaves the range of the buddy list client at step 530, the method proceeds to step 540.
At step 535, the buddy list client sends a physical presence signal to the server. When it is sensed that the a registered wireless device of a user enters the range of the buddy list client at step 530, the buddy list client sends a physical presence start signal to the server to indicate that the a user is physically present within the range of the IPTV client. When it is sensed that the a registered wireless device of a user leaves the range of the buddy list client at step 530, the buddy list client sends a physical presence end signal to the server to indicate that the user is no longer physically present within the range of the IPTV client.
At step 540, the buddy list client senses whether a new audio file is downloaded. The buddy list client can sense when an audio file is downloaded onto the buddy list client or downloaded onto an external device, such as an internet enabled mp3 player, which communicates with the buddy list client. If the buddy list client senses that a new audio file is downloaded at step 540, the method proceeds to step 545. If the buddy list client does not sense that a new audio file is downloaded at step 540, the method proceeds to step 550. At step 545, the buddy list client sends an audio file presence start signal to the server to indicate that a new audio file has been downloaded.
At step 550, the buddy list client senses whether a new video file is downloaded. The buddy list client can sense when video file is downloaded onto the buddy list client or downloaded onto an external device, such as an external DVR, which communicates with the buddy list client. If the buddy list client senses that a new video file is downloaded at step 550, the method proceeds to step 555. If the buddy list client does not sense that a new video file is downloaded at step 550, the method proceeds to step 560. At step 555, the buddy list client sends a video file presence start signal to the server to indicate that a new video file has been downloaded.
At step 560, the buddy list client senses whether a new appointment is added to a user's calendar application. The appointment can be added to a calendar application running on the buddy list client or on an external device, such as a PC or PDA, which communicates with the buddy list client. If the buddy list client senses that a new appointment is added to the calendar application at step 560, the method proceeds to step 565. If the buddy list client does not sense that a new appointment is added to the calendar application at step 560, the method returns to step 510. At step 565, the buddy list client sends an appointment presence start signal to the server to indicate that a new appointment has been added to the user's calendar. The method then returns to step 510, and continuously loops through steps 510-565 while the buddy list application is running.
Returning to
The status information for each buddy may be displayed on the buddy list with a visual representation of the types of presence active for each buddy. This may include different icons, different text colors, or another scheme to represent each type of user presence. The buddy list client continuously loops through steps 430 and 440 while the buddy list application is running, such that whenever updated status information is received for any buddies of the user of the buddy list client (step 430), the buddy list client displays an updated buddy list showing the updated status information (step 440).
When a buddy list is displayed at a display associated with a buddy list client, the user may use the buddy list to interact with buddies based on the status information displayed in the buddy list. For example, the user may select a buddy's icons to trigger actions including, but not limited to, automatically switching the channel to the same channel (or program) that a buddy is watching, launching a VoIP telephone call, an email, or an instant messaging session with a buddy, initiating a conference call among more than one buddy, playing an audio or video file shared by a buddy, or viewing appointments on a buddy's calendar.
At step 620, the buddy list client detects whether a user selects a TV presence icon of a buddy in the buddy list. If a TV presence icon is selected at step 620, the method proceeds to step 625. If no TV presence icon is selected at step 620, the method proceeds to step 630. At step 625, a buddy list client, such as an IPTV client or a digital cable receiver, automatically switches the user's TV to the same channel as the TV of the buddy whose TV presence icon is selected at step 620. Alternatively, the buddy list client can automatically switch the user's TV to the same program that the buddy is watching.
At step 630, the buddy list client detects whether the user selects a telephone presence icon of a buddy. If a telephone presence icon is selected at step 630, the method proceeds to step 635. If no telephone presence icon is selected at step 630, the method proceeds to step 640. At step 635, the buddy list client displays menu options corresponding to the telephone presence icon. These menu options can include initiating a VoIP call to the buddy when the buddy gets off the phone, initiating an instant messaging session with the buddy, sending an email to the buddy, etc. When the user selects a menu option, the buddy list client performs the action corresponding to the selected menu option, or controls an external device communicating with the buddy list client to perform the action.
At step 640, the buddy list client detects whether the user selects a physical presence icon of a buddy. If a physical presence icon is selected at step 640, the method proceeds to step 645. If no physical presence icon is selected at step 640, the method proceeds to step 650. At step 645, the buddy list client displays menu options corresponding to the physical presence icon. These menu options can include initiating a VoIP call to the buddy, initiating an instant messaging session with the buddy, sending an email to the buddy, etc. When the user selects a menu option, the buddy list client performs the action corresponding to the selected menu option, or controls an external device communicating with the buddy list client to perform the action.
At step 650, the buddy list client detects whether the user selects an audio file presence icon of a buddy. If an audio file presence icon is selected at step 650, the method proceeds to step 655. If no audio file presence icon is selected at step 650, the method proceeds to step 660. At step 655, the buddy list client displays menu options corresponding to the audio file presence icon. These menu options can include downloading the same audio file, playing the audio file, initiating a VoIP call to the buddy, initiating an instant messaging session with the buddy, sending an email to the buddy, etc. When the user selects a menu option, the buddy list client performs the action corresponding to the selected menu option, or controls an external device communicating with the buddy list client to perform the action.
At step 660, the buddy list client detects whether the user selects a video file presence icon of a buddy. If a video file presence icon is selected at step 660, the method proceeds to step 665. If no video file presence icon is selected at step 660, the method proceeds to step 670. At step 665, the buddy list client displays menu options corresponding to the video file presence icon. These menu options can include downloading the same video file, playing the video file, initiating a VoIP call to the buddy, initiating an instant messaging session with the buddy, sending an email to the buddy, etc. When the user selects a menu option, the buddy list client performs the action corresponding to the selected menu option, or controls an external device communicating with the buddy list client to perform the action.
At step 670, the buddy list client detects whether the user selects an appointment presence icon of a buddy. If an appointment presence icon is selected at step 670, the method proceeds to step 675. If no appointment presence icon is selected at step 670, the method proceeds to step 680. At step 675, the buddy list client displays menu options corresponding to the appointment presence icon. These menu options can include viewing the buddy's calendar, adding the appointment to the user's calendar, initiating a VoIP call to the buddy, initiating an instant messaging session with the buddy, sending an email to the buddy, etc. When the user selects a menu option, the buddy list client performs the action corresponding to the selected menu option, or controls an external device communicating with the buddy list client to perform the action.
At step 680, the buddy list client performs a loop over the content related presence signals (i.e., the audio file presence signal, the video file presence signal, and the appointment presence signal) received from the server. That is, the buddy list client only displays icons corresponding to these presence signals on the buddy list for a limited amount of time so that icons are only displayed for new content. Accordingly, at step 685, the buddy list client determines whether the age of a content related presence signal (i.e., how long it has been since the signal was received from the server) is greater than a threshold. If the age of the content related signal is greater than the threshold at step 685, the method proceeds to step 690. At step 690, the buddy list client cancels the presence of the content and updates the buddy list to remove the corresponding icon. While the buddy list application is running the buddy list client continuously loops through steps 610-690.
Although the method of
As described above, the present invention allows a user to view status information indicating various types of user presence of buddies listed on the users buddy list. In an embodiment of the present invention, a user can select what information is available to those who list the user on their buddy lists, in order to protect the user's privacy.
The foregoing Detailed Description is to be understood as being in every respect illustrative and exemplary, but not restrictive, and the scope of the invention disclosed herein is not to be determined from the Detailed Description, but rather from the claims as interpreted according to the full breadth permitted by the patent laws. It is to be understood that the embodiments shown and described herein are only illustrative of the principles of the present invention and that various modifications may be implemented by those skilled in the art without departing from the scope and spirit of the invention. Those skilled in the art could implement various other feature combinations without departing from the scope and spirit of the invention.