IP Library Granted Patent US 10,200,417
Granted Patent B2
US 10,200,417 · App. 15/813,302 · Granted Feb 5, 2019

Systems and methods for conferencing

Inventors: Vlad Vendrow (Reno, NV); Aleksei Petrov (Redwood City, CA); Dmitriy Solovey (San Jose, CA)
Assignee: RingCentral, Inc.
H04L65/1069H04L41/08H04L65/1003H04L65/1013H04L65/403H04L65/605H04L65/608
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,200,417
App. No.
15/813,302
Granted
Feb 5, 2019
Kind
B2
Abstract

Systems and methods are provided for establishing a video conference session. The systems and methods may include receiving, from a first conference client device, a request to establish a conference session with a second conference client device; determining a first media router for forwarding, to the second conference client device, a media data stream with predetermined attributes of a plurality of first media data streams generated by the first conference client device; determining a second media router for forwarding, to the first conference client, a media data stream with predetermined media attributes of a plurality of second media data streams generated by the second conference client device; and transmitting, to the first conference client device, a first address associated with the first media router and a second address associated with the second media router.

Claims (44)

1. A method of establishing a video conference session, the method comprising:

receiving, from a first conference client device, a request to establish a conference session with a second conference client device;

determining a first media router for forwarding, to the second conference client device, a media data stream with predetermined attributes of a plurality of first media data streams generated by the first conference client device;

determining a second media router for forwarding, to the first conference client, a media data stream with predetermined media attributes of a plurality of second media data streams generated by the second conference client device;

transmitting, to the first conference client device, a first address associated with the first media router and a second address associated with the second media router, to enable the first conference client device to transmit the plurality of first media data streams to the first media router and to receive the media data stream with predetermined media attributes of the plurality of second media data streams from the second media router;

transmitting a first instruction to one or more recording servers to cause the one or more recording servers to record at least a part of the plurality of first media data streams and at least a part of the plurality of second media data streams; and

transmitting data related to the recording configuration to the first and second media routers to cause the first and second media routers to transmit, respectively, a first media data stream with the predetermined quality of the plurality of first media data streams and a second media data stream with the predetermined quality of the plurality of second media data streams to a single recording server of the one or more recording servers.

2. The method of claim 1 , wherein at least one of the first and second media routers is determined based on available processing bandwidth.

3. The method of claim 1 , wherein the first media router is determined based on a location of the first conference client device.

4. The method of claim 1 , wherein the request includes a recording configuration for recording the conference session at a predetermined quality.

5. The method of claim 1 , wherein the first instruction causes the single recording server to generate a single file based on the first and second media data streams.

6. The method of claim 1 , wherein the request includes a recording configuration for selectively recording at least a part of the plurality of first media data streams during a first predetermined period of the conference session and at least a part of the plurality of second media data streams a during a second predetermined period of the conference session, and the method further comprises:

transmitting data related to the recording configuration to the one or more recording servers, to cause the one or more recording servers to generate a meta information file that links a first file that stores the selectively recorded at least a part of the plurality of first media data streams and a second file that stores the selectively recorded at least a part of the plurality of second media data streams.

7. The method of claim 1 , further comprising:

receiving, from a viewer device, a request for media data of the conference session; and

transmitting a second instruction to the one or more recording servers to cause the one or more recording servers to provide the recorded at least a part of the plurality of first media data streams and the recorded at least a part of the plurality of second media data streams to the third video client via a content delivery network.

8. The method of claim 5 , wherein the single file comprises a single video file.

9. The method of claim 5 , wherein the single file comprises audio and video tracks associated with the first and second conference client devices.

10. The method of claim 7 , wherein the second instruction causes the one or more recording servers to establish a connection under the Real-Time Messaging Protocol (RTMP), and to transmit the recorded at least a part of the plurality of first media data streams and the plurality of second media data streams to the viewer device at predetermined time intervals over the connection.

