IP Library › Granted Patent US 10,581,927
Granted Patent B2
US 10,581,927 · App. 14/255,361 · Granted Mar 3, 2020

Providing web real-time communications (WebRTC) media services via WebRTC-enabled media servers, and related methods, systems, and computer-readable media

Inventors: Joel Ezell (Broomfield, CO); John H. Yoakum (Cary, NC)
Assignee: Avaya Inc.
H04L65/1069H04L12/1818H04L29/06312H04L65/4015H04L65/608H04L29/06306H04L29/06326H04L29/08306H04L29/08531H04L67/02
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 10,581,927
App. No.
14/255,361
Granted
Mar 3, 2020
Kind
B2
Abstract

In one embodiment, a system for providing WebRTC media services comprises a WebRTC-enabled media server including a scripting engine, a WebRTC functionality provider, and a control application programming interface (API). The WebRTC-enabled media server is configured to receive, from a WebRTC application server, a stream establishment application, and to establish, via the stream establishment application, a plurality of WebRTC interactive flows associated with a corresponding plurality of WebRTC clients. The WebRTC-enabled media server is also configured to apply a media service to one or more of the plurality of WebRTC interactive flows to generate one or more media server flows, and provide the media server flows to one or more of the plurality of WebRTC clients. The WebRTC-enabled media server may thus provide functionality via familiar WebRTC control interfaces.

Claims (54)

1. A system for providing Web Real-Time Communications (WebRTC) media services, comprising:

at least one communications interface;

a processor; and

a computer readable medium coupled with the processor and comprising processor readable and executable instructions that program the processor to implement a WebRTC-enabled media server comprising a scripting engine, a WebRTC functionality provider, a control application program interface (API) providing an interface between the scripting engine and the WebRTC functionality provider, and a WebRTC client API, the WebRTC-enabled media server communicatively coupled to a WebRTC application server and a plurality of WebRTC clients via the at least one communications interface;

wherein the WebRTC-enabled media server:

receives, from the WebRTC application server, a stream establishment application;

establishes, via execution of the stream establishment application by the scripting engine and through the WebRTC client API, a plurality of WebRTC interactive flows associated with corresponding ones of the plurality of WebRTC clients through a WebRTC initiation dialogue between the stream establishment application of the Web-RTC-enabled media server and each of the plurality of WebRTC clients, wherein the WebRTC-enabled media server interacts through the WebRTC client API with the WebRTC clients as a WebRTC peer and provides media server functionality based on media server commands received from the WebRTC application server through the control API;

applies a media service to one or more of the plurality of WebRTC interactive flows to generate one or more media server flows; and

provides the one or more media server flows to one or more of the plurality of WebRTC clients.

2. The system of claim 1 , wherein the WebRTC-enabled media server receives the stream establishment application in response to a Hyper Text Transfer Protocol (HTTP) request or a Web Sockets request, or combinations thereof.

3. The system of claim 1 , wherein:

the control API receives a media server command from the WebRTC application server; and

the WebRTC functionality provider applies a media service indicated by the media server command to one or more of the plurality of WebRTC interactive flows.

4. The system of claim 3 , wherein the control API receives the media server command via a Representational State Transfer (REST) API invocation or a JavaScript API invocation.

5. The system of claim 1 , wherein:

the WebRTC functionality provider generates a media server event responsive to applying the media service to the one or more of the plurality of WebRTC interactive flows; and

the control API provides the media server event to the WebRTC application server.

6. The system of claim 5 , wherein the control API provides the media server event via a REST API or a JavaScript API.

7. The system of claim 1 , wherein:

the control API comprises a JavaScript API; and

the WebRTC-enabled media server further receives a media control application configured to access the functionality of the WebRTC functionality provider via the control API.

8. A method for providing Web Real-Time Communications (WebRTC) media services, comprising:

providing, by a WebRTC-enabled media server executing on a computing device, a scripting engine, a WebRTC functionality provider, a control application programming interface (API) providing an interface between the scripting engine and the WebRTC functionality provider, and a WebRTC client API;

receiving, by the WebRTC-enabled media server, a stream establishment application from a WebRTC application server;

