IP Library Granted Patent US 11,522,934
Granted Patent B1
US 11,522,934 · App. 17/583,865 · Granted Dec 6, 2022

Media provider shim for virtual events

Inventors: Armando Antonio Garcia Mendoza Sanchez (Barcelona, ES); Goncalo Pereira (Parede, PT); Gustavo Garcia (Madrid, ES); Charley Robinson (Denver, CO); Thomas Mullen (Ontario, CA)
Assignee: Hopin Ltd
H04L65/65
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 11,522,934
App. No.
17/583,865
Granted
Dec 6, 2022
Kind
B1
Abstract

Media, methods, and systems are provided for a shim to enable dynamic selection of RTC during virtual events. A virtual event may be created, and an RTC provider may be selected for the virtual event. A connection request to connect to the RTC provider may be received from a client device. Thereafter, connection data may be signaled to the client device. A signaling message may be received from the client device. The signaling message may be intercepted and translated by the shim. The signaling message may then be transmitted to a signaling server for connecting to the RTC provider. Changes of state of the virtual event may be monitored to determine if a new RTC provider should be leveraged.

Claims (89)

1. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by a processor, perform a method of shimming signaling data to enable dynamic selection of WebRTC providers for a virtual event hosted by a virtual event hosting platform, the method comprising:

providing a shim for the virtual event hosting platform;

receiving, from a virtual event organizer, creation of the virtual event;

selecting a WebRTC provider for the virtual event;

receiving, from a presenter client device, a connection request to connect to the WebRTC provider;

in response to receiving the connection request, signaling the presenter client device with connection information for connecting to the WebRTC provider;

receiving, from the presenter client device, a signaling message, the signaling message based in part on the connection information;

intercepting, by the shim, the signaling message;

translating, by the shim, the signaling message from a first syntax to a second syntax to obtain a translated signaling message;

transmitting the translated signaling message to a signaling server associated with the WebRTC provider, the signaling server configured to control a connection between the presenter client device and the WebRTC provider;

detecting a change of state associated with the virtual event; and

in response to detecting the change of state, selecting a new WebRTC provider for the virtual event.

2. The media of claim 1 , wherein the change of state comprises a number of participants for the virtual event exceeding a capacity of the WebRTC provider.

3. The media of claim 1 ,

wherein the presenter client device is a first presenter client device, and

wherein the method further comprises:

detecting a connection of a second presenter client device to the virtual event; and

signaling the second presenter client device to connect to the new WebRTC provider.

4. The media of claim 3 ,

wherein the signaling message is a first signaling message, and

wherein the method further comprises:

receiving, from the second presenter client device, a second signaling message;

intercepting, by the shim, the second signaling message; and

translating, by the shim, the second signaling message from the first syntax to a third syntax to obtain a translated second signaling message.

5. The media of claim 1 , wherein the method further comprises:

disconnecting the presenter client device from the WebRTC provider; and

connecting the presenter client device to the new WebRTC provider.

6. The media of claim 1 ,

wherein the WebRTC provider is an internal WebRTC provider for a virtual event hosting platform for the virtual event, and

wherein the new WebRTC provider is external to the virtual event hosting platform.

7. The media of claim 6 ,

wherein the change of state comprises a virtual event start, and

wherein the method further comprises migrating the presenter client device to the new WebRTC provider.

8. A system for shimming virtual event data for dynamic selection of WebRTC providers for a virtual event hosted by a virtual event hosting platform, the system comprising:

a processor; and

one or more non-transitory computer-readable media storing computer-executable instructions that, when executed by the processor, perform a method for shimming virtual event data for dynamic selection of WebRTC providers for the virtual event hosted by the virtual event hosting platform, the method comprising:

providing a shim for the virtual event hosting platform;

receiving, from a virtual event organizer, creation of the virtual event;

receiving, from a presenter client device, a connection request;

in response to receiving the connection request, signaling the presenter client device with connection information for connecting to a WebRTC provider;

receiving, from the presenter client device, a signaling message, the signaling message based in part on the connection information;

intercepting, by the shim, the signaling message;

translating, by the shim, the signaling message from a first syntax to a second syntax to obtain a translated signaling message; and

transmitting the translated signaling message to a signaling server associated with the WebRTC provider, the signaling server configured to control the connection between the presenter client device and the WebRTC provider.

9. The system of claim 8 , wherein the method further comprises:

