Video Conference System and Method
Claim Score by NHIP
Abstract
A method includes receiving a registration message at a video control point (VCP) device, the registration message requesting set up of a video conference between endpoint devices. The video conference is set up to enable a first endpoint device to send media to a second endpoint device without the media passing through the VCP device en route. A communication profile associated with each endpoint device is determined. Configuration settings associated with at least one endpoint device is determined based on the communication profiles. The configuration settings are sent to at least one computing device that is adapted to modify the media based on the configuration settings to generate modified media.

Term
Projected expiry 15 December 2031.
- Priority and filed
- Published
- Today
- Projected expiry
20 claims: 3 independent, 17 dependent
- 1Broadest claimClaim Score 35, narrow(NHIP)A computer-implemented method, comprising:receiving a registration message at a video control point device from a first endpoint device, the registration message requesting set up of a video conference between the first endpoint device and at least one second endpoint device, wherein, in response to the registration message, the video conference is set up to enable the first endpoint device to send first media to the at least one second endpoint device without the first media passing through the video control point device en route to the at least one second endpoint device and to enable the at least one second endpoint device to send second media to the first endpoint device without the second media passing through the video control point device en route to the first endpoint device;determining a first communication profile associated with the first endpoint device;determining at least one second communication profile associated with the at least one second endpoint device;determining configuration settings associated with the first endpoint device based at least partially on the first communication profile and the at least one second communication profile;and sending the configuration settings to at least one computing device that is adapted to modify the second media based on the configuration settings to generate modified second media, wherein the first endpoint device is able to utilize the modified second media, wherein the second media is received by the at least one computing device en route from the at least one second endpoint device to the first endpoint device.
- 13A computing device comprising:a processor;and a memory accessible to the processor, the memory comprising instructions that, when executed by the processor, cause the processor to: receive a registration message at a video control point device from a first endpoint device, the registration message requesting set up of a video conference between the first endpoint device and at least one second endpoint device, wherein, in response to the registration message, the video conference is set up to enable the first endpoint device to send first media to the at least one second endpoint device without the first media passing through the video control point device en route to the at least one second endpoint device and to enable the at least one second endpoint device to send second media to the first endpoint device without the second media passing through the video control point device en route to the first endpoint device;determine a first communication profile associated with the first endpoint device;determine at least one second communication profile associated with the at least one second endpoint device;determine configuration settings associated with the first endpoint device based at least partially on the first communication profile and the at least one second communication profile;and send the configuration settings to at least one computing device that is adapted to modify the second media based on the configuration settings to generate modified second media, wherein the first endpoint device is able to utilize the modified second media, wherein the second media is received by the at least one computing device en route from the at least one second endpoint device to the first endpoint device.
- 19A non-transitory computing-readable medium comprising instructions that, when executed by the processor, cause the processor to:receive a registration message at a video control point device from a first endpoint device, the registration message requesting set up of a video conference between the first endpoint device and at least one second endpoint device, wherein, in response to the registration message, the video conference is set up to enable the first endpoint device to send first media to the at least one second endpoint device without the first media passing through the video control point device en route to the at least one second endpoint device and to enable the at least one second endpoint device to send second media to the first endpoint device without the second media passing through the video control point device en route to the first endpoint device;determine a first communication profile associated with the first endpoint device;determine at least one second communication profile associated with the at least one second endpoint device;determine configuration settings associated with the first endpoint device based at least partially on the first communication profile and the at least one second communication profile;and send the configuration settings to at least one computing device that is adapted to modify the second media based on the configuration settings to generate modified second media, wherein the first endpoint device is able to utilize the modified second media, wherein the second media is received by the at least one computing device en route from the at least one second endpoint device to the first endpoint device.
Independent claims3
61 paragraphs in 4 sections, as filed
FIELD OF THE DISCLOSURE
0001The present disclosure is generally related to video conferencing.
BACKGROUND
0002When a service provider deploys a centralized video conferencing bridge to provide video conferencing services, video conference data from video conferencing terminals participating in a call may be sent to the centralized video conferencing bridge. The centralized video conferencing bridge may send select video conference data to the video conferencing terminals participating in the call. Such a centralized architecture may be inefficient because the video conference data from each of the video conferencing terminals participating in the call may be processed by the centralized video conferencing bridge. For example, when a video conference call uses fifteen megabytes per video conference terminal, a video conference involving three video conference terminals may use forty-five megabytes of bandwidth at the centralized video conferencing bridge to support the call. In addition to having large bandwidth requirements, a centralized video conferencing architecture may not scale easily and may have issues with service availability (e.g., due to a single point of failure).
BRIEF DESCRIPTION OF THE DRAWINGS
<figref idref="DRAWINGS">FIG. 1</figref> is a block diagram of a first particular embodiment of a video conferencing system;
<figref idref="DRAWINGS">FIG. 2</figref> is a block diagram of a second particular embodiment of a video conferencing system;
<figref idref="DRAWINGS">FIG. 3</figref> is a flow diagram of a first particular embodiment of a method to set up a video conference;
<figref idref="DRAWINGS">FIG. 4</figref> is a flow diagram of a second particular embodiment of a method to set up a video conference;
<figref idref="DRAWINGS">FIG. 5</figref> is a block diagram of an illustrative embodiment of a general computer system.
DETAILED DESCRIPTION
0008In a particular embodiment, a computer-implemented method includes receiving a registration message at a video control point device from a first endpoint device. The registration message requests set up of a video conference between the first endpoint device and at least one second endpoint device. In response to the registration message, the video conference is set up to enable the first endpoint device to send first media to the at least one second endpoint device without the first media passing through the video control point device en route to the at least one second endpoint device and to enable the at least one second endpoint device to send second media to the first endpoint device without the second media passing through the video control point device en route to the first endpoint device. The method also includes determining a first communication profile associated with the first endpoint device and determining at least one second communication profile associated with the at least one second endpoint device. The method further includes determining configuration settings associated with the first endpoint device based at least partially on the first communication profile and the at least one second communication profile. The method also includes sending the configuration settings to at least one computing device that is adapted to modify the second media based on the configuration settings to generate modified second media. The first endpoint device is able to utilize the modified second media. The second media is received by the at least one computing device en route from the at least one second endpoint device to the first endpoint device.
0009In another particular embodiment, a computer-readable storage medium includes instructions that, when executed by a processor, cause the processor to receive a registration message at a video control point device from a first endpoint device. The registration message requests set up of a video conference between the first endpoint device and at least one second endpoint device. In response to the registration message, the video conference is set up to enable the first endpoint device to send first media to the at least one second endpoint device without the first media passing through the video control point device en route to the at least one second endpoint device and to enable the at least one second endpoint device to send second media to the first endpoint device without the second media passing through the video control point device en route to the first endpoint device. The instructions are further executable to cause the processor to determine a first communication profile associated with the first endpoint device. The instructions are further executable to cause the processor to determine at least one second communication profile associated with the at least one second endpoint device. The instructions are further executable to cause the processor to determine configuration settings associated with the first endpoint device based at least partially on the first communication profile and the at least one second communication profile. The instructions are further executable to cause the processor to send the configuration settings to at least one computing device that is adapted to modify the second media based on the configuration settings to generate modified second media. The first endpoint device is able to utilize the modified second media. The second media is received by the at least one computing device en route from the at least one second endpoint device to the first endpoint device.
0010In another particular embodiment, a computing device includes a processor and a memory accessible to the processor. The memory includes instructions that, when executed by the processor, cause the processor to receive a registration message at a video control point device from a first endpoint device. The registration message requests set up of a video conference between the first endpoint device and at least one second endpoint device. In response to the registration message, the video conference is set up to enable the first endpoint device to send first media to the at least one second endpoint device without the first media passing through the video control point device en route to the at least one second endpoint device and to enable the at least one second endpoint device to send second media to the first endpoint device without the second media passing through the video control point device en route to the first endpoint device. The instructions are further executable to cause the processor to determine a first communication profile associated with the first endpoint device. The instructions are further executable to cause the processor to determine at least one second communication profile associated with the at least one second endpoint device. The instructions are further executable to cause the processor to determine configuration settings associated with the first endpoint device based at least partially on the first communication profile and the at least one second communication profile. The instructions are further executable to cause the processor to send the configuration settings to at least one computing device that is adapted to modify the second media based on the configuration settings to generate modified second media. The first endpoint device is able to utilize the modified second media. The second media is received by the at least one computing device en route from the at least one second endpoint device to the first endpoint device.
0011Referring to <figref idref="DRAWINGS">FIG. 1</figref>, a block diagram of a first particular embodiment of a video conferencing system using multicast and unicast transmissions is depicted and generally designated <b>100</b>. The system <b>100</b> includes a plurality of video conference endpoints, such as a first terminal <b>102</b>, a second terminal <b>103</b>, and a third terminal <b>104</b>, in communication with a Video Control Point (VCP) <b>108</b>. The VCP <b>108</b> may include a computing device or a set of computing devices that facilitate decentralized video conference communications. The system <b>100</b> illustrates how the terminals <b>102</b>-<b>104</b> register with the VCP <b>108</b> and communicate with one another. The system <b>100</b> also illustrates set up of the video conference by the VCP <b>108</b>, including configuration of one or more devices in a network, such as edge devices <b>170</b>-<b>172</b>, through which video conference data is transmitted. Although three terminals <b>102</b>-<b>104</b> are illustrated in <figref idref="DRAWINGS">FIG. 1</figref>, the system <b>100</b> may be scaled to accommodate more than the three terminals <b>102</b>-<b>104</b>.
0012The terminals <b>102</b>-<b>104</b> may be video conferencing terminals located in geographically dispersed video conferencing locations. The terminals <b>102</b>-<b>104</b> may be coupled to or integrated with a video capture device (e.g., video camera), a video display device, an audio capture device (e.g., microphone), a computing device, another conferencing-related device, or any combination thereof. In a particular embodiment, the terminals <b>102</b>-<b>104</b> have different capabilities. One or more of the terminals <b>102</b>-<b>104</b> generates or sends video conference data that is distinct from video conference data generated, sent or used by one or more of the other terminals <b>102</b>-<b>104</b>. To illustrate, the first terminal <b>102</b> may be configured to send video data at a first display resolution and the second terminal <b>103</b> may be configured to receive or display video data at a second display resolution that is different than the first display resolution. The second terminal <b>103</b> may be limited to the second display resolution by hardware or software of the second terminal <b>103</b>, a network connection of the second terminal <b>103</b>, or a combination thereof. To accommodate limitations of the second terminal <b>103</b>, the first terminal <b>102</b> may be able to reduce the display resolution of video data sent by the first terminal <b>102</b>. However, when the third terminal <b>104</b> is able to receive and use video data at the first display resolution, reducing the display resolution of the video data sent by the first terminal <b>102</b> may be undesirable since this would unnecessarily reduce the display resolution of video data received at the third terminal <b>104</b>.
0013In the system <b>100</b>, the edge devices <b>170</b>-<b>172</b> may be configured by the VCP <b>108</b> to process data to be provided to each corresponding terminal <b>102</b>-<b>104</b>. To illustrate, the first edge device <b>170</b> may process video conference data to be provided to the first terminal <b>102</b>, the second edge device <b>171</b> may process video conference data to be provided to the second terminal <b>103</b>, and the third edge device <b>172</b> may process video conference data to be provided to the third terminal <b>104</b>. The VCP <b>108</b> may send data to each edge device <b>170</b>-<b>172</b> that configures the edge device to process the video conference data according to the capabilities or user configuration of the corresponding terminal <b>102</b>-<b>104</b>. Thus, each terminal <b>102</b>-<b>104</b> can transmit video conference data according to its capabilities and configuration and each terminal <b>102</b>-<b>104</b> can receive video conference data from other terminals according to its capabilities and configuration. To illustrate, in the example described above, the first terminal <b>102</b> can send video data at the first display resolution, the second terminal <b>103</b> can receive the video data at the second resolution (after processing by the second edge device <b>171</b>), and the third terminal <b>104</b> can receive the video data at the first display resolution. Display resolution is just one example of capabilities or configuration of the terminals <b>102</b>-<b>104</b> that may be different between two or more terminals. Other examples include, but are not limited to, frame rate, bandwidth, communication protocol used, and so forth.
0014To set up or join a video conference call, the terminals <b>102</b>-<b>104</b> may send requests to the VCP <b>108</b> to join the video conferencing call. The terminals <b>102</b>-<b>104</b> may communicate with the VCP <b>108</b> via a network (not shown) that includes the edge devices <b>170</b>-<b>172</b>. For example, the terminals <b>102</b>-<b>104</b> may send data packets, such as Internet Protocol (IP) data packets, to the VCP <b>108</b> via the edge devices <b>170</b>-<b>172</b> and possibly one or more additional network devices. The data packets may be sent via multicast or via unicast transmission. For example, IP multicast may be used for one-to-many communication over an IP infrastructure in a network. Multicast may use network infrastructure efficiently because a source sends a packet only once, even when sending to a large number of receivers. Nodes of the network, such as edge devices <b>170</b>-<b>172</b>, may replicate the packet to reach multiple receivers only as needed. Additionally, the edge devices <b>170</b>-<b>172</b> may process the contents of the data packets.
0015The edge devices <b>170</b>-<b>172</b> may be located at various physical or logical positions in the network. Thus, each of the edge devices <b>170</b>-<b>172</b> may include or may be co-located with other network devices, such as routers, switches, digital subscriber line access multiplexors, gateway devices (e.g., residential gateway devices), video conference provider servers, other network computing devices or nodes, or any combination thereof. The edge devices <b>170</b>-<b>172</b> may be physically and logically distinct from the VCP <b>108</b>.
0016The VCP <b>108</b> may include a software program executing on a computing device. To set up a video conference call (e.g., in response to requests from one or more of the terminals <b>102</b>-<b>104</b>), the VCP <b>108</b> may send instructions to the terminals <b>102</b>-<b>104</b>, to the edged devices <b>170</b>-<b>172</b>, to other devices of the network (not shown), or any combination thereof. For example, instructions sent to the terminals <b>102</b>-<b>104</b> may direct each of the terminals <b>102</b>-<b>104</b> to send video conference data to a particular multicast group (e.g. one of the multicast groups <b>110</b>-<b>112</b>), to receive video conference data from a particular multicast group, to monitor a multicast control group <b>113</b>, to perform other actions, or any combination thereof. The instructions sent to each of the edge devices <b>170</b>-<b>172</b> may direct the edge device to route data to or from the corresponding terminal in a particular manner (e.g., via a particular route), to process the video conference data in a particular manner, to perform other actions, or any combination thereof. The VCP <b>108</b> may also monitor terminals participating in the video conference call, such as the terminals <b>102</b>-<b>104</b>, determine an active talker terminal, instruct the terminals to send video data to particular multicast groups, instruct the terminals to receive video data from particular multicast groups, and so forth. In a particular embodiment, at least a portion of the data exchanged by the terminals <b>102</b>-<b>104</b> (such as video data of the video conference call) does not pass through the VCP <b>108</b> en route between the terminals <b>102</b>-<b>104</b>.
0017After a video conference has been set up, the VCP <b>108</b> may instruct the terminals <b>102</b>-<b>104</b> to send or receive data from particular multicast groups via a control multicast group <b>113</b>. During the video conference, a terminal may send video conference data to a multicast group and another terminal may monitor (e.g., receive) video conference data from that multicast group. When a terminal is instructed to send video conference data to a particular multicast group, the particular multicast group may be referred to as a send multicast group for that terminal. When a terminal is instructed to monitor (e.g., receive) video conference data via a particular multicast group, the particular multicast group may be referred to as a receive multicast group for that terminal. For example, when the VCP <b>108</b> instructs the first terminal <b>102</b> to send video conference data <b>150</b> to a first multicast group <b>110</b>, the VCP <b>108</b> may assign the first multicast group <b>110</b> as the send multicast group of the first terminal <b>102</b>. When the VCP <b>108</b> instructs the first terminal <b>102</b> to monitor video conference data <b>140</b> via the second multicast group <b>111</b>, the VCP <b>108</b> may assign the second multicast group <b>111</b> as the receive multicast group of the first terminal <b>102</b>.
0018In operation, to initiate a videoconference, one or more of the terminals <b>102</b>-<b>104</b> may register with the VCP <b>108</b>. For example, each of the terminals <b>102</b>-<b>104</b> may send a unicast registration message to the VCP <b>108</b>. In response to registration messages from the terminals <b>102</b>-<b>104</b>, the VCP may set up the video conference by assigning each of the terminals <b>102</b>-<b>104</b> to a send multicast group and a receive multicast group and may designate the control multicast group <b>113</b>. For example, the VCP <b>108</b> may assign the terminals <b>102</b>-<b>104</b> to the send and receive multicast groups and designate the control group using unicast signals (not shown) from the VCP <b>108</b> to each terminal <b>102</b>-<b>104</b>. In an illustrative example, the VCP <b>108</b> may assign the terminals to roles to determine the multicast groups that the terminals send to and receive from. The roles of the terminals <b>102</b>-<b>104</b> may be determined based on the registration order of the terminals <b>102</b>-<b>104</b> or based on other factors, such as default roles assigned to the terminals <b>102</b>-<b>104</b>. Additional roles may also be defined when additional Coder-Decoders (CODECs) and other features are made available. For purposes of illustration, in <figref idref="DRAWINGS">FIG. 1</figref>, the first terminal <b>102</b> is assigned the role of Active Talker, the second terminal <b>103</b> is assigned the role of Previous Talker, and the third terminal <b>104</b> (and any other terminals that may participate in the video conference and that are not shown) is assigned the role of Listener.
0019Additionally, during set up of the video conference, the VCP <b>108</b> may determine a profile <b>180</b> associated with each of the terminals <b>102</b>-<b>104</b>. For example, the VCP <b>108</b> may determine a first communication profile associated with the first terminal <b>102</b>, a second communication profile associated with the second terminal <b>103</b>, and a third communication profile associated with the third terminal <b>104</b>. The profiles <b>180</b> may indicate video conference capabilities (such as user configurable options and hardware, software or operational limitations) of the terminals <b>102</b>-<b>104</b> or network connections associated with the terminals <b>102</b>-<b>104</b>. The video conference capabilities may indicate types and rates of information that can be sent by or received and used by each of the terminals <b>102</b>-<b>104</b>. For example, the profiles <b>180</b> may indicate a display frame rate of each of the terminals <b>102</b>-<b>104</b>, a bandwidth capacity of each of the terminals <b>102</b>-<b>104</b>, a display resolution of each of the terminals <b>102</b>-<b>104</b>, a video or audio CODEC used by each of the terminals <b>102</b>-<b>104</b>, a video or audio data protocol used by each of the terminals <b>102</b>-<b>104</b>, other information about data that will be transmitted by or that can be received and used by each of the terminals <b>102</b>-<b>104</b>, or any combination thereof. The profiles <b>180</b> may also include information about usage preferences or restrictions associated with each of the terminals <b>102</b>-<b>104</b>. For example, the profiles <b>180</b> may indicate a conference restriction, such as a restriction that only allows a particular terminal to communicate with one or more designated terminals. In another example, restrictions may limit particular uses of particular terminals based on which terminals are participating in the video conference, based on a purpose or subject matter of the video conference, based on a time or duration of the video conference, based on another specified criterion, or any combination thereof. The profiles <b>180</b> may further include preferences associated with each of the terminals <b>102</b>-<b>104</b>. For example, the profiles <b>180</b> may indicate a preferred routing for media of the video conference. To illustrate, the preferred routing may indicate that an audio or video portion of the video conference is to be sent to one or more additional devices <b>190</b>. The one or more additional devices <b>190</b> may include devices that provide supplemental services, such as a translating of the media, recording media, converting voice to text, overlaying content, supporting a collaborative computing environment, other supplemental services, or any combination thereof. The additional devices <b>190</b> are illustrated in <figref idref="DRAWINGS">FIG. 1</figref> as receiving data from and sending data to the first multicast group <b>110</b>; however, in various embodiments, the additional devices <b>190</b> may receive data from and send data to any of the multicast groups <b>110</b>-<b>112</b> or directly from one or more of the terminals <b>102</b>-<b>104</b> or edge devices <b>170</b>-<b>172</b>.
0020Based on the profiles <b>180</b>, the VCP <b>108</b> may determine configuration settings <b>181</b> associated with each of the terminals <b>102</b>-<b>104</b>. The VCP <b>108</b> may send the determined configuration settings <b>181</b> for each terminal <b>102</b>-<b>104</b> to the corresponding edge device <b>170</b>-<b>172</b> associated with the terminal. For example, the VCP <b>108</b> may send configuration settings <b>181</b> associated with the first terminal <b>102</b> to the first edge device <b>170</b> that is associated with the first terminal <b>102</b> via a first edge control transmission <b>160</b>. Likewise, the VCP <b>108</b> may send configuration settings <b>181</b> associated with the second terminal <b>103</b> to the second edge device <b>171</b> that is associated with the second terminal <b>103</b> via a second edge control transmission <b>161</b>. Additionally, the VCP <b>108</b> may send configuration settings <b>181</b> associated with the third terminal <b>104</b> to the third edge device <b>172</b> that is associated with the third terminal <b>104</b> via a third edge control transmission <b>162</b>. The edge devices <b>170</b>-<b>172</b> may be adapted to modify media en route to the associated terminal based on the configuration settings <b>181</b>. For example, the terminals <b>102</b>-<b>104</b> may each encode video conference data using scalable video coding. Scalable video coding may encode video data into a plurality of layers. One or more of the layers may be removed without rendering the video data unusable by another terminal. Removing one or more of the layers may generate modified media that is useable by a particular one of the terminals <b>102</b>-<b>104</b>. To illustrate, the first edge device <b>170</b> may receive video data that has a plurality of layers and may remove one or more of the plurality of layers to generate modified media that is sent to the first terminal <b>102</b>. Removing the one or more layers may change a bandwidth used to transmit the video content, may change a frame rate of the video content, may change a display resolution of the video content, may change a spatial portion of the video content transmitted (e.g., remove live images and only show graphics), may change other portions of the video content, or any combination thereof.
0021The configuration settings <b>181</b> may also cause the edge devices <b>170</b>-<b>172</b> to route the video conference data in a particular manner. For example, the configuration settings <b>181</b> cause one or more of the edge devices <b>170</b>-<b>172</b> to route at least a portion of the video conference data to one of the additional devices <b>190</b>. In another example, particular configurations settings <b>181</b> may be sent from the VCP <b>108</b> to the additional devices <b>190</b> to cause the additional devices <b>190</b> to provide supplemental services.
0022The VCP <b>108</b> may identify a particular multicast group and instruct each of the terminals <b>102</b>-<b>104</b> participating in the video conference call to send its video conference data to the particular multicast group. Video conference data may include video and audio corresponding to the video. The particular multicast group may be a multicast group to which one or more of the terminals <b>102</b>-<b>104</b> sends its video conference data (e.g., send multicast group). To illustrate, each of the terminals <b>102</b>-<b>104</b> may be assigned a separate multicast group to which video conference data of the terminal is to be sent. Additionally, the VCP <b>108</b> may identify a particular multicast group and instruct each of the terminals <b>102</b>-<b>104</b> to monitor (e.g., receive) video conference data from the particular multicast group (e.g., receive multicast group). The VCP <b>108</b> may instruct the first terminal <b>102</b> to send video conference data <b>150</b> to the first multicast group <b>110</b> and to monitor video conference data <b>140</b> from the second multicast group <b>111</b> (e.g., to monitor the Previous Talker). The VCP <b>108</b> may instruct the second terminal <b>103</b> to send video conference data <b>141</b> to the second multicast group <b>111</b> and to monitor video conference data <b>151</b> from the first multicast group <b>110</b> (e.g., to monitor the Active Talker). The VCP <b>108</b> may instruct the third terminal <b>104</b>, and any subsequently registered terminals, to not send any video conference data and to monitor video conference data <b>152</b> from the first multicast group <b>110</b> (e.g., to monitor the Active Talker). Alternately, the VCP <b>108</b> may instruct the third terminal <b>104</b>, and any subsequently registered terminals, to send video conference data to a third multicast group <b>112</b>.
0023After the video conference is set up, the VCP <b>108</b> may use the control multicast group <b>113</b> to send control information to the terminals <b>102</b>, <b>104</b>, the edge devices <b>170</b>-<b>172</b>, the additional devices <b>190</b>, or any combination thereof. For example, the VCP <b>108</b> may send multicast signals <b>120</b>-<b>122</b> via the control multicast group <b>113</b> to indicate when roles of the terminals (e.g., an Active Talker, a Previous Talker, and a Listener) are to change.
0024After registering with the VCP <b>108</b>, each of the terminals <b>102</b>-<b>104</b> may start sending an audio portion of its video conference data to the VCP <b>108</b>. For example, the terminals <b>102</b>-<b>104</b> may send the audio portions to the VCP <b>108</b> via unicast transmissions. To illustrate, the first terminal <b>102</b> may send the audio portion of the video conference data <b>130</b> to the VCP <b>108</b> via a first unicast transmission. The second terminal <b>103</b> may send the audio portion of the video conference data <b>131</b> to the VCP <b>108</b> via a second unicast transmission. The third terminal <b>104</b> may send the audio portion of the video conference data <b>132</b> to the VCP <b>108</b> via a third unicast transmission. The VCP <b>108</b> may monitor the audio portions of the video conference data <b>130</b>-<b>132</b> to determine which of the terminals <b>102</b>-<b>104</b> is active (e.g., someone near the terminal is talking) For example, the VCP <b>108</b> may determine which of the terminals <b>102</b>-<b>104</b> is active based on a volume of the audio portion of the video conference data <b>130</b>-<b>132</b>, a newest to talk (e.g., round robin), a spoken instruction, an electronic instruction, a talk request queue, another determination method, or any combination thereof. After determining which of the terminals <b>102</b>-<b>104</b> is active, the VCP <b>108</b> may instruct the terminals <b>102</b>-<b>104</b> to change roles via the multicast control transmissions <b>120</b>-<b>122</b>. For example, the VCP <b>108</b> may instruct the terminals <b>102</b>-<b>104</b> to change the multicast group <b>110</b>-<b>112</b> to which video conference data is sent. Alternately, the VCP <b>108</b> may instruct the terminals <b>102</b>-<b>104</b> to change the multicast group <b>110</b>-<b>112</b> from which video conference data is received. Thus, the audio portion of the video conference data <b>130</b>-<b>132</b> may be used by the VCP <b>108</b> to determine which of the terminals <b>102</b>-<b>122</b> should be assigned the role of Active Talker.
0025During call setup, the first terminal <b>102</b> that registers with the VCP <b>108</b> may be assigned the role of Active Talker. The Active Talker may be instructed to monitor the second multicast group <b>111</b> (e.g., to receive video conference data <b>140</b> from the Previous Talker). Additionally, the Active Talker may send video conference data <b>150</b> to the first multicast group <b>110</b>, which all of the other terminals <b>103</b>-<b>104</b> may monitor. Thus, a terminal assigned the role of Active Talker (e.g., the first terminal <b>102</b> as illustrated in <figref idref="DRAWINGS">FIG. 1</figref>) may not receive video conference data from itself, but instead receives video conference data <b>140</b> from the terminal assigned the role of Previous Talker (e.g., the second terminal <b>103</b> as illustrated in <figref idref="DRAWINGS">FIG. 1</figref>). The second terminal <b>103</b> that registers with the VCP <b>108</b> may be assigned the role of Previous Talker. The Previous Talker may send video conference data <b>141</b> to the second multicast group <b>111</b> (which the Active Talker monitors). The Previous Talker may monitor the first multicast group <b>110</b> (e.g., receive video conference data <b>151</b>). All other terminals, i.e., any terminal that is not assigned the role of Active Talker or Previous Talker, may be assigned the role of Listener. Any terminal assigned the role of Listener may not send any video conference data or may send video conference data <b>153</b> to one or more third multicast groups <b>112</b>. Additionally, Listeners may monitor the first multicast group <b>110</b> to receive video conference data <b>152</b> from the Active Talker.
0026Thus, by using the VCP <b>108</b> and the multicast groups <b>110</b>-<b>113</b>, video conferencing may be performed without routing video conference data <b>140</b>, <b>141</b>, <b>150</b>-<b>153</b> through a centralized video conference system. In addition, bandwidth used to implement the video conference can be reduced by multicasting the video conference data <b>140</b>, <b>141</b>, <b>150</b>-<b>153</b>. Multicasting may enable efficient delivery of the video conference data <b>140</b>, <b>141</b>, <b>150</b>-<b>153</b> to multiple destinations because the video conference data <b>140</b>, <b>141</b>, <b>150</b>-<b>153</b> is sent over each link in a network once and the video conference data is replicated only when the links to the multiple destinations split. An added benefit of multicasting is that multicasting scales to a large number of terminals by not requiring prior knowledge of how many terminals there are. Multicast utilizes network infrastructure efficiently by enabling a source terminal to send a packet (e.g., a packet including video conference data) only once, even when the packet is being delivered to a large number of other terminals. Nodes in the network (e.g., the edge devices <b>170</b>-<b>172</b>) replicate the packet to reach multiple terminals as needed. Thus, using multicasting to deliver the video conference data <b>140</b>, <b>141</b>, <b>150</b>-<b>153</b> for a video conference call between three or more terminals may result in a significant decrease in the amount of bandwidth used on the network (driving down the cost to deliver the service) as well as a reduction in latency for video conference calls. Additionally, the settings <b>181</b> may enable diverse terminals (e.g., terminals with different capabilities or configurations) to communicate without using a centralized device to process the video conference data exchanged by the terminals.
0027Referring to <figref idref="DRAWINGS">FIG. 2</figref>, a second block diagram of the video conferencing system <b>100</b> is depicted. The second block diagram of the system <b>100</b> illustrates a state of the system after roles of the terminals <b>102</b>-<b>104</b> are changed. In particular, as illustrated in <figref idref="DRAWINGS">FIG. 2</figref>, the second terminal <b>103</b> has been assigned the role of Active Talker (e.g., in response to a user at the second terminal <b>103</b> speaking or requesting to speak).
0028As described above, the VCP <b>108</b> may monitor the unicast audio portion of the video conference data <b>130</b>-<b>132</b> from the terminals <b>102</b>-<b>104</b>. The VCP <b>108</b> may determine that the second terminal <b>103</b> is active based on the unicast audio portion of the video conference data <b>131</b> from the second terminal <b>103</b>. In response, the VCP <b>108</b> may send a control message via a unicast transmission to one or more of the terminals <b>102</b>-<b>104</b> or via a message to the control multicast group <b>113</b>. The message may change the role of the first terminal <b>102</b> from Active Talker to Previous Talker. Additionally, the message may change the role of the second terminal <b>103</b> to Active Talker. The remaining terminals (e.g., the third terminal <b>104</b>) may remain Listeners.
0029Changing the roles of the first terminal <b>102</b> and the second terminal <b>103</b> may result in each of the terminals <b>102</b>-<b>104</b> sending video conference data to a different multicast group, receiving video conference data from a different multicast group, or both. To illustrate, in the embodiment illustrated in <figref idref="DRAWINGS">FIG. 2</figref>, each terminal <b>102</b>-<b>104</b> is assigned a send multicast group which does not change when roles change. Rather, to implement changing the roles of the terminals <b>102</b>-<b>104</b>, one or more of the terminals may change a multicast group that it receives video conference data from. Thus, when the second terminal <b>103</b> becomes the Active Talker, the third terminal <b>172</b> (and other Listeners) may receive video conference data from the second multicast group <b>111</b>. The first terminal <b>102</b> was already receiving video conference data from the second multicast group <b>111</b> (as shown in <figref idref="DRAWINGS">FIG. 1</figref>), so the first terminal <b>102</b> continues to receive the video conference data from the second multicast group <b>111</b>. The second terminal <b>103</b> receives video conference data from the Previous Talker, which in this example is the first terminal <b>102</b>. Accordingly, the second terminal continues to receive video conference data from the first multicast group <b>110</b>.
0030In another particular embodiment, changing the roles of the terminals may be implemented by changing which multicast group <b>110</b>-<b>113</b> one or more of the terminals <b>102</b>-<b>104</b> send video conference data to. For example, the first multicast group <b>110</b> may always be associated with the Active Talker and the second multicast group <b>111</b> may always be associated with the Previous Talker. That is, whichever terminal <b>102</b>-<b>104</b> is the Active Talker may send video conference data to the first multicast group <b>110</b>, and whichever terminal <b>102</b>-<b>104</b> is the Previous Talker may send video conference data to the second multicast group <b>111</b>. In this embodiment, when the roles of the terminals <b>102</b>-<b>104</b> change, the new Active Talker begins sending video conference data to the first multicast group <b>110</b> and the new Previous Talker begins sending video conference data to the second multicast group. Listeners continue to monitor the Active Talker via the first multicast group <b>110</b>. As described above, Listeners may send video conference data to one or more third multicast groups <b>112</b>, or may send no video conference data.
0031When the roles of the terminals <b>102</b>-<b>104</b> change, the VCP <b>108</b> may send new settings <b>181</b> to the edge devices <b>170</b>-<b>172</b> based on the new roles. Alternately, the settings <b>181</b> sent by the VCP <b>108</b> to the edge devices <b>170</b>-<b>172</b> when the video conference was set up may include information that enables the edge devices <b>170</b>-<b>172</b> to process data from each of terminals <b>102</b>-<b>104</b>. To illustrate, the settings <b>181</b> sent to the first edge device <b>170</b> during set up of the video conference may include information that enables the first edge device <b>170</b> to process video conference data from the second terminal <b>103</b>, the third terminal <b>104</b>, or both terminals <b>103</b>, <b>104</b>. When a new terminal joins the video conference (e.g., after the video conference has been set up) or when the new terminal becomes the Active Talker, the VCP <b>108</b> may send new settings based on the profiles <b>180</b> to enable the edge devices <b>170</b>-<b>172</b> to process video conference data from the new terminal for use by terminals <b>102</b>-<b>104</b> associated with the edge devices <b>170</b>-<b>172</b>.
0032Thus, by using the VCP <b>108</b> and the multicast groups <b>110</b>-<b>112</b>, video conferencing calls can be conducted without using a centralized video conferencing bridge. In addition, bandwidth requirements can be reduced by multicasting the video conference data. Thus, using multicasting to deliver video conference data of a video conference call between three or more terminals may result in a significant decrease in the amount of bandwidth used on the network (driving down the cost to deliver the service) as well as a reduction in latency for video conference calls.
0033<figref idref="DRAWINGS">FIG. 3</figref> is a flow diagram of a first particular embodiment of a method to set up a video conference. The method may be performed by a Video Control Point (VCP) device, such as the VCP <b>108</b> of <figref idref="DRAWINGS">FIGS. 1 and 2</figref>.
0034The method may include, at <b>302</b>, receiving a registration message at a VCP device from a first endpoint device. For example, the first endpoint device may be one or the terminals <b>102</b>-<b>104</b> of <figref idref="DRAWINGS">FIGS. 1 and 2</figref>. The registration message may request set up of a video conference between the first endpoint device and at least one second endpoint device. In response to the registration message, the VCP device may set up the video conference to enable the first endpoint device to send first media to the at least one second endpoint device without the first media passing through the VCP device en route to the at least one second endpoint device. The video conference may also enable the at least one second endpoint device to send second media to the first endpoint device without the second media passing through the VCP device en route to the first endpoint device. That is, the VCP device may not be a centralized video conferencing bridge that routes data between the endpoint devices.
0035The method may include, at <b>304</b>, determining a first communication profile associated with the first endpoint device, and determining at least one second communication profile associated with the at least one second endpoint device, at <b>306</b>. For example, the communication profiles may include the profiles <b>180</b> of <figref idref="DRAWINGS">FIGS. 1 and 2</figref>. The profiles may be stored at a memory accessible to the VCP device or may be generated dynamically by the VCP device by querying the endpoint devices. Configuration settings associated with the first endpoint device may be determined based at least partially on the first communication profile and the at least one second communication profile, at <b>308</b>. Configuration settings associated with the one or more second endpoint device may also be determined.
0036The method may include, at <b>310</b>, sending the configuration settings to at least one computing device that is adapted to modify the second media based on the configuration settings to generate modified second media. The second media may be received by the at least one computing device en route from the at least one second endpoint device to the first endpoint device. For example, the at least one computing device may include one or more of the edge devices <b>170</b>-<b>172</b> of <figref idref="DRAWINGS">FIGS. 1 and 2</figref>. The first endpoint device may be able to utilize the modified second media. That is, the modified second media may conform to capabilities and configuration of the first endpoint device.
0037<figref idref="DRAWINGS">FIG. 4</figref> is a flow diagram of a second particular embodiment of a method to set up a video conference. The method may be performed by a Video Control Point (VCP) device, such as the VCP <b>108</b> of <figref idref="DRAWINGS">FIGS. 1 and 2</figref>.
0038The method may include, at <b>402</b>, receiving a registration message at a VCP device from a first endpoint device. For example, the first endpoint device may be one or the terminals <b>102</b>-<b>104</b> of <figref idref="DRAWINGS">FIGS. 1 and 2</figref>. The registration message may request set up of a video conference between the first endpoint device and at least one second endpoint device. In response to the registration message, the VCP device may set up the video conference to enable the first endpoint device to send first media to the at least one second endpoint device without the first media passing through the VCP device en route to the at least one second endpoint device. The video conference may also enable the at least one second endpoint device to send second media to the first endpoint device without the second media passing through the VCP device en route to the first endpoint device.
0039The method may include, at <b>404</b>, determining communication profiles associated with the endpoint devices. For example, the communication profiles may include the profiles <b>180</b> of <figref idref="DRAWINGS">FIGS. 1 and 2</figref>. The communication profiles may be stored at a memory accessible to the VCP device or may be generated dynamically by the VCP device. For example, the VCP device may query each of the endpoint devices regarding capabilities or configuration of the endpoint device.
0040The communication profiles may include conference restrictions associated with one or more of the endpoint devices. For example, a conference restriction may include a “whitelist” to indicate that a first endpoint device is only authorized to conduct video conferences with a particular second endpoint device. In another example, a conference restriction may include a “blacklist” to indicate that a first endpoint device is authorized to conduct video conferences with other endpoint devices except for particular endpoint device. In another example, a conference restriction may indicate that the first endpoint device is only authorized to conduct video conferences during specified time periods. In another example, a conference restriction may indicate that the first endpoint device is authorized to (or is not authorized to) conduct video conferences related to particular subject matter. In another example, a conference restriction may indicate that the first endpoint device is only authorized to conduct video conferences that are recorded or are not recorded. Other conference restrictions or combinations of conference restrictions may also be used. The method may include, at <b>406</b>, analyzing the conference restrictions associated with one or more of the endpoint devices. The conference restrictions may be analyzed to determine whether each of the endpoint devices is authorized to participate in the video conference or to determine specific requirements of the video conference for the endpoints to participate. To illustrate, the conference restrictions may be analyzed to determine whether the video conference can be recorded. When an endpoint device is not authorized to participate in the video conference based on the conference restriction, the configuration settings associated with that endpoint may not be sent, at <b>412</b>.
0041The method may include, at <b>408</b>, determining preferred routing of media of the video conference based on at least one of the communication profiles. For example, one of the communication profiles may indicate that at least a portion of the media of the video conference (e.g., audio data, video data, etc.) should be sent to one or more additional devices besides the endpoint device, such as the one or more additional devices <b>190</b> of <figref idref="DRAWINGS">FIG. 1</figref>. The one or more additional devices may process the media to provide supplemental services for the video conference. The supplemental services may include recording, translation, voice-to-text conversion, overlaying content, other services, or any combination thereof. In another example, the preferred routing may indicate particular network connections that should be used to route at least a portion of the data. For example, a particular endpoint device may be associated with more than one network connection (e.g., to more than one video conference service provider or more than one Internet service provider). The preferred routing may include rules or settings that indicate which of the available network connections to use for the video conference. For example, settings may indicate that a particular network connection is always to be used. In another example, a rule may include information to select a lower cost or higher quality network connection. In another example, rules may indicate a particular network connection to use based on a subject matter of the video conference or endpoints participating in the video conference.
0042The method may include, at <b>410</b>, determining configuration settings associated with the endpoint devices based at least partially on the communication profiles. The configuration settings may also be determined based on the conference restrictions, the preferred routing, other information about the endpoint devices, or any combination thereof. The configuration settings may be sent to at least one computing device that is adapted to modify the media based on the configuration settings to generate modified media, at <b>412</b>. The media may be received by the at least one computing device en route between endpoint devices. For example, the at least one computing device may include one or more of the edge devices <b>170</b>-<b>172</b> of <figref idref="DRAWINGS">FIGS. 1 and 2</figref>. The media may be modified such that a receiving endpoint device is able to utilize the modified media. That is, the modified media may conform to capabilities and configuration of the receiving endpoint device.
0043The method may include, at <b>414</b>, sending set up messages from the VCP device to the endpoint devices. For example, a first set up message may be sent from the VCP device to the first endpoint device via a unicast transmission. The set up messages may includes information identifying a multicast control group, a send multicast group of each endpoint device, and a default receive multicast group of each endpoint device. In response to the set up message, the endpoint device may monitor their assigned default receive multicast group. Each default receive multicast group may correspond to a send multicast group assigned to one of the other endpoint devices. For example, the default receive multicast group of the first terminal <b>102</b> of <figref idref="DRAWINGS">FIG. 1</figref> is the second multicast group <b>111</b>, to which the second terminal <b>103</b> sends video conference data.
0044The method may include, at <b>416</b>, receiving audio data from the endpoint devices at the VCP device. A particular endpoint device may be selected as an active terminal based on the audio data, at <b>418</b>. In response to selecting the particular endpoint device as the active terminal, a control message may be sent to a multicast control group, at <b>420</b>. The control message may identify a send multicast group of the active terminal, and one or more other endpoint devices may monitor the send multicast group of the active terminal. Alternately, the control message may identify a receive multicast group. The active terminal may send video conference data to the receive multicast group and other endpoint devices may monitor the receive multicast group.
0045Thus, the VCP device can set up and control a video conferencing call between the endpoint devices without using a centralized video conferencing bridge or multipoint conferencing unit (MCU). Further, video conferencing endpoints of different types or from different vendors, which may otherwise be incompatible, may participate in the video conference without using an MCU. In other systems, an MCU may act as a central control, routing and transcoding point. For example, the MCU may receive data from a first endpoint at a first frame rate and may modify the data for transmission to a second endpoint that uses a second frame rate. Thus, all data communicated between the endpoints may be routed through the MCU, which can be a significant bandwidth burden.
0046Bandwidth utilized can be further reduced by multicasting the video conference data. Thus, using multicasting to deliver video conference data of a video conference call between three or more terminals may result in a significant decrease in the amount of bandwidth used on the network (driving down the cost to deliver the service) as well as a reduction in latency for video conference calls.
0047Referring to <figref idref="DRAWINGS">FIG. 5</figref>, an illustrative embodiment of a general computer system is shown and is designated <b>500</b>. The computer system <b>500</b> includes a set of instructions that can be executed to cause the computer system <b>500</b> to perform any one or more of the methods or computer based functions disclosed herein. The computer system <b>500</b>, or any portion thereof, may operate as a standalone device or may be connected, e.g., using a network, to other computer systems or peripheral devices. For example, the computer system <b>500</b> may include or may be included within any one or more of the terminals <b>102</b>-<b>104</b>, edge devices <b>170</b>-<b>172</b>, additional devices <b>190</b>, or video control point <b>108</b> of <figref idref="DRAWINGS">FIGS. 1 and 2</figref>.
0048In a particular embodiment, the computer system <b>500</b> operates in the capacity of a video conferencing terminal, such as the terminals <b>102</b>-<b>104</b> of <figref idref="DRAWINGS">FIGS. 1 and 2</figref>. In this embodiment, the computer system <b>500</b> may include or be coupled to a video camera <b>540</b> to capture video data and a microphone <b>542</b> to capture audio data. The computer system <b>500</b> may also include or be coupled to a speaker <b>544</b> to generate sound based on received audio data and a video display <b>510</b> to generate images based on received video data. The computer system <b>500</b> can also be implemented as or incorporated into various other devices, such as a personal computer (PC), a tablet PC, a personal digital assistant (PDA), a mobile device, a palmtop computer, a laptop computer, a desktop computer, a communications device, a web appliance, or any other machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. In a particular embodiment, the computer system <b>500</b> can be implemented using electronic devices that provide voice, video or data communication. Further, while a single computer system <b>500</b> is illustrated, the term “system” shall also be taken to include any collection of systems or sub-systems that individually or jointly execute a set, or multiple sets, of instructions to perform one or more computer functions.
0049As illustrated in <figref idref="DRAWINGS">FIG. 5</figref>, the computer system <b>500</b> may include a processor <b>502</b>, e.g., a central processing unit (CPU), a graphics-processing unit (GPU), or both. Moreover, the computer system <b>500</b> can include a main memory <b>504</b> and a static memory <b>506</b> that can communicate with each other via a bus <b>508</b>. As shown, the computer system <b>500</b> may further include or be coupled to the video display unit <b>510</b>, such as a liquid crystal display (LCD), an organic light emitting diode (OLED), a flat panel display, a cathode ray tube (CRT) display, a solid-state display, or a projection display. Additionally, the computer system <b>500</b> may include an input device <b>512</b>, such as a keyboard, a remote control device, and a cursor control device <b>514</b>, such as a mouse. The computer system <b>500</b> can also include a disk drive unit <b>516</b>, a signal generation device <b>518</b>, such as remote control device, and a network interface device <b>520</b>. The network interface device <b>520</b> may be coupled to other devices (such as, one or more of the terminals <b>102</b>-<b>104</b>, the edge devices <b>170</b>-<b>172</b>, or the VCP <b>108</b> of <figref idref="DRAWINGS">FIGS. 1 and 2</figref>) via a network <b>526</b>.
0050In a particular embodiment, as depicted in <figref idref="DRAWINGS">FIG. 5</figref>, the disk drive unit <b>516</b> may include a non-transitory computer-readable medium <b>522</b> in which one or more sets of instructions <b>524</b>, e.g., software, can be embedded. Further, the instructions <b>524</b> may embody one or more of the methods or logic as described herein. In a particular embodiment, the instructions <b>524</b> may reside completely, or at least partially, within the main memory <b>504</b>, the static memory <b>506</b>, and/or within the processor <b>502</b> during execution by the computer system <b>500</b>. The main memory <b>504</b> and the processor <b>502</b> also may include non-transitory computer-readable media.
0051In an alternative embodiment, dedicated hardware implementations, such as application specific integrated circuits, programmable logic arrays and other hardware devices, can be constructed to implement one or more of the methods described herein. Applications that may include the apparatus and systems of various embodiments can broadly include a variety of electronic and computer systems. One or more embodiments described herein may implement functions using two or more specific interconnected hardware modules or devices with related control and data signals that can be communicated between and through the modules, or as portions of an application-specific integrated circuit.
0052In accordance with various embodiments of the present disclosure, the methods described herein may be implemented by software programs executable by the computer system <b>500</b>. Further, in an exemplary, non-limited embodiment, implementations can include distributed processing, component/object distributed processing, and parallel processing. Alternatively, virtual computer system processing can be constructed to implement one or more of the methods or functionality as described herein.
0053The present disclosure contemplates a non-transitory computer-readable medium that includes instructions <b>524</b> or receives and executes instructions <b>524</b>, so that a device connected to a network <b>526</b> can communicate voice, video or data over the network <b>526</b>. Further, the instructions <b>524</b> may be transmitted or received over the network <b>526</b> via the network interface device <b>520</b>.
0054The term “computer-readable medium” may include a single medium or multiple media, such as a centralized or distributed database, and/or associated caches and servers that store one or more sets of instructions. The term “computer-readable medium” refer to any non-transitory medium that is capable of storing, or encoding a set of instructions <b>524</b> for execution by the processor <b>502</b> or that cause the computer system <b>500</b> to perform any one or more of the methods or operations disclosed herein.
0055In a particular non-limiting, exemplary embodiment, the computer-readable medium can include a solid-state memory, such as a memory card or other package that houses one or more non-volatile read-only memories. Further, the computer-readable medium can be a random access memory or other volatile re-writable memory. Additionally, the computer-readable medium can include a magneto-optical or optical medium, such as a disk or tapes or other storage device. Accordingly, the disclosure is considered to include any one or more of a computer-readable storage medium and other equivalents and successor media, in which data or instructions may be stored.
0056Software (e.g., the instructions <b>524</b>) that implement the disclosed methods may be stored on a tangible storage medium, such as: a magnetic medium, such as a disk or tape; a magneto-optical or optical medium, such as a disk; or a solid state medium, such as a memory card or other package that houses one or more read-only (non-volatile) memories, random access memories, or other re-writable (volatile) memories.
0057Although the present specification describes components and functions that may be implemented in particular embodiments with reference to particular standards and protocols, the invention is not limited to such standards and protocols. For example, standards for Internet, other packet switched network transmission (e.g., TCP/IP, UDP/IP, HTML, HTTP, and Internet Group Management Protocol (IGMP)) and standards for encoding or viewing media content (e.g., MPEG, SMPTE, SVC and H.264) represent examples of the state of the art. Such standards may occasionally be superseded by faster or more efficient equivalents having substantially the same functions. Accordingly, replacement standards and protocols having the same or similar functions as those disclosed herein are considered equivalents thereof.
0058The illustrations of the embodiments described herein are intended to provide a general understanding of the structure of the various embodiments. The illustrations are not intended to serve as a complete description of all of the elements and features of apparatus and systems that utilize the structures or methods described herein. Many other embodiments may be apparent to those of skill in the art upon reviewing the disclosure. Other embodiments may be utilized and derived from the disclosure, such that structural and logical substitutions and changes may be made without departing from the scope of the disclosure. Accordingly, the disclosure and the figures are to be regarded as illustrative rather than restrictive.
0059One or more embodiments of the disclosure may be referred to herein, individually and/or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any particular invention or inventive concept. Moreover, although specific embodiments have been illustrated and described herein, it should be appreciated that any subsequent arrangement designed to achieve the same or similar purpose may be substituted for the specific embodiments shown. This disclosure is intended to cover any and all subsequent adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the description.
0060The Abstract of the Disclosure is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, various features may be grouped together or described in a single embodiment for the purpose of streamlining the disclosure. This disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter may be directed to less than all of the features of any of the disclosed embodiments. Thus, the following claims are incorporated into the Detailed Description, with each claim standing on its own as defining separately claimed subject matter.
0061The above-disclosed subject matter is to be considered illustrative, and not restrictive, and the appended claims are intended to cover all such modifications, enhancements, and other embodiments, which fall within the scope of the present disclosure. Thus, to the maximum extent allowed by law, the scope of the present disclosure is to be determined by the broadest permissible interpretation of the following claims and their equivalents, and shall not be restricted or limited by the foregoing detailed description.
Contents4
6 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| EP3068071A1 | Cited by | European Patent Office (EPO) | Search report |
| US2017034475A1 | Cited by | United States of America | Search report |
| US9762853B2 | Cited by | United States of America | Applicant |
| US12317000B1 | Cited by | United States of America | Search report |
| US2017359392A1 | Cited by | United States of America | Pre-grant |
| US2015199946A1 | Cited by | United States of America | Pre-grant |
| US11863640B2 | Cited by | United States of America | Applicant |
| US9648276B2 | Cited by | United States of America | Applicant |
| US9118809B2 | Cited by | United States of America | Applicant |
| US8970659B1 | Cited by | United States of America | Applicant |
| US11489932B2 | Cited by | United States of America | Applicant |
| EP3068072A1 | Cited by | European Patent Office (EPO) | Search report |
| US8970660B1 | Cited by | United States of America | Applicant |
| US9118654B2 | Cited by | United States of America | Applicant |
| US9077852B2 | Cited by | United States of America | Applicant |
| US10715610B2 | Cited by | United States of America | Search report |
| US8395654B2 | Cited by | United States of America | Search report |
| US2014049597A1 | Cited by | United States of America | Pre-grant |
| US11910131B1 | Cited by | United States of America | Search report |
| US9349352B2 | Cited by | United States of America | Search report |
| US2012169836A1 | Cited by | United States of America | Pre-grant |
| US2015281641A1 | Cited by | United States of America | Pre-grant |
| US10284814B2 | Cited by | United States of America | Search report |
| US10027725B2 | Cited by | United States of America | Search report |
| US8411129B2 | Cited by | United States of America | Search report |
| US9185344B2 | Cited by | United States of America | Search report |
| US10616417B2 | Cited by | United States of America | Applicant |
| US11196780B2 | Cited by | United States of America | Search report |
| US8692864B2 | Cited by | United States of America | Search report |
| US2016352576A1 | Cited by | United States of America | Pre-grant |
| US2011141221A1 | Cited by | United States of America | Pre-grant |
| US10892906B2 | Cited by | United States of America | Applicant |
| US9825814B2 | Cited by | United States of America | Search report |
| US8929257B1 | Cited by | United States of America | Applicant |
| US2018337795A1 | Cited by | United States of America | Search report |
| EP3125496A1 | Cited by | European Patent Office (EPO) | Search report |
| EP3157237A4 | Cited by | European Patent Office (EPO) | Search report |
| US10498548B2 | Cited by | United States of America | Search report |
| US2005226172A1 | Cites | United States of America | Pre-grant |
| US2007277221A1 | Cites | United States of America | Pre-grant |
| US2009213206A1 | Cites | United States of America | Pre-grant |
| US7593032B2 | Cites | United States of America | Pre-grant |
2 members in 1 office; this record represents the family
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 96423210 | United States of America | A | |
| US20100964232 | – | – | – |
Members2
| Document | Office | Kind | |
|---|---|---|---|
| US2012147127A1 | United States of America | A1 | |
| US8582474B2 | United States of America | B2 |
37 transactions on the USPTO file
Allowed after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Maintenance Fee Reminder MailedREM. | REM. | |
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Notice of Informal or Non-Responsive AmendmentNINA | NINA | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Informal or Non-Responsive Amendment after Examiner ActionA.I. | A.I. | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Application Is Now CompleteCOMP | COMP | |
| Sent to Classification ContractorPGPC | PGPC | |
| Filing Receipt - UpdatedFLRCPT.U | FLRCPT.U | |
| Additional Application Filing FeesADDFLFEE | ADDFLFEE | |
| Applicant has submitted new drawings to correct Corrected Papers problemsCORRDRW | CORRDRW | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Corrected PaperCPAP | CPAP | |
| Cleared by OIPE CSRL194 | L194 | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
9 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| Lapse for failure to pay maintenance feesLapsedPATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYLAPS | LAPS | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Fee payment procedureMAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| Maintenance fee paymentMAFP | MAFP | |
| Fee paymentFPAY | FPAY | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| AssignmentAS | AS |
Numbers
- Publication
- 20120147127
- Publication, DOCDB
- 2012147127
- Publication, EPODOC
- US2012147127
- Application
- 12964232
- Application, DOCDB
- 96423210
- Application, EPODOC
- US20100964232
Titles
- English
- Video Conference System and Method
Patent term adjustment
- A delay
- +391 daysthe office missed an examination deadline
- Applicant delay
- −20 days
- Net adjustment
- 371 days
Classification
- CPC, 1
- H04N7/152
- IPC, 1
- H04N7 14
- USPC, 2
- 348014080
- 348E07078