Specification A METHOD AND SYSTEM FOR INTERNET-BASED VIDEO CHAT
BACKGROUND OF THE INVENTION
Field Of The Invention
The present invention relates generally to the field of transmitting voice and video over the Internet and more particularly to the field of Internet-based video chat systems.
Description Of The Prior Art
The telecommunications industry has made rapid progress especially in the past several years. Traditionally, telephones have been one of the most popular means of communication. However, ever since the introduction of the Internet, efforts have been underway to explore alternative means of communication such as electronic mail, Internet phones, and chat systems via the Internet. Communication via the Internet is becoming a preferred means of communication as compared to traditional means such as telephones or facsimile because of the higher cost of placing telephone calls which has always been a major expense for business entities as well as individual telephone users. However, the use of Internet for communication greatly reduced costs because of the easy and relatively inexpensive Internet connection available to users generally.
Electronic mail is one of the most popular methods of communication over the Internet. E-mails are much faster than regular mail or courier service and hence preferred by users. However, e-mails, while being a simple and easy means of communication, do not have the desirable features of a telephone, where users receive immediate and instantaneous responses from one another. Therefore, a need exists for a system that works like a telephone but without the disadvantages of a telephone service as discussed earlier.
An Internet-based chat system addresses this problem of lack of immediate, instantaneous interaction and/or response from the other party faced in e-mails. As the name suggests, an immediate response forms the core of Internet-based chat systems. There are different kinds of chat systems such as text chats, voice chats and video chats.
A chat can take place between at least two users on the Internet. In a common chat system, each user must be registered at a network chat server and have a client computer system. A first client computer system of a first user is connected via the Internet to the network chat server. Similarly, a second client computer system which in turn is connected to the Internet, of
a second user is connected to the same network chat server. The chat server maintains a database of users registered on it. The chat server contains contact details about all users who want to participate in a chat.
The first user initiates a chat by specifying the name of a second user with whom he/she wants to chat. A messenger on the chat server informs the first user whenever the second user logs on to the chat server.
The communication between the two parties are almost instant and truly interactive. For a chat system to operate, the chat server and client system of one user must be compatible with those of the other user. Apart from the latter requirement a specific protocol or standard is required to support a chat.
In text chat, the first user types in a text message on one part of the display screen and the second user viewing the sent text, types in his or her response. However, text chats suffer from a serious disadvantage. Though text chats allow users to communicate with one another instantaneously, they do not allow users to hear one another and respond instantaneously as in a conversation on the telephone. Voice chats were introduced to overcome this shortcoming. Voice chats allow users to transmit audio data over the Internet, a distinct advantage over the text chats.
However, efforts are constantly being made to develop even better means of communication over the Internet. Video chat systems now provide users with the dual advantages of transmitting voice as well as video over the Internet. Video chats work in a manner similar to text chats and voice chats with the additional capability of transmitting video images as well as audio over the Internet.
Video chatting bears close resemblance to the video conferencing or video phone. Both provide two-way instant communication through video and audio. Numerous video phones over the Internet have been available to consumers. While some of them, notably the CUSeeMe, rely on proprietary protocols to function, most current Internet-based video phone are based on industry-wide standards. There are two common protocols: H.323 and SIP. The most noted product Microsoft Netmeeting, which is presently part of the Windows operating system, embodies the H.323 protocol. All present PC-based internet video phone systems allow interactive and almost instant communication in video and audio. However, none of these systems are easy to activate. Therefore, it is desirable to have a video chat system over the Internet that is user friendly and can be activated with a single push button.
SUMMARY OF THE INVENTION
An object of the present invention is to provide a video chat system via a computer network such as the Internet, such a system having a video camera with a chat button, that is capable of launching the chat application when activated by the user. Another object of the invention is to provide an Internet-based video chat system having a video call launch button for activating a video chat call and a speaker that rings at the target system to inform the receiver an incoming video call.
Another object of the present invention is to provide a video chat system, such a system having a phone book server for storing information pertaiiiing to preferred users and allowing a user to edit his or her personal phonebook even when he or she is offline.
Yet another object of the present invention is to provide the user with a multimedia phone book that can enable a user in displaying animated graphics or snapshots of the user.
In accordance with a preferred embodiment of the present invention, a system for video chatting over a computer network is provided. The video chatting system comprises a network chat server, connected to the computer network. The network chat server is configured to locate compatible user-computer systems connected to the computer network. The compatible user- computer systems are capable of using chat services provided by the chat server. The chat system also includes two or more user-computer systems, each user-computer system having a user. The two user-computer systems are connected to the computer network and are compatible with the network chat server. Each of the user-computer systems is also configured in a manner so as to engage the services provided by the chat server to locate each other on the computer network. Further each user-computer system is also configured to run a video chat application. The chat system also includes two or more video cameras with the video cameras being communicatively coupled to the user-computer systems, respectively, so as to provide video and audio input for each of the user-computer systems, respectively. The video cameras also have a chat button to start and end the video chat application to enable users present on the two user-computer systems to engage in a video chat with each other over the computer network once the video chat application is started on each computer.
An advantage of the present invention is to provide a video chat system via the Internet, such system having a video camera with a chat button, that is capable of launching the chat application when activated by the user.
Another advantage of the present invention is to provide a video chat system, such system having a phone book server to store information pertaining to preferred users and that allows a user to edit his or her personal phonebook even when the user is offline.
Yet another advantage of the present invention is to provide the user with a multimedia phone book that can enable the remote user in displaying animated graphics or snapshots of himself or herself.
BRIEF DESCRIPTION OF THE DRAWINGS
These and other features, object, aspects and advantages of the present invention will become better understood with regard to the following description, appended claims, and accompanying drawings where:
Fig. 1 is a diagram depicting an exemplary embodiment of an Internet-based video chat system in accordance with the present invention;
Fig. 2a is a diagram illustrating the video camera system having a video camera and an associated cradle of the invention;
Fig. 2b is a diagram showing one embodiment of the cradle of the video camera of the invention; Fig. 2c is a diagram illustrating an embodiment of the video camera of the invention;
Fig. 3 is a block diagram depicting an exemplary embodiment of a structure of a chat server of the Internet-based video chat system in accordance with the present invention;
Fig. 4 is a flow diagram showing an exemplary process of locating users through the user of Internet location service (ILS) of a video chat system in the present invention; Fig. 5 is a diagram illustrating an exemplary status of a phonebook in the user database of the present invention;
Figs. 6a-6b are flow diagrams illustrating an exemplary operational process of a chat server of a video chat system in accordance with the present invention;
Fig. 7 is a flow diagram describing an exemplary operation of adding a phonebook record to the ILS RAM database of a video chat system of the present invention;
Fig. 8 is a flow diagram illustrating an exemplary kernel search operation of a chat server of a video chat system of the present invention;
Figs. 9a-9c are flow diagrams illustrating an exemplary operation of a phonebook server in the video chat system of the present invention; and Fig. 10 is an illustration of an exemplary of various options available to the receiving user clients participating in the video chat using Phone Book Service (PBS) in the video chat server of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
Detailed Description of the Preferred Embodiments:
FIG. 1 is a block diagram depicting an exemplary embodiment of an Internet-based video chat system 10 of the invention. The video chat systems 10 includes a first computer system 12 and a second computer system 14 each having a user 16 and 18 in front of it utilizing the computer system. Each computer system 12, 14 has a video monitor 20, 22, a pointing device (not shown), such as a computer mouse, an input device 24, 26, such as a keyboard, and a video camera 28, 30 respectively. Each video camera 28 and 30 is for capturing video images of the user 16, 18 respectively. Each computer system 12, 14 is further electronically connected through a modem to the Internet 40 through an Internet service provider server or a proprietary computer server or a network card (not shown) installed in the computer system 12, 14 for the video chat system 10. The Internet 40 is electrically coupled to a chat server 32, 34. Each chat server 32, 34 comprises an ILS server 72, 74, a server database 36, 38, and a phonebook database 33, 35, respectively. Each chat server database 36, 38 maintains a list of registered users with whom the video chat system 10 establishes contacts for conducting video chat calls. Registered user means user who subscribes to the video chat service provided by the system of the present invention. The chat server database 36, 38 further maintains a list of users registered on different video chat systems and relevant information of such users for establishing a video chat session. The two computer systems 12 and 14 are eventually connected through the Internet 40.
FIG. 2a-2c are diagrams illustrating the video camera 28, 30 of the invention in the video chat system 10. The video camera 28 has a portable camera 42 and an associated cradle 44. The portable camera 42 is placed in the cradle 44 for the purpose of capturing video images of objects in front of the camera 42 during an Internet-based video chat session. Usually, the object is a user 16, 18 (Fig. 1) using the video chat system 10. The cradle 44 has a first connector 46 for connecting to the computer system 12. In a preferred embodiment of the invention the first connector 46 provides connection between the cradle 44 and the computer system 12, wherein the connection complies with the Universal Serial Bus (USB) standard. Alternatively, a connector for RS-232 serial communications or any other suitable communications means, such as parallel interface, infrared, or compliance with blue-tooth standard, may also be used for the communications between the computer system 12 and video camera cradle 44. The cradle 44 further includes a second connector 48 for electrical connections to the portable camera 42. The portable camera 42 has a connector 50 corresponding to the second connector 48 in the cradle 44. Portable camera 42 transmits video
images signals, audio signals, and other control signals to the cradle 44 through the connector 50 of the portable camera 42 and the second connector 48 of the cradle 44. Portable camera 42 can also be used as a standalone camera for taking snap-shot image as a conventional digital camera. In one embodiment of the invention, the communication between the cradle 44 and the computer system 12 is made through a second connector 48 for electrical connection to the portable camera 42 via a physical cable. In an alternative embodiment, the electrical connection between the cradle and the computer system could be made through wireless communication.
As is illustrated in Fig. 2c, according to an exemplary embodiment of the present invention, in addition to the connector 50, the portable camera 42 further includes a camera having a lens 52 thereon for capturing video images, a display 54, such as a liquid crystal display (LCD), a speaker 56, an indicator 58 such as a light-emitting diode (LED), a video launch button 60, a microphone 62, and a snapshot button 64. In the preferred embodiment, the portable camera 42 is a digital camera that captures video images of an object or a person positioned in front of the lens 52. The person usually is the user 16, 18 who is using the computer system 12, 14. The display 54 is a liquid crystal display (LCD) in the preferred embodiment for displaying miscellaneous information such as time and date. The display 54 may also be used to display in real-time images captured by the camera 42. The speaker 56 is for generating audible signals upon receiving incoming calls to the attention of its user. Alternatively, the speaker 56 may play various programmable tones or music as a ringer in a telephone device. In the preferred embodiment, the indicator 58 is a light-emitting diode (LED) for indicating receiving of an incoming call when it is blinking. Regardless the description above, different modes of operation may be indicated by different pattern of LED states, which is well know to those skill in the art. Other types of suitable indicator may be used for this purpose as is known to those of ordinary skill in the art. The video launch button 60 is for activating the video chat system 10 of the present invention. The snapshot button 64 is for taking a snapshot still image at the moment captured by the camera 42. Microphone 62 is for picking up audio inputs of a user to be transmitted to the user on the ether end of the video chat system 10.
Each chat server 32, 34 further includes a phonebook server 33, 35 respectively that maintains private address books of its respective first and second users. Each user 16, 18 further maintains a private address book individually on their respective computer systems 12 and 14. Such address books include names and other information about individuals who are potential contact persons or preferred friends of the user client who also have means for utilizing the video chat call the present invention.
Fig. 3 is a block diagram depicting an exemplary embodiment of a structure of a chat server 32 and 34 of the Internet-based video chat system 10 in accordance with the present invention. The chat server 32, 34 has a signal receiving module 68 and a signal transmitting module 70 both are coupled to a searching module 72. The receiving module 68, signal transmitting module 70, and searching module 72 are further coupled to an Internet location server 74 which in turn couples to an Internet location service (ILS) RAM database 76. All currently logged on users of the video chat system are registered in the ILS RAM database 76. Searching module 72 searches the on-line user files through the ILS server 74. Results of online users found in the ILS RAM database are being transmitted to users via the signal transmitting module 70 and sent to the client via the receiving module 68. Receiving module 68 receives messages from clients wherein the user files will be compared to the records in a disk database 78. The disk database 78 maintains records of all registered users of the video chat system 10. Searching module 72 searches the file in the disk database 78 of a client through the ILS server 74 and receiving module 68. As part of a logon procedure, user information is compared to the records in the disk database 78 prior to approval for using the video chat system 10. Non-authorized user will be rejected if no records of such user can be found in the disk database 78. Once a client's identity has been approved, its record will be maintained in the ILS RAM database 76 as an on-line user until he or she logs off the service. Upon logging off, the user's record will be removed from the ILS RAM database 76. Only records of those users who are on-line will be kept on the ILS RAM database 76. Connect to the network server is a management console 80 which is used by the system administrator to manage and control the video chat system network.
In accordance with a preferred embodiment of the present invention, the chat server 32, 34 provide the following services: 1. Internet location service (ILS); and
2. phonebook service (PBS). 1. Internet Location Service (ILS-. In a video chat system of the present invention, it is essential that a user/client be able to locate his or her preferred users who are currently on-line or those preferred users who have recently registered on to the lightweight directory access protocol (LDAP)/Intemet location service server.
Fig. 4 is a block diagram showing the chat server 32 providing Internet location service (ILS) to users. Using ILS, one LDAP/ILS server is able to query other LDAP/ILS servers for the information whether or not a particular preferred user is online. In accordance with a
preferred embodiment of the present invention, the chat server 32 receives a communication from the LDAP client 82 and the network server 32 issues queries to other LDAP/ILS servers 84, 86 and 88 on whether or not a particular preferred user is on-line or off-line. 2. Phonebook Service (PBS') In the preferred embodiment, an existing client phonebook can be easily edited whether or not the chat client is connected to the chat server 32. In other words, editing can be done in any state as described below. In the preferred embodiment of the invention, editing of the phone book is not allowed when the client is in an "uninitiated" state. In the preferred embodiment of the invention, a client phonebook can be synchronized with the phonebook in the server only when the application is in "standby" or "connected" states.
As described above in connection with Fig. 3, the chat server 32 maintains a database and stores an image of phonebooks in the ILS RAM database 76 for each and every user who is actively engaged in video telephone calls or video chatting. The phonebook disk database 78 normally holds phonebooks of registered users. The chat server 32 uses the ILS RAM database 76 of every active user to facilitate notification to all online users as to when their preferred users are online.
In accordance with a preferred embodiment of the present invention, a phonebook disk database 78 comprises a plurality of phonebooks, one for each user. Each phonebook, in turn, comprises a plurality of phone records. Phonebook disk database 78 records include user name, email addresses of users, and associated LDAP/ILS server addresses. IP addresses of each user are normally maintained in the ILS RAM database 76 for the active users who are currently online because the IP addresses are normally dynamically assigned after the user has logged onto the Internet.
The phonebook disk server 78 in the network server 32 performs a task of updating the status of every active phonebook 76 that shows an entry, as well as notifying its connected clients to facilitate updating the client's phonebook whenever a user client goes online or off line. The phonebook disk database further advises the ILS server 74 to update the records on the ILS RAM database 76 for each on-line user.
Fig. 5 is a diagram illustrating an exemplary of a phonebook in the user database of the present invention. According to a preferred embodiment of the present invention, every user maintains a personal phonebook containing a list of names 90, email addresses 92, phone number online status 94 and 96 as well as current location (not shown) of other clients with whom alone the client computer system, user client may establish a connection to operate the video chat system. For the convenience of the user, a photograph of the listed person may also
be included. The phonebook contains information essential for the user to make video chat calls of the present invention. The user can edit data in the phone book by using an "edit" button in the phone book.
One key function of the phonebook is to display the status of any particular entry selected by the user as a preferred target user. The phonebook server verifies whether or not the selected preferred target user whose information is contained in the selected entry is "on-line" or "off-line." The contents of the personal phonebook are synchronized with the phonebook disk database 78 of the chat server 32 to insure that the database of the latter reflects the changes made by the user to his/her personal phonebook. Referring now to Figs. 6a and 6b, which are flow diagrams illustrating an exemplary operation of receiving module 68 of a chat server of a video telephone system in accordance with the present invention. Chat server 32 first checks whether it has received a data packet (step 100). It then determines if the data packet received is a register data (step 102). It loops back to wait for the next data packet if no data is received. If the data packet received is a register data, then it checks whether the data is related to one that has already been registered (step 104). It updates the data in the phonebook disk database 78 (step 106) if the data is already registered. Otherwise, it registers the data in the phonebook disk database 78 (step 108). If the data packet received is not a register data, it then checks the data packet to determine whether or not it is a login or logout data (step 110). If the data packet is not a login or logout data, then it determines whether the data packet is one for on-line information inquiry (step 112). It searches the user's phonebook in ILS RAM database (step 114) and sends the user's phonebook status to the user (step 116) and concludes the process, if the data is for an on-line information inquiry. Otherwise, it determines whether or not it needs to change the user's register mformation (step 118). It updates search query language (SQL) disk database (step 120) and informs the user that the database has been updated (step 122) if so. Otherwise, it determines if it needs to change the phonebook (step 124). It updates the phonebook disk database (step 126) and advise the user that the database has been updated (step 122) if it is determined that it needs to change the phonebook. It terminates the process if it determines there is no need to change the phonebook. Referring to Fig. 6b. If the chat server determines that the data packet it received is a login or a logout data, it then determines whether it is a login data (step 128). It seeks to authenticate the user if it is a login data (step 130). It verifies whether the client phonebook is the same as the record in the database (step 132). It adds the phonebook record into the ILS RAM database 76 (step 134) and terminates the process if the records compare. Otherwise, it updates the phonebook copy in the disk database 78 (step 136). The chat server 32 rejects an
unauthenticated user (step 138).
If it is determined that the data packet is not a login data, it then determines whether the data packet is a logoff data (step 140). It updates all phonebook status to the user as logged off (step 142) and removed the user from the ILS RAM database record (step 144) and terminates the process if the data packet indicates that it is a logoff data. It terminates the process if the data packet is not a logoff data.
Referring to Fig. 7, which is a flow diagram describing the process of adding a record to the phonebook. If it is previously determined that the data packet indicates that it needs to update the ILS RAM database (step 134 in Fig. 6b), it then searches the local RAM database for the phonebook record of the user who just logged on (step 146). Next, it determines whether the user is a local user or a remote user (step 148). It verifies the local record of the user status who just came on-line (step 150) and sends a confirmation regarding the status of the user database if it verifies (step 152) and terminates the operation after its completion. It terminates the operation if it does not verify the local record of the registered on-line user status. If the user who just logged on is a remote user, it then verifies whether the user indicates that it is exiting the video chat call (step 154). It terminates the process if the user indication that it is exiting. Otherwise, it adds the user information into the RAM database in the phone book (step 156) and continues to verify whether local record of the user status who call from remote location (step 150). It sends a confirmation regarding the status of the user database if it verifies (step 152) and terminates the operation after its completion. It terminates the operation if it does not verify the local record of the registered on-line user status.
Fig. 8 is a flow diagram illustrating an exemplary kernel search operation in the searching module 72 of a chat server of a video telephone system of the present invention. The search starts with verifying phonebook of the on-line user with the RAM database (steps 158 and 160). It searches the remote server (step 162) if it verifies and determines if the record found in the remote ILS RAM database matches (step 164). It updates the status of the user to "on-line" if the record matches (step 166), otherwise it changes the status to "off-line" (step 168) to reject such assess, and terminates the operation after completing either operation. If the phonebook of the on-line user does not verify with the RAM database (step 158 and 160), it sends a courteous message to the user indicating that no record for the user were found (step 170) and terminates the operation.
Figs. 9a-9c are flow diagrams illustrating an exemplary operation of a chat client and the phonebook server for chatting in the video chat system of the present invention. Referring now to Fig. 9a, which describes the client side operation of handling messages. The phonebook
server first receives a message from the network server (step 170). Once receiving the message, the next step is to determine the message type (step 172). The phonebook server prompts the user to add, delete, or edit list of friends and their records (step 174) if the message requires the server to provide a response to locate a friend. The phonebook server displays a message (step 176) if the message requires the server to provide a message response. The phonebook updates the status of a friend (step 178) if the message requires the server to provide an online status message. After completing any of the above three operations, the next process may include a delay routine (step 180), which controls how often the online/offline status is to be updated.
Fig. 9b is a flow diagram illustrating the phonebook server side operation for chatting in the video chat system of the present invention. The phonebook server first receives a message from the phonebook client (step 182). Once receiving the message, the next step is to determine the message type (step 184). The phonebook server processes editing commands (step 185) if the message is for editing user's personal phonebook. The phonebook server sends a message to the target user (step 186) and provides an optional delay (step 188) if the task is for an instant message. The phonebook server first searches its own user-list (step 190) for the targeted user if the task is for locating friends. After searching the phonebook server's own user-list, it verifies whether or not a record for the target user is found (step 192) in the phonebook server's own records. It sends a message to the client (step 194) indicating that the target is found if the target is found in its own records. It searches other phonebook servers' records (step 196) if the target user's file is not found in the phonebook server's own records. It then verifies whether the target user's file is found in other phonebook servers' records (step 198). It sends a message to the client (step 194) indicating that the target is found if the target is found in other phonebook servers' records. Otherwise, it sends a message to the client indicating that no record of the target user is found in any of the phonebook servers (step 200). Regardless whether the target user's file is found in the phonebook server's own record, or found in other phonebook servers' records, or cannot be found anywhere at all, all these processes follow with an optional delay before it continues its operation described above. Regardless whether the target user's file is found in the phonebook server's own records, or in other phonebook servers' records, or cannot be found in any of the phonebook servers' records at all, the phonebook server conducts an optional delay (step 202) if desired.
Fig. 9c is a flow diagram illustrating the process of timely updating on-line users information for chatting in the video chat system of the present invention. The process starts with the phonebook and ILS server finding the status of each friend for every user (step 204). Next, the ILS server updates the ILS RAM database (step 206). Finally, the ILS server sends an
updated message to each user (step 208). The process illustrated in Fig. 9c and described above repeats itself periodically so that the information will be updated every so often. Alternatively, the process may be implemented as an interrupt driven module that occurs whenever a timer interrupts the processor on a predetermined duration. Fig. 10 is an illustration of the different options available to the user clients participating in the video chat. In accordance with a preferred embodiment of the present invention, a user selects from any one of the following available options during a chat session. a. "Chat with Video and Audio" 160- The user may opt to chat with his/her preferred user using both audio and video. b. "Chat with Audio only" 162 - The user may opt to chat with his/her preferred user using just the audio option. c. "Chat with a Prerecorded Video Image" 164 - The user may opt to chat with his/her preferred user using a snapshot of the user taken offline. d. "Chat with live Video and Audio Message" 166- The user may opt to chat with his/her preferred user using a live video image and audio. e. "Activate Audio Message" 168 - The user may opt to send audio message. f. "Activate Text chat messaging" 170 - The user may opt to chat with his/her preferred user using just a text chat.
Although the present invention has been particularly shown and described above with reference to a specific embodiment, it is anticipated that alterations and modifications thereof will no doubt become apparent to those skilled in the art. It is therefore intended that alternations and modifications thereof will no doubt become apparent to those of ordinary skill in the art. It is therefore intended that the following claims be interpreted as covering all such alterations and modifications as fall within the true spirit and scope of the invention.