detecting a change of state associated with the virtual event; and

in response to detecting the change of state, selecting a new WebRTC provider for the virtual event.

10. The system of claim 9 , wherein the change of state comprises a failure of the WebRTC provider.

11. The system of claim 8 , wherein the method further comprises:

in response to receiving the creation of the virtual event, selecting the WebRTC provider for the virtual event.

12. The system of claim 11 , wherein the method further comprises:

when the virtual event is scheduled to start, determining if the WebRTC provider can service the virtual event;

in response to determining the WebRTC provider cannot service the virtual event, selecting a new WebRTC provider; and

disconnecting the presenter client device from the WebRTC provider.

13. The system of claim 8 ,

wherein the shim is a first shim, and

wherein the method further comprises:

providing a second shim for the virtual event hosting platform;

selecting an automatic speech recognition engine for the virtual event; and

sending the signaling message through a second shim, the second shim configured to translate the signaling message from the first syntax to a third syntax for connecting to the automatic speech recognition engine.

14. The system of claim 8 ,

wherein the presenter client device is a first presenter client device and the WebRTC provider is a first WebRTC provider, and

wherein the method further comprises:

receiving a connection request from a second presenter client device;

determining that the second presenter client device is incompatible with the first WebRTC provider; and

in response to determining that the second presenter client device is incompatible with the first WebRTC provider, selecting a second WebRTC provider for the second presenter client device.

15. A method of shimming virtual event data to enable dynamic selection of WebRTC providers for a virtual event hosted by a virtual event hosting platform, the method comprising:

providing a shim for the virtual event hosting platform;

receiving, from a virtual event organizer, creation of the virtual event;

selecting a WebRTC provider for the virtual event;

receiving, from a presenter client device of a plurality of presenter client devices, a connection request to connect to the WebRTC provider;

in response to receiving the connection request, signaling the presenter client device with connection information for connecting to the WebRTC provider;

receiving, from the presenter client device, a signaling message, the signaling message based in part on the connection information;

intercepting, by the shim, the signaling message;

translating, by the shim, the signaling message from a first syntax to a second syntax to obtain a translated signaling message; and

transmitting the translated signaling message to a signaling server associated with the WebRTC provider, the signaling server configured to control the connection between the presenter client device and the WebRTC provider.

16. The method of claim 15 ,

wherein selecting the WebRTC provider for the virtual event is performed in response to the creation of the virtual event, and

wherein the method further comprises:

substantially near a start of the virtual event, determining if the WebRTC provider can service the virtual event based on a number of virtual event participants; and

in response to determining that the WebRTC provider is unable to service the virtual event based on the number of virtual event participants, selecting a new WebRTC provider for the virtual event.

17. The method of claim 16 , wherein the method further comprises:

detecting a connection of a new presenter client device to the virtual event; and

signaling the new presenter client device with connection information for connecting to the new WebRTC provider.

18. The method of claim 15 , wherein the WebRTC provider is selected based in part on a location of the presenter client device.

19. The method of claim 15 , wherein the WebRTC provider is selected based in part on an operating system of the presenter client device.

20. The method of claim 15 , wherein the method further comprises:

determining a number of virtual event participants exceeds a capacity of the WebRTC provider; and

in response to determining the number of virtual event participants exceeds the capacity of the WebRTC provider, requesting an additional media server from the WebRTC provider.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNEE STATE OF INCORPORATION FROM FLORIDA TO DELAWARE PREVIOUSLY RECORDED AT REEL: 064878 FRAME: 434. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 28, 2023
From: HOPIN LTD
To: RINGCENTRAL FLORIDA, LLC
Reel/Frame 066407/0236 →
SECURITY INTEREST Recorded Nov 29, 2023
From: RINGCENTRAL, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 065693/0745 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2023
From: RINGCENTRAL FLORIDA, LLC
To: RINGCENTRAL, INC.
Reel/Frame 064900/0084 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2023
From: HOPIN LTD
To: RINGCENTRAL FLORIDA, LLC
Reel/Frame 064878/0434 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2022
From: GARCIA MENDOZA SANCHEZ, ARMANDO ANTONIO; PEREIRA, GONCALO; GARCIA, GUSTAVO; ROBINSON, CHARLEY; MULLEN, THOMAS
To: HOPIN LTD
Reel/Frame 058762/0232 →
Cited By (1)
US 12,423,392