establishing, via execution of the stream establishment application by the scripting engine and through the WebRTC client API, a plurality of WebRTC interactive flows associated with corresponding ones of a plurality of WebRTC clients through a WebRTC initiation dialogue between the stream establishment application of the Web-RTC-enabled media server and each of the plurality of WebRTC clients, wherein the WebRTC-enabled media server interacts through the WebRTC client API with the WebRTC clients as a WebRTC peer and provides media server functionality based on media server commands received from the WebRTC application server through the control API;

applying a media service to one or more of the plurality of WebRTC interactive flows to generate one or more media server flows; and

providing the one or more media server flows to one or more of the plurality of WebRTC clients.

9. The method of claim 8 , wherein receiving the stream establishment application comprises receiving the stream establishment application in response to a Hyper Text Transfer Protocol (HTTP) request or a Web Sockets request, or combinations thereof.

10. The method of claim 8 , further comprising:

receiving, via the control API, a media server command from the WebRTC application server; and

applying a media service indicated by the media server command to one or more of the plurality of WebRTC interactive flows.

11. The method of claim 10 , wherein receiving the media server command comprises receiving the media server command via a Representational State Transfer (REST) API invocation or a JavaScript API invocation.

12. The method of claim 8 , further comprising:

generating a media server event responsive to applying the media service to the one or more of the plurality of WebRTC interactive flows; and

providing, via the control API, the media server event to the WebRTC application server.

13. The method of claim 12 , wherein providing the media server event comprises providing the media server event via a REST API or a JavaScript API.

14. The method of claim 8 , wherein:

the control API comprises a JavaScript API; and

the method further comprises receiving a media control application configured to access the functionality of the WebRTC functionality provider via the control API.

15. A non-transitory computer-readable medium having stored thereon computer-executable instructions to cause a processor to implement a method for providing Web Real-Time Communications (WebRTC) media services, comprising:

providing, by a WebRTC-enabled media server, a scripting engine, a WebRTC functionality provider, a control application programming interface (API) providing an interface between the scripting engine and the WebRTC functionality provider, and a WebRTC client API;

receiving, by the WebRTC-enabled media server, a stream establishment application from a WebRTC application server;

establishing, via execution of the stream establishment application by the scripting engine and through the WebRTC client API, a plurality of WebRTC interactive flows associated with corresponding ones of a plurality of WebRTC clients through a WebRTC initiation dialogue between the stream establishment application of the Web-RTC-enabled media server and each of the plurality of WebRTC clients, wherein the WebRTC-enabled media server interacts through the WebRTC client API with the WebRTC clients as a WebRTC peer and provides media server functionality based on media server commands received from the WebRTC application server through the control API;

applying a media service to one or more of the plurality of WebRTC interactive flows to generate one or more media server flows; and

providing the one or more media server flows to one or more of the plurality of WebRTC clients.

16. The non-transitory computer-readable medium of claim 15 having stored thereon the computer-executable instructions to cause the processor to implement the method, wherein receiving the stream establishment application comprises receiving the stream establishment application in response to a Hyper Text Transfer Protocol (HTTP) request or a Web Sockets request, or combinations thereof.

17. The non-transitory computer-readable medium of claim 15 having stored thereon the computer-executable instructions to cause the processor to implement the method, further comprising:

receiving, via the control API, a media server command from the WebRTC application server; and

applying a media service indicated by the media server command to one or more of the plurality of WebRTC interactive flows.

18. The non-transitory computer-readable medium of claim 17 having stored thereon the computer-executable instructions to cause the processor to implement the method, wherein receiving the media server command comprises receiving the media server command via a Representational State Transfer (REST) API invocation or a JavaScript API invocation.

19. The non-transitory computer-readable medium of claim 15 having stored thereon the computer-executable instructions to cause the processor to implement the method, further comprising:

generating a media server event responsive to applying the media service to the one or more of the plurality of WebRTC interactive flows; and

providing, via the control API, the media server event to the WebRTC application server.

20. The non-transitory computer-readable medium of claim 19 having stored thereon the computer-executable instructions to cause the processor to implement the method, wherein providing the media server event comprises providing the media server event via a REST API or a JavaScript API.

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 Apr 17, 2014
From: EZELL, JOEL; YOAKUM, JOHN H.
To: AVAYA INC.
Reel/Frame 032700/0261 →
Continuity (1)
Related Publication 20150304379A1 · Oct 22, 2015
Cited By (2)
US 12,375,606 US 12,413,673