11. The method of claim 7 , wherein the second instruction causes the one or more recording servers to store the recorded at least a part of the plurality of first media data streams and the plurality of second media data streams at a database accessible to a web server that provides streaming under Hypertext Transfer Protocol Live Streaming (HLS) protocol to the viewer device.

12. A system for establishing a video conference session, the system comprising:

one or more memories having stored thereon computer-executable instructions; and

one or more hardware processors configured to execute the stored instructions to:

receive, from a first conference client device, a request to establish a conference session with a second conference client device, wherein the request includes a recording configuration for recording the conference session at a predetermined quality;

determine a first media router for forwarding, to the second conference client device, a media data stream with predetermined attributes of a plurality of first media data streams generated by the first conference client device;

determine a second media router for forwarding, to the first conference client, a media data stream with predetermined media attributes of a plurality of second media data streams generated by the second conference client device;

transmit, to the first conference client device, a first address associated with the first media router and a second address associated with the second media router, to enable the first conference client device to transmit the plurality of first media data streams to the first media router and to receive the media data stream with predetermined media attributes of the plurality of second media data streams from the second media router;

transmit a first instruction to one or more recording servers to cause the one or more recording servers to record at least a part of the plurality of first media data streams and at least a part of the plurality of second media data streams; and

transmit data related to the recording configuration to the first and second media routers to cause the first and second media routers to transmit, respectively, a first media data stream with the predetermined quality of the plurality of first media data streams and a second media data stream with the predetermined quality of the plurality of second media data streams to a single recording server of the one or more recording servers.

13. The system of claim 12 , wherein the first media router is determined based on at available processing bandwidth.

14. The system of claim 12 , wherein the first media router is determined based on a location of the first conference client device.

15. The system of claim 12 , wherein the plurality of second media data streams includes a first video data stream associated with a first resolution and a second video data stream associated with a second resolution.

16. The system of claim 12 , wherein the hardware processor is configured to execute the stored instructions to:

transmit data related to the display configuration to the second media router to cause the second media router to forward the second video data stream to the first conference client device.

17. The system of claim 12 , wherein the first instruction causes the single recording server to generate a single file based on the first and second media data streams.

18. The system of claim 17 , wherein the single file comprises a single video file.

19. The system of claim 17 , wherein the single file comprises a set of audio and video tracks associated with the first and second conference client devices.

20. A non-transitory computer-readable medium storing instructions that are executable by one or more processors to cause the one or more processors to perform a method for establishing a video conference session, the method comprising:

receiving, from a first conference client device, a request to establish a conference session with a second conference client device;

determining a first media router for forwarding, to the second conference client device, a media data stream with predetermined attributes of a plurality of first media data streams generated by the first conference client device;

determining a second media router for forwarding, to the first conference client, a media data stream with predetermined media attributes of a plurality of second media data streams generated by the second conference client device;

transmitting, to the first conference client device, a first address associated with the first media router and a second address associated with the second media router, to enable the first conference client device to transmit the plurality of first media data streams to the first media router and to receive the media data stream with predetermined media attributes of the plurality of second media data streams from the second media router;

transmitting a first instruction to one or more recording servers to cause the one or more recording servers to record at least a part of the plurality of first media data streams and at least a part of the plurality of second media data streams; and

transmitting data related to a recording configuration to the first and second media routers to cause the first and second media routers to transmit, respectively, a first media data stream with the predetermined quality of the plurality of first media data streams and a second media data stream with the predetermined quality of the plurality of second media data streams to a single recording server of the one or more recording servers, wherein the instruction causes the single recording server to generate a single file based on the first and second media data streams.

Assignments (2)
SECURITY INTEREST Recorded Feb 14, 2023
From: RINGCENTRAL, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062973/0194 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 2, 2020
From: VENDROW, VLAD; PETROV, ALEKSIE; SOLOVEY, DMITRIY
To: RINGCENTRAL, INC.
Reel/Frame 053671/0141 →
Continuity (2)
Continuation 15406640 · Jan 13, 2017
Related Publication 20180205767A1 · Jul 19, 2018