IP Library Granted Patent US 9,035,998
Granted Patent B2
US 9,035,998 · App. 13/931,968 · Granted May 19, 2015

Scalable web real-time communications (WebRTC) media engines, and related methods, systems, and computer-readable media

Inventors: Alan B. Johnston (St. Louis, MO); John H. Yoakum (Cary, NC)
Assignee: Avaya Inc.
H04N7/147H04L65/403
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,035,998
App. No.
13/931,968
Filed
Jun 30, 2013
Granted
May 19, 2015
Kind
B2
Art Unit
2653
USPC
348/14.12
Abstract

Scalable Web Real-Time Communication (WebRTC) media engines, and related methods, systems, and computer-readable media, are disclosed herein. In one embodiment, a method for providing a scalable WebRTC media engine comprises instantiating one or more virtual WebRTC agents, each corresponding to one or more of a plurality of WebRTC clients. The method further comprises establishing a plurality of WebRTC interactive flows, each connecting one of the one or more virtual WebRTC agents with the corresponding one or more of the plurality of WebRTC clients. The method also comprises receiving contents of the plurality of WebRTC interactive flows as input from the one or more virtual WebRTC agents, and synthesizing the contents of the plurality of WebRTC interactive flows. The method additionally comprises directing the synthesized contents as output to one of more of the plurality of WebRTC interactive flows via the corresponding one or more virtual WebRTC agents.

Claims (52)

1. A method for providing a scalable Web Real-Time Communications (WebRTC) media engine, comprising:

instantiating, by a WebRTC media engine executing on a computing device, one or more virtual WebRTC agents, each corresponding to one or more of a plurality of WebRTC clients;

establishing a plurality of WebRTC interactive flows, each connecting one of the one or more virtual WebRTC agents with the corresponding one or more of the plurality of WebRTC clients;

receiving contents of the plurality of WebRTC interactive flows as input from the one or more virtual WebRTC agents;

synthesizing the contents of the plurality of WebRTC interactive flows; and

directing the synthesized contents as output to one or more of the plurality of WebRTC interactive flows via the one or more virtual WebRTC agents.

2. The method of claim 1 , wherein synthesizing the contents of the plurality of WebRTC interactive flows comprises applying an N loudest algorithm, a loudest and longest algorithm, or an N−1 algorithm, or combinations thereof, to an audio content of one or more of the plurality of WebRTC interactive flows.

3. The method of claim 1 , wherein synthesizing the contents of the plurality of WebRTC interactive flows comprises selecting a video content of one or more of the plurality of WebRTC interactive flows, combining video contents of two or more of the plurality of WebRTC interactive flows, modifying a video content of one or more of the plurality of WebRTC interactive flows, or combinations thereof.

4. The method of claim 1 , further comprising determining a client type or a client version, or a combination thereof, of the one or more of the plurality of WebRTC clients.

5. The method of claim 4 , wherein determining the client type or the client version, or the combination thereof, of the one or more of the plurality of WebRTC clients is based on a WebRTC offer/answer exchange, a query/response exchange between the WebRTC media engine and the one or more of the plurality of WebRTC clients, or a Hyper Text Transfer Protocol (HTTP) header, or a combination thereof.

6. The method of claim 4 , wherein instantiating the one or more virtual WebRTC agents comprises:

determining, based on the client type or the client version, or the combination thereof, that a first WebRTC client of the plurality of WebRTC clients is compatible with a second WebRTC client of the plurality of WebRTC clients; and

instantiating a virtual WebRTC agent compatible with the first WebRTC client and the second WebRTC client.

7. The method of claim 4 , wherein instantiating the one or more virtual WebRTC agents comprises:

determining, based on the client type or the client version, or the combination thereof, that a first WebRTC client of the plurality of WebRTC clients is not compatible with a second WebRTC client of the plurality of WebRTC clients;

instantiating a first virtual WebRTC agent compatible with the first WebRTC client; and

