US20080091778A1 - Presenter view control system and method - Google Patents

Presenter view control system and method Download PDF

Info

Publication number
US20080091778A1
US20080091778A1 US11/549,058 US54905806A US2008091778A1 US 20080091778 A1 US20080091778 A1 US 20080091778A1 US 54905806 A US54905806 A US 54905806A US 2008091778 A1 US2008091778 A1 US 2008091778A1
Authority
US
United States
Prior art keywords
conference
layout
component
presenter
user interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US11/549,058
Other versions
US7634540B2 (en
Inventor
Victor Ivashin
Jamie C. Rasmussen
Steve Nelson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to US11/549,058 priority Critical patent/US7634540B2/en
Assigned to EPSON RESEARCH AND DEVELOPMENT, INC. reassignment EPSON RESEARCH AND DEVELOPMENT, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: IVASHIN, VICTOR, NELSON, STEVE, RASMUSSEN, JAMIE C.
Assigned to SEIKO EPSON CORPORATION reassignment SEIKO EPSON CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: EPSON RESEARCH AND DEVELOPMENT, INC.
Publication of US20080091778A1 publication Critical patent/US20080091778A1/en
Application granted granted Critical
Publication of US7634540B2 publication Critical patent/US7634540B2/en
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Definitions

  • Participants of electronic conferencing systems exchange audio, video and other media though interaction with various device interfaces. These devices may employ simple interfaces for handling a small set of media types, or may offer complex interfaces for simultaneous display of large sets of media types.
  • the conferencing systems have been challenged to exchange an ever wider range of media among meeting participants. Core media signals like audio and video are typically supported naturally by these systems. However, the exchange of documents, images, shared web-pages or desktop views, movies, alternate video streams, and other media typically demand more extensive user interfaces to allow meeting participants to manage the content and visual appearance.
  • the primary activity of its participants may change.
  • the initial focus may be viewing a set of slides shared by one participant.
  • the focus may switch to video group discussion or a question and answer session.
  • Whiteboard drawing interaction may become necessary to further the meeting.
  • group discussion becomes the focus of a meeting, a much larger amount of screen space may be reserved for video of the speaking participants, and a greater portion of the available bandwidth can be used for the video data stream.
  • User interfaces may be developed to accommodate a variety of activities in a teleconference. Separate windows can show conference video, display documents, or even provide shared drawing surfaces. Some interfaces host a set of tools that the user can manipulate to manually reconfigure the application for each conference purpose. However, such manual modification of a workspace layout, bandwidth allocation, and other configurable parameters distracts from the focus of the meeting as it becomes tedious and time-consuming. The result is an interrupted flow of meeting communication.
  • Some existing teleconference systems are therefore built to limit the types of media supported in an effort to reduce the media management complexity. They might provide simple fixed interfaces for certain media types or just limit participant interaction with the media to reduce interface management duties and keep distractions away from the flow of the communication.
  • Other systems require that primary participants wishing to present media learn a complex set of new interfaces to notify listening participants of a particular media they should focus on.
  • Other systems require an allocated meeting controller, sometimes referred to as a “moderator,” whose role is to press interface buttons that direct the media and discussion on behalf of a presenter participant.
  • the only method is to communicate with the listening participants verbally or otherwise to instruct the participating members how to manipulate their teleconference device interfaces directly for display of the media desiring presentation. In all cases, the goal is to get all attending members “on the same page” so the meeting communication can continue.
  • a teleconferencing interface that allows a wide range of media support, yet provides simplified and automatic propagation of a presenter's chosen view to all attending participants in a meeting so that his conference media of interest is identified clearly as the meeting focus.
  • This system also needs to be flexible enough to not unduly restrict a participant's use of the system while still maintaining control of the meeting flow by the presenter.
  • the present invention fills these needs by providing a presenter view control system and method that naturally enhances the flow and control of a meeting by a presenter in a teleconferencing system.
  • a method for providing partial layout synchronization in a teleconferencing system is provided.
  • a conference client application enters a presenter participant mode and accepts a layout modification from a local user, e.g., by manipulating user-interface elements of the conference client.
  • the layout modification alters a selection or arrangement of conference components in a user interface.
  • the conference client determines whether the layout modification is a significant layout modification or an insignificant layout modification and transmits a command to a conference server containing a representation of the layout modification only when the layout modification is a significant layout modification.
  • a teleconferencing system for providing partial layout synchronization.
  • the system includes a conference server comprising a general purpose computer system and a plurality of conference clients.
  • Each conference client communicates with the conference server over a network connection, the conference server thereby effectuating communication between and among the plurality of conference clients.
  • the conference server is configured to designate one conference participant attending a teleconference using the teleconferencing system as a presenter-participant.
  • the presenter-participant being a local user of one conference client of the plurality of conference clients.
  • the one conference client is configured to enter a presenter mode in response to the designation.
  • the one conference client is further configured to accept a layout modification from the local user, the layout modification altering a selection or arrangement of conference components in a user interface.
  • the conference client when in the presenter mode, is further configured to determine whether the layout modification is a significant layout modification or an insignificant layout modification, and to transmit a command to the conference server containing a representation of the layout modification only when the layout modification is a significant layout modification.
  • the conference server is configured to broadcast the command to another of the plurality of conference clients.
  • a method for configuring a user interface includes receiving a representation of a layout for the user interface and constructing the user interface in a display area from the representation.
  • the representation of the layout selection is contained in a string, the string defining a cell for each displayed component.
  • Each cell being defined in the string as a left, right, top, or bottom portion of a larger region in which the cell is contained, the cell further occupying a defined fraction of space of the larger region.
  • FIG. 1 is a schematic diagram presenting an overview of an exemplary teleconferencing system.
  • FIG. 2 shows an exemplary multipurpose computer system that can be used with the teleconferencing of FIG. 1 .
  • FIG. 3 shows an exemplary conference application interface for presenting video, shared documents, and other information to a conference participant.
  • FIGS. 4 , 5 A, 5 B, and 5 C illustrate an exemplary mechanism by which a video display area may be divided to present a plurality of cells as exemplified in FIG. 3 .
  • FIG. 6 shows a binary tree that contains sufficient information to define the layout of FIG. 4 .
  • FIGS. 7A , 7 B, and 7 C show an exemplary control bar in a first, second, and third configuration, selectable based on the status of the local user as a presenter participant and whether another participant is designated as a presenter.
  • FIG. 8 shows a swim-lane diagram that depicts exemplary transactions between a presenter participant, a non-presenter participant, and a conference server.
  • FIG. 9 shows a flowchart representing an exemplary procedure carried out by the server to implement a partial layout synchronization.
  • FIG. 10 shows flowchart illustrating an exemplary procedure for a conference client to perform when acting as a presenter participant.
  • FIG. 11 shows a flowchart depicting an exemplary procedure for a non-presenter client to perform during the course of a conference.
  • FIG. 1 is a schematic diagram presenting an overview of an exemplary teleconferencing system 100 .
  • Teleconferencing system 100 includes a conference server 102 and a plurality of conference clients 104 a - 104 e.
  • conference server 102 is a general purpose computer system as described in more detail below with reference to FIG. 2 .
  • Each network connection 105 a - 105 e may be a local area network (LAN) connection or a wide area network (WAN) connection, such as an Internet connection.
  • Storage 106 may be connected to a local bus of server 102 , or may be accessible over a network connection as in network attached storage (NAS) systems or other external storage systems.
  • Conference server 102 runs teleconference server software which is stored in the memory system and runs on the central processing unit (CPU).
  • CPU central processing unit
  • conference server 102 may store meeting media and related persistent meeting information while facilitating media exchange among all participants.
  • conference server 102 is a dedicated server that primarily runs the teleconference server software to implement teleconferences.
  • conference server 102 is not dedicated to conference serving, but can be used to run other software for performing other tasks besides running the teleconference server software.
  • Each conference client 104 a - 104 e may also be a general purpose computer as described in more detail below with reference to FIG. 2 .
  • Each conference client 104 a - 104 e executes teleconference client software to place each conference participant using one of conference clients 104 a - 104 e in communication with the other conference participants.
  • teleconferencing system 100 includes five conference clients 104 a - 104 e, any number of conference clients may be connected to server 102 , although the number of conference clients may be limited by the processing power and bandwidth available to server 102 .
  • each conference client 104 a - 104 e establishes a network connection 105 a - 105 e to conference server 102 .
  • each conference client is able to transmit video and audio streams, along with other data being shared by the participant using that conference client.
  • the video and audio streams are encoded by the teleconference client software, packetized into network packets, and transmitted to the server 102 along with other media being shared over the corresponding network connection.
  • Conference server 102 receives the audio streams from each conference client and mixes them to form a mixed audio stream.
  • the conference server receives the video streams from each conference client, decodes the video streams, generates individual composite video streams according to the preferences for each conference client, and encodes and compresses the individual composite video streams.
  • the compositing process may require resizing of videos received from the conference clients.
  • Conference server 102 then transmits the individual composite video streams along with the mixed audio stream to each conference client.
  • control commands and shared media flow through conference server 102 so that newly arriving conference participants can easily obtain the state of the conference session and any media being shared.
  • each conference client receives, from the conference server, a mixed audio stream containing audio information from other conference clients and a composite video stream according to the preferences and video layout selections made by the individual conference client.
  • the conference client then decodes the mixed audio stream and generates audible sound according to the mixed audio stream allowing the conference participant to hear the voices of the other participants.
  • the conference client decodes the personalized composite video signal and displays the video on the local display. In this way, the local participant can see any number of selected conference participants in a chosen layout, e.g., with video signal from a primary speaker occupying a majority of the video image size, with smaller video image space given to other speakers, as selected by the local participant.
  • a shared whiteboard space may be provided allowing participants to contribute and share ideas in a pictorial manner by drawing onto the whiteboard using a mouse or other pointing device.
  • an instant message window allowing participants to send each other instant messages without disrupting the teleconference proceedings.
  • a shared desktop or document area wherein participants can share their desktop to share content provided by a software application stored locally on the conference client.
  • any meeting participant can request-identification as a presenter participant. Only one presenter participant can be identified at a time. While identified as the presenter participant, he or she may easily control the selection and layout of conference components of the teleconference as presented to other meeting members, e.g., for the purpose of targeting focus on a particular media set of interest as determined by that presenter participant.
  • the presenter participant simply utilizes the existing interface for local user interface layout modification, as the interface to select and configure a local user interface layout does not change when the user is designated as the presenter, except for a visual notification of presenter status.
  • Other participants are free to engage with the targeted view, or they may utilize their user interface for other purposes and can easily return to the preferred presenter view as desired.
  • procedures are provided for defining or changing a local user interface layout, propagating a layout selection or partial layout change, and operating associated user interface presenter controls.
  • FIG. 2 shows an exemplary multipurpose computer system 110 that can be used with the teleconferencing system 100 described above with reference to FIG. 1 .
  • Computer system 110 includes a plurality of components, some of which may not be required depending on the implementation and whether computer system 110 is being used as a server or a client.
  • computer system 110 includes a central processing unit (CPU) 112 which may include one or more processors each of which may include one or more processing cores.
  • CPU 112 may also include various other components known to those skilled in the art such as one or more cache memories and data handling logic.
  • CPU 112 is in communication with I/O ports 114 and memory 116 over bus 118 .
  • Memory 116 stores data (not shown), operating system (OS) 120 and application software 112 .
  • Application software 112 may include conference server software and/or conference client software. When a conference server software is executed on computer system 110 , computer system 110 may be referred to as a “conference server” and when conference client software is executed on computer system 110 , computer system 110 may be referred to as a “conference client.”
  • memory 116 may include multiple memories such as primary and secondary memories.
  • Primary memory may be local random access memory and secondary memory may include one or more mass storage devices, such as a hard disk drive.
  • Secondary memory may include network attached storage (NAS) wherein data is accessible over a network connection.
  • NAS network attached storage
  • I/O ports 114 permit computer system 110 to connect to an external network as well as place computer system 110 in communication with a local user, also referred to herein as a conference participant, using user interface 124 .
  • user interface 124 includes a keyboard, mouse, display, and audio/video (A/V) monitoring devices such as a video camera and microphone.
  • A/V audio/video
  • the keyboard and mouse provides a means allowing the user to provide input into the computer system, e.g., to give commands by manipulating user interface objects represented on the display.
  • Other devices such as speech recognition software, touch sensitive screens or tablets, handwriting recognition, etc., that provides this functionality are also contemplated.
  • Network interface 126 provides a communication path between computer system 110 and a local area network.
  • network interface 126 comprises a network interface card (NIC), and allows computer system 110 to communicate via a local area network to a wide area network such as the Internet, via a gateway attached to the local area network.
  • NIC network interface card
  • Any number of network interfaces may be connected to computer system 110 and each network interface may be capable of maintaining a plurality of network connections.
  • FIG. 3 shows an exemplary conference application interface 150 for presenting video, shared documents, and other information to the conference participant.
  • Conference application interface 150 includes a plurality of components 152 - 166 , each covering a rectangular region of conference application interface 150 .
  • components 152 - 166 are not permitted to overlap each other as in traditional windowing systems.
  • Each component, or a set of components, is optionally selected by the user to be displayed and can be relocated and resized as described, for example, in related U.S. patent applications Ser. Nos. 10/192,130 and 10/192,080, which are incorporated herein by reference.
  • Each component presents a view and/or interface relating to some aspect of the conference data.
  • component 152 is a document view that in this example is showing some slides, e.g., from a slide presentation software such as Microsoft® PowerPoint®; component 154 is displaying a conference log; component 156 provides a device interface for sharing media from attached devices; component 158 displays a composite video showing video streams from other participants; component 160 provides an interface to select local files for sharing; component 162 provides a list of files being shared by participants; component 164 shows an additional document, e.g., a word processing document; and component 166 presents a chat window for sending instant messages to other participants.
  • a control bar 170 provides access to commonly used functions by a single mouse click, as will be described in further detail below with reference to FIGS. 7A-7C .
  • FIGS. 4-5C illustrate an exemplary mechanism by which a video display area may be divided to present a plurality of cells as exemplified in FIG. 3 .
  • FIG. 4 shows a display area 180 divided into four cells A, B, C, and D. Each cell may be assigned to a selected component.
  • the layout of the cells is determined based on recursively dividing a resizable application window region of the screen. The divisions are logically made using a percentage of the available space within the window, rather than an absolute measure such as pixels or inches. This method accommodates variable window sizes and screen resolutions which may vary from one conference client to another. As the application window size changes, the sizes of the components assigned to each cell within the application window correspondingly changes, and the layout representation remains unchanged.
  • FIG. 4 shows an example view layout that can be described by (1) dividing the available rectangular vertically, so that the left region is 70% of the rectangle's available width and the right region is 30% of the available width as shown in FIG. 5A ; (2) dividing the right region from the previous step horizontally, so that the top region is 30% of the rectangle's available height and the bottom region is 70% of the available height as shown in FIG. 5B ; and (3) dividing the bottom region from the previous step horizontally, so that the top region is 60% of that rectangle's available height and the bottom region is 40% of the available height as shown in FIG. 5C .
  • the layout is defined by recording, for each division, the orientation of the division, i.e., either vertical or horizontal, and the percentage of available space reserved for the left or top subdivision.
  • FIG. 6 shows a binary tree 190 that contains sufficient information to define the layout of FIG. 4 .
  • a leaf node represents a layout cell
  • a non-leaf node represents a division between cells.
  • other data structures could be used to represent the cell layout, such as an N-ary tree. Since this representation is immune to global scale changes, the entire interface can be resized to fit any display screen or windowed space of a display screen.
  • the layout information contained in binary tree 190 can be converted into a string value according to a predefined syntax, and convert such a well-formed string value back into a binary tree representation.
  • a cell may be represented by taking the identifier of the component it contains, and surrounding it with square brackets.
  • component B is represented by “[B]”.
  • a division may be represented by a matching pair of parentheses surrounding four pieces of information: a character representing vertical or horizontal division, e.g., “
  • Table 1 shows an exemplary construction of such a string. In this construction, the tags ⁇ left> and ⁇ right> are used as place-holders for regions that are to be assigned a component such as [A] or [B], or else subdivided.
  • the layout in FIG. 3 could be represented as the string value, “(
  • This syntax for a string representation of a given layout is relatively compact and easy for a computer program to parse. For example, since parentheses are matched, the end of a layout string can easily be determined from its starting position within a larger string.
  • the present invention is not limited to a specific syntax.
  • Having multiple representations of the layout information means that a particular layout manipulation can be implemented as an operation on any representation, and converting between representations as needed. For example, one can select a representation that is easy and efficient to send across a computer network, such as the string representation described above, or a representation that can be easily and quickly manipulated in memory, such as the binary tree representation described above with reference to FIG. 6 .
  • FIG. 7A shows an exemplary control bar 170 A in a first configuration that may be displayed when the conference client is in a no-presenter mode, which is entered into when no participant is currently designated to be the presenter participant.
  • “Start Presenting” button 172 is provided to allow the local participant to request presenter participant status.
  • Layout selection buttons 173 allow the local user to select a predefined layout with a single mouse click. Each layout may focus on a specific primary component of focus and reduce the size and required bandwidth of other components.
  • layout selection buttons 173 may include an application sharing layout button, a document sharing button, and a video button, to place the main focus on a shared application, a document, or the video, respectively.
  • Layout selection buttons 173 may include any number of additional custom layout selection buttons 174 (only one shown) to provide access to one or more user-defined layouts.
  • a request to present is transmitted to conference server 102 ( FIG. 1 ).
  • the conference server might grant presenter status to the participant or reject the request.
  • rejection occurs when multiple requests are received from different participants.
  • the conference server would assess the request priority or order of the multiple requests and grant one participant the presenter status while rejecting the others. Rejection, of course, may also occur if the meeting does not allow presenters, or the requesting participant is not allowed to become a presenter due to server configurable user access rights, or other reasons.
  • FIG. 7B shows an exemplary control bar configuration 170 B in presenter mode that is displayed to the presenter participant
  • FIG. 7C shows an exemplary control bar configuration 170 C in a non-presenter mode that is displayed to non-presenter participants when one of the other participants has presenter status.
  • the interface changes so that the “Start Presenting” button is unavailable, either replaced with another button or graphically dimmed or otherwise modified to indicate that it is unavailable.
  • a “Stop Presenting” button 175 is made available to request that presenter status be relinquished by the local participant.
  • some visual cue such as a brightly colored bar 176 on each button of control bar 170 B, or other graphical indicator to inform the user that they are now a presenter participant and the conference client is in presenter mode.
  • a “Return to Presenter” button 178 is made available for purposes as will be described in more detail hereinafter, and in particular with reference to FIG. 11 .
  • a bidirectional connection channel exists between each conference client 104 a - 104 e and the conference server 102 .
  • data sent over the channel is structured into individual commands. Commands are uniquely identified and the data that will be packaged in a command is predefined and known to both the client and the server.
  • the Server has authenticated the sender of each command, so it knows which participant a particular command came from, even if that information is not repeated inside the command. For efficiency, a numeric identifier is used for “on-the-wire” command encoding, but the identifier is also aliased to a string representation for clarity, which will be used for the purposes of this description. Commands can be propagated in various ways.
  • a command might be sent only from the server to one client, or from a client to the server, or a command may be broadcast from the server to all clients, or to all clients except the originating client.
  • the following exemplary commands may be used to communicate presenter status information and layout information:
  • CmdPresenterChangeReq(partID) This command is sent to the conference server by a participant identified by partID as a request to obtain presenter status. By setting the partID field to “ ⁇ 1” this command can also be sent by a participant wishing to relinquish presenter status.
  • the server receives this command, the server changes the active presenter as appropriate and then sends a CmdPresenterChangeAck reply to appropriate participant(s).
  • CmdPresenterChangeAck(returnCode, partID) This command is sent in reply to a CmdPresenterStatusReq command.
  • the returnCode parameter is used to identify whether the request is accepted or denied. For example, a returnCode of “0” may indicate that presenter partID is active, a returnCode of “1” may indicate that no presenter is active, a returnCode of “2” may indicate that the request is denied because a presenter is already active, and a return code of “3” could indicate that the request is denied because the requester cannot be a presenter, e.g., because of a restriction made by the conference owner.
  • CmdPresenterChangeAck may also be sent to newly arrived participants to identify whether a presenter is active, and if so, who. If a presenter leaves a meeting, the presenter status changes to none and all remaining participants receive this command.
  • the conference owner which could be the person who created the conference or someone designated by the creator, will have presenter status by default, until she leaves the meeting or releases presenter status.
  • the viewId field identifies a particular predefined view as may be selected by the presenter participant.
  • the viewStyle field can specify a specific version of the layout identified by the viewId field. For example, some individuals may prefer to have a primary component on the left side of the screen and secondary components on the right. Thus, a viewStyle can specify, e.g., a left handed or right handed configuration.
  • the string value viewLayout identifies a specific component layout as described above with respect to FIGS. 4-6 .
  • this command is passed from the presenter participant to the conference server, and then to the other participant.
  • the conference server saves the field values and sends the command to newly arriving participants if there is an active presenter-participant.
  • CmdSetWorkspaceCell(componentOrder,attributes) This command is sent by a presenter client to the conference server to be broadcast to all other participants.
  • the field componentOrder presents an ordered comma separated list of layout string identifiers. In one embodiment, the list is tokenized by enclosing them within brackets.
  • the first identifier specifies the primary workspace cell, the second specifies the secondary workspace cell, etc.
  • This command provides a mechanism for partial presenter synchronization, whereby non-presenter clients may be given partial layout modifications that, e.g., affect the primary component without affecting non-primary components in their layout. It is also possible to use this command structure to affect secondary, tertiary, etc., components by specifying them in the componentOrder field.
  • the command CmdSetView always overrides the previous CmdSetWorkspaceCell command, so that if a server receives a CmdSetView command, its cached CmdSetWorkspaceCell command will be cleared.
  • partial synchronization of the workspace layout of all non-presenter participants is enforced.
  • the term, “synchronization” refers to non-presenter view layouts being synchronized or modified to match the presenter's layouts.
  • “Partial synchronization” means that some layout changes made by the presenter are reflected in the non-presenter's workspace while others are not.
  • partial synchronization is enforced because full synchronization is not always desired. For example, presenter participant ⁇ A ⁇ may be talking and giving a slideshow. At the same time, non-presenter participants ⁇ D ⁇ and ⁇ E ⁇ may be using the Chat component between themselves.
  • ⁇ D ⁇ may have missed a remark made by ⁇ A ⁇ and does not want to interrupt everyone by asking that the remark be repeated. Since the presenter is not using the Chat component at that time, she may close it to maximize the screen space for other components. If the layouts are all synchronized, this will unintentionally interrupt the conversation between ⁇ D ⁇ and ⁇ E ⁇ as their Chat components close, and will likely cause confusion.
  • a similar problem occurs when a component user interface varies from user to user. For example, when the Application Sharing component shows a list of applications that can be shared to a sharing participant, but only shows applications actually being shared to the receiving participants. Since changing the application being shared happens relatively infrequently, the participant sharing may want to temporarily enlarge another component in his view, e.g., Video. If the sharing participant is also the presenter participant, this can have the unwanted effect of making everyone else's Application Sharing component too small, and the Video component too large.
  • a CmdSetView is sent to server 102 ( FIG. 1 ).
  • Server 102 stores the most recent copy of that command in persistent storage 106 and forwards the command to all of the non-presenter participants' conference clients.
  • a conference client 104 FIG. 1
  • receives this command it changes to the view specified by the viewId and viewStyle parameters accompanying the command. Since each client knows the layout corresponding to a particular predefined layout selection enumerated into a viewId code and viewStyle parameter, the viewLayout parameter is redundant for non-custom views, and may be omitted.
  • the viewLayout string for the predefined views is nevertheless always sent to simplify processing.
  • the string representation for the workspace layout makes identifying the end of the layout string straightforward, and everything after that can be considered to be a list of attributes.
  • Workspace attributes may include such things as the video size shown or other ancillary information.
  • the presenter participant can modify their workspace in a multitude of ways aside from making selections of pre-defined layouts presented in control bar 170 .
  • the presenter participant can open and close components, swap components, relocate or resize components, etc. Any time one of these operations is about to be performed, the presenter's client determines which component is the primary component, and makes the same calculation at the conclusion of the modification.
  • the determination as to which component is the primary component can be made, for example, by examining the size of the cell it lives in. For example, the largest cell can be deemed to contain the primary component.
  • the primary component is determined based on a position of the layout.
  • the component in the upper left corner is considered to be the primary component.
  • the primary component is determined based on an operation mode or view. For example, if a user selects to provide a full screen view of one of the components, e.g., the video component, with an inset for a document, then the full screen view can be identified as the primary component.
  • the presenter's client sends the server a CmdSetWorkspaceCell command.
  • the server stores the most recent copy of that command in storage 106 and forwards the command to all non-presenter participants' clients.
  • the command includes two fields. The first holds an ordered comma-separated list of layout string component identifiers, for example, “[doc],[video],[chat]”.
  • the second field can be used to specify updates to workspace attributes. For example, a workspace attribute such as “small” “medium” and “large” can be used to specify bandwidth usage.
  • a functionality change can be made in support of an activity (in addition to a user interface change) that may need to be synchronized with the presenter.
  • any specified attributes are applied to the local client. For example, if the command specifies the component in the presenter's primary cell, then that component is swapped into the non-presenter's primary cell. In this way, the presenter can shepherd the focus of other participants to a component of primary importance, while minimizing the interruption to their use of other components in the application.
  • FIG. 8 shows a swim-lane diagram 200 that depicts exemplary transactions between a first participant 104 p, a second participant 104 n, and a conference server 102 .
  • first participant 104 p sends a request to present by sending a CmdPresenterChangeReq command 202 to conference server 102 .
  • each client is assigned a unique positive integer for identification, however, individual string values may also be used.
  • first participant 104 p designates itself by its identifier “1” in the field code transmitted with the command 202 .
  • Conference server 102 responds with a CmdPresenterChangeAck command 204 which is sent to the requesting participant.
  • Command 204 is sent to first participant 104 p to indicate that the request has been granted. In addition, command 204 is sent to all non-presenter participants, including second presenter 104 n, to inform them that first participant 104 p is now a presenter. On receiving CmdPresenterChangeAck command 204 , first participant 104 p enters a presenter mode and second participant 104 n enters a non-presenter mode.
  • first participant 104 p transmits a CmdSetView command 208 along with parameters viewId, viewStyle, and viewLayout as described previously to server 102 automatically when designated as a presenter.
  • This command defines a new layout according to the presenter's layout by providing a viewLayout string as described above with reference to FIGS. 4-6 .
  • Server 102 receives this command and stores the parameters, then transmits the CmdSetView command 210 to all non-presenter participants, such as second participant 104 n, so that the non-presenter participants can synchronize their layouts to the layout selected by first participant 104 p.
  • the CmdSetView command 208 is only sent when first participant 104 p selects a layout command to transform the layout of the interface.
  • the presenter participant may select a pre-defined layout button 173 from control bar 170 ( FIGS. 7A-7C ) causing the CmdSetView command 208 to be transmitted.
  • the CmdSetWorkspaceCell command 212 is transmitted from first participant 104 p when the presenter modifies her layout in a significant way, e.g., such as when the primary component is changed such that a different component is made the new primary component.
  • the determination of which component is the primary component can be based, for example, on the relative sizes or positions of the components.
  • ordering is determined by screen area in a custom view, but is predefined in the predefined views.
  • the components have a predefined ordering which doesn't necessarily correlate to the current size of the component on the screen. It is possible to consider changes to any one of a number of components when determining that a significant change occurred.
  • the system may consider layout cells numbered 1 -N, where N might be hard coded or configurable. If N is equal to 3, then primary, secondary, and tertiary cells are checked for modification. If any of them are changed so that they now hold different components, then a significant change is considered to have occurred.
  • user interface configuration or style may make substantial changes to the user interface configuration or style, e.g., by changing from a windowed mode to a full screen mode, perhaps having a picture-in-picture for a selected component, and these changes may or may not be considered “significant” depending upon the implementation.
  • user interface style changes are not communicated to the server, even if the primary component is substantially modified as a result.
  • the predefined ordering of predefined views may be used to determine which component is presented using the full screen size when entering full screen mode and which component is placed picture-in-picture.
  • the video component may be designated as the secondary component in all of the non-video predefined views, so that it will appear in the picture-in-picture window in the full screen mode, regardless of how large the video is relative to other components in the view in the normal windowed mode.
  • the CmdSetWorkspaceCell command reflects partial modification by defining the changed component and attributes.
  • Server 102 receives this command and stores the string, then transmits the CmdSetWorkspaceCell command 214 to all non-presenter participants, such as second participant 104 n, so that the non-presenter clients can partially modify the layout, e.g., so that the primary component is changed to be the same as the presenter's primary component.
  • first participant 104 p wishes to relinquish presenter status, she sends a CmdPresenterChangeReq command 216 to server 102 with the value, “ ⁇ 1” to indicate a request to relinquish.
  • the server 102 then responds with an acknowledgement CmdPresenterChangeAck command 218 indicating that no presenter is currently designated. This command is transmitted to all participants.
  • FIG. 9 shows a flowchart 250 representing an exemplary procedure carried out by the server to implement a partial layout synchronization.
  • the procedure begins as indicated by start block 252 and enters state 254 wherein no participant has yet been designated a presenter.
  • the owner or creator of the conference, or person designated by the owner or creator of the conference can be automatically designated as the presenter at the start of the conference.
  • a command is broadcast to all participants naming the owner or designated individual as the presenter and the server enters state 260 .
  • the server receives a request to present from participant ⁇ A ⁇ , wherein “ ⁇ A ⁇ ” is an identifier that identifies one of the participants.
  • the server checks to make sure that ⁇ A ⁇ has permission to be a presenter and that there is currently no presenter active (not shown). After making this determination, server designates ⁇ A ⁇ as the current presenter by broadcasting a presenter status change naming participant ⁇ A ⁇ as the presenter in operation 258 . After designating a presenter, the server is in state 260 wherein it waits for communication from a participant.
  • the server receives a new component layout selection from user ⁇ A ⁇ . Since a new component layout command overrides any previous set cell command, the server removes any stored set cell command from storage in operation 264 . In operation 265 , the server stores the new component layout and broadcasts the layout description to all non-presenting participants.
  • the server receives a set cell command from participant ⁇ A ⁇ .
  • This command may issue from participant ⁇ A ⁇ when the presenter participant makes a significant change to ⁇ A ⁇ 's layout.
  • a significant change is one that is conveyed to non-presenter participants. For example, a significant change could be one that changes the focus of the conference.
  • the server stores a copy of the command, and broadcasts the command to all non-presenting participants in operation 268 . The procedure then returns to state 260 .
  • the server receives a new connection.
  • a new connection is received when a participant is added to the conference.
  • the server sends a copy of any stored layout and set cell command in operation 272 .
  • the layout and set cell commands are transmitted to the user who has joined the conference. After the layout and set cell commands are transmitted, the procedure returns to state 260 .
  • the server receives a request from ⁇ A ⁇ to relinquish presenter status.
  • the server removes any stored layout and set cell commands from its storage in operation 276 , and broadcasts the “no presenter” command to all participants in operation 278 .
  • the procedure then returns to state 254 to wait for a new request to present.
  • the conference server sets and frees presenter status, and forwards layout definitions and set cell commands from the designated presenter to the non-presenters to effectuate a partial synchronization of views.
  • FIG. 10 shows flowchart 300 illustrating an exemplary procedure for a conference client to perform when requesting presenter status, acting as a presenter participant, or relinquishing presenter status.
  • the procedure begins as indicated by start block 302 .
  • the conference client is in state 304 wherein the conference client is not designated as the presenter.
  • the conference client accepts a request from the local user to become the presenter for the conference.
  • the conference client transmits a command to the conference server requesting presenter status in operation 308 .
  • this command takes the form of CmdPresenterChangeReq as described above with reference to FIG. 8 .
  • the conference client receives a command from the server setting the local user as the presenter, then the request was granted and the procedure flows to operation 314 .
  • the conference client receives a different command form the server, such as a command setting a different user as the presenter, or a command indicating that no user is the presenter, then the request is not granted and the procedure flows to operation 312 .
  • a command indicating no presenter is active such as command 218 in FIG. 8 , may be received, indicating that the request was denied.
  • the procedure flows back to state 304 .
  • the conference client enters presenter mode and changes the control bar to provide a graphical indication to the local user that he or she is now a presenter participant, and that changes to the user interface layout may be reflected in other participants' displays.
  • the control bar may be modified as illustrated in FIG. 7B with a “start presenting” button replaced with a “stop presenting” button, and highlights 176 added to layout selection buttons 173 to indicate their change in function, i.e., that they control other participant's displays in addition to the display of the local user.
  • the conference client is in state 316 , which is a state that corresponds to being in a presenter mode.
  • the conference client accepts a layout selection from the local user when in state 316 .
  • the user may select a layout selection button 173 of control bar 170 as described above with reference to FIGS. 7A-7C .
  • the layout is changed to correspond to the local user's selection, and the a representation of the selected layout is transmitted to the server as a command in operation 322 .
  • the command is thereafter processed by the server as described above with reference to FIG. 9 .
  • the conference client detects that the local user has modified the layout.
  • the modification can include any change in the arrangement of the conference components in the user interface.
  • a layout modification can include removing a component, adding a component, swapping the positions and sizes of two components, and resizing or relocating a component or group of components.
  • the conference client determines whether the layout modification is a significant layout modification.
  • a significant modification is one that is conveyed to non-presenter participants for partial synchronization.
  • significant modifications will be ones that suggest a change in the focus of the meeting, e.g., from a whiteboard to a shared application.
  • changes that result in a new component becoming the primary component are identified as significant.
  • the local user swaps the primary component with a secondary component, thereby causing the secondary component to become the new primary component.
  • conference client detects a new primary component and identifies that a significant change in the layout has occurred.
  • the conference client sends a layout modification command (also referred to herein as a set cell command) to the server in operation 328 .
  • the server processes the layout modification command as described above with reference to FIG. 9 by passing a copy to the non-presenting clients so that the new primary component can become the focus of the meeting in other non-presenter participants' displays without affecting their layout in any other way.
  • the conference client determines that the local user made an insignificant change to the layout, then the conference client returns to state 316 .
  • An insignificant modification can be characterized as one that is not conveyed to non-presenter participants. For example, if the local user simply brought up a component listing participants and shared documents, e.g., participants component 162 as illustrated in FIG. 3 , or if the local user swapped two secondary components or closed a secondary component, or relocated and/or resized some components without changing the primary component, then no further action is necessary and the conference client returns to state 316 .
  • the conference client accepts a request from the local user to relinquish presenter status. This can occur, for example, when the local user selects the “stop presenting” button 175 in control bar 170 B as shown in FIG. 7B .
  • the conference client Upon receiving this request from the user, the conference client sends a command to the server in operation 342 to relinquishing presenter status. The server returns a command with an acknowledgement.
  • the conference client enters the no-participant mode and reverts the control bar to indicate that no participant has presenter status, e.g., as shown in FIG. 7A .
  • FIG. 11 shows a flowchart 350 depicting an exemplary procedure for a non-presenter client to perform during the course of a conference.
  • the procedure begins as indicated by start block 352 and flows to operation 354 wherein the conference client synchronizes the component layout with the presenter participant. This can occur, for example, when a presenter participant (other than the local user) is designated, or if the local user joins a conference that already has a presenter participant. In either case, the local client will receive a representation of the presenter participant's layout, e.g., a string representation as described above with reference to FIGS. 4-6 , and the local client configures the various components in accordance with that representation.
  • a representation of the presenter participant's layout e.g., a string representation as described above with reference to FIGS. 4-6
  • any layout modifications e.g., CmdSetWorkspaceCell commands
  • the synchronization may be a partial synchronization, since the presenter may have made insignificant layout modifications that were not transmitted to the server, and are therefore not available to the non-presenter clients.
  • the procedure enters state 356 in which the conference client enters non-presenter mode and waits for an action by the local user or communication from the server affecting the layout.
  • the control bar 170 has the “start presenting” button 172 replaced with the “return to presenter” button 178 as shown in FIG. 7C , with the “return to presenter” button disabled (e.g., dimmed) so as to indicate that the current layout matches the presenter's layout. It should therefore be clear that, at state 356 , another user is the presenter, and the local user is a non-presenter.
  • the conference client notices that the local user has modified the layout, e.g., by swapping any two components, closing or opening components, resizing or relocating components, etc.
  • the procedure flows to operation 360 wherein the conference client enables the “return to presenter” button 178 ( FIG. 7C ) on control bar 170 . If the “return to presenter” button is already enabled, then no action is taken. After operation 360 , the conference client returns to state 356 .
  • a set cell command is received from the server.
  • a set cell command is forwarded to non-presenting participants when the presenter makes a significant modification to the layout.
  • a significant modification is one that is forwarded to non-presenting participants.
  • Components not directly affected by the set cell command remain unchanged thereby avoiding any unnecessary disturbance of the non-presenter participant's layout, as the non-presenter participant may be temporarily focused on other activities, such as a document to be shared with the group or a chat with another conference participant, etc.
  • a new presenter layout selection is received from the server.
  • a layout selection includes a representation of the presenter's newly selected layout.
  • the conference client in operation 372 , sets the local layout to conform to the presenter's selected layout configuration. The display then changes to conform to this new component layout. Then, in operation 374 , the “return to presenter” button 178 in toolbar 170 is disabled, thereby indicating that the current layout configuration matches the presenter's layout. The conference client then returns to state 356 .
  • the conference client accepts a command from the local user to return to the presenter's layout. For example, the user may have clicked the “return to presenter” button 178 in control bar 170 ( FIG. 7C ).
  • the conference client in operation 378 , applies the previously received layout and set cell commands to the current layout. The procedure then flows to operation 374 wherein the “return to presenter” button 178 in control bar 170 ( FIG. 7C ) is disabled, e.g., dimmed. Then, the conference client returns to state 356 .
  • the invention can employ various computer-implemented operations involving data stored in computer systems. These operations are those requiring physical manipulation of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared and otherwise manipulated. Further, the manipulations performed are often referred to in terms such as producing, identifying, determining, or comparing.
  • the invention also relates to a device or an apparatus for performing these operations.
  • the apparatus can be specially constructed for the required purpose, or the apparatus can be a general-purpose computer selectively activated or configured by a computer program stored in the computer.
  • various general-purpose machines can be used with computer programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the required operations.
  • the invention can also be embodied as computer readable code on a computer readable medium.
  • the computer readable medium is any data storage device that can store data, which can be thereafter be read by a computer system.
  • the computer readable medium also includes an electromagnetic carrier wave in which the computer code is embodied. Examples of the computer readable medium include hard drives, network attached storage (NAS), read-only memory, random-access memory, CD-ROMs, CD-Rs, CD-RWs, magnetic tapes and other optical and non-optical data storage devices.
  • the computer readable medium can also be distributed over a network-coupled computer system so that the computer readable code is stored and executed in a distributed fashion.
  • Embodiments of the present invention can be processed on a single computer, or using multiple computers or computer components which are interconnected.
  • a computer shall include a standalone computer system having its own processor(s), its own memory, and its own storage, or a distributed computing system, which provides computer resources to a networked terminal.
  • users of a computer system may actually be accessing component parts that are shared among a number of users. The users can therefore access a virtual computer over a network, which will appear to the user as a single computer customized and dedicated for a single user.

Abstract

A method for providing partial layout synchronization in a teleconferencing system is described. In the method, a conference client application enters a presenter participant mode and accepts a layout modification from a local user. The layout modification alters a selection or arrangement of conference components in a user interface. The conference client determines whether the layout modification is a significant layout modification or an insignificant layout modification and transmits a command to a conference server containing a representation of the layout modification only when the layout modification is a significant layout modification.

Description

    CROSS REFERENCE To RELATED APPLICATIONS
  • This application is related to U.S. patent application Ser. No. 10/192,130 filed on Jul. 10, 2002 and entitled “Method and Apparatus for Controllable Conference Content via Back-Channel Video Interface;” U.S. patent application Ser. No. 10/192,080 filed on Jul. 10, 2002 and entitled “Multi-Participant Conference System with Controllable Content Delivery Using a Client Monitor Back-Channel;” U.S. patent application Ser. No. 10/952,053 filed on Sep. 28, 2004 and entitled “Video Conference Choreographer;” U.S. patent application Ser. No. 10/853,698 filed on May 25, 2004 and entitled, “Local Video Loopback Method for a Multi-Participant Conference System Using a Back-Channel Video Interface;” U.S. patent application Ser. No. 11/051,674 filed on Feb. 4, 2005 and entitled “Adaptive Bit-Rate Adjustment of Multimedia Communications Channels Using Transport Control Protocol;” U.S. patent application Ser. No. 11/199,600 filed on Aug. 9, 2005 and entitled “Client-Server Interface to Push Messages to the Client Browser;” and U.S. patent application Ser. No. 11/340,062 filed on Jan. 25, 2006 and entitled “IMX Session Control and Authentication;” all of which are incorporated herein by reference.
  • BACKGROUND
  • Participants of electronic conferencing systems exchange audio, video and other media though interaction with various device interfaces. These devices may employ simple interfaces for handling a small set of media types, or may offer complex interfaces for simultaneous display of large sets of media types. The conferencing systems have been challenged to exchange an ever wider range of media among meeting participants. Core media signals like audio and video are typically supported naturally by these systems. However, the exchange of documents, images, shared web-pages or desktop views, movies, alternate video streams, and other media typically demand more extensive user interfaces to allow meeting participants to manage the content and visual appearance.
  • During the course of an ordinary live conference, the primary activity of its participants may change. For example, the initial focus may be viewing a set of slides shared by one participant. After the slides have been viewed, the focus may switch to video group discussion or a question and answer session. Whiteboard drawing interaction may become necessary to further the meeting. To accommodate this range of interactivity in an online meeting, it is necessary to reallocate system resources when the primary activity or focus of the meeting changes. For example, if the slides are the current focus of the meeting then most screen space can be reserved for their display. Operations that affect slide communication may be enabled. Concurrent video may appear in a smaller region (or not at all), and its frame rate can fall to allow more network resources to transmit slide information among the participants. When group discussion becomes the focus of a meeting, a much larger amount of screen space may be reserved for video of the speaking participants, and a greater portion of the available bandwidth can be used for the video data stream.
  • User interfaces may be developed to accommodate a variety of activities in a teleconference. Separate windows can show conference video, display documents, or even provide shared drawing surfaces. Some interfaces host a set of tools that the user can manipulate to manually reconfigure the application for each conference purpose. However, such manual modification of a workspace layout, bandwidth allocation, and other configurable parameters distracts from the focus of the meeting as it becomes tedious and time-consuming. The result is an interrupted flow of meeting communication.
  • Some existing teleconference systems are therefore built to limit the types of media supported in an effort to reduce the media management complexity. They might provide simple fixed interfaces for certain media types or just limit participant interaction with the media to reduce interface management duties and keep distractions away from the flow of the communication. Other systems require that primary participants wishing to present media learn a complex set of new interfaces to notify listening participants of a particular media they should focus on. Other systems require an allocated meeting controller, sometimes referred to as a “moderator,” whose role is to press interface buttons that direct the media and discussion on behalf of a presenter participant. Sometimes, the only method is to communicate with the listening participants verbally or otherwise to instruct the participating members how to manipulate their teleconference device interfaces directly for display of the media desiring presentation. In all cases, the goal is to get all attending members “on the same page” so the meeting communication can continue.
  • What is required is a teleconferencing interface that allows a wide range of media support, yet provides simplified and automatic propagation of a presenter's chosen view to all attending participants in a meeting so that his conference media of interest is identified clearly as the meeting focus. This system also needs to be flexible enough to not unduly restrict a participant's use of the system while still maintaining control of the meeting flow by the presenter.
  • SUMMARY
  • Broadly speaking, the present invention fills these needs by providing a presenter view control system and method that naturally enhances the flow and control of a meeting by a presenter in a teleconferencing system.
  • It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, or a method. Several inventive embodiments of the present invention are described below.
  • In one embodiment, a method for providing partial layout synchronization in a teleconferencing system is provided. In the method, a conference client application enters a presenter participant mode and accepts a layout modification from a local user, e.g., by manipulating user-interface elements of the conference client. The layout modification alters a selection or arrangement of conference components in a user interface. The conference client determines whether the layout modification is a significant layout modification or an insignificant layout modification and transmits a command to a conference server containing a representation of the layout modification only when the layout modification is a significant layout modification.
  • In another embodiment a teleconferencing system for providing partial layout synchronization is provided. The system includes a conference server comprising a general purpose computer system and a plurality of conference clients. Each conference client communicates with the conference server over a network connection, the conference server thereby effectuating communication between and among the plurality of conference clients. The conference server is configured to designate one conference participant attending a teleconference using the teleconferencing system as a presenter-participant. The presenter-participant being a local user of one conference client of the plurality of conference clients. The one conference client is configured to enter a presenter mode in response to the designation. The one conference client is further configured to accept a layout modification from the local user, the layout modification altering a selection or arrangement of conference components in a user interface. The conference client, when in the presenter mode, is further configured to determine whether the layout modification is a significant layout modification or an insignificant layout modification, and to transmit a command to the conference server containing a representation of the layout modification only when the layout modification is a significant layout modification. The conference server is configured to broadcast the command to another of the plurality of conference clients.
  • In yet another embodiment, a method for configuring a user interface is provided. The method includes receiving a representation of a layout for the user interface and constructing the user interface in a display area from the representation. The representation of the layout selection is contained in a string, the string defining a cell for each displayed component. Each cell being defined in the string as a left, right, top, or bottom portion of a larger region in which the cell is contained, the cell further occupying a defined fraction of space of the larger region.
  • The advantages of the present invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The present invention will be readily understood by the following detailed description in conjunction with the accompanying drawings, and like reference numerals designate like structural elements.
  • FIG. 1 is a schematic diagram presenting an overview of an exemplary teleconferencing system.
  • FIG. 2 shows an exemplary multipurpose computer system that can be used with the teleconferencing of FIG. 1.
  • FIG. 3 shows an exemplary conference application interface for presenting video, shared documents, and other information to a conference participant.
  • FIGS. 4, 5A, 5B, and 5C illustrate an exemplary mechanism by which a video display area may be divided to present a plurality of cells as exemplified in FIG. 3.
  • FIG. 6 shows a binary tree that contains sufficient information to define the layout of FIG. 4.
  • FIGS. 7A, 7B, and 7C show an exemplary control bar in a first, second, and third configuration, selectable based on the status of the local user as a presenter participant and whether another participant is designated as a presenter.
  • FIG. 8 shows a swim-lane diagram that depicts exemplary transactions between a presenter participant, a non-presenter participant, and a conference server.
  • FIG. 9 shows a flowchart representing an exemplary procedure carried out by the server to implement a partial layout synchronization.
  • FIG. 10 shows flowchart illustrating an exemplary procedure for a conference client to perform when acting as a presenter participant.
  • FIG. 11 shows a flowchart depicting an exemplary procedure for a non-presenter client to perform during the course of a conference.
  • DETAILED DESCRIPTION
  • In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced without some of these specific details. In other instances, well known process operations and implementation details have not been described in detail in order to avoid unnecessarily obscuring the invention. The terms, “teleconference” and “conference,” as used hereinbelow, are interchangeable.
  • FIG. 1 is a schematic diagram presenting an overview of an exemplary teleconferencing system 100. Teleconferencing system 100 includes a conference server 102 and a plurality of conference clients 104 a-104 e. In one embodiment, conference server 102 is a general purpose computer system as described in more detail below with reference to FIG. 2. Each network connection 105 a-105 e may be a local area network (LAN) connection or a wide area network (WAN) connection, such as an Internet connection. Storage 106 may be connected to a local bus of server 102, or may be accessible over a network connection as in network attached storage (NAS) systems or other external storage systems. Conference server 102 runs teleconference server software which is stored in the memory system and runs on the central processing unit (CPU). In addition, conference server 102 may store meeting media and related persistent meeting information while facilitating media exchange among all participants. In one embodiment, conference server 102 is a dedicated server that primarily runs the teleconference server software to implement teleconferences. In another embodiment, conference server 102 is not dedicated to conference serving, but can be used to run other software for performing other tasks besides running the teleconference server software.
  • Each conference client 104 a-104 e may also be a general purpose computer as described in more detail below with reference to FIG. 2. Each conference client 104 a-104 e executes teleconference client software to place each conference participant using one of conference clients 104 a-104 e in communication with the other conference participants. Although teleconferencing system 100 includes five conference clients 104 a-104 e, any number of conference clients may be connected to server 102, although the number of conference clients may be limited by the processing power and bandwidth available to server 102.
  • In one exemplary operation, each conference client 104 a-104 e establishes a network connection 105 a-105 e to conference server 102. Over this network connection, each conference client is able to transmit video and audio streams, along with other data being shared by the participant using that conference client. The video and audio streams are encoded by the teleconference client software, packetized into network packets, and transmitted to the server 102 along with other media being shared over the corresponding network connection. Conference server 102 receives the audio streams from each conference client and mixes them to form a mixed audio stream. In addition, the conference server receives the video streams from each conference client, decodes the video streams, generates individual composite video streams according to the preferences for each conference client, and encodes and compresses the individual composite video streams. The compositing process may require resizing of videos received from the conference clients. Conference server 102 then transmits the individual composite video streams along with the mixed audio stream to each conference client. In addition, control commands and shared media flow through conference server 102 so that newly arriving conference participants can easily obtain the state of the conference session and any media being shared.
  • In this way, each conference client receives, from the conference server, a mixed audio stream containing audio information from other conference clients and a composite video stream according to the preferences and video layout selections made by the individual conference client. The conference client then decodes the mixed audio stream and generates audible sound according to the mixed audio stream allowing the conference participant to hear the voices of the other participants. In addition, the conference client decodes the personalized composite video signal and displays the video on the local display. In this way, the local participant can see any number of selected conference participants in a chosen layout, e.g., with video signal from a primary speaker occupying a majority of the video image size, with smaller video image space given to other speakers, as selected by the local participant.
  • In addition to audio and video information, other information may be communicated between participants. For example, a shared whiteboard space may be provided allowing participants to contribute and share ideas in a pictorial manner by drawing onto the whiteboard using a mouse or other pointing device. In addition, there may be an instant message window allowing participants to send each other instant messages without disrupting the teleconference proceedings. In addition, there may be a shared desktop or document area wherein participants can share their desktop to share content provided by a software application stored locally on the conference client. For a detailed description of exemplary interfaces, protocols, and communications between conference participants in the exemplary system, reference may be made to co-pending U.S. Patent Applications incorporated herein by reference, and particularly, U.S. patent applications Ser. Nos. 10/192,130; 10/192,080; 10/952,053; and 10/853,689.
  • In one embodiment, any meeting participant can request-identification as a presenter participant. Only one presenter participant can be identified at a time. While identified as the presenter participant, he or she may easily control the selection and layout of conference components of the teleconference as presented to other meeting members, e.g., for the purpose of targeting focus on a particular media set of interest as determined by that presenter participant. The presenter participant simply utilizes the existing interface for local user interface layout modification, as the interface to select and configure a local user interface layout does not change when the user is designated as the presenter, except for a visual notification of presenter status. Other participants are free to engage with the targeted view, or they may utilize their user interface for other purposes and can easily return to the preferred presenter view as desired. In various embodiments described below with reference to FIGS. 7A-11, procedures are provided for defining or changing a local user interface layout, propagating a layout selection or partial layout change, and operating associated user interface presenter controls.
  • FIG. 2 shows an exemplary multipurpose computer system 110 that can be used with the teleconferencing system 100 described above with reference to FIG. 1. Computer system 110 includes a plurality of components, some of which may not be required depending on the implementation and whether computer system 110 is being used as a server or a client. Specifically, computer system 110 includes a central processing unit (CPU) 112 which may include one or more processors each of which may include one or more processing cores. CPU 112 may also include various other components known to those skilled in the art such as one or more cache memories and data handling logic.
  • CPU 112 is in communication with I/O ports 114 and memory 116 over bus 118. Memory 116 stores data (not shown), operating system (OS) 120 and application software 112. Application software 112 may include conference server software and/or conference client software. When a conference server software is executed on computer system 110, computer system 110 may be referred to as a “conference server” and when conference client software is executed on computer system 110, computer system 110 may be referred to as a “conference client.” As mentioned above with reference to FIG. 1, memory 116 may include multiple memories such as primary and secondary memories. Primary memory may be local random access memory and secondary memory may include one or more mass storage devices, such as a hard disk drive. Secondary memory may include network attached storage (NAS) wherein data is accessible over a network connection.
  • I/O ports 114 permit computer system 110 to connect to an external network as well as place computer system 110 in communication with a local user, also referred to herein as a conference participant, using user interface 124.
  • In one exemplary embodiment, user interface 124 includes a keyboard, mouse, display, and audio/video (A/V) monitoring devices such as a video camera and microphone. Of course, other user interface devices may be appropriate, depending on the implementation. The keyboard and mouse provides a means allowing the user to provide input into the computer system, e.g., to give commands by manipulating user interface objects represented on the display. Other devices (not shown), such as speech recognition software, touch sensitive screens or tablets, handwriting recognition, etc., that provides this functionality are also contemplated.
  • Network interface 126 provides a communication path between computer system 110 and a local area network. In one embodiment, network interface 126 comprises a network interface card (NIC), and allows computer system 110 to communicate via a local area network to a wide area network such as the Internet, via a gateway attached to the local area network. Any number of network interfaces may be connected to computer system 110 and each network interface may be capable of maintaining a plurality of network connections.
  • FIG. 3 shows an exemplary conference application interface 150 for presenting video, shared documents, and other information to the conference participant. Conference application interface 150 includes a plurality of components 152-166, each covering a rectangular region of conference application interface 150. In one embodiment, components 152-166 are not permitted to overlap each other as in traditional windowing systems. Each component, or a set of components, is optionally selected by the user to be displayed and can be relocated and resized as described, for example, in related U.S. patent applications Ser. Nos. 10/192,130 and 10/192,080, which are incorporated herein by reference. Each component presents a view and/or interface relating to some aspect of the conference data. In the example shown, component 152 is a document view that in this example is showing some slides, e.g., from a slide presentation software such as Microsoft® PowerPoint®; component 154 is displaying a conference log; component 156 provides a device interface for sharing media from attached devices; component 158 displays a composite video showing video streams from other participants; component 160 provides an interface to select local files for sharing; component 162 provides a list of files being shared by participants; component 164 shows an additional document, e.g., a word processing document; and component 166 presents a chat window for sending instant messages to other participants. It should be recognized that other components may be made available to the local participant for display, and that the local participant can control which components are displayed, their position, and relative sizes. In addition to the various components described above, a control bar 170 provides access to commonly used functions by a single mouse click, as will be described in further detail below with reference to FIGS. 7A-7C.
  • FIGS. 4-5C illustrate an exemplary mechanism by which a video display area may be divided to present a plurality of cells as exemplified in FIG. 3. FIG. 4 shows a display area 180 divided into four cells A, B, C, and D. Each cell may be assigned to a selected component. In one embodiment, the layout of the cells is determined based on recursively dividing a resizable application window region of the screen. The divisions are logically made using a percentage of the available space within the window, rather than an absolute measure such as pixels or inches. This method accommodates variable window sizes and screen resolutions which may vary from one conference client to another. As the application window size changes, the sizes of the components assigned to each cell within the application window correspondingly changes, and the layout representation remains unchanged.
  • FIG. 4 shows an example view layout that can be described by (1) dividing the available rectangular vertically, so that the left region is 70% of the rectangle's available width and the right region is 30% of the available width as shown in FIG. 5A; (2) dividing the right region from the previous step horizontally, so that the top region is 30% of the rectangle's available height and the bottom region is 70% of the available height as shown in FIG. 5B; and (3) dividing the bottom region from the previous step horizontally, so that the top region is 60% of that rectangle's available height and the bottom region is 40% of the available height as shown in FIG. 5C. In one embodiment, the layout is defined by recording, for each division, the orientation of the division, i.e., either vertical or horizontal, and the percentage of available space reserved for the left or top subdivision.
  • FIG. 6 shows a binary tree 190 that contains sufficient information to define the layout of FIG. 4. In the binary tree, a leaf node represents a layout cell, and a non-leaf node represents a division between cells. It should be understood that other data structures could be used to represent the cell layout, such as an N-ary tree. Since this representation is immune to global scale changes, the entire interface can be resized to fit any display screen or windowed space of a display screen.
  • The layout information contained in binary tree 190 can be converted into a string value according to a predefined syntax, and convert such a well-formed string value back into a binary tree representation. In one embodiment, a cell (leaf node) may be represented by taking the identifier of the component it contains, and surrounding it with square brackets. For example, component B is represented by “[B]”. A division (non-leaf node) may be represented by a matching pair of parentheses surrounding four pieces of information: a character representing vertical or horizontal division, e.g., “|” or “-”, respectively, and an integer representing the percentage of the available space to give the top or left child (in this example, expressed as a portion of 1000), followed by the string representing the left subtree and the string representing the right subtree. Spaces may be added between each piece to simplify parsing and make the representation human-readable. Table 1 shows an exemplary construction of such a string. In this construction, the tags <left> and <right> are used as place-holders for regions that are to be assigned a component such as [A] or [B], or else subdivided.
  • TABLE 1
    (| 700 <left><right>) As shown in FIG. 5A
    (| 700 [A] (−300 <left><right>)) As shown in FIG. 5B
    (| 700 [A] (−300 [B] (−600 <left><right>))) As shown in FIG. 5C
    (| 700 [A] (−300 [B] (−600 [C] [D]))) As shown in FIG. 4
  • Although this example only subdivides the right (or bottom) portion of each division, it should be recognized that the left or top portion can similarly be subdivided, so that the layout shown in FIG. 3 could be achieved. For example, the layout in FIG. 3 could be represented as the string value, “(|650(-750[Document Viewer](|700[Conference Log][Devices]))(-550[Video Window](-500(|500[Local Files][Participants])(|500[Document Viewer][Chat Window]))))”. This syntax for a string representation of a given layout is relatively compact and easy for a computer program to parse. For example, since parentheses are matched, the end of a layout string can easily be determined from its starting position within a larger string. There are of course many other ways of representing the layout as a string, and the present invention is not limited to a specific syntax.
  • Having multiple representations of the layout information means that a particular layout manipulation can be implemented as an operation on any representation, and converting between representations as needed. For example, one can select a representation that is easy and efficient to send across a computer network, such as the string representation described above, or a representation that can be easily and quickly manipulated in memory, such as the binary tree representation described above with reference to FIG. 6.
  • FIG. 7A shows an exemplary control bar 170A in a first configuration that may be displayed when the conference client is in a no-presenter mode, which is entered into when no participant is currently designated to be the presenter participant. In this configuration, “Start Presenting” button 172 is provided to allow the local participant to request presenter participant status. Layout selection buttons 173 allow the local user to select a predefined layout with a single mouse click. Each layout may focus on a specific primary component of focus and reduce the size and required bandwidth of other components. For example, layout selection buttons 173 may include an application sharing layout button, a document sharing button, and a video button, to place the main focus on a shared application, a document, or the video, respectively. Layout selection buttons 173 may include any number of additional custom layout selection buttons 174 (only one shown) to provide access to one or more user-defined layouts.
  • When the “Start Presenting” button 172 is selected, a request to present is transmitted to conference server 102 (FIG. 1). Upon receiving this request, the conference server might grant presenter status to the participant or reject the request. In one embodiment, rejection occurs when multiple requests are received from different participants. The conference server would assess the request priority or order of the multiple requests and grant one participant the presenter status while rejecting the others. Rejection, of course, may also occur if the meeting does not allow presenters, or the requesting participant is not allowed to become a presenter due to server configurable user access rights, or other reasons.
  • When a participant is granted presenter status, he is called the presenter participant and all other meeting members are informed of his new status. When a participant is given presenter status, the conference client being acted on by the participant enters a presenter mode. FIG. 7B shows an exemplary control bar configuration 170B in presenter mode that is displayed to the presenter participant, and FIG. 7C shows an exemplary control bar configuration 170C in a non-presenter mode that is displayed to non-presenter participants when one of the other participants has presenter status. Thus, the interface changes so that the “Start Presenting” button is unavailable, either replaced with another button or graphically dimmed or otherwise modified to indicate that it is unavailable. For the presenter participant, a “Stop Presenting” button 175 is made available to request that presenter status be relinquished by the local participant. In addition, there may be provided some visual cue, such as a brightly colored bar 176 on each button of control bar 170B, or other graphical indicator to inform the user that they are now a presenter participant and the conference client is in presenter mode. For the non-presenter participant, a “Return to Presenter” button 178 is made available for purposes as will be described in more detail hereinafter, and in particular with reference to FIG. 11.
  • Referring briefly to FIG. 1, a bidirectional connection channel exists between each conference client 104 a-104 e and the conference server 102. In certain embodiments, data sent over the channel is structured into individual commands. Commands are uniquely identified and the data that will be packaged in a command is predefined and known to both the client and the server. In one embodiment, the Server has authenticated the sender of each command, so it knows which participant a particular command came from, even if that information is not repeated inside the command. For efficiency, a numeric identifier is used for “on-the-wire” command encoding, but the identifier is also aliased to a string representation for clarity, which will be used for the purposes of this description. Commands can be propagated in various ways. For example, a command might be sent only from the server to one client, or from a client to the server, or a command may be broadcast from the server to all clients, or to all clients except the originating client. The following exemplary commands may be used to communicate presenter status information and layout information:
  • CmdPresenterChangeReq(partID)—This command is sent to the conference server by a participant identified by partID as a request to obtain presenter status. By setting the partID field to “−1” this command can also be sent by a participant wishing to relinquish presenter status. When the server receives this command, the server changes the active presenter as appropriate and then sends a CmdPresenterChangeAck reply to appropriate participant(s).
  • CmdPresenterChangeAck(returnCode, partID)—This command is sent in reply to a CmdPresenterStatusReq command. The returnCode parameter is used to identify whether the request is accepted or denied. For example, a returnCode of “0” may indicate that presenter partID is active, a returnCode of “1” may indicate that no presenter is active, a returnCode of “2” may indicate that the request is denied because a presenter is already active, and a return code of “3” could indicate that the request is denied because the requester cannot be a presenter, e.g., because of a restriction made by the conference owner. CmdPresenterChangeAck may also be sent to newly arrived participants to identify whether a presenter is active, and if so, who. If a presenter leaves a meeting, the presenter status changes to none and all remaining participants receive this command. In one embodiment, the conference owner, which could be the person who created the conference or someone designated by the creator, will have presenter status by default, until she leaves the meeting or releases presenter status.
  • CmdSetView(viewId, viewStyle, viewLayout)—This command may be sent by a presenter client to the server to be broadcast to all other participants and informs the participants of a meeting view change. The viewId field identifies a particular predefined view as may be selected by the presenter participant. The viewStyle field can specify a specific version of the layout identified by the viewId field. For example, some individuals may prefer to have a primary component on the left side of the screen and secondary components on the right. Thus, a viewStyle can specify, e.g., a left handed or right handed configuration. The string value viewLayout identifies a specific component layout as described above with respect to FIGS. 4-6. In addition, the viewLayout field may pass additional workspace attribute information appended to the view string in the form, “{attr=val1,attr2=val2 . . . }”. When the presenter participant changes the meeting view, e.g., by selecting a predefined layout or custom-defined layout view, this command is passed from the presenter participant to the conference server, and then to the other participant. In addition, the conference server saves the field values and sends the command to newly arriving participants if there is an active presenter-participant.
  • CmdSetWorkspaceCell(componentOrder,attributes)—This command is sent by a presenter client to the conference server to be broadcast to all other participants. The field componentOrder presents an ordered comma separated list of layout string identifiers. In one embodiment, the list is tokenized by enclosing them within brackets. The first identifier specifies the primary workspace cell, the second specifies the secondary workspace cell, etc. The field, attributes, provides a comma separated list of workspace attributes, e.g., “{attr=val1,attr2=val2 . . .}”. This command provides a mechanism for partial presenter synchronization, whereby non-presenter clients may be given partial layout modifications that, e.g., affect the primary component without affecting non-primary components in their layout. It is also possible to use this command structure to affect secondary, tertiary, etc., components by specifying them in the componentOrder field. In certain embodiments, the command CmdSetView always overrides the previous CmdSetWorkspaceCell command, so that if a server receives a CmdSetView command, its cached CmdSetWorkspaceCell command will be cleared.
  • Once a presenter participant is designated, partial synchronization of the workspace layout of all non-presenter participants is enforced. The term, “synchronization” refers to non-presenter view layouts being synchronized or modified to match the presenter's layouts. “Partial synchronization” means that some layout changes made by the presenter are reflected in the non-presenter's workspace while others are not. In certain embodiments, partial synchronization is enforced because full synchronization is not always desired. For example, presenter participant {A} may be talking and giving a slideshow. At the same time, non-presenter participants {D} and {E} may be using the Chat component between themselves. For example, {D} may have missed a remark made by {A} and does not want to interrupt everyone by asking that the remark be repeated. Since the presenter is not using the Chat component at that time, she may close it to maximize the screen space for other components. If the layouts are all synchronized, this will unintentionally interrupt the conversation between {D} and {E} as their Chat components close, and will likely cause confusion.
  • A similar problem occurs when a component user interface varies from user to user. For example, when the Application Sharing component shows a list of applications that can be shared to a sharing participant, but only shows applications actually being shared to the receiving participants. Since changing the application being shared happens relatively infrequently, the participant sharing may want to temporarily enlarge another component in his view, e.g., Video. If the sharing participant is also the presenter participant, this can have the unwanted effect of making everyone else's Application Sharing component too small, and the Video component too large. These problems and others are addressed by the partial synchronization mechanism herein described.
  • Whenever the presenter participant clicks a layout selection buttons 173 (FIG. 7A) in control bar 170 (FIG. 3, 7A-7C), a CmdSetView is sent to server 102 (FIG. 1). Server 102 stores the most recent copy of that command in persistent storage 106 and forwards the command to all of the non-presenter participants' conference clients. When a conference client 104 (FIG. 1) receives this command, it changes to the view specified by the viewId and viewStyle parameters accompanying the command. Since each client knows the layout corresponding to a particular predefined layout selection enumerated into a viewId code and viewStyle parameter, the viewLayout parameter is redundant for non-custom views, and may be omitted. In one embodiment, the viewLayout string for the predefined views is nevertheless always sent to simplify processing. For example, the string representation for the workspace layout makes identifying the end of the layout string straightforward, and everything after that can be considered to be a list of attributes. Workspace attributes may include such things as the video size shown or other ancillary information.
  • The presenter participant can modify their workspace in a multitude of ways aside from making selections of pre-defined layouts presented in control bar 170. For example, the presenter participant can open and close components, swap components, relocate or resize components, etc. Any time one of these operations is about to be performed, the presenter's client determines which component is the primary component, and makes the same calculation at the conclusion of the modification. In one embodiment, the determination as to which component is the primary component can be made, for example, by examining the size of the cell it lives in. For example, the largest cell can be deemed to contain the primary component. In another embodiment, the primary component is determined based on a position of the layout. For example, in an exemplary left-handed view style, the component in the upper left corner is considered to be the primary component. In yet another embodiment, the primary component is determined based on an operation mode or view. For example, if a user selects to provide a full screen view of one of the components, e.g., the video component, with an inset for a document, then the full screen view can be identified as the primary component.
  • If the primary cell has changed, the presenter's client sends the server a CmdSetWorkspaceCell command. The server stores the most recent copy of that command in storage 106 and forwards the command to all non-presenter participants' clients. The command includes two fields. The first holds an ordered comma-separated list of layout string component identifiers, for example, “[doc],[video],[chat]”. The second field can be used to specify updates to workspace attributes. For example, a workspace attribute such as “small” “medium” and “large” can be used to specify bandwidth usage. Thus, a functionality change can be made in support of an activity (in addition to a user interface change) that may need to be synchronized with the presenter. When a conference client receives this command, any specified attributes are applied to the local client. For example, if the command specifies the component in the presenter's primary cell, then that component is swapped into the non-presenter's primary cell. In this way, the presenter can shepherd the focus of other participants to a component of primary importance, while minimizing the interruption to their use of other components in the application.
  • FIG. 8 shows a swim-lane diagram 200 that depicts exemplary transactions between a first participant 104 p, a second participant 104 n, and a conference server 102. At an initial time when no participant is designated as a presenter, first participant 104 p sends a request to present by sending a CmdPresenterChangeReq command 202 to conference server 102. In one embodiment, each client is assigned a unique positive integer for identification, however, individual string values may also be used. For exemplary purposes, first participant 104 p designates itself by its identifier “1” in the field code transmitted with the command 202. Conference server 102 responds with a CmdPresenterChangeAck command 204 which is sent to the requesting participant. The field code “0” indicates that there is a presenter participant designated and the participant identifier “1” designates who the presenter participant is. Command 204 is sent to first participant 104 p to indicate that the request has been granted. In addition, command 204 is sent to all non-presenter participants, including second presenter 104 n, to inform them that first participant 104 p is now a presenter. On receiving CmdPresenterChangeAck command 204, first participant 104 p enters a presenter mode and second participant 104 n enters a non-presenter mode.
  • In one embodiment, first participant 104 p transmits a CmdSetView command 208 along with parameters viewId, viewStyle, and viewLayout as described previously to server 102 automatically when designated as a presenter. This command defines a new layout according to the presenter's layout by providing a viewLayout string as described above with reference to FIGS. 4-6. Server 102 receives this command and stores the parameters, then transmits the CmdSetView command 210 to all non-presenter participants, such as second participant 104 n, so that the non-presenter participants can synchronize their layouts to the layout selected by first participant 104 p. In a different embodiment, the CmdSetView command 208 is only sent when first participant 104 p selects a layout command to transform the layout of the interface. For example, the presenter participant may select a pre-defined layout button 173 from control bar 170 (FIGS. 7A-7C) causing the CmdSetView command 208 to be transmitted.
  • The CmdSetWorkspaceCell command 212 is transmitted from first participant 104 p when the presenter modifies her layout in a significant way, e.g., such as when the primary component is changed such that a different component is made the new primary component. The determination of which component is the primary component can be based, for example, on the relative sizes or positions of the components. In one embodiment, ordering is determined by screen area in a custom view, but is predefined in the predefined views. Thus, in a predefined view such as an application sharing view, the components have a predefined ordering which doesn't necessarily correlate to the current size of the component on the screen. It is possible to consider changes to any one of a number of components when determining that a significant change occurred. For example, the system may consider layout cells numbered 1-N, where N might be hard coded or configurable. If N is equal to 3, then primary, secondary, and tertiary cells are checked for modification. If any of them are changed so that they now hold different components, then a significant change is considered to have occurred.
  • It should be noted that the user may make substantial changes to the user interface configuration or style, e.g., by changing from a windowed mode to a full screen mode, perhaps having a picture-in-picture for a selected component, and these changes may or may not be considered “significant” depending upon the implementation. In one embodiment, user interface style changes are not communicated to the server, even if the primary component is substantially modified as a result. The predefined ordering of predefined views may be used to determine which component is presented using the full screen size when entering full screen mode and which component is placed picture-in-picture. For example, the video component may be designated as the secondary component in all of the non-video predefined views, so that it will appear in the picture-in-picture window in the full screen mode, regardless of how large the video is relative to other components in the view in the normal windowed mode. The CmdSetWorkspaceCell command reflects partial modification by defining the changed component and attributes. Server 102 receives this command and stores the string, then transmits the CmdSetWorkspaceCell command 214 to all non-presenter participants, such as second participant 104 n, so that the non-presenter clients can partially modify the layout, e.g., so that the primary component is changed to be the same as the presenter's primary component.
  • When first participant 104 p wishes to relinquish presenter status, she sends a CmdPresenterChangeReq command 216 to server 102 with the value, “−1” to indicate a request to relinquish. The server 102 then responds with an acknowledgement CmdPresenterChangeAck command 218 indicating that no presenter is currently designated. This command is transmitted to all participants.
  • FIG. 9 shows a flowchart 250 representing an exemplary procedure carried out by the server to implement a partial layout synchronization. The procedure begins as indicated by start block 252 and enters state 254 wherein no participant has yet been designated a presenter. In one embodiment, the owner or creator of the conference, or person designated by the owner or creator of the conference, can be automatically designated as the presenter at the start of the conference. In this case, a command is broadcast to all participants naming the owner or designated individual as the presenter and the server enters state 260.
  • In operation 256, the server receives a request to present from participant {A}, wherein “{A}” is an identifier that identifies one of the participants. In response to receiving this request, the server checks to make sure that {A} has permission to be a presenter and that there is currently no presenter active (not shown). After making this determination, server designates {A} as the current presenter by broadcasting a presenter status change naming participant {A} as the presenter in operation 258. After designating a presenter, the server is in state 260 wherein it waits for communication from a participant.
  • In operation 262, the server receives a new component layout selection from user {A}. Since a new component layout command overrides any previous set cell command, the server removes any stored set cell command from storage in operation 264. In operation 265, the server stores the new component layout and broadcasts the layout description to all non-presenting participants.
  • In operation 266, the server receives a set cell command from participant {A}. This command may issue from participant {A} when the presenter participant makes a significant change to {A}'s layout. A significant change is one that is conveyed to non-presenter participants. For example, a significant change could be one that changes the focus of the conference. In response to receiving this command, the server stores a copy of the command, and broadcasts the command to all non-presenting participants in operation 268. The procedure then returns to state 260.
  • In operation 270, the server receives a new connection. A new connection is received when a participant is added to the conference. In response to receiving a new connection, the server sends a copy of any stored layout and set cell command in operation 272. The layout and set cell commands are transmitted to the user who has joined the conference. After the layout and set cell commands are transmitted, the procedure returns to state 260.
  • In operation 274, the server receives a request from {A} to relinquish presenter status. In response to receiving a request to relinquish presenter status, the server removes any stored layout and set cell commands from its storage in operation 276, and broadcasts the “no presenter” command to all participants in operation 278. The procedure then returns to state 254 to wait for a new request to present.
  • It can be seen that by the procedure illustrated in flowchart 250, the conference server sets and frees presenter status, and forwards layout definitions and set cell commands from the designated presenter to the non-presenters to effectuate a partial synchronization of views.
  • FIG. 10 shows flowchart 300 illustrating an exemplary procedure for a conference client to perform when requesting presenter status, acting as a presenter participant, or relinquishing presenter status. The procedure begins as indicated by start block 302. At the start of the procedure, the conference client is in state 304 wherein the conference client is not designated as the presenter. In operation 306, the conference client accepts a request from the local user to become the presenter for the conference. In response to this request, the conference client transmits a command to the conference server requesting presenter status in operation 308. In one embodiment, this command takes the form of CmdPresenterChangeReq as described above with reference to FIG. 8. In operation 310, it is determined whether the server granted the request or not. If the conference client receives a command from the server setting the local user as the presenter, then the request was granted and the procedure flows to operation 314. However, if the conference client receives a different command form the server, such as a command setting a different user as the presenter, or a command indicating that no user is the presenter, then the request is not granted and the procedure flows to operation 312. In operation 312, for example, a command indicating no presenter is active, such as command 218 in FIG. 8, may be received, indicating that the request was denied. After receiving a denial of a presenter status request, the procedure flows back to state 304.
  • In operation 314, the conference client enters presenter mode and changes the control bar to provide a graphical indication to the local user that he or she is now a presenter participant, and that changes to the user interface layout may be reflected in other participants' displays. For example, the control bar may be modified as illustrated in FIG. 7B with a “start presenting” button replaced with a “stop presenting” button, and highlights 176 added to layout selection buttons 173 to indicate their change in function, i.e., that they control other participant's displays in addition to the display of the local user. After changing the control bar in operation 314, the conference client is in state 316, which is a state that corresponds to being in a presenter mode.
  • In operation 320, the conference client accepts a layout selection from the local user when in state 316. For example, the user may select a layout selection button 173 of control bar 170 as described above with reference to FIGS. 7A-7C. In response to the layout selection, the layout is changed to correspond to the local user's selection, and the a representation of the selected layout is transmitted to the server as a command in operation 322. The command is thereafter processed by the server as described above with reference to FIG. 9.
  • In operation 324, the conference client detects that the local user has modified the layout. The modification can include any change in the arrangement of the conference components in the user interface. For example, a layout modification can include removing a component, adding a component, swapping the positions and sizes of two components, and resizing or relocating a component or group of components. When the conference client detects a layout modification, the procedure flows to operation 326.
  • In operation 326, the conference client determines whether the layout modification is a significant layout modification. A significant modification is one that is conveyed to non-presenter participants for partial synchronization. In general, significant modifications will be ones that suggest a change in the focus of the meeting, e.g., from a whiteboard to a shared application. In one embodiment, changes that result in a new component becoming the primary component are identified as significant. Thus, in one example, the local user swaps the primary component with a secondary component, thereby causing the secondary component to become the new primary component. In this situation, conference client detects a new primary component and identifies that a significant change in the layout has occurred. In response to this, the conference client sends a layout modification command (also referred to herein as a set cell command) to the server in operation 328. The server processes the layout modification command as described above with reference to FIG. 9 by passing a copy to the non-presenting clients so that the new primary component can become the focus of the meeting in other non-presenter participants' displays without affecting their layout in any other way.
  • If, in operation 326, the conference client determines that the local user made an insignificant change to the layout, then the conference client returns to state 316. An insignificant modification can be characterized as one that is not conveyed to non-presenter participants. For example, if the local user simply brought up a component listing participants and shared documents, e.g., participants component 162 as illustrated in FIG. 3, or if the local user swapped two secondary components or closed a secondary component, or relocated and/or resized some components without changing the primary component, then no further action is necessary and the conference client returns to state 316.
  • In operation 340, the conference client accepts a request from the local user to relinquish presenter status. This can occur, for example, when the local user selects the “stop presenting” button 175 in control bar 170B as shown in FIG. 7B. Upon receiving this request from the user, the conference client sends a command to the server in operation 342 to relinquishing presenter status. The server returns a command with an acknowledgement. Then, in operation 344, the conference client enters the no-participant mode and reverts the control bar to indicate that no participant has presenter status, e.g., as shown in FIG. 7A.
  • FIG. 11 shows a flowchart 350 depicting an exemplary procedure for a non-presenter client to perform during the course of a conference. The procedure begins as indicated by start block 352 and flows to operation 354 wherein the conference client synchronizes the component layout with the presenter participant. This can occur, for example, when a presenter participant (other than the local user) is designated, or if the local user joins a conference that already has a presenter participant. In either case, the local client will receive a representation of the presenter participant's layout, e.g., a string representation as described above with reference to FIGS. 4-6, and the local client configures the various components in accordance with that representation. In addition, if any layout modifications e.g., CmdSetWorkspaceCell commands, are stored by the conference server, then they are also received and applied to the layout. It should be noted that the synchronization may be a partial synchronization, since the presenter may have made insignificant layout modifications that were not transmitted to the server, and are therefore not available to the non-presenter clients.
  • After the components are configured, the procedure enters state 356 in which the conference client enters non-presenter mode and waits for an action by the local user or communication from the server affecting the layout. In addition, the control bar 170 has the “start presenting” button 172 replaced with the “return to presenter” button 178 as shown in FIG. 7C, with the “return to presenter” button disabled (e.g., dimmed) so as to indicate that the current layout matches the presenter's layout. It should therefore be clear that, at state 356, another user is the presenter, and the local user is a non-presenter.
  • In operation 358, the conference client notices that the local user has modified the layout, e.g., by swapping any two components, closing or opening components, resizing or relocating components, etc. In response to detecting a layout modification by the local user, the procedure flows to operation 360 wherein the conference client enables the “return to presenter” button 178 (FIG. 7C) on control bar 170. If the “return to presenter” button is already enabled, then no action is taken. After operation 360, the conference client returns to state 356.
  • In operation 362, a set cell command is received from the server. As mentioned previously, e.g., with reference to FIG. 8, a set cell command is forwarded to non-presenting participants when the presenter makes a significant modification to the layout. A significant modification is one that is forwarded to non-presenting participants. When a set cell command is received in operation 362, the procedure flows to operation 364 wherein the local layout is partially modified in accordance with the set cell command, thereby causing the local user's attention to be shifted to a media selected by the presenter participant. Components not directly affected by the set cell command remain unchanged thereby avoiding any unnecessary disturbance of the non-presenter participant's layout, as the non-presenter participant may be temporarily focused on other activities, such as a document to be shared with the group or a chat with another conference participant, etc.
  • In operation 370, a new presenter layout selection is received from the server. A layout selection includes a representation of the presenter's newly selected layout. In response to receiving a layout representation, the conference client, in operation 372, sets the local layout to conform to the presenter's selected layout configuration. The display then changes to conform to this new component layout. Then, in operation 374, the “return to presenter” button 178 in toolbar 170 is disabled, thereby indicating that the current layout configuration matches the presenter's layout. The conference client then returns to state 356.
  • In operation 376, the conference client accepts a command from the local user to return to the presenter's layout. For example, the user may have clicked the “return to presenter” button 178 in control bar 170 (FIG. 7C). In response to accepting this command from the local user, the conference client, in operation 378, applies the previously received layout and set cell commands to the current layout. The procedure then flows to operation 374 wherein the “return to presenter” button 178 in control bar 170 (FIG. 7C) is disabled, e.g., dimmed. Then, the conference client returns to state 356.
  • With the above embodiments in mind, it should be understood that the invention can employ various computer-implemented operations involving data stored in computer systems. These operations are those requiring physical manipulation of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared and otherwise manipulated. Further, the manipulations performed are often referred to in terms such as producing, identifying, determining, or comparing.
  • Any of the operations described herein that form part of the invention are useful machine operations. The invention also relates to a device or an apparatus for performing these operations. The apparatus can be specially constructed for the required purpose, or the apparatus can be a general-purpose computer selectively activated or configured by a computer program stored in the computer. In particular, various general-purpose machines can be used with computer programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the required operations.
  • The invention can also be embodied as computer readable code on a computer readable medium. The computer readable medium is any data storage device that can store data, which can be thereafter be read by a computer system. The computer readable medium also includes an electromagnetic carrier wave in which the computer code is embodied. Examples of the computer readable medium include hard drives, network attached storage (NAS), read-only memory, random-access memory, CD-ROMs, CD-Rs, CD-RWs, magnetic tapes and other optical and non-optical data storage devices. The computer readable medium can also be distributed over a network-coupled computer system so that the computer readable code is stored and executed in a distributed fashion.
  • Embodiments of the present invention can be processed on a single computer, or using multiple computers or computer components which are interconnected. A computer, as used herein, shall include a standalone computer system having its own processor(s), its own memory, and its own storage, or a distributed computing system, which provides computer resources to a networked terminal. In some distributed computing systems, users of a computer system may actually be accessing component parts that are shared among a number of users. The users can therefore access a virtual computer over a network, which will appear to the user as a single computer customized and dedicated for a single user.
  • Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.

Claims (24)

1. A method for enabling, in a teleconferencing system, partial layout synchronization between a user interface layout of a first conference client and a user interface layout of a second conference client, the method comprising:
entering a presenter mode in a conference client application running on the first conference client;
receiving a layout modification from a local user of the conference client application, the layout modification altering a selection or arrangement of conference components in a user interface;
determining whether the layout modification is a significant layout modification or an insignificant layout modification; and
transmitting a command for receipt by a conference server only when the layout modification is a significant layout modification, the command containing a representation of the layout modification usable by the second conference client in the non-presenter mode to implement the layout modification in a user interface provided by the second conference client.
2. The method of claim 1, wherein the layout modification comprises at least one of an addition of a conference component to the user interface, a removal of a conference component from the user interface, a swap of two conference components so that each of the two conference components take a size and position of another of the two conference components in the user interface, or a relocating or resizing of one or more conference components in the user interface.
3. The method of claim 1, wherein the determining comprises identifying a primary conference component prior to the layout modification and a primary conference component after the layout modification, and determining that the layout modification is a significant layout modification when the primary conference component prior to the layout modification is different from the primary conference component after the layout modification, and determining that the layout modification is an insignificant layout modification when the primary conference component prior to the layout modification is the same as the primary conference component after the layout modification.
4. The method of claim 3, wherein the primary conference component is identified as a conference component taking up more space in the user interface than any other conference component.
5. The method of claim 3, wherein the primary conference component is identified based on its position in the layout of the user interface.
6. The method of claim 3, wherein the primary conference component is identified based on an operational mode or view provided by the conference client.
7. The method of claim 1, further comprising:
receiving a new layout selection from the local user, the layout selection being a predefined user interface layout or a custom-defined user interface layout, and
transmitting a representation of the layout selection to the conference server.
8. The method of claim 7, wherein the new layout selection is accepted by detecting that the local user has interacted with a layout selection button in a control bar.
9. The method of claim 8, wherein the control bar contains a graphical indication that the local user is a presenter-participant.
10. The method of claim 7, wherein the representation of the layout selection is contained in a string, the string defining a cell for each displayed component, each cell being defined in the string as a left, right, top, or bottom portion of a larger region in which the cell is contained, the cell occupying a defined fraction of space of the larger region, the layout selection defining a layout of two or more cells.
11. A teleconferencing system enabling partial layout synchronization between a user interface layout of a conference client and a user interface layout of another conference client, the system comprising:
a conference server comprising a general purpose computer system;
a plurality of conference clients, each conference client being in communication with the conference server over a network connection, the conference server effectuating communication between and among the plurality of conference clients;
the conference server being configured to designate one conference participant attending a teleconference using the teleconferencing system as a presenter-participant, the presenter-participant being a local user of one conference client of the plurality of conference clients, the one conference client being configured to enter a presenter mode in response to the designation;
the one conference client being further configured to accept a layout modification from the local user, the layout modification altering a selection or arrangement of conference components in a user interface; and
the one conference client, when in the presenter mode, being further configured to determine whether the layout modification is a significant layout modification or an insignificant layout modification; and transmit a command to the conference server only when the layout modification is a significant layout modification, the command containing a representation of the layout modification usable by an other of the plurality of conference clients to implement the layout modification in a user interface provided by the other of the plurality of conference clients, the conference server being configured to broadcast the command to the other of the plurality of conference clients.
12. The system of claim 11, wherein the layout modification comprises at least one of an addition of a conference component to the user interface, a removal of a conference component from the user interface, a swap of two conference components so that each of the two conference components take a size and position of another of the two conference components in the user interface, or a resizing of a conference component in the user interface.
13. The system of claim 11, wherein the conference client is configured to determine whether the layout modification is significant by identifying a primary conference component prior to the layout modification and a primary conference component after the layout modification, and determining that the layout modification is a significant layout modification when the primary conference component prior to the layout modification is different from the primary conference component after the layout modification, and determining that the layout modification is an insignificant layout modification when the primary conference component prior to the layout modification is the same as the primary conference component after the layout modification.
14. The system of claim 13 wherein the conference client is configured to identify the primary conference component by identifying a conference component that takes up more space in the user interface than any other conference component.
15. The system of claim 3, wherein the conference client is configured to identify the primary conference component based on its position in the layout of the user interface.
16. The method of claim 3, wherein the conference client is configured to identify the primary conference component based on an operational mode or view provided by the conference client.
17. The system of claim 11, wherein the conference client is further configured to accept a new layout selection of a predefined user interface layout from the local user and transmit a representation of the layout selection to the conference server.
18. The system of claim 17, wherein the conference client is configured to detect the new layout selection by detecting that the local user has interacted with a layout selection button in a control bar.
19. The system of claim 18, wherein the control bar contains a graphical indication that the local user is a presenter-participant.
20. The system of claim 17, wherein the representation of the layout selection is contained in a string, the string defining a cell for each displayed component, each cell being defined in the string as a left, right, top, or bottom portion of a larger region in which the cell is contained, the cell occupying a defined fraction of space of the larger region.
21. A method for configuring a user interface, the method comprising:
receiving a representation of a layout for the user interface; and
constructing the user interface in a display area from the representation, wherein the representation of the layout selection is contained in a string, the string defining a cell for each displayed component, each cell being defined in the string as a left, right, top, or bottom portion of a larger region in which the cell is contained, the cell occupying a defined fraction of space of the larger region.
22. The method of claim 21, wherein the larger region is one of the display area or is recursively defined as a left, right, top, or bottom portion of a second larger region in which the larger region is contained, the larger region occupying a defined fraction of the second larger region.
23. The method of claim 21, wherein the string is made up of at least one substring, each substring dividing a region beginning with the display area either horizontally or vertically, and assigning each of two portions created by the division either a component, or a new substring that further divides the portion; wherein each substring includes at least a character identifying whether the display area is divided horizontally or vertically.
24. The method of claim 23, wherein each substring is enclosed in a matched pair of parentheses.
US11/549,058 2006-10-12 2006-10-12 Presenter view control system and method Expired - Fee Related US7634540B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/549,058 US7634540B2 (en) 2006-10-12 2006-10-12 Presenter view control system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/549,058 US7634540B2 (en) 2006-10-12 2006-10-12 Presenter view control system and method

Publications (2)

Publication Number Publication Date
US20080091778A1 true US20080091778A1 (en) 2008-04-17
US7634540B2 US7634540B2 (en) 2009-12-15

Family

ID=39326048

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/549,058 Expired - Fee Related US7634540B2 (en) 2006-10-12 2006-10-12 Presenter view control system and method

Country Status (1)

Country Link
US (1) US7634540B2 (en)

Cited By (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005233A1 (en) * 2006-06-29 2008-01-03 Yigang Cai Online conferencing systems for sharing documents
US20080136898A1 (en) * 2006-12-12 2008-06-12 Aviv Eisenberg Method for creating a videoconferencing displayed image
US20080316229A1 (en) * 2007-03-19 2008-12-25 Hajime Terayoko Content display method, content display program and content display device
US20090083639A1 (en) * 2007-09-26 2009-03-26 Mckee Cooper Joel Distributed conference and information system
US20090292999A1 (en) * 2008-05-21 2009-11-26 Smart Technologies Ulc Desktop sharing method and system
US20100050092A1 (en) * 2008-08-25 2010-02-25 Microsoft Corporation Content Sharing and Instant Messaging
US20100105437A1 (en) * 2008-10-24 2010-04-29 Research In Motion Limited Systems and methods for presenting conference call participant indentifier images on a display of a mobile device
US20100131856A1 (en) * 2008-11-26 2010-05-27 Brian Joseph Kalbfleisch Personalized, Online, Scientific Interface
CN101834905A (en) * 2010-05-13 2010-09-15 中兴通讯股份有限公司 Remote document sharing method and remote document sharing server
US20100257449A1 (en) * 2009-04-07 2010-10-07 Clearslide, Inc. Mixed content type presentation system
US20100306018A1 (en) * 2009-05-27 2010-12-02 Microsoft Corporation Meeting State Recall
US20100318916A1 (en) * 2009-06-11 2010-12-16 David Wilkins System and method for generating multimedia presentations
US20100333004A1 (en) * 2009-06-24 2010-12-30 Tandberg Telecom As Method, apparatus and system for modifying a composite video signal
US20110010640A1 (en) * 2009-07-10 2011-01-13 Novell, Inc. Intelligent co-browsing and co-editing
US20110055724A1 (en) * 2008-04-10 2011-03-03 Creative Technology Ltd Interface for voice communications
US20110150194A1 (en) * 2009-12-23 2011-06-23 Ramprakash Narayanaswamy Web-Enabled Conferencing and Meeting Implementations with Flexible User Calling Features
US20110149809A1 (en) * 2009-12-23 2011-06-23 Ramprakash Narayanaswamy Web-Enabled Conferencing and Meeting Implementations with Flexible User Calling and Content Sharing Features
US20120192106A1 (en) * 2010-11-23 2012-07-26 Knowledgevision Systems Incorporated Multimedia authoring tool
US20130002532A1 (en) * 2011-07-01 2013-01-03 Nokia Corporation Method, apparatus, and computer program product for shared synchronous viewing of content
WO2013009996A1 (en) * 2011-07-13 2013-01-17 Watchitoo, Inc. System and method for automatic and dynamic layout design for media broadcast
US20130019187A1 (en) * 2011-07-15 2013-01-17 International Business Machines Corporation Visualizing emotions and mood in a collaborative social networking environment
NO20111075A1 (en) * 2011-07-29 2013-01-30 Cisco Systems Int Sarl Method and end point for changing the composition of a composite video signal
WO2013062582A1 (en) * 2011-10-28 2013-05-02 Hewlett-Packard Development Company, L.P. Grouping a participant and a resource
WO2013062581A1 (en) * 2011-10-28 2013-05-02 Hewlett-Packard Development Company, L.P. Layout for groups of participants
US20130254652A1 (en) * 2012-03-12 2013-09-26 Mentormob, Inc. Providing focus to portion(s) of content of a web resource
US8638355B2 (en) 2006-12-12 2014-01-28 Polycom, Inc. Method for creating a videoconferencing displayed image
US20140032679A1 (en) * 2012-07-30 2014-01-30 Microsoft Corporation Collaboration environments and views
US20140040024A1 (en) * 2006-12-18 2014-02-06 U-See 2 Limited Establishment based advertising method and system
US20140047022A1 (en) * 2012-08-13 2014-02-13 Google Inc. Managing a sharing of media content among cient computers
CN103718545A (en) * 2011-07-29 2014-04-09 思科技术公司 Method, computer- readable storage medium, and apparatus for modifying the layout used by a video composing unit to generate a composite video signal
CN103731405A (en) * 2012-10-16 2014-04-16 华为技术有限公司 Method and equipment for presenting shared information in data sharing process through demonstration side equipment
US20140122588A1 (en) * 2012-10-31 2014-05-01 Alain Nimri Automatic Notification of Audience Boredom during Meetings and Conferences
US20140218462A1 (en) * 2013-02-04 2014-08-07 Hon Hai Precision Industry Co., Ltd. Computing device and method for adjusting video image
US8817801B1 (en) 2011-07-08 2014-08-26 8X8, Inc. Conferencing and meeting implementations with advanced features
WO2014014853A3 (en) * 2012-07-17 2014-08-28 Microsoft Corporation Dynamic focus for conversation visualization environments
US20150058748A1 (en) * 2013-08-20 2015-02-26 Cisco Technology, Inc. Viewing Shared Documents in a Sharing Session
US20150200979A1 (en) * 2014-01-13 2015-07-16 Cisco Technology, Inc. Viewing different window content with different attendees in desktop sharing
US20150213215A1 (en) * 2012-10-11 2015-07-30 Kabushiki Kaisha Toshiba Medical work support system, surgical clothing, and medical apparatus
US20150229487A1 (en) * 2014-02-12 2015-08-13 Talk Fusion, Inc. Systems and methods for automatic translation of audio and video data from any browser based device to any browser based client
DE102014206632A1 (en) * 2014-04-07 2015-10-08 Siemens Aktiengesellschaft Methods and devices for the synchronous updating of content on a plurality of control surfaces of control panels
US9159296B2 (en) 2012-07-12 2015-10-13 Microsoft Technology Licensing, Llc Synchronizing views during document presentation
US20150301694A1 (en) * 2014-04-17 2015-10-22 Shindig, Inc. Systems and methods for integrating in-person and online aspects into a seamless event experience
US20160234265A1 (en) * 2015-02-05 2016-08-11 At&T Intellectual Property I, L.P. Location Sharing Service
US20160358126A1 (en) * 2015-06-05 2016-12-08 International Business Machines Corporation Altering a functional characteristic of a computer used by an invitee to a meeting
US20170068448A1 (en) * 2014-02-27 2017-03-09 Keyless Systems Ltd. Improved data entry systems
US9633358B2 (en) 2013-03-15 2017-04-25 Knowledgevision Systems Incorporated Interactive presentations with integrated tracking systems
US20180097754A1 (en) * 2015-06-11 2018-04-05 Alibaba Group Holding Limited Method and Apparatus for Transmitting Business Object
US10033825B2 (en) 2014-02-21 2018-07-24 Knowledgevision Systems Incorporated Slice-and-stitch approach to editing media (video or audio) for multimedia online presentations
US20180225420A1 (en) * 2017-02-09 2018-08-09 Banyan Medical Systems, Inc. Medical Data Sharing in a Replicated Environment
US10382498B2 (en) * 2016-02-17 2019-08-13 Cisco Technology, Inc. Controlling aggregation of shared content from multiple endpoints during an online conference session
US20190286255A1 (en) * 2018-03-16 2019-09-19 Ricoh Company, Ltd. Electronic whiteboard, image display method, and recording medium
US10965883B2 (en) * 2014-05-21 2021-03-30 Mersive Technologies, Inc. Intelligent shared display infrastructure and associated methods
US11093630B2 (en) * 2018-07-12 2021-08-17 International Business Machines Corporation Determining viewable screen content
US11283969B2 (en) * 2019-08-09 2022-03-22 Verizon Media Inc. System and method for managing a virtual studio
US20220247591A1 (en) * 2021-01-30 2022-08-04 Zoom Video Communications, Inc. Multi-point video presentations with live annotation
US20220368738A1 (en) * 2021-05-12 2022-11-17 Benq Corporation Data Sharing Method and Data Sharing System Capable of Providing Various Group Calling Modes
US20230221828A1 (en) * 2020-09-18 2023-07-13 Beijing Bytedance Network Technology Co., Ltd Content display method and apparatus, electronic device, andcomputer-readable storage medium
WO2023218824A1 (en) * 2022-05-10 2023-11-16 Sony Group Corporation Information processing apparatus, information processing method, and program

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7373608B2 (en) * 2004-10-07 2008-05-13 International Business Machines Corporation Apparatus, system and method of providing feedback to an e-meeting presenter
US8015496B1 (en) 2007-10-26 2011-09-06 Sesh, Inc. System and method for facilitating visual social communication through co-browsing
US8739214B2 (en) 2007-11-08 2014-05-27 At&T Intellectual Property I, L.P. Methods, computer program products, and virtual servers for a virtual collaborative environment
US20100287251A1 (en) * 2009-05-06 2010-11-11 Futurewei Technologies, Inc. System and Method for IMS Based Collaborative Services Enabling Multimedia Application Sharing
US20100306685A1 (en) * 2009-05-29 2010-12-02 Microsoft Corporation User movement feedback via on-screen avatars
US20110085018A1 (en) * 2009-10-09 2011-04-14 Culbertson W Bruce Multi-User Video Conference Using Head Position Information
EP2360584B1 (en) * 2010-01-13 2017-06-21 Software AG Mainframe data stream proxy and method for caching communication between emulators and mainframes
US8677253B2 (en) * 2010-05-25 2014-03-18 International Business Machines Corporation Replicating recorded actions across computer systems in a collaborative environment
US9704135B2 (en) * 2010-06-30 2017-07-11 International Business Machines Corporation Graphically recognized visual cues in web conferencing
US8698873B2 (en) * 2011-03-07 2014-04-15 Ricoh Company, Ltd. Video conferencing with shared drawing
US9086798B2 (en) 2011-03-07 2015-07-21 Ricoh Company, Ltd. Associating information on a whiteboard with a user
US8881231B2 (en) 2011-03-07 2014-11-04 Ricoh Company, Ltd. Automatically performing an action upon a login
US9716858B2 (en) 2011-03-07 2017-07-25 Ricoh Company, Ltd. Automated selection and switching of displayed information
US9053455B2 (en) 2011-03-07 2015-06-09 Ricoh Company, Ltd. Providing position information in a collaborative environment
US8581958B2 (en) 2011-04-18 2013-11-12 Hewlett-Packard Development Company, L.P. Methods and systems for establishing video conferences using portable electronic devices
US10044871B2 (en) 2011-04-29 2018-08-07 Crestron Electronics, Inc. Conference system including automated equipment setup
US9294723B2 (en) 2011-04-29 2016-03-22 Creston Electronics, Inc. Meeting management system including automated equipment setup
US10692020B2 (en) * 2011-04-29 2020-06-23 Crestron Electronics, Inc. Real-time automatic meeting room reservation based on the number of actual participants
US9948988B2 (en) 2011-10-04 2018-04-17 Ricoh Company, Ltd. Meeting system that interconnects group and personal devices across a network
US9122444B2 (en) 2012-02-08 2015-09-01 Ricoh Company, Ltd. Network accessible projectors that display multiple client screens at once
US9021371B2 (en) * 2012-04-20 2015-04-28 Logitech Europe S.A. Customizing a user interface having a plurality of top-level icons based on a change in context
US9083844B2 (en) 2012-06-01 2015-07-14 Nintendo Co., Ltd. Computer-readable medium, information processing apparatus, information processing system and information processing method
US9800422B2 (en) 2012-10-26 2017-10-24 International Business Machines Corporation Virtual meetings
US9806894B2 (en) 2012-10-26 2017-10-31 International Business Machines Corporation Virtual meetings
CN107734286B (en) * 2016-08-12 2021-05-04 阿里巴巴集团控股有限公司 Video window display method and device
US10389974B2 (en) 2017-01-16 2019-08-20 Microsoft Technology Licensing, Llc Switch view functions for teleconference sessions
US11488116B2 (en) 2020-05-21 2022-11-01 HUDDL Inc. Dynamically generated news feed
US11769504B2 (en) 2021-06-23 2023-09-26 International Business Machines Corporation Virtual meeting content enhancement triggered by audio tracking
US11711408B2 (en) 2021-07-26 2023-07-25 International Business Machines Corporation Content appearance conversion for remote application sharing

Citations (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5541852A (en) * 1994-04-14 1996-07-30 Motorola, Inc. Device, method and system for variable bit-rate packet video communications
US5657096A (en) * 1995-05-03 1997-08-12 Lukacs; Michael Edward Real time video conferencing system and method with multilayer keying of multiple video images
US5657246A (en) * 1995-03-07 1997-08-12 Vtel Corporation Method and apparatus for a video conference user interface
US5737011A (en) * 1995-05-03 1998-04-07 Bell Communications Research, Inc. Infinitely expandable real-time video conferencing system
US5745161A (en) * 1993-08-30 1998-04-28 Canon Kabushiki Kaisha Video conference system
US5757920A (en) * 1994-07-18 1998-05-26 Microsoft Corporation Logon certification
US5764277A (en) * 1995-11-08 1998-06-09 Bell Communications Research, Inc. Group-of-block based video signal combining for multipoint continuous presence video conferencing
US5828838A (en) * 1996-06-20 1998-10-27 Intel Corporation Method and apparatus for conducting multi-point electronic conferences
US5875296A (en) * 1997-01-28 1999-02-23 International Business Machines Corporation Distributed file system web server user authentication with cookies
US5896128A (en) * 1995-05-03 1999-04-20 Bell Communications Research, Inc. System and method for associating multimedia objects for use in a video conferencing system
US5963547A (en) * 1996-09-18 1999-10-05 Videoserver, Inc. Method and apparatus for centralized multipoint conferencing in a packet network
US5991276A (en) * 1996-11-19 1999-11-23 Fujitsu Limited Videoconference system
US6006253A (en) * 1997-10-31 1999-12-21 Intel Corporation Method and apparatus to provide a backchannel for receiver terminals in a loosely-coupled conference
US6067623A (en) * 1997-11-21 2000-05-23 International Business Machines Corp. System and method for secure web server gateway access using credential transform
US6075571A (en) * 1997-07-29 2000-06-13 Kuthyar; Ashok K. Composite image display device and service for video conferencing
US6195091B1 (en) * 1995-03-09 2001-02-27 Netscape Communications Corporation Apparatus for collaborative computing
US6212206B1 (en) * 1998-03-05 2001-04-03 3Com Corporation Methods and computer executable instructions for improving communications in a packet switching network
US6233341B1 (en) * 1998-05-19 2001-05-15 Visto Corporation System and method for installing and using a temporary certificate at a remote site
US6243129B1 (en) * 1998-01-09 2001-06-05 8×8, Inc. System and method for videoconferencing and simultaneously viewing a supplemental video source
US6285661B1 (en) * 1998-01-28 2001-09-04 Picturetel Corporation Low delay real time digital video mixing for multipoint video conferencing
US6288739B1 (en) * 1997-09-05 2001-09-11 Intelect Systems Corporation Distributed video communications system
US6292225B1 (en) * 1999-05-07 2001-09-18 Sony Corporation Precision horizontal positioning system
US6292834B1 (en) * 1997-03-14 2001-09-18 Microsoft Corporation Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network
US6310857B1 (en) * 1997-06-16 2001-10-30 At&T Corp. Method and apparatus for smoothing and multiplexing video data flows
US6313822B1 (en) * 1998-03-27 2001-11-06 Sony Corporation Method and apparatus for modifying screen resolution based on available memory
US20010043571A1 (en) * 2000-03-24 2001-11-22 Saqib Jang Multiple subscriber videoconferencing system
US6356313B1 (en) * 1997-06-26 2002-03-12 Sony Corporation System and method for overlay of a motion video signal on an analog video signal
US6377282B1 (en) * 1999-03-15 2002-04-23 Sony Corporation Combining images and controlling a cursor when images are combined
US6384862B1 (en) * 1997-03-12 2002-05-07 Telefoaktiebolaget L M Ericsson Imaging system and method for interactive control of image quality
US20020064136A1 (en) * 2000-11-02 2002-05-30 O'neil Timothy M. Conferencing network resource optimization for multi-point conferences
US6405111B2 (en) * 1997-05-16 2002-06-11 Snap-On Technologies, Inc. System and method for distributed computer automotive service equipment
US20020080280A1 (en) * 1996-06-26 2002-06-27 Champion Mark A. System and method for overlay of a motion video signal on an analog video signal
US20020156910A1 (en) * 2001-04-19 2002-10-24 Yuzo Senda Flow control system and method
US20020169961A1 (en) * 2001-05-10 2002-11-14 International Business Machines Corporation Method and apparatus for serving content from a semi-trusted server
US20030016630A1 (en) * 2001-06-14 2003-01-23 Microsoft Corporation Method and system for providing adaptive bandwidth control for real-time communication
US20030023848A1 (en) * 2001-07-27 2003-01-30 Michael Wray Authentication for computer networks
US6519662B2 (en) * 1994-09-07 2003-02-11 Rsi Systems, Inc. Peripheral video conferencing system
US20030037158A1 (en) * 1997-08-22 2003-02-20 Koichi Yano Data communication apparatus and method
US20030074674A1 (en) * 2001-10-17 2003-04-17 Magliaro Maximilian Matthew Method and system for dynamically adjusting video bit rates
US6583806B2 (en) * 1993-10-01 2003-06-24 Collaboration Properties, Inc. Videoconferencing hardware
US20030117486A1 (en) * 2001-12-21 2003-06-26 Bran Ferren Method and apparatus for selection of signals in a teleconference
US20030123464A1 (en) * 2001-12-27 2003-07-03 Eung-Don Lee Method for controlling error of internet fax data
US20030149802A1 (en) * 2002-02-05 2003-08-07 Curry Michael John Integration of audio or video program with application program
US20040015981A1 (en) * 2002-06-27 2004-01-22 Coker John L. Efficient high-interactivity user interface for client-server applications
US20040047290A1 (en) * 2002-04-25 2004-03-11 Sridhar Komandur Multimedia traffic optimization
US20040078478A1 (en) * 2002-10-16 2004-04-22 Nec Corporation Data transmission rate regulating system, monitor and control apparatus of data transmission rate, and data transmission rate regulating method to be used in the same
US6728884B1 (en) * 1999-10-01 2004-04-27 Entrust, Inc. Integrating heterogeneous authentication and authorization mechanisms into an application access control system
US6760749B1 (en) * 2000-05-10 2004-07-06 Polycom, Inc. Interactive conference content distribution device and methods of use thereof
US20040133846A1 (en) * 2003-01-03 2004-07-08 Ramin Khoshatefeh Interactive system and method for graphical document generation
US6775782B1 (en) * 1999-03-31 2004-08-10 International Business Machines Corporation System and method for suspending and resuming digital certificates in a certificate-based user authentication application system
US6785810B1 (en) * 1999-08-31 2004-08-31 Espoc, Inc. System and method for providing secure transmission, search, and storage of data
US20040172656A1 (en) * 2003-02-28 2004-09-02 Kim Myong Gi Two-way audio/video conferencing system
US6819752B2 (en) * 1995-02-16 2004-11-16 Keith Raniere Intelligent switching system for voice and data
US6823452B1 (en) * 1999-12-17 2004-11-23 International Business Machines Corporation Providing end-to-end user authentication for host access using digital certificates
US20040243805A1 (en) * 2003-03-19 2004-12-02 Tomoaki Enokida Digital certificate management system, digital certificate management apparatus, digital certificate management method, program and computer readable information recording medium
US20050099492A1 (en) * 2003-10-30 2005-05-12 Ati Technologies Inc. Activity controlled multimedia conferencing
US20050198123A1 (en) * 2004-02-25 2005-09-08 Pioneer Corporation Network conference system
US6956878B1 (en) * 2000-02-07 2005-10-18 Silicon Light Machines Corporation Method and apparatus for reducing laser speckle using polarization averaging
US6961754B2 (en) * 2001-01-12 2005-11-01 Telefonaktiebolaget Lm Ericsson Interactive access, manipulation, sharing and exchange of multimedia data
US6989856B2 (en) * 2003-10-08 2006-01-24 Cisco Technology, Inc. System and method for performing distributed video conferencing

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE280404T1 (en) 1998-03-13 2004-11-15 Iconics Inc PROCESS CONTROL WITH ACTIVEX
CA2234085A1 (en) 1998-04-03 1999-10-03 Jazz Media Network Communications terminal system

Patent Citations (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5745161A (en) * 1993-08-30 1998-04-28 Canon Kabushiki Kaisha Video conference system
US6583806B2 (en) * 1993-10-01 2003-06-24 Collaboration Properties, Inc. Videoconferencing hardware
US5541852A (en) * 1994-04-14 1996-07-30 Motorola, Inc. Device, method and system for variable bit-rate packet video communications
US5757920A (en) * 1994-07-18 1998-05-26 Microsoft Corporation Logon certification
US6519662B2 (en) * 1994-09-07 2003-02-11 Rsi Systems, Inc. Peripheral video conferencing system
US6819752B2 (en) * 1995-02-16 2004-11-16 Keith Raniere Intelligent switching system for voice and data
US5872922A (en) * 1995-03-07 1999-02-16 Vtel Corporation Method and apparatus for a video conference user interface
US5657246A (en) * 1995-03-07 1997-08-12 Vtel Corporation Method and apparatus for a video conference user interface
US6195091B1 (en) * 1995-03-09 2001-02-27 Netscape Communications Corporation Apparatus for collaborative computing
US5737011A (en) * 1995-05-03 1998-04-07 Bell Communications Research, Inc. Infinitely expandable real-time video conferencing system
US5896128A (en) * 1995-05-03 1999-04-20 Bell Communications Research, Inc. System and method for associating multimedia objects for use in a video conferencing system
US5657096A (en) * 1995-05-03 1997-08-12 Lukacs; Michael Edward Real time video conferencing system and method with multilayer keying of multiple video images
US5764277A (en) * 1995-11-08 1998-06-09 Bell Communications Research, Inc. Group-of-block based video signal combining for multipoint continuous presence video conferencing
US5828838A (en) * 1996-06-20 1998-10-27 Intel Corporation Method and apparatus for conducting multi-point electronic conferences
US20020080280A1 (en) * 1996-06-26 2002-06-27 Champion Mark A. System and method for overlay of a motion video signal on an analog video signal
US5963547A (en) * 1996-09-18 1999-10-05 Videoserver, Inc. Method and apparatus for centralized multipoint conferencing in a packet network
US5991276A (en) * 1996-11-19 1999-11-23 Fujitsu Limited Videoconference system
US5875296A (en) * 1997-01-28 1999-02-23 International Business Machines Corporation Distributed file system web server user authentication with cookies
US6384862B1 (en) * 1997-03-12 2002-05-07 Telefoaktiebolaget L M Ericsson Imaging system and method for interactive control of image quality
US6292834B1 (en) * 1997-03-14 2001-09-18 Microsoft Corporation Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network
US6564128B2 (en) * 1997-05-16 2003-05-13 Snap-On Technologies, Inc. System and method for distributed computer automotive service equipment
US6560516B1 (en) * 1997-05-16 2003-05-06 Snap-On Technologies, Inc. Method for conducting vehicle diagnostic analyses using distributed structure
US6405111B2 (en) * 1997-05-16 2002-06-11 Snap-On Technologies, Inc. System and method for distributed computer automotive service equipment
US6310857B1 (en) * 1997-06-16 2001-10-30 At&T Corp. Method and apparatus for smoothing and multiplexing video data flows
US6356313B1 (en) * 1997-06-26 2002-03-12 Sony Corporation System and method for overlay of a motion video signal on an analog video signal
US6075571A (en) * 1997-07-29 2000-06-13 Kuthyar; Ashok K. Composite image display device and service for video conferencing
US20030037158A1 (en) * 1997-08-22 2003-02-20 Koichi Yano Data communication apparatus and method
US6701372B2 (en) * 1997-08-22 2004-03-02 Canon Kabushiki Kaisha Data communication apparatus and method
US6288739B1 (en) * 1997-09-05 2001-09-11 Intelect Systems Corporation Distributed video communications system
US6006253A (en) * 1997-10-31 1999-12-21 Intel Corporation Method and apparatus to provide a backchannel for receiver terminals in a loosely-coupled conference
US6202084B1 (en) * 1997-10-31 2001-03-13 Intel Corporation System and apparatus to provide a backchannel for a receiver terminal in a conference
US6067623A (en) * 1997-11-21 2000-05-23 International Business Machines Corp. System and method for secure web server gateway access using credential transform
US6243129B1 (en) * 1998-01-09 2001-06-05 8×8, Inc. System and method for videoconferencing and simultaneously viewing a supplemental video source
US6285661B1 (en) * 1998-01-28 2001-09-04 Picturetel Corporation Low delay real time digital video mixing for multipoint video conferencing
US6212206B1 (en) * 1998-03-05 2001-04-03 3Com Corporation Methods and computer executable instructions for improving communications in a packet switching network
US6313822B1 (en) * 1998-03-27 2001-11-06 Sony Corporation Method and apparatus for modifying screen resolution based on available memory
US6233341B1 (en) * 1998-05-19 2001-05-15 Visto Corporation System and method for installing and using a temporary certificate at a remote site
US6377282B1 (en) * 1999-03-15 2002-04-23 Sony Corporation Combining images and controlling a cursor when images are combined
US6775782B1 (en) * 1999-03-31 2004-08-10 International Business Machines Corporation System and method for suspending and resuming digital certificates in a certificate-based user authentication application system
US6292225B1 (en) * 1999-05-07 2001-09-18 Sony Corporation Precision horizontal positioning system
US6785810B1 (en) * 1999-08-31 2004-08-31 Espoc, Inc. System and method for providing secure transmission, search, and storage of data
US6728884B1 (en) * 1999-10-01 2004-04-27 Entrust, Inc. Integrating heterogeneous authentication and authorization mechanisms into an application access control system
US6823452B1 (en) * 1999-12-17 2004-11-23 International Business Machines Corporation Providing end-to-end user authentication for host access using digital certificates
US6956878B1 (en) * 2000-02-07 2005-10-18 Silicon Light Machines Corporation Method and apparatus for reducing laser speckle using polarization averaging
US20010043571A1 (en) * 2000-03-24 2001-11-22 Saqib Jang Multiple subscriber videoconferencing system
US6760749B1 (en) * 2000-05-10 2004-07-06 Polycom, Inc. Interactive conference content distribution device and methods of use thereof
US20020064136A1 (en) * 2000-11-02 2002-05-30 O'neil Timothy M. Conferencing network resource optimization for multi-point conferences
US6961754B2 (en) * 2001-01-12 2005-11-01 Telefonaktiebolaget Lm Ericsson Interactive access, manipulation, sharing and exchange of multimedia data
US20020156910A1 (en) * 2001-04-19 2002-10-24 Yuzo Senda Flow control system and method
US20020169961A1 (en) * 2001-05-10 2002-11-14 International Business Machines Corporation Method and apparatus for serving content from a semi-trusted server
US20030016630A1 (en) * 2001-06-14 2003-01-23 Microsoft Corporation Method and system for providing adaptive bandwidth control for real-time communication
US20030023848A1 (en) * 2001-07-27 2003-01-30 Michael Wray Authentication for computer networks
US20030074674A1 (en) * 2001-10-17 2003-04-17 Magliaro Maximilian Matthew Method and system for dynamically adjusting video bit rates
US20030117486A1 (en) * 2001-12-21 2003-06-26 Bran Ferren Method and apparatus for selection of signals in a teleconference
US20030123464A1 (en) * 2001-12-27 2003-07-03 Eung-Don Lee Method for controlling error of internet fax data
US20030149802A1 (en) * 2002-02-05 2003-08-07 Curry Michael John Integration of audio or video program with application program
US20040047290A1 (en) * 2002-04-25 2004-03-11 Sridhar Komandur Multimedia traffic optimization
US20040015981A1 (en) * 2002-06-27 2004-01-22 Coker John L. Efficient high-interactivity user interface for client-server applications
US20040078478A1 (en) * 2002-10-16 2004-04-22 Nec Corporation Data transmission rate regulating system, monitor and control apparatus of data transmission rate, and data transmission rate regulating method to be used in the same
US20040133846A1 (en) * 2003-01-03 2004-07-08 Ramin Khoshatefeh Interactive system and method for graphical document generation
US20040172656A1 (en) * 2003-02-28 2004-09-02 Kim Myong Gi Two-way audio/video conferencing system
US20040243805A1 (en) * 2003-03-19 2004-12-02 Tomoaki Enokida Digital certificate management system, digital certificate management apparatus, digital certificate management method, program and computer readable information recording medium
US6989856B2 (en) * 2003-10-08 2006-01-24 Cisco Technology, Inc. System and method for performing distributed video conferencing
US20050099492A1 (en) * 2003-10-30 2005-05-12 Ati Technologies Inc. Activity controlled multimedia conferencing
US20050198123A1 (en) * 2004-02-25 2005-09-08 Pioneer Corporation Network conference system

Cited By (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005233A1 (en) * 2006-06-29 2008-01-03 Yigang Cai Online conferencing systems for sharing documents
US8035679B2 (en) * 2006-12-12 2011-10-11 Polycom, Inc. Method for creating a videoconferencing displayed image
US20080136898A1 (en) * 2006-12-12 2008-06-12 Aviv Eisenberg Method for creating a videoconferencing displayed image
US8217987B2 (en) 2006-12-12 2012-07-10 Polycom, Inc. Method for creating a videoconferencing displayed image
US8638355B2 (en) 2006-12-12 2014-01-28 Polycom, Inc. Method for creating a videoconferencing displayed image
US20140040024A1 (en) * 2006-12-18 2014-02-06 U-See 2 Limited Establishment based advertising method and system
US20080316229A1 (en) * 2007-03-19 2008-12-25 Hajime Terayoko Content display method, content display program and content display device
US8341517B2 (en) * 2007-03-19 2012-12-25 Fujifilm Corporation Content display method, content display program and content display device
US20090083639A1 (en) * 2007-09-26 2009-03-26 Mckee Cooper Joel Distributed conference and information system
US20110055724A1 (en) * 2008-04-10 2011-03-03 Creative Technology Ltd Interface for voice communications
US20090292999A1 (en) * 2008-05-21 2009-11-26 Smart Technologies Ulc Desktop sharing method and system
EP2283436A4 (en) * 2008-05-21 2011-11-16 Smart Technologies Ulc Desktop sharing method and system
EP2283436A1 (en) * 2008-05-21 2011-02-16 SMART Technologies ULC Desktop sharing method and system
US8887063B2 (en) 2008-05-21 2014-11-11 Smart Technologies Ulc Desktop sharing method and system
US8862672B2 (en) * 2008-08-25 2014-10-14 Microsoft Corporation Content sharing and instant messaging
US20100050092A1 (en) * 2008-08-25 2010-02-25 Microsoft Corporation Content Sharing and Instant Messaging
US20100105437A1 (en) * 2008-10-24 2010-04-29 Research In Motion Limited Systems and methods for presenting conference call participant indentifier images on a display of a mobile device
US8577418B2 (en) * 2008-10-24 2013-11-05 Blackberry Limited Systems and methods for presenting conference call participant indentifier images on a display of a mobile device
WO2010062799A3 (en) * 2008-11-26 2010-08-19 Radiological Society Of North America, Inc. Personalized, online, scientific interface
WO2010062799A2 (en) * 2008-11-26 2010-06-03 Radiological Society Of North America, Inc. Personalized, online, scientific interface
US20100131856A1 (en) * 2008-11-26 2010-05-27 Brian Joseph Kalbfleisch Personalized, Online, Scientific Interface
US20100257449A1 (en) * 2009-04-07 2010-10-07 Clearslide, Inc. Mixed content type presentation system
US9311618B2 (en) * 2009-04-07 2016-04-12 Clearslide, Inc. Mixed content type presentation system
US20100306018A1 (en) * 2009-05-27 2010-12-02 Microsoft Corporation Meeting State Recall
US20100318916A1 (en) * 2009-06-11 2010-12-16 David Wilkins System and method for generating multimedia presentations
US20100333004A1 (en) * 2009-06-24 2010-12-30 Tandberg Telecom As Method, apparatus and system for modifying a composite video signal
CN102498717A (en) * 2009-06-24 2012-06-13 思科系统国际公司 Method and device for modifying a composite video signal layout
US8898282B2 (en) 2009-07-10 2014-11-25 Novell, Inc. Auto generated and inferred group chat presence
US20110010640A1 (en) * 2009-07-10 2011-01-13 Novell, Inc. Intelligent co-browsing and co-editing
US20110010447A1 (en) * 2009-07-10 2011-01-13 Novell, Inc. Auto generated and inferred group chat presence
US20110150194A1 (en) * 2009-12-23 2011-06-23 Ramprakash Narayanaswamy Web-Enabled Conferencing and Meeting Implementations with Flexible User Calling Features
US9967403B1 (en) 2009-12-23 2018-05-08 8X8, Inc. Web-enabled conferencing and meeting implementations with flexible user calling features
US10237081B1 (en) 2009-12-23 2019-03-19 8X8, Inc. Web-enabled conferencing and meeting implementations with flexible user calling and content sharing features
US20110149809A1 (en) * 2009-12-23 2011-06-23 Ramprakash Narayanaswamy Web-Enabled Conferencing and Meeting Implementations with Flexible User Calling and Content Sharing Features
WO2011140739A1 (en) * 2010-05-13 2011-11-17 中兴通讯股份有限公司 Method, system and server for sharing remote document
CN101834905A (en) * 2010-05-13 2010-09-15 中兴通讯股份有限公司 Remote document sharing method and remote document sharing server
US20120192106A1 (en) * 2010-11-23 2012-07-26 Knowledgevision Systems Incorporated Multimedia authoring tool
US20130002532A1 (en) * 2011-07-01 2013-01-03 Nokia Corporation Method, apparatus, and computer program product for shared synchronous viewing of content
US8817801B1 (en) 2011-07-08 2014-08-26 8X8, Inc. Conferencing and meeting implementations with advanced features
US9401994B1 (en) 2011-07-08 2016-07-26 8×8, Inc. Conferencing and meeting implementations with advanced features
US11683420B1 (en) 2011-07-08 2023-06-20 8X8, Inc. Conferencing and meeting implementations with advanced features
US10686939B1 (en) 2011-07-08 2020-06-16 8X8, Inc. Conferencing and meeting implementations with advanced features
US9008107B1 (en) 2011-07-08 2015-04-14 8X8, Inc. Conferencing and meeting implementations with advanced features
US10230847B1 (en) 2011-07-08 2019-03-12 8X8, Inc. Conferencing and meeting implementations with advanced features
WO2013009996A1 (en) * 2011-07-13 2013-01-17 Watchitoo, Inc. System and method for automatic and dynamic layout design for media broadcast
US20130019187A1 (en) * 2011-07-15 2013-01-17 International Business Machines Corporation Visualizing emotions and mood in a collaborative social networking environment
NO20111075A1 (en) * 2011-07-29 2013-01-30 Cisco Systems Int Sarl Method and end point for changing the composition of a composite video signal
CN103718545A (en) * 2011-07-29 2014-04-09 思科技术公司 Method, computer- readable storage medium, and apparatus for modifying the layout used by a video composing unit to generate a composite video signal
US9497415B2 (en) 2011-07-29 2016-11-15 Cisco Technology, Inc. Method, computer-readable storage medium, and apparatus for modifying the layout used by a video composing unit to generate a composite video signal
WO2013062581A1 (en) * 2011-10-28 2013-05-02 Hewlett-Packard Development Company, L.P. Layout for groups of participants
WO2013062582A1 (en) * 2011-10-28 2013-05-02 Hewlett-Packard Development Company, L.P. Grouping a participant and a resource
US20130254652A1 (en) * 2012-03-12 2013-09-26 Mentormob, Inc. Providing focus to portion(s) of content of a web resource
US9159296B2 (en) 2012-07-12 2015-10-13 Microsoft Technology Licensing, Llc Synchronizing views during document presentation
WO2014014853A3 (en) * 2012-07-17 2014-08-28 Microsoft Corporation Dynamic focus for conversation visualization environments
CN104471598A (en) * 2012-07-17 2015-03-25 微软公司 Dynamic focus for conversation visualization environments
US9813255B2 (en) * 2012-07-30 2017-11-07 Microsoft Technology Licensing, Llc Collaboration environments and views
US20140032679A1 (en) * 2012-07-30 2014-01-30 Microsoft Corporation Collaboration environments and views
CN110008452A (en) * 2012-08-13 2019-07-12 谷歌有限责任公司 Manage shared method and system of the media content between client computer
US10152467B2 (en) * 2012-08-13 2018-12-11 Google Llc Managing a sharing of media content among client computers
WO2014028535A3 (en) * 2012-08-13 2014-05-22 Google Inc. Managing a sharing of media content among client computers
US20140047022A1 (en) * 2012-08-13 2014-02-13 Google Inc. Managing a sharing of media content among cient computers
US20220414321A1 (en) * 2012-08-13 2022-12-29 Google Llc Managing a sharing of media content among client computers
US20190108208A1 (en) * 2012-08-13 2019-04-11 Google Llc Managing a sharing of media content amount client computers
EP2883150A4 (en) * 2012-08-13 2016-07-27 Google Inc Managing a sharing of media content among client computers
US11436406B2 (en) * 2012-08-13 2022-09-06 Google Llc Managing a sharing of media content amount client computers
WO2014028535A2 (en) 2012-08-13 2014-02-20 Google Inc. Managing a sharing of media content among client computers
US11116261B2 (en) * 2012-10-11 2021-09-14 Canon Medical Systems Corporation Medical work support system, surgical clothing, and medical apparatus
US20150213215A1 (en) * 2012-10-11 2015-07-30 Kabushiki Kaisha Toshiba Medical work support system, surgical clothing, and medical apparatus
CN103731405A (en) * 2012-10-16 2014-04-16 华为技术有限公司 Method and equipment for presenting shared information in data sharing process through demonstration side equipment
US20140122588A1 (en) * 2012-10-31 2014-05-01 Alain Nimri Automatic Notification of Audience Boredom during Meetings and Conferences
US20140218462A1 (en) * 2013-02-04 2014-08-07 Hon Hai Precision Industry Co., Ltd. Computing device and method for adjusting video image
US9148626B2 (en) * 2013-02-04 2015-09-29 Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd. Computing device and method for adjusting video image
US10719837B2 (en) 2013-03-15 2020-07-21 OpenExchange, Inc. Integrated tracking systems, engagement scoring, and third party interfaces for interactive presentations
US9633358B2 (en) 2013-03-15 2017-04-25 Knowledgevision Systems Incorporated Interactive presentations with integrated tracking systems
US9462016B2 (en) * 2013-08-20 2016-10-04 Cisco Technology, Inc. Viewing shared documents in a sharing session
US20150058748A1 (en) * 2013-08-20 2015-02-26 Cisco Technology, Inc. Viewing Shared Documents in a Sharing Session
US9612730B2 (en) * 2014-01-13 2017-04-04 Cisco Technology, Inc. Viewing different window content with different attendees in desktop sharing
US20150200979A1 (en) * 2014-01-13 2015-07-16 Cisco Technology, Inc. Viewing different window content with different attendees in desktop sharing
US20150229487A1 (en) * 2014-02-12 2015-08-13 Talk Fusion, Inc. Systems and methods for automatic translation of audio and video data from any browser based device to any browser based client
US10728354B2 (en) 2014-02-21 2020-07-28 OpenExchange, Inc. Slice-and-stitch approach to editing media (video or audio) for multimedia online presentations
US10033825B2 (en) 2014-02-21 2018-07-24 Knowledgevision Systems Incorporated Slice-and-stitch approach to editing media (video or audio) for multimedia online presentations
US10866720B2 (en) * 2014-02-27 2020-12-15 Keyless Systems Ltd. Data entry systems
US20170068448A1 (en) * 2014-02-27 2017-03-09 Keyless Systems Ltd. Improved data entry systems
DE102014206632A1 (en) * 2014-04-07 2015-10-08 Siemens Aktiengesellschaft Methods and devices for the synchronous updating of content on a plurality of control surfaces of control panels
US20150301694A1 (en) * 2014-04-17 2015-10-22 Shindig, Inc. Systems and methods for integrating in-person and online aspects into a seamless event experience
US10965883B2 (en) * 2014-05-21 2021-03-30 Mersive Technologies, Inc. Intelligent shared display infrastructure and associated methods
US20160234265A1 (en) * 2015-02-05 2016-08-11 At&T Intellectual Property I, L.P. Location Sharing Service
US10021152B2 (en) * 2015-02-05 2018-07-10 At&T Intellectual Property I, L.P. Sharing location information for locations accessed during a conference
US20160358126A1 (en) * 2015-06-05 2016-12-08 International Business Machines Corporation Altering a functional characteristic of a computer used by an invitee to a meeting
US10210484B2 (en) * 2015-06-05 2019-02-19 International Business Machines Corporation Altering a functional characteristic of a computer used by an invitee to a meeting
US11075865B2 (en) * 2015-06-11 2021-07-27 Alibaba Group Holding Limited Method and apparatus for transmitting business object
US20180097754A1 (en) * 2015-06-11 2018-04-05 Alibaba Group Holding Limited Method and Apparatus for Transmitting Business Object
US10382498B2 (en) * 2016-02-17 2019-08-13 Cisco Technology, Inc. Controlling aggregation of shared content from multiple endpoints during an online conference session
US20180225420A1 (en) * 2017-02-09 2018-08-09 Banyan Medical Systems, Inc. Medical Data Sharing in a Replicated Environment
US20190286255A1 (en) * 2018-03-16 2019-09-19 Ricoh Company, Ltd. Electronic whiteboard, image display method, and recording medium
US11093630B2 (en) * 2018-07-12 2021-08-17 International Business Machines Corporation Determining viewable screen content
US11283969B2 (en) * 2019-08-09 2022-03-22 Verizon Media Inc. System and method for managing a virtual studio
US20230221828A1 (en) * 2020-09-18 2023-07-13 Beijing Bytedance Network Technology Co., Ltd Content display method and apparatus, electronic device, andcomputer-readable storage medium
US20220247591A1 (en) * 2021-01-30 2022-08-04 Zoom Video Communications, Inc. Multi-point video presentations with live annotation
US11799677B2 (en) * 2021-01-30 2023-10-24 Zoom Video Communications, Inc. Annotation layer permissions
US20220368738A1 (en) * 2021-05-12 2022-11-17 Benq Corporation Data Sharing Method and Data Sharing System Capable of Providing Various Group Calling Modes
US11848971B2 (en) * 2021-05-12 2023-12-19 Benq Corporation Data sharing method and data sharing system capable of providing various group calling modes
WO2023218824A1 (en) * 2022-05-10 2023-11-16 Sony Group Corporation Information processing apparatus, information processing method, and program

Also Published As

Publication number Publication date
US7634540B2 (en) 2009-12-15

Similar Documents

Publication Publication Date Title
US7634540B2 (en) Presenter view control system and method
US10687021B2 (en) User interface with a hierarchical presentation of selection options for selecting a sharing mode of a video conference
US10564711B2 (en) Interactive conferencing system
US9722986B2 (en) Electronic tool and methods for meetings
US6201859B1 (en) Method and apparatus for controlling participant input in a conferencing environment
US7487211B2 (en) Interactive, computer network-based video conferencing system and process
CN113170076B (en) Method and system for communication session
US9973829B2 (en) Method for video communications and terminal, server and system for video communications
US8184141B2 (en) Method and apparatus for face recognition enhanced video mixing
US20040236830A1 (en) Annotation management system
US20090199078A1 (en) Method and apparatus for enhanced video mixing
JPH0946338A (en) Multi-cast communication control system
US8630395B2 (en) System, method and device for multiuser communication
US20130290870A1 (en) Inter-Conference Alerts for Simultaneous Online Conferences
US20210014455A1 (en) Multi-Device Teleconferences
US20100091687A1 (en) Status of events
WO2023020025A1 (en) Screen projection method and electronic device
US20180234505A1 (en) Method for interactive sharing of applications and data between touch-screen computers and computer program for implementing said method
WO2017205227A1 (en) Monitoring network events
US7792901B2 (en) Reconfiguring a collaboration event
JP5994898B2 (en) Information processing apparatus, information processing apparatus control method, and program
KR102636269B1 (en) Group Communications System and Method
Adeboye Exploring the effect of spatial faithfulness on group decision-making
JP4810001B2 (en) Image display device and image display system
US10659732B2 (en) Apparatus for providing multi-party conference and method for assigning encoder thereof

Legal Events

Date Code Title Description
AS Assignment

Owner name: EPSON RESEARCH AND DEVELOPMENT, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:IVASHIN, VICTOR;RASMUSSEN, JAMIE C.;NELSON, STEVE;REEL/FRAME:018383/0633

Effective date: 20060913

AS Assignment

Owner name: SEIKO EPSON CORPORATION, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:EPSON RESEARCH AND DEVELOPMENT, INC.;REEL/FRAME:018511/0764

Effective date: 20061016

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.)

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20171215