1. Field
The disclosed subject matter relates generally to the field of audiovisual communication.
2. Background Information
Instant Messaging (IM) systems have proliferated in recent years. These systems can allow individual users to communicate with other users using text, audio, video, and other types of multimedia data. Examples include free offerings such as Skype and Google Talk, as well as commercial, enterprise systems such as the original Microsoft Office Communication Server and its associated client Microsoft Office Communicator, and its later version called Microsoft Lync.
Certain systems can provide a so-called “presence engine” as well as the ability to communicate via text-based messages. The presence engine can be responsible for registering the status of a user (e.g., available to communicate, idle, unavailable, etc.) and reporting it to other users (such as co-workers, users declared in the system as ‘friends’ of the specific user). A user can typically initiate communication by typing a text message in a window, addressed to another user. The intended recipient of the message can be notified by the software and will be offered the opportunity to reply.
Certain IM systems can offer the ability to conduct text-based conversations among groups of users, i.e., with groups of more than two users at a time. Certain IM systems offer the ability to combine the text-based communication with audio communication whereas others offer the ability to use video as well.
Due to the complexity in offering multi-point video communication, certain systems can allow multi-user audio communication (e.g., Skype or Google Talk) but only person-to-person video communication. There can be technical problems in multi-point video, for example when desktop operation is desired (generally a requirement for an IM system).
Certain multipoint videoconferencing systems can use transcoding or switching Multipoint Control Units (MCUs) to connect participating users with each other. The transcoding MCU can be complex and can add considerable delay, whereas the switching MCU can have limited functionality and flexibility. Another solution for multipoint videoconferencing can use Scalable Video Coding and the so-called Scalable Video Communication Server (SVCS) architecture described in part in commonly assigned U.S. Pat. No. 7,593,032, incorporated herein by reference in its entirety. This solution can allow telepresence-quality multi-point video communication even from regular PC and Mac desktops. It thus can be suitable for use in a desktop-based IM system, as well as systems based on hand-held devices such as iPads and iPhones. Commonly assigned International Patent Application No. PCT/US12/041695, “Systems and methods for improved interactive content sharing in video communication systems,” as well as commonly assigned Provisional U.S. Patent Application Ser. No. 61/699,465, “System and method for agent-based integration of instant messaging and video communication systems,” both incorporated herein by reference in their entirety, describe different mechanisms for integrating IM and videoconferencing systems.
Regardless if audio or video is used, the interactive communication nature of even text-based IM systems can make them an attractive feature of other types of applications, e.g., where Interactive Services (IS) can be deployed as web browser-based applications, such as Gmail or Facebook. In both cases, the user can be provided with the ability to check if one of his or her friends is “online” and initiate a chat session through which the users can exchange text messages in real-time. In these examples the IM functionality can be incorporated as part of the main IS application.
Browser-based applications can use, among other technologies, JavaScript and AJAX (Asynchronous JavaScript and XML) to deliver sophisticated application functionality without requiring the installation of an application native to the operating system used by the host computer. Examples of browser-based IS applications can include shopping applications or sites such as Amazon, trading sites such as E*TRADE, social media sites such as Facebook and Twitter, etc. Certain IM programs themselves can now be implemented simply as web-based applications.
As with IM functionality, the improvement in quality and flexibility of deployment afforded by audiovisual communication systems that use scalable video coding and the SVCS architecture can permit the incorporation of audiovisual communication capabilities in IS applications. These audiovisual communication capabilities can be offered alongside IM capabilities, or by themselves.
When using IM functionality, users can create sessions by selecting the user or users they wish to be connected to. The establishment of an audiovisual communication session can then use the list of the users that participate in a chat in order to identify the users that will participate in the audio or video conference. This is an example of “context” as used in the present application. In this instance, the context in an IM application can be the association of the participating users in an IM group chat. In other types of applications the association can use different attributes. For example, in an online shopping application, the context can be the fact that users are viewing the same item (e.g., a book). In this case the system can offer to initiate an audio or videoconference with other users viewing that same book, or similar books. This capability can be offered alongside, or without IM functionality. It can also be offered just with text-based IM functionality. In other words, the IM session is not initiated manually by the user but by using the current application context.
A further example lies in a device such as the commercially available Amazon Kindle Fire. The system can create ad-hoc groups around a specific book, part of a book, and/or reading interest, which can be used as part of the reading experience and also to increase the involvement of the readers during the reading experience. The IS system can also offer the option to “talk to people who finished this chapter,” through which the user can be connected in an IM chat or videoconferencing session with users who fit that profile and are willing to participate in such ad-hoc meetings. In addition to improving the experience around a book (or any product, for that matter), such capability can lead to an increase in the amount of books purchased by introducing “click to buy” directly into the conferencing context. For example a user can indicate that a book had a particularly effective ending, which reminded him or her of another book that he or she just read. The user can actually introduce a link to that book in the conferencing session so that other users can click on it and purchase it or add it to their lists for later review.
Similar experiences can be created around other types of products being purchased or used, and can also include user-provided support. A user, for example, can indicate how a particular assembly is performed. The creation of topic-specific, or context-specific, user groups that allow people who share the same interest to communicate with each other in an ad-hoc way, without the need to exchange addresses or other information, can create immediately a very powerful social network that can be useful to the end users and not require the migration of user friend lists from other social networks.
It can thus be desirable to design systems and methods that can utilize different types of context in order to create and manage audiovisual communication sessions in IS applications. It can also be desirable to offer one-click integration of products purchased or viewed into a communication session, for example, a videoconferencing session or even a plain text-based IM session.
Techniques are disclosed herein for initiating an audio or video conference between an initiating user and one or more selected users in a system. User selection can be performed using context, e.g., a set of attributes characterizing the individual users where the set of attributes can have common or related values.
Further features, the nature, and various advantages of the disclosed subject matter will be more apparent from the following detailed description and the accompanying drawings in which:
The Figures are incorporated and constitute part of this disclosure. Throughout the Figures the same reference numerals and characters, unless otherwise stated, are used to denote like features, elements, components or portions of the illustrated embodiments. Moreover, while the disclosed subject matter will now be described in detail with reference to the Figures, it is done so in connection with the illustrative embodiments.
The IS Client 110 can be standalone software installed and running on a user's desktop or laptop computer or a portable device such as the Apple iPad or the Amazon Kindle. It can also be a web page that is loaded from the IS Server 120 (or another server) onto a user's browser running on any such device. In the latter case, the connections 115 can be within the IS Server 120. Additionally, the IS Client 110 can have a graphical user interface to interact with the user.
In an IS system such as the one shown in
Although
The Portal 230 and Core 240 can communicate through a connection 258. Although the VC Server is shown as a single unit, the Portal 230 and Core 240 can be hosted on distinct systems that may even be physically in different locations. In that case, for example, the connection 258 can be over the network, rather than being an internal connection within a single system. Additionally or alternatively, one or both of the Portal 230 and Core 240 can be integrated with the IS Server 120 of
In an embodiment of the disclosed subject matter, the VC Server Core can be a Scalable Video Communication Server (SVCS), as described in part in U.S. Pat. No. 7,593,032, previously cited. Alternative VC Server Core architectures can include the traditional switching Multipoint Control Unit (MCU) or a transcoding MCU.
The VC Plug-in module 480 can also communicate with the VC Client module 490 through the interface 485. In an embodiment of the disclosed subject matter, the interface 485 can be HTTP-based.
The IS Client module 450 can communicate with the IS server via the connection 415, whereas the VC client module 490 can communicate with the VC Server via the connection 418. The VC Server interface through the connection 418 in an embodiment of the disclosed subject matter can be SOAP-based.
Although the VC Client module 490 is depicted as part of the Client 400, it is noted that this can be only a logical association. Indeed, the VC Client module 490 can be in the same computer system as the IM Client 450 and VC Plug-in 480, or it can be in a different system, possibly even at a different physical location. Indeed, the fact that the VC Client module 490 can communicate with the rest of the system through connections 485 and 418 can make the actual physical location of the VC Client module 490 irrelevant. A benefit of this architecture can be that the VC Client module 490 can be a standalone videoconferencing system such as the commercially available VidyoRoom series of systems. In this case the videoconference can run on a separate computer system than the IM Client 450, but the process of initiating the videoconference from the IS system, as disclosed below, can be similar.
As an example of an IS application scenario, it can be assumed that a user is shopping for a book or already bought a book and has indicated that he or she is willing to participate in ad-hoc conferencing sessions. The IS system can use a number of criteria as context in order to decide which users can be appropriate to be included in an ad-hoc session. Such criteria can include:
The last one can be relevant for IS applications that include a book reading component.
Each of these criteria, as well as others, can be used to offer a single-click “talk to relevant users” button that can enable users with common interests to communicate with each other. Additional filtering of the context can be performed by adding qualifications such as:
The design is not limited to IS applications related to books. Other IS applications, not only in e-commerce but other application areas as well, can use the same technique. The criteria can be generalized for different IS applications, where the context can be any characterization of the phase or stage of interaction that the user can be in within the particular system.
When the user presses the “talk to other users” videoconferencing button in 518, the IS system can request to obtain a list of relevant users B1 through Bn based on the current context. If the initiating user is already in a videoconferencing session, the IS client can invite the users that are not already in the session to the ongoing session in 528. If the initiating user is not already in a videoconferencing session, then a conference session can be first started in 526.
If any of the invited users B1 through Bn is not available, a notice can be posted by the IS application to the user's home page to indicate that a conferencing session is ongoing, and it can also include a link that, when accessed, can take the user in the videoconferencing session. The system then can return to the input waiting state of 516.
There are, of course, obvious variations to the process described above. For example, instead of obtaining the list of names in 520 on the IS Client the list can be generated and used directly at the IS Server alter a request is made by the IS Client. In addition, the initialization of the VC plug-in and/or the VC Client can be performed at different times. For example, they can be initialized after user A has pressed the videoconferencing button, between the 518 and 520.
After the videoconferencing session has been initiated, the participating users can continue using the IS Client and can interact with the IS system. The association that can be created by the fact that users are within the same videoconferencing session can now be used by the IS service to facilitate further content sharing. For example, any of the users can refer to another product on the IS catalog. That user can navigate to it, and then can click on a button so that that the product can be entered into special lists in all participating users (similar to “wish list” offered by some systems, there can be a “session list”). A link to the product also can be inserted in the common chat window, if one is available in the particular communication modality.
The IS service can offer a volume discount if all participating users purchase a particular item. That can help in business models such as the one offered by Groupon, where a discount offer can be executed only if a minimum number of users participate.
In general, the association can be used for any content sharing between the participating users. This can be used by the IS system as means of establishing social network connections between users that would otherwise not interact with each other.
The methods for initiating and managing videoconferences described herein can be implemented as computer software using computer-readable instructions and physically stored in computer-readable medium. The computer software can be encoded using any suitable computer languages. The software instructions can be executed on various types of computers. For example,
The components shown in
Computer system 600 can include a display 632, one or more input devices 633 (e.g., keypad, keyboard, mouse, stylus, etc.), one or more output devices 634 (e.g., speaker), one or more storage devices 635, and various types of storage medium 636.
The system bus 640 can link a wide variety of subsystems. As understood by those skilled in the art, a “bus” refers to a plurality of digital signal lines serving a common function. The system bus 640 can be any of several types of bus structures including a memory bus, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example and not limitation, such architectures can include the Industry Standard Architecture (ISA) bus, Enhanced ISA (EISA) bus, the Micro Channel Architecture (MCA) bus, the Video Electronics Standards Association local (VLB) bus, the Peripheral Component Interconnect (PCI) bus, the PCI-Express bus (PCI-X), and the Accelerated Graphics Port (AGP) bus.
Processor(s) 601 (also referred to as central processing units, or CPUs) optionally can contain a cache memory unit 602 for temporary local storage of instructions, data, or computer addresses. Processor(s) 601 can be coupled to storage devices including memory 603. Memory 603 can include random access memory (RAM) 604 and read-only memory (ROM) 605. As is well known in the art, ROM 605 can act to transfer data and instructions uni-directionally to the processor(s) 601, and RAM 604 can be used typically to transfer data and instructions in a bi-directional manner. Both of these types of memories can include any suitable of the computer-readable media described below.
A fixed storage 608 also can be coupled bi-directionally to the processor(s) 601, optionally via a storage control unit 607. It can provide additional data storage capacity and can also include any of the computer-readable media described below. Storage 608 can be used to store operating system 609, EXECs 610, application programs 612, data 611 and the like and can be typically a secondary storage medium (such as a hard disk) that can be slower than primary storage. It should be appreciated that the information retained within storage 608, can, in appropriate cases, be incorporated in standard fashion as virtual memory in memory 603.
Processor(s) 601 also can be coupled to a variety of interfaces such as graphics control 621, video interface 622, input interface 623, output interface 624, storage interface 625, and these interfaces in turn can be coupled to the appropriate devices. In general, an input/output device can be any of: video displays, track balls, mice, keyboards, microphones, touch-sensitive displays, transducer card readers, magnetic or paper tape readers, tablets, styluses, voice or handwriting recognizers, biometrics readers, or other computers. Processor(s) 601 can be coupled to another computer or telecommunications network 630 using network interface 620. With such a network interface 620, it can be contemplated that the CPU 601 can receive information from the network 630, or can output information to the network in the course of performing the above-described method. Furthermore, method embodiments of the present disclosure can execute solely upon CPU 601 or can execute over a network 630 such as the Internet in conjunction with a remote CPU 601 that can share a portion of the processing.
According to various embodiments, when in a network environment, e.g., when computer system 600 is connected to network 630, computer system 600 can communicate with other devices that are also connected to network 630. Communications can be sent to and from computer system 600 via network interface 620. For example, incoming communications, such as a request or a response from another device, in the form of one or more packets, can be received from network 630 at network interface 620 and stored in selected sections in memory 603 for processing. Outgoing communications, such as a request or a response to another device, again in the form of one or more packets, can also be stored in selected sections in memory 603 and sent out to network 630 at network interface 620. Processor(s) 601 can access these communication packets stored in memory 603 for processing.
In addition, embodiments of the present disclosure further relate to computer storage products with a computer-readable medium that have computer code thereon for performing various computer-implemented operations. The media and computer code can be those specially designed and constructed for the purposes of the present disclosure, or they can be of the kind well known and available to those having skill in the computer software arts. Examples of computer-readable media can include, but are not limited to: magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs and holographic devices; magneto-optical media such as optical disks; and hardware devices that are specially configured to store and execute program code, such as application-specific integrated circuits (ASICs), programmable logic devices (PLDs) and ROM and RAM devices. Examples of computer code can include machine code, such as produced by a compiler, and files containing higher-level code that are executed by a computer using an interpreter. Those skilled in the art should also understand that term “computer readable media” as used in connection with the presently disclosed subject matter does not encompass transmission media, carrier waves, or other transitory signals.
As an example and not by way of limitation, the computer system having architecture 600 can provide functionality as a result of processor(s) 601 executing software embodied in one or more tangible, computer-readable media, such as memory 603. The software implementing various embodiments of the present disclosure can be stored in memory 603 and executed by processor(s) 601. A computer-readable medium can include one or more memory devices, according to particular needs. Memory 603 can read the software from one or more other computer-readable media, such as mass storage device(s) 635 or from one or more other sources via communication interface. The software can cause processor(s) 601 to execute particular processes or particular parts of particular processes described herein, including defining data structures stored in memory 603 and modifying such data structures according to the processes defined by the software. In addition or as an alternative, the computer system can provide functionality as a result of logic hardwired or otherwise embodied in a circuit, which can operate in place of or together with software to execute particular processes or particular parts of particular processes described herein. Reference to software can encompass logic, and vice versa, where appropriate. Reference to a computer-readable media can encompass a circuit (such as an integrated circuit (IC)) storing software for execution, a circuit embodying logic for execution, or both, where appropriate. The present disclosure encompasses any suitable combination of hardware and software.
While this disclosure has described several exemplary embodiments, there are alterations, permutations, and various substitute equivalents, which fall within the scope of the disclosure. It will thus be appreciated that those skilled in the art will be able to devise numerous systems and methods which, although not explicitly shown or described herein, embody the principles of the disclosure and are thus within the spirit and scope thereof.
This application is a continuation of PCT/US13/074993, filed Dec. 13, 2013, and which claims priority to U.S. Provisional Application No. 61/736,911, filed on Dec. 13, 2012, the disclosures of which are incorporated herein by reference in their entireties.
Number | Date | Country | |
---|---|---|---|
61736911 | Dec 2012 | US |
Number | Date | Country | |
---|---|---|---|
Parent | PCT/US2013/074993 | Dec 2013 | US |
Child | 14639772 | US |