instantiating a second virtual WebRTC agent compatible with the second WebRTC client.

8. A system for providing a scalable Web Real-Time Communications (WebRTC) media engine, comprising:

at least one communications interface; and

a WebRTC server associated with the at least one communications interface and comprising a WebRTC media engine configured to:

instantiate one or more virtual WebRTC agents, each corresponding to one or more of a plurality of WebRTC clients;

establish a plurality of WebRTC interactive flows, each connecting one of the one or more virtual WebRTC agents with the corresponding one or more of the plurality of WebRTC clients;

receive contents of the plurality of WebRTC interactive flows as input from the one or more virtual WebRTC agents;

synthesize the contents of the plurality of WebRTC interactive flows; and

direct the synthesized contents as output to one or more of the plurality of WebRTC interactive flows via the one or more virtual WebRTC agents.

9. The system of claim 8 , wherein the WebRTC media engine is configured to synthesize the contents of the plurality of WebRTC interactive flows by applying an N loudest algorithm, a loudest and longest algorithm, or an N−1 algorithm, or combinations thereof, to an audio content of one or more of the plurality of WebRTC interactive flows.

10. The system of claim 8 , wherein the WebRTC media engine is further configured to determine a client type or a client version, or a combination thereof, of the one or more of the plurality of WebRTC clients.

11. The system of claim 10 , wherein the WebRTC media engine is configured to determine the client type or the client version, or the combination thereof, of the one or more of the plurality of WebRTC clients based on a WebRTC offer/answer exchange, a query/response exchange between the WebRTC media engine and the one or more of the plurality of WebRTC clients, or a Hyper Text Transfer Protocol (HTTP) header.

12. The system of claim 10 , wherein the WebRTC media engine is configured to instantiate the one or more virtual WebRTC agents by:

determining, based on the client type or the client version, or the combination thereof, that a first WebRTC client of the plurality of WebRTC clients is compatible with a second WebRTC client of the plurality of WebRTC clients; and

instantiating a virtual WebRTC agent compatible with the first WebRTC client and the second WebRTC client.

13. The system of claim 10 , wherein the WebRTC media engine is configured to instantiate the one or more virtual WebRTC agents by:

determining, based on the client type or the client version, or the combination thereof, that a first WebRTC client of the plurality of WebRTC clients is not compatible with a second WebRTC client of the plurality of WebRTC clients;

instantiating a first virtual WebRTC agent compatible with the first WebRTC client; and

instantiating a second virtual WebRTC agent compatible with the second WebRTC client.

14. A non-transitory computer-readable medium having stored thereon computer-executable instructions to cause a processor to implement a method, comprising:

instantiating one or more virtual Web Real-Time Communications (WebRTC) agents, each corresponding to one or more of a plurality of WebRTC clients;

establishing a plurality of WebRTC interactive flows, each connecting one of the one or more virtual WebRTC agents with the corresponding one or more of the plurality of WebRTC clients;

receiving contents of the plurality of WebRTC interactive flows as input from the one or more virtual WebRTC agents;

synthesizing the contents of the plurality of WebRTC interactive flows; and

directing the synthesized contents as output to one or more of the plurality of WebRTC interactive flows via the one or more virtual WebRTC agents.

15. The non-transitory computer-readable medium of claim 14 having stored thereon the computer-executable instructions to cause the processor to implement the method, wherein synthesizing the contents of the plurality of WebRTC interactive flows comprises applying an N loudest algorithm, a loudest and longest algorithm, or an N−1 algorithm, or combinations thereof, to an audio content of one or more of the plurality of WebRTC interactive flows.

16. The non-transitory computer-readable medium of claim 14 having stored thereon the computer-executable instructions to cause the processor to implement the method, further comprising determining a client type or a client version, or a combination thereof, of the one or more of the plurality of WebRTC clients.

