Negotiate multi-stream continuous presence
Claim Score by NHIP
Abstract
Described are embodiments for allowing the negotiation of a continuous presence layout. Specifically, in embodiments, an offer is generated by a client that includes attributes for displaying continuous presence video information. The attributes include, in some embodiments, one or more window identifiers, one or more bandwidth limit identifiers, one or more group numbers, and/or one or more ranks. The offer is sent to a server which transmits an answer to the offer. Once the attributes for the continuous presence layout has been negotiated, the server uses the attributes to format video content sent to the client.

Term
6.4 yearsto projected expiry
Projected expiry 28 February 2033, counted from filing; an application has no term until it is granted.
- Priority
- Filed
- Published
- Today
- Projected expiry
20 claims: 3 independent, 17 dependent
- 1Broadest claimClaim Score 80, broad(NHIP)A method, comprising:generating, by at least one processor, an offer for a multimedia communication session, the offer comprising window content specification for at least one window;delivering, by the at least one processor, the offer to a network for transmission by the at least one processor;receiving an answer to the offer;and receiving, by the at least one processor, video content for displaying the at least one window.
- 13A communication device, comprising:a non-transitory computer readable medium;a processor;and an application stored in the computer readable medium and running on the processor, wherein the application: receives an offer for a multimedia communication session, the offer comprising: a first window identifier for a first window, a bandwidth limit identifier for the first window, and a first group identifier for the first window;a second window identifier for a second window, a second bandwidth limit identifier for the second window, and a second group identifier for the second window;in response to receiving the offer, delivers an answer to a network for transmission;and delivers video content to a network for transmission, and for displaying in the first window and the second window.
- 19A computer readable medium including computer executable instructions stored onto the computer readable medium which, when executed by one or more processors of a computer, causes the computer to perform a method of negotiating a multimedia session, the method comprising:generating an offer for a multimedia communication session, the offer comprising a plurality of window identifiers for a plurality of windows, a bandwidth limit identifier for each of the plurality of windows, and a group identifier for each of the plurality of windows, wherein a first group identifier for a first portion of the plurality of windows is different than a second group identifier for a second portion of the plurality of windows;delivering the offer to a network for transmission to a server;receiving an answer to the offer from the server;and receiving video content for displaying in the plurality of windows.
Independent claims3
106 paragraphs in 5 sections, as filed
CROSS-REFERENCE TO RELATED APPLICATIONS
p-0002This application claims priority to U.S. Provisional Patent Application No. 61/505,911, entitled, MECHANISM TO NEGOTIATE MULTI-STREAM BASED CONTINUOUS PRESENCE (CP) VIDEO IN SIP FOR A REQUIRED USER EXPERIENCE (UX), filed on Jul. 8, 2011, and hereby Incorporated by reference in its entirety as if set forth herein in full.
BACKGROUND
p-0003Videoconferencing is a very powerful communication mode that allows people to be in remote locations and be able to see and speak to each other in real time. Typically, a video conference session is established by a client device (located at an endpoint where a participant will join) establishing a session with a conference server. Establishing a session between the client and the conference server can occur using a number of different protocols including, the Session Description Protocol (SDP), Session InitiationProtocol (SIP), and Real-Time Transport Protocol (RTP).
p-0004Once a session is established between the client and the conference server, video and audio is transmitted from each of the clients involved in the conference to the conference server. The conference server will then combine the video streams and transmit them to the clients for output at the client. The server typically controls the resolution of the video received by the client and changes the resolution based on bandwidth constraints, without any input from the client or consideration of the user experience on the client.
p-0005Although specific problems and issues have been identified in this background section, the embodiments described herein are not limited to solving these particular problems or issues. The embodiments may be applied to solve problems not described in this background section.
SUMMARY
p-0006It is with respect to the above issues and other problems that the embodiments presented herein were contemplated. Embodiments described in the present application provide for a client to negotiate attributes that affect a user experience during a multimedia session, such as a video conference. The client can negotiate attributes that affect, for example, the layout of continuous presence information displayed to a user, the video resolution of displayed information, shuffling of windows during the video conference, and the like.
p-0007In one embodiment, a method is provided that includes generating an offer, and indicating in the offer, window content specification, e.g., first window identifier for a first and second window, a bandwidth limit identifier for the first and second window, and a group identifier for the first and second window. The offer is then transmitted, e.g., to a conference server. An answer to the offer is then received. In some embodiments, the offer, and answer, is formatted according to a Session Description Protocol (SDP). After the answer is received, video content is received for displaying in the first window and the second window.
p-0008In embodiments, window content specification includes a first group identifier that is assigned a higher priority than a second group identifier. The higher priority indicates that resolution reductions should be applied to content for display in windows of the second group before resolution reductions are applied to content for display in windows in the first group. In embodiments, the first bandwidth limit identifier indicates a limit for reducing the resolution of video content for display in windows of the first group. The first bandwidth limit identifier may indicate a percentage of an original resolution for the window.
p-0009In some embodiments, in addition to the other identifiers, the offer includes a first rank identifier for the first window and/or a second rank identifier for the second window. The rank identifiers are used to control the shuffling of windows displaying continuous presence information to a user. For example, if a user is participating in a video conference, the rank can control the display of active speakers within various windows. In embodiments, the first window has a rank such that the most recent active speaker is displayed in the first window. Similarly, the second window can be ranked such that the second most recent active speaker is displayed. In some embodiments, a window can be ranked so that they are pinned, meaning that the same participant is always displayed in the window. In yet other embodiments, the shuffling of the windows that result from speakers coming in and out is minimized.
p-0010Another embodiment is directed to a communication device, e.g., a conference server, which includes a non-transitory computer readable medium, a processor, and an application stored in the computer readable medium and running on the processor. The application receives an offer for a multimedia communication session, the offer including, in embodiments, a first window identifier for a first window, a bandwidth limit identifier for the first window, a first group identifier for the first window, a second window identifier for a second window, a second bandwidth limit identifier for the second window, and a second group identifier for the second window. In embodiments, the application transmits an answer in response to receiving the offer. The answer in the offer are formatted according to SDP, some embodiments. The application then transmits video content for displaying in the first window and the second window. In some embodiments, the application reduces the resolution of video content, in response to a bandwidth constraint. The resolution reduction is based on the group identifier as well as the bandwidth limit identifier received in the offer. For example, the first group identifier may, in embodiments, have a lower priority than the second group identifier, in which case the resolution of video for display on windows associated with the first group identifier is reduced, up to the first bandwidth limit, before the resolution of video for display on windows associated with the second group identifier is reduced.
p-0011Other embodiments are directed to computer readable medium including computer executable instructions stored onto the computer readable medium which, when executed by one or more processors of a computer, causes the computer to perform a method for negotiating a multimedia session. The method includes generating an offer for a multimedia communication session. The offer includes in embodiments a plurality of window identifiers for a plurality of windows, a bandwidth limit identifier for each of the plurality of windows, and a group identifier for each of the plurality of windows, wherein a first group identifier for a first portion of the plurality of windows is different than a second group identifier for a second portion of the plurality of windows. The offer is then transmitted to a server. An answer to the offer is received from the server, and video content for displaying in the plurality of windows is received from the server.
p-0012The phrases “at least one”, “one or more”, and “and/or” are open-ended expressions that are both conjunctive and disjunctive in operation. For example, each of the expressions “at least one of A, B and C”, “at least one of A, B, or C”, “one or more of A, B, and C”, “one or more of A, B, or C” and “A, B, and/or C” means A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B and C together.
p-0013The term “in communication with” as used herein refers to any coupling, connection, or interaction using electrical signals to exchange information or data, using any system, hardware, software, protocol, or format.
p-0014The term “a” or “an” entity refers to one or more of that entity. As such, the terms “a” (or “an”), “one or more” and “at least one” can be used interchangeably herein. It is also to be noted that the terms “comprising”, “including”, and “having” can be used interchangeably.
p-0015The term “automatic” and variations thereof, as used herein, refers to any process or operation done without material human input when the process or operation is performed. However, a process or operation can be automatic, even though performance of the process or operation uses material or immaterial human input, if the input is received before performance of the process or operation. Human input is deemed to be material if such input influences how the process or operation will be performed. Human input that consents to the performance of the process or operation is not deemed to be “material”.
p-0016The term “computer-readable medium” as used herein refers to any tangible storage that participates in providing instructions to a processor for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, NVRAM, or magnetic or optical disks. Volatile media includes dynamic memory, such as main memory. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, magneto-optical medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, a solid state medium like a memory card, any other memory chip or cartridge, or any other medium from which a computer can read. When the computer-readable media is configured as a database, it is to be understood that the database may be any type of database, such as relational, hierarchical, object-oriented, and/or the like. Accordingly, embodiments are considered to include a tangible storage medium and prior art-recognized equivalents and successor media, in which the software implementations of the embodiments are stored.
p-0017The terms “determine”, “calculate” and “compute,” and variations thereof, as used herein, are used interchangeably and include any type of methodology, process, mathematical operation or technique.
p-0018The term “module” as used herein refers to any known or later developed hardware, software, firmware, artificial intelligence, fuzzy logic, or combination of hardware and software that is capable of performing the functionality associated with that element. Also, while exemplary embodiments are described, it should be appreciated that individual aspects of the embodiments can be separately claimed.
BRIEF DESCRIPTION OF THE DRAWINGS
The present disclosure is described in conjunction with the appended figures:
<figref idrefs="DRAWINGS">FIG. 1</figref> is a block diagram of a system including a communication device according to an embodiment that can negotiate a multimedia session;
<figref idrefs="DRAWINGS">FIG. 2</figref> is a block diagram showing a first communication device, according to an embodiment, exchanging messages with a second communication device to establish a multi-media session;
<figref idrefs="DRAWINGS">FIG. 3</figref> illustrates an embodiment of an offer according to an embodiment;
<figref idrefs="DRAWINGS">FIG. 4</figref> illustrates an embodiment of an answer according to an embodiment;
<figref idrefs="DRAWINGS">FIG. 5</figref> illustrates a layout with one group of windows for displaying continuous presence information to a user, according to one embodiment;
<figref idrefs="DRAWINGS">FIG. 6</figref> illustrates a second layout with two groups of windows for displaying continuous presence information to a user, according to one embodiment;
<figref idrefs="DRAWINGS">FIGS. 7A and 7B</figref> illustrate windows displaying continuous presence information and how they shuffle in response to changes in active speakers, according to one embodiment;
<figref idrefs="DRAWINGS">FIGS. 8A and 8B</figref> illustrate windows displaying continuous presence information and shuffling of the windows in response to changes in active speakers, according to a second embodiment;
<figref idrefs="DRAWINGS">FIGS. 9A and 9B</figref> illustrate windows displaying continuous presence information and shuffling of the windows in response to changes in active speakers, according to a third embodiment;
<figref idrefs="DRAWINGS">FIGS. 10A and 10B</figref> illustrate windows displaying continuous presence information and shuffling of the windows in response to changes in active speakers, according to a fourth embodiment;
<figref idrefs="DRAWINGS">FIG. 11</figref> is a flow diagram of an embodiment of a process for negotiating a multimedia session and receiving audio and/or visual data for the multimedia session;
<figref idrefs="DRAWINGS">FIG. 12</figref> is a flow diagram of an embodiment of a process for negotiating a multimedia session and sending audio and/or visual data for the multimedia session;
<figref idrefs="DRAWINGS">FIG. 13</figref> is a block diagram of an embodiment of a computer or computing system environment operable to execute as the one or more devices described herein.
p-0033In the appended figures, similar components and/or features may have the same reference label. Further, various components of the same type may be distinguished by following the reference label by a letter that distinguishes among the similar components. If only the first reference label is used in the specification, the description is applicable to any one of the similar components having the same first reference label irrespective of the second reference label.
DETAILED DESCRIPTION
p-0034The ensuing description provides embodiments only, and is not intended to limit the scope, applicability, or configuration of the claims. Rather, the ensuing description will provide those skilled in the art with an enabling description for implementing the embodiments. It being understood that various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the appended claims.
p-0035Embodiments described in the present application provide for a client to negotiate attributes that affect a user experience during a multimedia session, such as a video conference. The client is able to have some control of how audio/video data is output to a user, including without limitation, the video resolution of displayed information, shuffling of windows based on active speakers participating in a video conferences, and the layout of how the windows are displayed to a user. For example, the session may involve multi-stream continuous presence (CP) video sent as part of the video conference.
p-0036<figref idrefs="DRAWINGS">FIG. 1</figref> illustrates a system <b>100</b> that includes communication devices <b>102</b>A-<b>102</b>N, e.g., mobile phones, smart phones, mobile communications devices, telephones, soft phones, video displays, televisions, monitors, desktop computers, laptop computers, and the like. As illustrated in <figref idrefs="DRAWINGS">FIG. 1</figref>, communication devices <b>102</b>A-<b>102</b>N are connected to a network <b>104</b> that allows the communication devices <b>102</b>A-<b>102</b>N to communicate with each other. Also connected to the network <b>104</b> is a server <b>108</b>, which in embodiments is a conference server with video conference and/or multimedia capabilities.
p-0037Communication device <b>102</b>A includes, among other features, a memory <b>112</b>, which may store files and executing application(s) and/or modules such as SIP/SDP module <b>116</b> and video conference module <b>120</b>. As described in greater detail below, SIP/SDP module <b>116</b> and video conference module <b>120</b> are used to negotiate and engage in multimedia sessions between communication device <b>102</b>A and other communication devices (e.g., <b>102</b>B-<b>102</b>N) or servers (e.g., <b>108</b>).
p-0038In addition to memory <b>112</b>, communication device <b>102</b>A also includes additional hardware such as a processor <b>124</b>, and communication systems <b>128</b>. The processor <b>124</b> is used to execute the code of applications and modules such as SIP/SDP module <b>116</b> and video conference module <b>120</b> and other applications stored in memory <b>108</b>. A bus <b>132</b> provides a connection for transmitting signals among the memory <b>112</b>, processor <b>124</b>, and communication systems <b>128</b>. Communication device <b>102</b>A also includes a display <b>136</b>, which is configured to display audio/visual data that is received by communication device <b>102</b>A as part of a multimedia session. In the embodiment shown in <figref idrefs="DRAWINGS">FIG. 1</figref>, display <b>136</b> is displaying windows <b>140</b>, <b>144</b>, and <b>148</b> in which continuous presence information is displayed from participants of a video conference. In addition, communication device <b>102</b>A may also include other input/output devices, including but not limited to display(s), e.g., speakers, lights, keypads, and microphones.
p-0039It is noted that although SIP/SDP module <b>116</b> and video conference module <b>120</b> are shown in <figref idrefs="DRAWINGS">FIG. 1</figref> as stored in memory <b>112</b> of communication device <b>102</b>A, in other embodiments, at least portions of the modules are stored on a server(s), i.e., they may utilize distributed code. As one example, if video conference module <b>120</b> is stored, at least in part, on a server, communication device <b>102</b>A will communicate, using communications systems <b>128</b>, with the server to access information from the video conference module <b>120</b>, such as routines, subroutines, or other code, that may be stored on the server.
p-0040Server <b>108</b> includes among other features, memory <b>152</b>, where files and modules are stored such as multimedia module <b>156</b>, conference module <b>160</b>, and SIP/SDP module <b>164</b>. Server <b>108</b> also includes additional hardware such as a processor <b>168</b>, and communication systems <b>172</b>. The processor <b>124</b> is used to execute the code of applications and modules such as multimedia module <b>156</b>, conference module <b>160</b>, and SIP/SDP module <b>164</b> and other applications stored in memory <b>152</b>. A bus <b>176</b> provides a connection for transmitting signals among the memory <b>152</b>, processor <b>168</b>, and communication systems <b>172</b>. In addition, communication device <b>102</b>A may also include other input/output devices, including but not limited to display(s), e.g., speakers, lights, keypads, and microphones.
p-0041In embodiments, communication device <b>102</b>A engages in a number of different types of multimedia sessions with server <b>108</b>. One specific type of multimedia session is a video conference in which a number of participants at different points utilize communication devices, e.g., <b>102</b>B-<b>102</b>N to communicate in real-time using both audio and video data. Server <b>108</b> serves as a central point for collecting audio and video data from the communication devices. Server <b>108</b> then transmits the audio video data to the communication devices for output. Although the description below focuses on videoconferencing, embodiments are not necessarily limited to this application. In other embodiments, the media sessions may involve previously recorded (or near real time) audio/video data that is displayed to a user for entertainment, security, information, or other reasons. Therefore, although the description below provides the specific example of videoconferencing, embodiments are not limited thereto.
p-0042<figref idrefs="DRAWINGS">FIG. 2</figref> illustrates one embodiment of communication device <b>102</b>A negotiating and establishing a multimedia session, specifically a video conference session, with server <b>108</b>, which is serving as the conference server for the video conference. In addition to communication device <b>102</b>A at least three other communication devices, and participants, are also participating in the video conference. For purposes of simplicity, the plurality of messages <b>200</b> exchanged during the negotiation between communication device <b>102</b>A and server <b>108</b> are shown as exchanged directly between communication device <b>102</b>A and server <b>108</b>. However, as can be appreciated, in actual operation, the plurality of messages <b>200</b> are transmitted through one or more networks which may be a LAN, a WAN, or other type of network. Additionally, it is noted that although specific messages are shown as being exchanged between communication device <b>102</b>A and server <b>108</b>, in other embodiments additional messages will be exchanged between device <b>102</b>A and server <b>108</b>. For example, messages for security protocols, transport protocols, and/or session initiation protocols will also be exchanged, in some embodiments. These additional messages may be exchanged before or after the plurality of messages <b>200</b> shown in <figref idrefs="DRAWINGS">FIG. 2</figref>.
p-0043As illustrated in <figref idrefs="DRAWINGS">FIG. 2</figref>, communication device <b>102</b>A initially sends an offer <b>204</b> to server <b>108</b>. The offer <b>204</b> may be formatted according to any appropriate protocol used to negotiate multimedia sessions. In one specific embodiment, the offer is formatted according to a Session Description Protocol (SDP), which provides a format for describing streaming media initialization parameters. Embodiments are not limited to SDP and the offer <b>204</b> may be in any suitable format. In addition, other protocols such as security protocols, transport protocols, and/or multimedia protocols may be used in generating and transmitting offer <b>204</b>. In one embodiment, Security Initiation Protocol (SIP) is used as a transport protocol when transmitting offer <b>204</b>. In this embodiment, one or more of SIP/SDP module <b>116</b> and video conference module <b>120</b>, are used to generate offer <b>204</b>.
p-0044In response to offer <b>204</b>, server <b>108</b> transmits an answer <b>208</b>, followed by video data <b>212</b>, which is multi-stream continuous presence (CP) video (e.g., multi Scalable Video Coding (SVC) or Advanced Video Coding (AVC) video streams) from participants in the videoconference. The communication device <b>102</b>A decodes the video data <b>212</b> and renders the CP video for display on various windows on communication device <b>102</b>A. In embodiments where SDP is used in formatting the offer <b>204</b>, the multi-stream video streams are negotiated using n video (e.g., “m lines”) in an SDP offer, where n>1. For example, n=4 indicates that the CP video will contain 4 participants/windows. A single video, referred to in an SDP request as an m line with an n=1, means no CP and typically display the most recent active speaker.
p-0045In conventional negotiations using SDP, only the codec used, bit rate (AVC and SVC), number of layers used (SVC) and direction (e.g., received only (recvonly), send and receive (sendrcv), send only (sendonly)) are negotiated. However, these do not address the user experience aspects of the CP layout (e.g. whether windows are displayed in a 2×2, 1+3 format), the grouping of CP windows, handling of bandwidth reduction/optimization and window shuffling algorithms. Therefore according to embodiments, offer <b>204</b> includes additional attributes that allow user experience aspects to be negotiated. <figref idrefs="DRAWINGS">FIG. 3</figref> illustrates an embodiment of offer <b>204</b> that is formatted according to SDP, consistent with one embodiment. <figref idrefs="DRAWINGS">FIG. 4</figref> illustrates an embodiment of an answer <b>208</b> that is formatted according to SDP, consistent with one embodiment.
p-0046As shown in <figref idrefs="DRAWINGS">FIG. 3</figref>, offer <b>204</b> includes a number of different attributes that may be referred to as window content specification. At line <b>216</b>, there are a string of attributes that, consistent with embodiments, address user experience aspects of the video that will be transmitted as part of the video conference being negotiated by communication device <b>102</b>A. The attributes include a first window identifier <b>220</b>, a first group identifier <b>224</b>, a first bandwidth limit identifier <b>228</b>, and a first rank identifier <b>232</b>. Each of these attributes provides information for how the client will output at least a portion of the video, transmitted as part of the video conference, in a first window. Line <b>236</b> also includes attributes including, a second window identifier <b>240</b>, a second group identifier <b>244</b>, a second bandwidth limit identifier <b>248</b>, and a second rank identifier <b>252</b>. These attributes provide information for how the client will output at least a second portion of the video in a second window. As noted above, these parameters (window identifiers, bandwidth limit identifiers, group identifiers, and rank identifiers) can be included in an offer and may be referred to as window content specification.
p-0047In some embodiments, the attributes are selected by a user or an administrator. The attributes can be selected to tailor the user experience to the multimedia session, or according to a particular preference. In other embodiments, there may be default values that are set if no input for the attributes are received. For example, the default values may be group identifier=1, bandwidth reduction limit identifier=100, vas-rank=1. These values are described in further detail below.
p-0048Additionally, line <b>218</b> includes an indication as to whether or not the attributes that precede line <b>218</b> are applicable to video content that is sent and/or received. As indicated in <figref idrefs="DRAWINGS">FIG. 3</figref>, line <b>218</b> indicates that the attributes noted above it, including in line <b>216</b>, are intended for bidirectional video, i.e., video that is both sent and received by communication device <b>102</b>A. Line <b>238</b> indicates that the attributes noted above it are only for video that is received. The client can therefore be flexible when negotiating the session with server <b>108</b>, such as by indicating that it will send video in high resolution but only receive video in lower resolution or vice versa.
p-0049<figref idrefs="DRAWINGS">FIG. 4</figref> illustrates an embodiment of an answer <b>208</b> that is formatted according to SDP. Answer <b>208</b> acknowledges the attributes that were sent in the offer <b>204</b>. In some embodiments, answer <b>208</b> may provide counter offers or may indicate that it cannot accommodate the attributes that have been requested by communication device <b>102</b>A. In these embodiments, communication device <b>102</b>A would then send another offer with different attributes in an attempt to negotiate attributes that are acceptable to server <b>108</b>.
p-0050Referring again to <figref idrefs="DRAWINGS">FIG. 3</figref>, window identifiers <b>220</b> and <b>240</b> are used to identify the windows on the client that will be used to display the video streams. Although only two window identifiers are shown in the offer <b>204</b>, in other embodiments, offer <b>204</b> may include more than two window identifiers. Each identifier is associated with a single window, which is used to display video from one video stream. In embodiments, each video stream is from one of the participants in the conference. As can be appreciated, any type of identifier may be used as window identifiers <b>220</b> and <b>240</b>, including any alphanumeric value. In one embodiment, group identifiers are one or two digit numbers that range from 1-99, with the lower number being of higher priority.
p-0051Group identifiers <b>224</b> and <b>244</b> are each associated with one or more windows. The group identifiers <b>224</b> and <b>244</b> are used to group windows together. Windows are grouped together for any number of reasons, for example to identify groups of windows with similar properties, i.e., windows with the same size and resolution, to change the properties of more than one window at a time, or for any other purpose. In one embodiment, group identifiers <b>224</b> and <b>244</b> are used in combination with bandwidth limit identifiers <b>228</b> and <b>248</b> as described in greater detail below. Although group identifiers <b>224</b> and <b>244</b> are shown in offer <b>204</b> as numeric values, in other embodiments, they may be any identifier including an alphanumeric value.
p-0052In embodiments, windows are grouped according to their layout as displayed on communication device <b>102</b>A. <figref idrefs="DRAWINGS">FIGS. 5 and 6</figref> illustrate four windows (<b>304</b>, <b>308</b>, <b>312</b>, and <b>316</b>) that are grouped differently according to their displayed layouts on communication device <b>102</b>A. <figref idrefs="DRAWINGS">FIG. 5</figref> illustrates that the four windows are each grouped within a single group, namely group <b>1</b>. As can be seen, the four windows (<b>304</b>, <b>308</b>, <b>312</b>, and <b>316</b>) are the same size when displayed on display <b>136</b>.
p-0053<figref idrefs="DRAWINGS">FIG. 6</figref> illustrates a second embodiment in which the four windows (<b>304</b>, <b>308</b>, <b>312</b>, and <b>316</b>) are grouped within two different groups. In <figref idrefs="DRAWINGS">FIG. 6</figref>, group <b>1</b> includes a single window <b>304</b> and group <b>2</b> includes three windows <b>308</b>, <b>312</b>, and <b>316</b>. The layout shown in <figref idrefs="DRAWINGS">FIG. 6</figref> can be used to highlight the participant that is currently actively speaking by displaying the video of the active speaker on window <b>304</b>. The remaining windows <b>308</b>, <b>312</b>, and <b>316</b> are be used to display video from other participants in the video conference.
p-0054It is noted that <figref idrefs="DRAWINGS">FIGS. 5 and 6</figref> are provided to illustrate an example of window groupings consistent with embodiments. In other embodiments, however, the groupings and specific layouts of windows may vary. For example, the windows <b>308</b>, <b>312</b>, and <b>316</b> in group <b>2</b> may be displayed in a different layout, such as above window <b>304</b>, below window <b>304</b>, or on the left side of window <b>304</b>. In another embodiment, each window from group <b>2</b> can be displayed near a different corner of window <b>304</b>. These are merely some examples, and other groupings and/or layouts are possible. As can be appreciated, moderator and participants in the video conference can use different layouts and each can change their layout mid call, each can also have/change to a single Active Speaker window or just audio. This flexibility is not currently available.
p-0055Referring again to <figref idrefs="DRAWINGS">FIG. 3</figref>, bandwidth limit identifiers <b>228</b> and <b>248</b> are used to set a limit on the amount a video stream can be reduced in resolution. As can be appreciated, conference servers are under bandwidth constraints. Therefore, they can at any time reduce their bandwidth consumption by reducing the resolution of video it is streaming. Typically, the server reduces the resolution of streaming video based on its own preprogrammed algorithms without necessarily considering the user experience on the client. Bandwidth limit identifiers <b>228</b> and <b>248</b> allow the client in its negotiation of the multimedia session to limit the amount that particular video streams can be reduced in resolution. This allows the client to control the user experience. For example, if the client determines that video being displayed in one particular window will suffer too greatly from quality if reduced to below a predetermined resolution; it will provide a bandwidth limit identifier that does not allow for the resolution to fall below the predetermined resolution. On the other hand, there may be some video displayed in another window whose quality can be reduced by more than the predetermined resolution and still provide a suitable user experience. The client can therefore provide a lower bandwidth resolution limit.
p-0056Bandwidth limit identifiers <b>228</b> and <b>248</b> can be any suitable identifier that is understood by the server as a bandwidth limit. In the offer <b>204</b> shown in <figref idrefs="DRAWINGS">FIG. 3</figref> bandwidth limit identifier <b>228</b> indicates a percentage of an original resolution, namely 25% of an original resolution. In this embodiment, the server understands that the client has requested that the video stream associated with window <b>1</b> should not be reduced by more than 25% of the original resolution. The client in this embodiment has determined that reducing the resolution of window <b>1</b> by more than 25% affects the quality of the user experience too greatly and therefore 25% has been used as the bandwidth limit identifier <b>228</b>. On the other hand, bandwidth limit identifier <b>248</b> provides a limit of 50% of an original resolution. Thus, the video stream associated with window <b>2</b> can be reduced by as much as 50% of its original resolution. The client is therefore determined that the video being played in window <b>2</b> can be reduced up to as much as 50% of its original resolution and still provide an adequate user experience.
p-0057As one example, the display layout may be as shown as in <figref idrefs="DRAWINGS">FIG. 6</figref>, with window <b>1</b> corresponding to window <b>304</b> and window <b>2</b> corresponding to one of windows <b>308</b>, <b>312</b>, or <b>316</b>. Because window <b>2</b> is a smaller window, reducing the resolution does not affect the user experience as much as reducing the resolution of content displayed in window <b>1</b>. Thus, reducing the resolution up to 50% of the original resolution may be acceptable. In contrast window <b>1</b>, which is larger, will have a grainy appearance if the resolution is reduced too much.
p-0058The bandwidth limit identifiers <b>228</b> and <b>248</b> are defined as a percentage of a video's original resolution. Although in other embodiments, bandwidth limit identifiers can be defined differently. For example, offer <b>204</b> may refer to a specific resolution. In other embodiments, the bandwidth limit identifiers may be an alphanumeric value that is understood by the server to represent resolution limits. As can be appreciated, these are merely some examples and the bandwidth limit identifiers are not necessarily limited thereto.
p-0059As indicated above, group identifiers <b>224</b> and <b>244</b> can be used in combination with the bandwidth limit identifiers <b>228</b> and <b>248</b> to control the user experience at communication device <b>102</b>A. In some embodiments, the group identifiers <b>224</b> and <b>244</b> have a predetermined priority. For example, the group identified by group identifier <b>224</b> (“group <b>1</b>”) may have a higher priority than the group identified by group identifier <b>228</b> (“group <b>2</b>”). When used in combination with the bandwidth limit identifiers <b>228</b> and <b>248</b>, the server <b>108</b> understands that if there is a need to reduce resolution of video being streamed from server <b>108</b> to communication device <b>102</b>A, because of bandwidth constraints, the video content associated with windows in the group associated with group identifier <b>228</b> (namely “group <b>2</b>”) should be reduced first, up to the resolution limit identified by bandwidth limit identifier <b>228</b>. After the reduction in resolution of the video content associated with the windows in group <b>2</b>, if necessary, the video content associated with the windows in group <b>1</b> can then be reduced in resolution, up to the resolution indicated by bandwidth limit identifier <b>248</b>. In combination, the group identifiers and the bandwidth identifiers are used to control the user experience at communication device <b>102</b>A, which is not currently possible with the available versions of SDP.
p-0060Referring again to <figref idrefs="DRAWINGS">FIG. 3</figref>, rank identifiers <b>232</b> and <b>252</b> in offer <b>204</b> are provided to allow for windows to change based on participants speaking activity. These identifiers may be referred to as voice active rank identifiers. The rank identifiers indicate the desired assignment of active speakers to a window. The server will assign the window based on the active speaker history and the rank identifier provided by the client. The identifier with the highest rank, e.g., identifier <b>232</b> (“Rank <b>1</b>”) gets the most recently active speaker. In other words, the participant that is currently speaking, or most recently spoke, is displayed in the window with the highest rank, which in offer <b>204</b> is window <b>1</b>. The identifier with the next highest rank, e.g., identifier <b>252</b> (“Rank <b>2</b>”) gets the second most recently active speaker, and so on.
p-0061<figref idrefs="DRAWINGS">FIGS. 7A-10B</figref> illustrate various embodiments of using different rank identifiers for four windows (<b>304</b>, <b>308</b>, <b>312</b>, and <b>316</b>), and their behavior in response to their rank identifiers and speaking activity. These are provided for illustrative purposes only and embodiments are not necessarily limited thereto. For simplicity, only display <b>136</b> of communication device <b>102</b>A-is shown in <figref idrefs="DRAWINGS">FIGS. 7A-10B</figref>.
p-0062In <figref idrefs="DRAWINGS">FIG. 7A</figref>, communication device <b>102</b>A has sent an offer, such as offer <b>204</b>, indicating four windows (<b>304</b>, <b>308</b>, <b>312</b>, and <b>316</b>), each of which displays different continuous presence information for participants in the videoconference. Window <b>304</b> was associated with a rank identifier “rank <b>1</b>,” window <b>308</b> was associated with a rank identifier “rank <b>2</b>,” window <b>312</b> was associated with a rank identifier “rank <b>3</b>,” and window <b>316</b> was associated with a rank identifier “rank <b>4</b>.” Consistent with the description above, in this embodiment the window with rank <b>1</b> displays the most recently active speaker, the window would rank <b>2</b> displays the second most recently active speaker, the window with rank <b>3</b> displays the third most recent speaker, and the window with rank <b>4</b> displays the fourth most recent speaker. As shown in <figref idrefs="DRAWINGS">FIG. 7A</figref>, participant <b>1</b> is the most recently active speaker, participant <b>2</b> is the next most recent speaker, participant <b>3</b> is the third most recent speaker, and participant <b>4</b> is the fourth most recent speaker.
p-0063When participant <b>5</b> begins to speak, windows <b>304</b>, <b>308</b>, <b>312</b>, and <b>316</b> are shuffled in response, consistent with their rank. <figref idrefs="DRAWINGS">FIG. 7B</figref> illustrates, windows (<b>304</b>, <b>308</b>, <b>312</b>, and <b>316</b>), after they have been shuffled in response to participant <b>5</b> speaking. Participant <b>5</b> is shown in window <b>304</b> because she is the most recent speaker and window <b>304</b> has the rank identifier rank <b>1</b>. Windows <b>308</b>, <b>312</b>, and <b>316</b> are shuffled so that participant <b>1</b> is shown in window <b>308</b>, participant <b>2</b> is shown in window <b>312</b>, and participant <b>3</b> is shown in window <b>316</b>.
p-0064<figref idrefs="DRAWINGS">FIGS. 8A and 8B</figref> illustrate windows <b>304</b>, <b>308</b>, <b>312</b>, and <b>316</b> with the same rank identifier, namely rank <b>1</b>. This illustrates the embodiment where multiple windows have the same rank, which results in minimal shuffling. As shown in <figref idrefs="DRAWINGS">FIG. 8A</figref>, participant <b>1</b> is displayed in window <b>304</b>, participant <b>2</b> is displayed in window <b>308</b>, participant <b>3</b> is displayed in window <b>312</b>, and participant <b>4</b> is displayed in window <b>316</b>. When participant <b>5</b> begins to speak, instead of replacing participant <b>1</b> in window <b>304</b>, participant <b>5</b> replaces participant <b>4</b> and is displayed within window <b>316</b>, as shown in <figref idrefs="DRAWINGS">FIG. 8B</figref>. None of the other windows are changed. That is, shuffling is minimized so that only one window is changed to display the most recent speaker. In this embodiment, the server <b>108</b> decides which of the windows is changed so as to minimize the shuffling of windows <b>304</b>, <b>308</b>, <b>312</b>, and <b>316</b>. In other embodiments, the server <b>108</b> may decide to replace any of the other participants in the other windows, as long as the shuffling is minimized. This feature allows the communication device <b>102</b>A to control the user experience by assigning the same rank identifier for all of the windows, which results in the server having to minimize shuffling of windows when speakers switch in and out.
p-0065Some embodiments provide for selecting rank identifiers so that the behavior is a combination of having the most recently active speaker highlighted, but minimizing the shuffling of the other participants. <figref idrefs="DRAWINGS">FIGS. 9A and 9B</figref> illustrate windows <b>304</b>, <b>308</b>, <b>312</b>, and <b>316</b> where window <b>304</b> has a rank identifier of rank <b>1</b>, and windows <b>308</b>, <b>312</b>, and <b>316</b> have the same rank identifier, namely rank <b>2</b>. Window <b>304</b> will display the most recent active speaker. The other windows <b>308</b>, <b>312</b>, and <b>316</b>, will display the next 3 most recent active speakers. Because windows <b>308</b>, <b>312</b>, and <b>316</b>, all have the same rank identifier, the order for these windows will be determined by the server <b>108</b> to minimize shuffling. As shown in <figref idrefs="DRAWINGS">FIG. 9B</figref>, when participant <b>5</b> begins to speak, window <b>304</b> is changed to display participant <b>5</b>. To minimize shuffling, server <b>108</b> has changed window <b>316</b> to display participant <b>1</b>. This minimizes shuffling among windows <b>308</b>, <b>312</b>, and <b>316</b>, because <b>308</b> and <b>312</b> remain unchanged.
p-0066In some embodiments, rank identifiers can be used to pin a particular window. By “pinning” it is meant that the participant displayed in a window is never changed, even if there is speaking activity by other participants. <figref idrefs="DRAWINGS">FIGS. 10A and 10B</figref> illustrate windows <b>304</b>, <b>308</b>, <b>312</b>, and <b>316</b> where window <b>304</b> has a rank identifier of rank <b>1</b>, windows <b>308</b> has a rank identifier of rank <b>2</b>, window <b>312</b> has a rank identifier of rank <b>3</b>, and window <b>316</b> has a rank identifier of rank <b>0</b>. In this embodiment, rank <b>0</b> indicates that a window is pinned; therefore, participant <b>4</b> (shown in window <b>316</b>) is always displayed in window <b>316</b>. When participant <b>5</b> begins to speak, as shown in <figref idrefs="DRAWINGS">FIG. 10B</figref> participant <b>5</b> replaces participant <b>1</b> in window <b>304</b>. Participant <b>1</b> is then displayed in window <b>308</b>, and participant <b>2</b> is displayed in window <b>312</b>. Because window <b>316</b> is associated with rank identifier rank <b>0</b>, it continues to display participant <b>4</b> even after participant <b>5</b> begins to speak. This embodiment may be useful in a number of situations. For example, in videoconferences where there will primarily be one speaker, the rank identifier can be selected so that the primary speaker is always displayed in a window even when not speaking. This embodiment is also useful in situations where there is an important participant in the videoconference, so even if not speaking the participant should be displayed in one of the windows.
p-0067In some embodiments, if a rank is not specified, in an offer, a default rank identifier is assigned. For example, a rank of 1 may be the default value for all windows in order to minimize shuffling. As can be appreciated, in other embodiments, the default value may be any value that is predetermined by an algorithm in the communication device <b>102</b>A, selected by a user of communication device <b>102</b>A, or preprogrammed by an administrator.
p-0068It is noted that although specific examples of offers and attributes in the offers are described above, any combination of attributes can be used to describe layouts for displaying video data, such as continuous presence information for a video conference. Additional examples of combination of attributes that describe various layouts (some of which are shown in <figref idrefs="DRAWINGS">FIGS. 5-10B</figref>) are provided below for illustrative purposes.
Example 1
1×4/2×2 Layout
p-0070<tables id="TABLE-US-00001" num="00001"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="left" /><thead><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry>a=content: window1,1,100, 1 (this window gets the most recent speaker)</entry></row><row><entry>a=content: window2,1,100, 2 (2nd or 3rd most recent)</entry></row><row><entry>a=content: window3,1,100, 2 (2nd or 3rd most recent)</entry></row><row><entry>a=content: window4,1,100, 0 (pinned video / not switched based on</entry></row><row><entry>speaker activity)</entry></row><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
Example 2
1+3 Layout
p-0071a=content: window1,1,100, 1
p-0072a=content: window2,2,100, 2
p-0073a=content: window3,2,100, 2
p-0074a=content: window4,2,100, 2
p-0075In Example 2, window1 will display the most recent active speaker. The other 3 windows will get the next 3 most recent active speakers, minimum shuffling will be applied to windows 2,3,4.
Example 3
1×4/2×2 Layout
p-0076a=content: window1,1,100, 1
p-0077a=content: window2,1,100, 1
p-0078a=content: window3,1,100, 1
p-0079a=content: window4,1,100, 1
p-0080In Example 3, all four windows will get switched with active speaker streams, minimum shuffling will be applied to all.
p-0081Referring now to <figref idrefs="DRAWINGS">FIG. 11</figref>, a flow diagram <b>500</b>, for negotiating a multimedia session, e.g., a videoconference. Flow <b>500</b> is in embodiments performed by a computing device such as communication device <b>102</b>A (<figref idrefs="DRAWINGS">FIGS. 1-2</figref>) or other client computing device. More specifically, one or more hardware or software components may be involved in performing flow <b>500</b>. For example, portions of flow <b>500</b> may be performed by a SIP/SDP module <b>116</b> and/or video conference <b>120</b>.
p-0082Flow <b>500</b> begins with step <b>504</b> where an offer for negotiating a multimedia session is generated. The offer is in embodiments formatted according to SDP, such as offer <b>204</b> described above. The offer may be formatted according to different protocols in other embodiments. Flow passes from step <b>504</b> to step <b>508</b> where an indication of a number of different attributes including a first window identifier, a first bandwidth limit identifier, and/or a first group identifier, are indicated in the offer. At optional step <b>512</b>, a rank identifier may also be included in the offer generated at step <b>504</b>. As indicated above, the rank identifier may be used in controlling the behavior of displayed windows in response to speaking activity.
p-0083At step <b>516</b>, a second group of attributes including a second window identifier, a second bandwidth limit identifier, and/or a second group identifier, are indicated in the offer. At optional step <b>520</b>, a second rank identifier may also be included in the offer generated at step <b>504</b>. As can be appreciated, flow <b>500</b> is limited to an offer that identifies two windows and attributes associated with the two windows. In some embodiments, the offer may include attributes of more than two windows, in which case, flow <b>500</b> will include additional steps for indicating attributes of the additional windows.
p-0084After the indications of window attributes have been made in the offer, for all of the windows, flow <b>500</b> passes to step <b>524</b>, where the offer is delivered to a network for transmission. In embodiments, step <b>524</b> includes in embodiments delivering the offer to a multimedia server and/or a videoconference server. Step <b>524</b> may entail the use of a number of different protocols, such as transport protocols, security protocols, and other multimedia protocols. Step <b>524</b> includes the necessary sub steps (e.g., generating headers, packets, etc.) for delivering the offer for transmission to the server. And answers that received at step <b>528</b>.
p-0085Flow passes from step <b>528</b> to step <b>532</b> where video content is received for display. The video content is then displayed at step <b>536</b>. Step <b>536</b> may involve a number of sub steps including decoding the video content received at step <b>532</b> before it is displayed. Display of the video content at step <b>532</b> involves displaying the video content on a number of different windows. The windows may be laid out in any desired manner, some examples shown in <figref idrefs="DRAWINGS">FIGS. 5 and 6</figref>, and described above.
p-0086At step <b>540</b>, lower resolution video content is received and at step <b>544</b> the lower resolution video content is displayed. Step <b>540</b> may be a result of the server having reached bandwidth constraints. In order for the server to comply with the bandwidth constraints, it must reduce the resolution of the video content. As indicated above however, the offer delivered at step <b>524</b> included attributes such as group identifiers and bandwidth limit identifiers. The reduced resolution content received at step <b>540</b> and displayed at step <b>544</b> will therefore be consistent with the bandwidth limit identifiers sent in the offer. As one example, the video content for display in windows identified by a group identifier of a lower rank will be reduced in resolution first, up to any bandwidth limit identifier associated with the group. Video content for display in windows identified by a second group identifier, of a higher rank, will then be reduced up to any bandwidth limit identifier associated with the second group.
p-0087As noted above, optional rank identifiers may be indicated in the offer at optional steps <b>512</b> and <b>520</b>. The rank identifiers are used to control the display of video content in windows as a result of speaking activity. In those embodiments, flow <b>500</b> will include optional step <b>548</b>, where modified data is received based on the rank and the speaking activity during the multimedia session. Step <b>548</b> is then followed by step <b>552</b> where the modified video content is displayed. Flow <b>500</b> then ends at <b>556</b>.
p-0088<figref idrefs="DRAWINGS">FIG. 5</figref> illustrates a flow diagram <b>600</b> for negotiating a multimedia session, such as a videoconference. Flow <b>600</b> is in embodiments performed by a computing device such as server <b>108</b> (<figref idrefs="DRAWINGS">FIGS. 1-3</figref>), or other multimedia and/or conference server. More specifically, one or more hardware or software components may be involved in performing flow <b>600</b>. For example, portions of flow <b>500</b> may be performed by multimedia module <b>156</b>, videoconference module <b>160</b>, and/or SIP/SDP module <b>164</b> described above.
p-0089Flow <b>600</b> begins with step <b>604</b> where an offer for a multimedia session is received. The offer includes indications of attributes including one or more window identifiers, one or more bandwidth limit identifiers, one or more group number identifiers, and/or one or more ranks. In embodiments, the offer is received from a client device, such as communication device <b>102</b>A. Flow passes from step <b>604</b> to step <b>608</b> where in response to the offer received at step <b>604</b>, an answer is transmitted. In embodiments, the answer may be formatted according to SDP. The answer may acknowledge the attributes of the offer received at step <b>604</b>, indicating that the attributes are acceptable. In other embodiments, the answer may provide a counter offer that includes different attributes than those included in the offer received at step <b>604</b>. In these embodiments, the offer and answer are one of several messages that are sent and transmitted during the negotiation of the multimedia session.
p-0090Flow <b>600</b> passes from step <b>608</b> to step <b>612</b> where video content is transmitted. It is noted that in order for the video content to be transmitted, there may be additional steps that are performed in parallel with and/or prior to step <b>612</b>. For example, video content can be received from various sources, i.e. client devices that are being utilized by participants of a videoconference. The video content can include combined video/audio streams that are then encoded before they are transmitted at step <b>612</b>.
p-0091Following step <b>612</b>, resolution of the video content is reduced at step <b>616</b>. Step <b>616</b> may be performed as a result of bandwidth constraints. For example, a server performing flow <b>600</b> may be utilizing bandwidth to perform other operations. As a result, the server must do something to reduce its bandwidth consumption. By reducing the resolution of video content at step <b>616</b>, the server can comply with the bandwidth constraints. Their reduction of resolution is performed in accordance with the attributes received in the offer received at step <b>604</b>. For example, if there are priorities set with respect to group identifiers, then the video content for display on those windows with a lower priority group is first reduced in resolution. Additionally, if there is a bandwidth limit identifier that limits the amount by which the resolution can be reduced, then the server will comply with those bandwidth limit identifiers. At step <b>620</b>, the reduced resolution video content is transmitted.
p-0092In those embodiments in which the offer includes a rank identifier, flow <b>600</b> includes additional optional steps <b>624</b> and <b>628</b>. As described above, the rank identifiers are used in shuffling windows on the communication device that is displaying the video content transmitted at steps <b>612</b> and <b>620</b>, in response to speaker activity. Therefore, at step <b>624</b>, a server can modify the video content in accordance with the ranks received any offer, and the speaking activity. The modified video content is then transmitted at step <b>628</b>. Flow then ends at <b>632</b>.
p-0093It is noted that although flows <b>500</b> and <b>600</b> illustrate steps in an order, other embodiments are not necessarily limited thereto. The steps shown in <figref idrefs="DRAWINGS">FIGS. 11 and 12</figref> may be performed in any order or in parallel. Additionally, there may be other steps performed that are not shown in <figref idrefs="DRAWINGS">FIGS. 11 and 12</figref> or described above. Also, although the flows <b>500</b> and <b>600</b> are described above as being performed in some embodiments by particular hardware and/or software components, other embodiments are not necessarily limited to the description above. As can be appreciated, steps <b>500</b> and <b>600</b> can be performed by other hardware or software not described above or shown in <figref idrefs="DRAWINGS">FIGS. 11 and 12</figref>.
p-0094<figref idrefs="DRAWINGS">FIG. 13</figref> illustrates one embodiment of a computer system <b>700</b> upon which servers or other systems described herein may be deployed or executed. The computer system <b>700</b> is shown comprising hardware elements that may be electrically coupled via a bus <b>755</b>. The hardware elements may include one or more central processing units (CPUs) <b>705</b>; one or more input devices <b>710</b> (e.g., a mouse, a keyboard, etc.); and one or more output devices <b>715</b> (e.g., a display device, a printer, etc.). The computer system <b>700</b> may also include one or more storage device <b>720</b>. By way of example, storage device(s) <b>720</b> may be disk drives, optical storage devices, solid-state storage device such as a random access memory (“RAM”) and/or a read-only memory (“ROM”), which can be programmable, flash-updateable and/or the like.
p-0095The computer system <b>700</b> may additionally include a computer-readable media reader <b>725</b>; a communications system <b>730</b> (e.g., a modem, a network card (wireless or wired), an infra-red communication device, etc.); and working memory <b>740</b>, which may include RAM and ROM devices as described above. In some embodiments, the computer system <b>700</b> may also include a processing acceleration unit <b>735</b>, which can include a DSP, a special-purpose processor and/or the like.
p-0096The computer-readable media reader <b>725</b> can further be connected to a computer-readable medium, together (and, optionally, in combination with storage device(s) <b>720</b>) comprehensively representing remote, local, fixed, and/or removable storage devices plus a computer-readable medium for temporarily and/or more permanently containing computer-readable information. The communications system <b>730</b> may permit data to be exchanged with the network <b>520</b> and/or any other computer described above with respect to the system <b>700</b>.
p-0097The computer system <b>700</b> may also comprise software elements, shown as being currently located within a working memory <b>740</b>, including an operating system <b>745</b> and/or other code <b>750</b>, such as application code implementing the servers or devices described herein. It should be appreciated that alternate embodiments of a computer system <b>700</b> may have numerous variations from that described above. For example, customized hardware might also be used and/or particular elements might be implemented in hardware, software (including portable software, such as applets), or both. Further, connection to other computing devices such as network input/output devices may be employed.
p-0098In the foregoing description, for the purposes of illustration, methods were described in a particular order. It should be appreciated that in alternate embodiments, the methods may be performed in a different order than that described. It should also be appreciated that the methods described above may be performed by hardware components or may be embodied in sequences of machine-executable instructions, which may be used to cause a machine, such as a general-purpose or special-purpose processor or logic circuits programmed with the instructions to perform the methods. These machine-executable instructions may be stored on one or more machine readable mediums, such as CD-ROMs or other types of optical disks, floppy diskettes, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, flash memory, or other types of machine-readable mediums suitable for storing electronic instructions. Alternatively, the methods may be performed by a combination of hardware and software.
p-0099Specific details were given in the description to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, circuits may be shown in block diagrams in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments.
p-0100Also, it is noted that the embodiments were described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed, but could have additional steps not included in the figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function.
p-0101Furthermore, embodiments may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the application code or code segments to perform the necessary tasks may be stored in a machine readable medium such as storage medium. A processor(s) may perform the necessary tasks. A code segment may represent a procedure, a function, a subprogram, an application, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or application statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
p-0102While illustrative embodiments have been described in detail herein, it is to be understood that the inventive concepts may be otherwise variously embodied and employed, and that the appended claims are intended to be construed to include such variations, except as limited by the prior art.
Contents5
14 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US11683356B2 | Cited by | United States of America | Search report |
| US2020396265A1 | Cited by | United States of America | Search report |
| US11223658B2 | Cited by | United States of America | Search report |
| US2018367757A1 | Cited by | United States of America | Search report |
| US9674248B2 | Cited by | United States of America | Applicant |
| US9660926B2 | Cited by | United States of America | Applicant |
| WO2019071808A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US11765213B2 | Cited by | United States of America | Search report |
| US2018367757A1 | Cited by | United States of America | Search report |
| CN107682752A | Cited by | China | Search report |
| US10069877B2 | Cited by | United States of America | Applicant |
| CN107948578A | Cited by | China | Search report |
| US2014019630A1 | Cited by | United States of America | Pre-grant |
| US10630734B2 | Cited by | United States of America | Applicant |
| CN111212261A | Cited by | China | Search report |
| WO2022237381A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US10863227B2 | Cited by | United States of America | Search report |
| US2017093931A1 | Cited by | United States of America | Pre-grant |
| US2018176265A1 | Cited by | United States of America | Search report |
| US2014362718A1 | Cited by | United States of America | Pre-grant |
| US10848534B2 | Cited by | United States of America | Applicant |
| US9516079B2 | Cited by | United States of America | Search report |
| US10075482B2 | Cited by | United States of America | Search report |
| US2005157660A1 | Cites | United States of America | Pre-grant |
| US2009055473A1 | Cites | United States of America | Pre-grant |
| US2009116477A1 | Cites | United States of America | Pre-grant |
| US2009290573A1 | Cites | United States of America | Pre-grant |
| US2011181682A1 | Cites | United States of America | Pre-grant |
| US2012278384A1 | Cites | United States of America | Pre-grant |
| US2014040485A1 | Cites | United States of America | Pre-grant |
7 members in 3 offices
Priority claims6
| Document | Office | Kind | Date |
|---|---|---|---|
| 201161505911 | United States of America | P | |
| 201161505911 | United States of America | P | |
| 201213542930 | United States of America | A | |
| 61505911 | – | – | – |
| US201161505911P | – | – | – |
| US201213542930 | – | – | – |
Members7
| Document | Office | Kind | |
|---|---|---|---|
| GB201212036D0 | United Kingdom | D0 | |
| DE102012013336A1 | Germany | A1 | |
| US2013010049A1 | United States of America | A1 | |
| GB2494745A | United Kingdom | A | |
| US8966095B2 | United States of America | B2 | |
| DE102012013336B4 | Germany | B4 | |
| GB2494745B | United Kingdom | B |
79 transactions on the USPTO file
Allowed without a rejection on record.
- Non-final rejections
- 0
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Correspondence Address ChangeC.AD | C.AD | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Email NotificationEML_NTR | EML_NTR | |
| Printer Rush- No mailingTCPB | TCPB | |
| Mail Response to 312 Amendment (PTO-271)MN271 | MN271 | |
| Dispatch to FDCD1935 | D1935 | |
| Response to Amendment under Rule 312N271 | N271 | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Amendment after Notice of Allowance (Rule 312)AllowedA.NA | A.NA | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Interview Summary- Applicant InitiatedEXIA | EXIA | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response to PICO-RequestRPICO | RPICO | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Pre-Interview CommunicationMPICO | MPICO | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Pre-Interview Communication (FAI Step 1)PICO | PICO | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Request for first action interviewRFAI | RFAI | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail-Petition Decision - DismissedMPTDI | MPTDI | |
| Petition Decision - DismissedPTDI | PTDI | |
| Email NotificationEML_NTR | EML_NTR | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Email NotificationEML_NTR | EML_NTR | |
| Petition EnteredPET. | PET. | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Email NotificationEML_NTR | EML_NTR | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Mail-Petition Decision - DismissedMPTDI | MPTDI | |
| Petition Decision - DismissedPTDI | PTDI | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Application Is Now CompleteCOMP | COMP | |
| Email NotificationEML_NTR | EML_NTR | |
| Filing Receipt - UpdatedFLRCPT.U | FLRCPT.U | |
| Sent to Classification ContractorPGPC | PGPC | |
| Affidavit(s) (Rule 131 or 132) or Exhibit(s) ReceivedAF/D | AF/D | |
| Additional Application Filing FeesADDFLFEE | ADDFLFEE | |
| A statement by one or more inventors satisfying the requirement under 35 USC 115, Oath of the ApplicOATHDECL | OATHDECL | |
| Petition EnteredPET. | PET. | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTR | EML_NTR | |
| Email NotificationEML_NTF | EML_NTF | |
| Email NotificationEML_NTR | EML_NTR | |
| Notice of Incomplete ReplyINCR | INCR | |
| Notice Mailed--Application Incomplete--Filing Date AssignedINCD | INCD | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Additional Application Filing FeesADDFLFEE | ADDFLFEE | |
| A statement by one or more inventors satisfying the requirement under 35 USC 115, Oath of the ApplicOATHDECL | OATHDECL | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
48 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Maintenance fee paymentMAFP | MAFP | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Maintenance fee paymentMAFP | MAFP | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- 20130010049
- Publication, DOCDB
- 2013010049
- Publication, EPODOC
- US2013010049
- Application
- 13542930
- Application, DOCDB
- 201213542930
- Application, EPODOC
- US201213542930
Titles
- English
- NEGOTIATE MULTI-STREAM CONTINUOUS PRESENCE
Patent term adjustment
- A delay
- +294 daysthe office missed an examination deadline
- Applicant delay
- −57 days
- Net adjustment
- 237 days
Classification
- CPC, 9
- H04N7/15
- H04L12/1827
- H04L65/612
- H04N7/147
- H04N21/4312
- H04N21/4622
- H04N21/4788
- H04N21/4858
- H04L65/403
- IPC, 1
- H04N7 14
- USPC, 2
- 348014010
- 348E07077