METHOD AND APPARATUS FOR PROVIDING A PLATFORM- INDEPENDENT AUDIO/VIDEO SERVICE
TECHNICAL FIELD
[0001] This invention relates to the field of data communications. More precisely, this invention pertains to a method and apparatus for providing a platform-independent audio/video service to a remote user.
BACKGROUND OF THE INVENTION
[0002] In today's world, telecommunications between individuals are of ever increasing importance. Audio communication is achieved, for instance, using various solutions, the most popular of which is the telephone.
[0003] With the development of Wide Area, packet-switched, Networks, such as the Internet, various new embodiments of the telephone are now available, such as IP telephones for instance. These new embodiments take advantage of this new type of switching.
[0004] Surprisingly it is still, not easy to provide a combined audio/video service to a plurality of users similar to what is offered by existing voice, networks. In fact, some hardware video-conferencing companies have developed dedicated audio/video hardware solutions adapted to provide the audio/video service. Unfortunately, such hardware solutions are usually quite expensive and not very flexible. Furthermore, such hardware solutions require dedicated phone lines as well as a specific setup.
[0005] With the increase in processing power of current processing units, . software solutions have now been
developed to provide the audio/video service to clients over the Internet for instance.
[0006] However, such software solutions require that platform specific client software applications be installed on each user's processing unit. Installation of the various client applications is often not easy for a home user. The skilled addressee will also appreciate that, in the case of •corporations, such installations are not desirable either since they increase the workload of system administrators.
[0007] Furthermore, the fact that such varied client applications are usually limited to very specific operating systems is part of the reason for which they are not yet widely adopted.
[0008] There is therefore a need for a method and apparatus that will overcome the above-identified drawbacks .
SUMMARY OF THE INVENTION [0009] It is an object of the invention to provide a platform-independent audio/video service to a plurality of users using a packet-switched network. Alternatively, an email service may be combined with the audio/video service.
[0010] According to an aspect of the invention, there is provided a method and apparatus for providing a platform- independent audio/video service to a plurality of users over a packet-switched network. Audio/video signals are sent to a remote user where they are read using a sequence of processing operations that are independent of the remote user's processing unit. In other embodiments, the processing operations are comprised in a web browser or in hardware equipment which have as there main function the
provision of the audio/video service. Also, other embodiments include an audio/video mailbox service that uses the foregoing audio/video service.
[0011] According to another aspect of the invention, there is provided a method for providing a platform-independent audio/video service to a plurality of users. The method comprises providing an audio/video . signal to be transmitted to a user, encapsulating the audio/video signal into a data packet, the data packet to be read using a sequence of processing operations suitable for delivering an audio/video signal, delivering the encapsulated audio/video signal to the user and wherein the sequence of processing operations is independent of a given type of processing unit and thereby enables the provision of a platform- independent audio/video service.
[0012] According to another aspect of the invention, there is provided a method for providing a platform-independent audio/video service to a plurality of users. The method comprises providing an audio/video signal to be transmitted to a user, encapsulating the audio/video signal into a data packet, the data packet to be read by a Web browser comprising a module for delivering a video • signal, delivering the encapsulated audio/video signal to the user via the Web browser and wherein the module is comprised in the Web browser by default.
[0013] According to yet another embodiment, the present invention provides a method for providing a platform- independent audio/video service to a user using a processing unit connected to a network. The method comprises said user performing a registration check for the service (e.g., through a web site) and providing an
audio/video signal from a source. The source may include, for example, another user's 'environment, the environment of more than one user, and/or surveillance cameras. The method further comprises producing an audio/video output from the audio/video signal using a sequence of processing operations that is independent of operating systems running said user's processing unit and displaying the audio/video output to sa d user. .
[0014] According to still another embodiment, the present invention provides a method for providing a platform- independent, audio/video service to a user using a processing unit connected to a network. The method comprises: the user accessing a web site to perform a registration check for the service; providing an audio/video signal from an audio/video source; producing an audio/video output from the audio/video signal using a web browser comprising a module for delivering a video signal; and displaying the audio/video output to the user through the web browser.
BRIEF DESCRIPTION OF THE DRAWINGS
[0015] Further features and advantages of the present invention will become apparent from the following detailed description,, taken in combination with the appended drawings, in which:
[0016] Fig. 1 is a block diagram which shows a system for providing a platform-independent audio/video service; the system comprises a first processing unit, a remote processing unit and an audio/video server unit according to an embodiment of the invention;
[0017] Fig. 2 is a flowchart which shows how, according to an embodiment of the invention, a user may communicate with a remote user using the platform-independent audio/video ■ server;
[0018] Fig. 3 is a flowchart which shows how, according to an embodiment of the invention, a user establishes a connection with an audio/video server;
[0019] Fig. 4 is a flowchart which shows how, according to an embodiment of the invention, an account is created with the audio/video server;
[0020] Fig. 5 is a flowchart which shows how, according to an embodiment of the invention, a communication is performed between the user and the remote user via a web interface;
[0021] Fig. 6 is a flowchart which shows how, according to an embodiment of the invention, an attempt to communicate with a remote user is conducted;
[0022] Fig. 7 is a screenshot which shows an embodiment of a user interface which is provided to a user;
[0023] Fig. 8 is a screenshot which shows another example of the user interface displayed on one of the processing unit ,-
[0024] Fig. 9 is a flowchart which shows how, according to an embodiment of the invention, an acquired audio/video signal is compressed;
[0025] Fig. 10 is a flowchart which shows how, according to an embodiment of the invention, a received compressed audio/video signal is decompressed;
[0026] It will be noted that throughout the appended drawings, like features are identified .by like reference numerals .
DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT
[0027] Now referring to Fig. 1, there is shown a system for providing a platform-independent audio/video service. The system comprises a first processing unit 10, a data packet, network 12, a remote processing unit 14, an audio/video server unit 16 and a user database 18.
[0028] The first processing unit 10 may be any one of a computer, a portable, a personal digital assistant (PDA) , a dedicated processing unit, a mobile phone or the like. The first processing unit 10 comprises a network interface for communicating with the data packet network 12. Thus, the first processing unit 10 is capable of sharing data packets with the data packet network 12. The first processing unit 10 further comprises preferably an audio/video acquisition device (not shown) and an audio output device (not shown) .
[0029] In a preferred embodiment, the 'first processing unit 10 has components adapted with various characteristics such as available bandwidth for instance.
[0030] At this point it should be understood that the first processing unit 10 comprises, in a preferred embodiment, an application for communicating through the data packet network 12. In a preferred embodiment, the application for communicating through the data packet network 12 is a Web browser.
[0031] In fact it should be appreciated that more generally a sequence of processing operations suitable for delivering or, more generally, producing an audio/video
signal is provided. In a preferred embodiment, the sequence of processing operations is compiled and is comprised in a software application which is a Web browser. The software comprising the compiled processing operations may be a standalone application which may be run independently of a particular operating system which is of great advantage. In a preferred embodiment, the standalone application may be the Flash player application/plug-in from Macromedia Inc.
[0032] In yet another embodiment, the sequence of processing operations suitable for producing an audio video signal may bypass the Web browser and the Operating System level and may be used directly by the processing unit. Furthermore, the sequence of processing operations suitable for producing an audio video signal may be downloaded from said audio/video server unit to the processing units 10, 14 or from any other source .
[0033] Preferably, the sequence of processing operations suitable for producing an audio video signal includes or is supplemented by a compression and decompression algorithm that will be discussed in detail hereinbelow.
[0034] Alternatively, the sequence of processing operations may be implemented in hardware in the first processing unit 10. The skilled addressee will appreciate that such sequence of processing operations .is independentof a given type of processing unit and thereby enables the provision of a platform-independent audio/video service.
[0035] The data packet network 12 is any one of a Local Area Network (LAN) , a Metropolitan Area Network (MAN) , a Wide Area Network (WAN) or a combination thereof. In a
preferred embodiment of the invention, the data packet network 12 is the Internet.
[0036] The remote processing unit 14 may be any one of a computer, a portable, a personal digital assistant (PDA) , a dedicated processing unit, a mobile phone or the like. The remote processing unit 14 comprises a network interface for communicating with the data packet network 12. Thus, the remote processing unit 14 is capable of sharing data packets with the data packet network 12.' The remote processing unit 14 further comprises preferably an audio/video acquisition device and an audio output device. In a preferred embodiment, the remote processing unit 14 has components adapted with various characteristics such as available bandwidth for instance. The remote processing unit may be a computer, a PDA device, a cell phone or any other device which may communicate with the data packet network 12.
[0037] At this point it should be understood that the remote processing unit 14 comprises a remote processing unit application for communicating through the data packet network 12.
[0038] The audio/video server unit 16 is a processing unit adapted for providing the platform-independent audio/video service to a plurality of users as explained below. In the exemplary embodiment disclosed in Fig. 1, the platform- independent audio/video service is provided between the first processing unit 10 and the remote processing unit 14 via the data packet networks 12.
[0039] In a preferred embodiment, the audio/video server unit 16 is adapted for performing load balancing. Furthermore, a suitable mirroring system is provided in the
audio/video server unit 16. The audio/video server unit 16 is operatively connected to the user database 18.
[0040] The user database 18 comprises data concerning registered users. More precisely, the database 18 comprises a list of registered users. For each of the registered users, the database comprises a login and password, an indication of the status of the user such as online, communicating, offline, etc. The user database 18 further comprises, for each registered user, customized data, a list of contacts, etc. Depending on a subscription, the user database 18 may further comprise for a given user an answering machine message and' eventually at least one message left for the given user by another user.
[0041] In a preferred embodiment, the user database 18 is implemented using a first database, a second database and a third database. More precisely, the first database J comprises a list of blocked users and for each user, data such as a userlD, profile, etc. The first database further comprises an n by n matrix where for each user it is possible to find out with which other users it is possible to communicate. It has been contemplated that such matrix is of great advantage for quickly accessing data in the case of a large number of users . The first database further comprises administration data. The second database comprises a list of pointers, each pointer pointing to the beginning of an audio/video/text message. The third database comprises the audio/video/text messages.
[0042] Now referring to Fig. 2, there is shown how a user' of the first processing unit 10 may communicate with a remote user of the remote processing unit 14 via the data packet network 12 using the audio/video server 16.
According to step 20,- the user of the first processing unit 10 connects to the audio/video server unit 16.
[0043] Now referring to Fig. 3, there is shown how the user of the first processing unit 10 connects to the audio/video server unit 16. According to step 42, a connection is established with a website. The web server, providing an access to the website, may be comprised in the audio/video server unit 16. Alternatively, the web server may be comprised at another location on the data packet network 12 and may redirect a request to' the audio/video server unit .
[0044] According to step 44, a login and password is entered by the user on a form displayed on the browser of the first processing unit 10. The login and password is used to uniquely identify the user in the system.
[0045] According to step 46, the login and password are transmitted to the audio/video server unit 16 via the data packet network 12. It will be appreciated that preferably the login and password are transmitted to the audio/video server unit 16 using a secure connection such as secure socket layer (SSL) .
[0046] Now referring back to Fig. 2 and according to step 22, a check is performed, by the audio/video server unit 16 in ' order to find out if the combination of login and password is legitimate, i.e., if the user is known. A combination is legitimate if the combination of login and password already exists in the user database 18. Such a check is performed using the user database 18.
[0047] In the case where the combination of login and password is legitimate, a customized user- interface is displayed on the browser of the first processing unit 10.
[0048] It will be appreciated that preferably various user interfaces may be provided to the user according to a subscription. For instance, a user may be capable of communicating with a plurality of users simultaneously in a given type of subscription. Also, it should be appreciated that advertising based on physical location of the user may be provided on the user interface.
[0049] Now referring to Fig. 7,. there is shown an embodiment of a user interface which is provided to the user. The user interface comprises a video screen displaying a live- captured video of the user operating the. first processing unit 10. The user interface further comprises a list of contacts and an indication of a status. In such a case, the user operating the first processing unit 10 has received messages.
[0050] Now referring back to Fig. 2 and according to step 26, an attempt to establish a communication with a remote user is performed.
[0051] Now referring to Fig. 6, there is shown how the attempt to establish a communication with a remote user is performed. According to step 70, a remote user, using the remote processing unit 14 with which communication is requested, is selected by the user of the first processing unit 10 using via the user interface. As explained previously, a list of a plurality of remote users is provided through the user interface. It should also be appreciated by the skilled addressee that, through the user
interface, a new remote user may be added or deleted from the list of the plurality of remote users displayed.
[0052] According to step 72, the selected remote user information is provided to the audio/video server unit 16 via the data packet network 12. A test is performed according to step 74 in order to find out if the selected remote user is known by the audio/video server unit 16. It will be appreciated that the selected remote user is known if information indicative of the selected remote user is comprised in the- user database 18. The test to find out if the selected remote user is known by the audio/video server unit 16' is performed by the audio/video server unit 16 using the user database 18. In the case where the remote user is not known and according to step 76, a message indicating that the supplied information is not valid or that the user is not known is displayed on' the user interface of the first processing unit 10.
[0053] It will be appreciated that in the embodiment where a list of a plurality of remote users is displayed on the user interface of the first processing unit 10, such test is not necessary.
[0054] In the case where the selected remote user is known, and according to step 28 (returning to Fig. 2) , a test is performed in order to find out if the selected remote user is logged on to the audio/video server unit 16 via the remote processing unit 14. The latter test is performed using the user database 18. In the case where the selected remote user is logged on the audio/video server unit 16 and according to step 31, an alert signal is- provided to the selected remote user via the user interface of the remote processing unit 14.
[0055] The alert signal may be at least one of a visual signal, an- audio signal, a video signal or the like. For instance, the visual signal may be a flashing light, the audio signal may be a beeping sound, and the video signal may be a video stream and/or a text message.
[0056] According to step 32, a test is performed in order to find out if the selected remote user reacts in response to the alert signal provided according to step 31. The test is performed using the • user interface of the remote processing unit 14 and the audio/video server unit 16.
[0057] Upon reaction of the remote user on the user interface of the remote processing unit -14, a signal indicative of the reaction is provided to the audio/video server unit 16. In the case where the remote user does not react on the user interface of the remote processing unit 14 and according to step 30, a test is performed in order to find out if the user is authorized to leave a message audio/video message box assigned to the remote user. The test is performed by the server unit 16.
[0058] In the case where the remote user reacts on the user interface of the remote processing unit 14 and according to step 33, audio/video data is displayed on the user interface of the user and on the user interface of the remote user.
[0059] In a preferred embodiment, the data displayed on the user interface of the user and on the user interface of the remote user comprise a live video of the user and a live video of the remote user together with an audio signal indicative of a conversation between the user and the remote user. Alternatively, various other signals may be provided on each corresponding interfaces such as
predefined objects or files. Fig. 8 shows an example of the user interface displayed on one of the processing unit 10 and the remote processing unit 14.'
[0060] According to step 34, the user communicates with the remote user via a respective user interface displayed on a respective processing unit. In a preferred embodiment of the invention, suitable Internet ports such as 80 and 88 are used for communicating between the user and the remote user.
• [0061] Now referring to Fig. 5, there is shown how the user communicates with the remote user. The skilled addressee will appreciate that a similar process takes places in the other direction, i.e., from the remote user to the user. According to step 60,- an audio/video signal of the user is acquired on the first processing unit 10. ■According to step 62, the audio/video signal is compressed. In a preferred embodiment, the audio/video signal is compressed by the first processing unit 10 ' in accordance with a compression algorithm. In an alternative embodiment, the audio/video signal may be compressed by the audio/video server unit 16.
[0062] Now referring to Fig. 9, there is shown how the audio/video signal is compressed'. According to step 100, audio/video resources are accessed. According to step 102, the accessed audio/video resources are evaluated. More precisely, local resources are evaluated to find a suitable quality of transmission of data. In fact, the skilled addressee will appreciate that a low level of available resources is not suitable for transmission of a high amount'
• of data. Such evaluation of the audio/video resources is
therefore desirable in order to optimize the use of the audio/video resources .
[0063] According to step 104, the acquired audio signal is provided. According to step 106, a test for performing a packet split of the acquired, audio signal is performed. It will be appreciated the packet split of the acquired audio signal may be performed according to parameters such as connection speed, availability of a connection link, etc.
[0064] In the case where packet split cannot be performed, the audio/video resources are evaluated according to step 102. In the case where the packet split of the acquired audio signal is performed and according to step 108, the split audio packet is encapsulated. According to step 110, the encapsulated audio packet is then encoded. In a preferred embodiment, the encapsulated audio packet is encoded using the H263 algorithm.
[0065] According to step 112, the acquired video signal is provided. According to step 114, a test for performing a packet split of the acquired video signal is performed. It will be appreciated the packet split of the acquired video signal may be performed according to parameters such as connection speed, availability of a connection link, etc.
[0066] In the case where packet split cannot be performed, the audio/video resources are evaluated according to step 102. In the case where a packet split is performed and according to step 116, the split video packet is encapsulated. According to step 118, the encapsulated split video packet is encoded. In a preferred embodiment, the encapsulated split video packet is encoded using the H263 algorithm and a Sorenson-like algorithm.
[0067] According to step 120, the encoded and encapsulated audio packet and the encoded and encapsulate'd video packet are combined. While it will be appreciated that the compression algorithm may be implemented in software or in hardware, the compression algorithm is preferably implemented in software.
[0068] Referring back to Fig. 5 and according to step 64, the compressed video signal is transmitted to the remote processing unit 14 using the data packet network 12.
[0069] It will be appreciated by the skilled addressee that various routing schemes departing from the scope of the invention may be used in order to deliver the compressed video signal to the remote processing unit 14. According to step 66 , the transmitted signal is decompressed. The transmitted signal is preferably decompressed by the remote processing unit 14 using a decompression algorithm.
[0070] Now referring to Fig. 10, there is shown a flowchart which discloses the decompression algorithm. According to step 132, a compressed audio/video signal is received.
[0071] According to step 134, a compressed audio signal and' a compressed video signal are extracted from the compressed audio/video signal. According to step 136, the extracted audio signal is decoded. According to step 138, the extracted video signal is decoded. It should be appreciated that steps 136 and 138 are preferably performed in parallel. Furthermore, it should be understood that steps 136 and 138 respectively perform the converse step of the transformations performed in steps 110 and 118 of Fig. 9.
[0072] It will be appreciated that the decompression algorithm may be implemented using hardware or software. In a preferred embodiment, the decompression algorithm is implemented in software.
[0073] Now referring back to Fig. 5 and according to step 68, the decompressed signal is provided on the remote user interface.
[0074] Now referring back to Fig. 2, in the case where the selected remote user is not logged on the audio/video server unit 16 and according to' step 30, a test is performed . in order to find out if the remote user is authorized to leave a message on the answering machine. The test is preferably performed using the audio/video server unit 16 and the user database 18. It will be appreciated that the answering machine may be at least one of a voice answering machine, a video answering machine, a text message answering machine or the like.
[0075] In the case where the remote user is not authorized to leave a message on the answering machine, and according to step 40, a message is displayed on the user interface of the first processing unit 10. In fact, a message to request access to communicate with the remote user is provided by the first processing unit 10 to the remote processing unit 14.
[0076] In the case where the remote user has authorized the user to leave a message on its answering machine and according to step 36, an answering machine message is provided to the user interface of the first processing unit 10. The answering machine may be at least one of an. audio answering machine message, a video answering machine message, a text message or the like.
[0077] In response to the answering machine message displayed on the user interface of the first processing unit 10, a response may be provided according to step 38 to the remote user.
[0078] It will be appreciated that the response may be at least one of an audio response message, a video response message, a text message or the like. It should be further understood that the response is provided to audio/video server unit 16 which preferably stores it in the user database 18.
[0079] , Alternatively, the response message may be retrieved from the server and provided to the remote user using other means such as email for instance and/or voice message to any communication device, PDA, etc. It will be appreciated that the response message may be retrieved from the remote user using a connection to the server unit 16. In the case of an email, the latter may be provided to the user via any communication device.
[0080] Still referring to Fig. 2, in the case where the user is not known and according to step 24, an account is created for the user. Preferably the account is created via the user interface of the first processing unit 10.
[0081] Now referring to Fig. 4, there is shown how the account is created. According to step 52, subscribing information is provided by the user. The subscribing information is provided to the audio/video server unit 16 by the user via the first processing unit 10.
[0082] The subscribing information comprises at . least one information selected from the group consisting of the first name of the user, the last name of the user, the address of
the user, the phone number of the user, the IP address, non-sensible personal data for identification of the user such as photo, mother name, birth data, social security number of the user or the like.
[0083] In a preferred embodiment, the subscribing information is encrypted prior to being sent to the audio/video server unit 16. In a preferred embodiment of the invention, secure socket layer is used to encrypt the information. At least one part of the provided subscribing information is stored in the user database 18 of the audio/video server unit 16.
[0084] According to step 54, an audio/video profile is created by the user via the user interface of the first processing unit 10. The audio/video profile comprises information such as login, an audio/video greeting message.
[0085] According to step 56, a security check is performed on the first processing unit 10. It will be appreciated that such security check is performed in order to avoid abusive use of the system. The security check comprises capturing the IP address of the first processing unit 10, capturing date and time, capturing a serial number of the processor of the first processing unit. Such information is stored in the user database 18 by the audio/video server unit 16 and may be used in the future. However it should be understood that such step is riot mandatory for practicing the invention.
[0086] According to step 58, a profile corresponding to the user of the first processing unit is created by. the audio/video server unit 16 using the information provided at steps 52, 54 and 56. At this point the user may use his created profile to access the system via the first
processing unit '10. It will be further appreciated that the user may add new contacts.
[0087] While it has been disclosed an embodiment of the first processing unit 10 and the remote processing unit 14, it should be understood that these may be a dedicated hardware processing unit having for instance a touch screen or a translucent touch screen display device for displaying the user interface. The dedicated hardware processing unit may further comprise an internet web cam-, a wired or wireless microphone, a wired or wireless network access and wired/wireless headsets. Those skilled in the art will appreciate that such dedicated hardware processing unit may therefore provide . an integrated solution for videoconferencing which is compatible with the apparatus disclosed herein.
[0088] The embodiments of the invention described above are intended to be exemplary only. The scope, of the invention is therefore intended to be limited solely by the scope of the appended claims .