17. The non-transitory computer-readable medium of claim 16 having stored thereon the computer-executable instructions to cause the processor to implement the method, wherein determining the client type or the client version, or the combination thereof, of the one or more of the plurality of WebRTC clients is based on a WebRTC offer/answer exchange, a query/response exchange between the WebRTC media engine and the one or more of the plurality of WebRTC clients, or a Hyper Text Transfer Protocol (HTTP) header, or a combination thereof.

18. The non-transitory computer-readable medium of claim 16 having stored thereon the computer-executable instructions to cause the processor to implement the method, wherein instantiating the one or more virtual WebRTC agents comprises:

determining, based on the client type or the client version, or the combination thereof, that a first WebRTC client of the plurality of WebRTC clients is compatible with a second WebRTC client of the plurality of WebRTC clients; and

instantiating a virtual WebRTC agent compatible with the first WebRTC client and the second WebRTC client.

19. The non-transitory computer-readable medium of claim 16 having stored thereon the computer-executable instructions to cause the processor to implement the method, wherein instantiating the one or more virtual WebRTC agents comprises:

determining, based on the client type or the client version, or the combination thereof, that a first WebRTC client of the plurality of WebRTC clients is not compatible with a second WebRTC client of the plurality of WebRTC clients;

instantiating a first virtual WebRTC agent compatible with the first WebRTC client; and

instantiating a second virtual WebRTC agent compatible with the second WebRTC client.

20. The non-transitory computer-readable medium of claim 14 having stored thereon the computer-executable instructions to cause the processor to implement the method, wherein the one or more virtual WebRTC agents comprises web browser applications executing within a virtualization environment.

Assignments (14)
(SECURITY INTEREST) GRANTOR'S NAME CHANGE Recorded Sep 21, 2023
From: AVAYA INC.
To: AVAYA LLC
Reel/Frame 065019/0231 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 53955/0436) Recorded May 18, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063705/0023 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 61087/0386) Recorded May 18, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063690/0359 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 045034/0001) Recorded May 18, 2023
From: GOLDMAN SACHS BANK USA., AS COLLATERAL AGENT
To: AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC. (FORMER NAME OF AVAYA CLOUD INC.); HYPERQUALITY, INC.; HYPERQUALITY II, LLC; CAAS TECHNOLOGIES, LLC; AVAYA MANAGEMENT L.P.
Reel/Frame 063779/0622 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 4, 2023
From: AVAYA INC.; AVAYA MANAGEMENT L.P.; INTELLISIST, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 063542/0662 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 3, 2023
From: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; KNOAHSOFT INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB [COLLATERAL AGENT]
Reel/Frame 063742/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL 45124/FRAME 0026 Recorded Apr 26, 2023
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: AVAYA HOLDINGS CORP.; AVAYA INC.; AVAYA MANAGEMENT L.P.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063457/0001 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 5, 2022
From: AVAYA INC.; INTELLISIST, INC.; AVAYA MANAGEMENT L.P.; AVAYA CABINET SOLUTIONS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 061087/0386 →
SECURITY INTEREST Recorded Sep 25, 2020
From: AVAYA INC.; AVAYA MANAGEMENT L.P.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 053955/0436 →
SECURITY INTEREST Recorded Jan 23, 2018
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 045124/0026 →
SECURITY INTEREST Recorded Jan 10, 2018
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 045034/0001 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 041576/0001 Recorded Dec 15, 2017
From: CITIBANK, N.A.
To: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS LLC (FORMERLY KNOWN AS OCTEL COMMUNICATIONS CORPORATION); VPNET TECHNOLOGIES, INC.
Reel/Frame 044893/0531 →
SECURITY INTEREST Recorded Jan 27, 2017
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS CORPORATION; VPNET TECHNOLOGIES, INC.
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 041576/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2013
From: JOHNSTON, ALAN B.; YOAKUM, JOHN H.
To: AVAYA INC.
Reel/Frame 030717/0885 →
Continuity (1)
Related Publication 20150002619A1 · Jan 1, 2015