IP Library Granted Patent US 12,020,058
Granted Patent B2
US 12,020,058 · App. 17/390,480 · Granted Jun 25, 2024

Merging streams in virtual channel for call enhancement in virtual desktop infrastructure

Inventors: Xingzhi Luo (Sunnyvale, CA); Daoquan Ye (Hangzhou, CN)
Assignee: Zoom Video Communications, Inc.
G06F9/45558G06F9/45545H04L65/65G06F2009/4557G06F2009/45595
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 12,020,058
App. No.
17/390,480
Granted
Jun 25, 2024
Kind
B2
Abstract

Calls run through a virtual desktop infrastructure server are enhanced by opening a media channel between a personal computing device and a media server for a call initiated using a virtual desktop infrastructure server. A first stream of media data for the call is merged with a second stream of media data for the call in a single virtual channel of the protocol using a first packet queue to store packets of the first stream and a second packet queue to store packets of the second stream as the packets await transmission. A first packet of media data of the first stream is pushed into the first packet queue. A fill level of the first packet queue is compared to a first congest threshold associated with the first packet queue. Responsive to the fill level exceeding the first congest threshold, a congestion mitigation measure is invoked.

Claims (57)

1. A method comprising:

opening a media channel between a personal computing device and a media server for a call initiated using a virtual desktop infrastructure server, wherein the media channel is routed through the virtual desktop infrastructure server and encapsulated in a protocol for exchanging data for virtual desktop applications;

merging a first stream of media data for the call with a second stream of media data for the call in a single virtual channel of the protocol using a first packet queue to store packets of the first stream and a second packet queue to store packets of the second stream, wherein the first packet queue is associated with a first congest threshold;

pushing a first packet of media data of the first stream into the first packet queue;

comparing a fill level of the first packet queue to the first congest threshold; and

responsive to the fill level exceeding the first congest threshold, invoking a congestion mitigation measure.

2. The method of claim 1 , wherein the congestion mitigation measure comprises

reducing an encoder data rate for the first stream of media data.

3. The method of claim 1 , wherein the congestion mitigation measure comprises

reducing an encoder data rate for the second stream of media data.

4. The method of claim 1 , wherein the congestion mitigation measure comprises

transmitting a congestion indication message to the media server.

5. The method of claim 1 , comprising:

transferring data for the call, including the media data and call control data, in the single virtual channel of the protocol.

6. The method of claim 1 , wherein the single virtual channel is used to transfer all data for the call.

7. The method of claim 1 , wherein the second packet queue is associated with a second congest threshold, comprising:

pushing a second packet of media data of the second stream into the second packet queue;

comparing a fill level of the second packet queue to the second congest threshold; and

responsive to the fill level exceeding the second congest threshold, invoking a congestion mitigation measure.

8. The method of claim 1 , comprising:

selecting amongst a set of packet queues, including the first packet queue and the second packet queue, based on priorities of packet queues in the set of packet queues; and

transmitting a packet from the selected packet queue in the single virtual channel.

9. A personal computing device, comprising:

a network interface,

a processor, and

a memory, wherein the memory stores instructions executable by the processor to:

open a media channel between a personal computing device and a media server for a call initiated using a virtual desktop infrastructure server, wherein the media channel is routed through the virtual desktop infrastructure server and encapsulated in a protocol for exchanging data for virtual desktop applications;

merge a first stream of media data for the call with a second stream of media data for the call in a single virtual channel of the protocol using a first packet queue to store packets of the first stream and a second packet queue to store packets of the second stream, wherein the first packet queue is associated with a first congest threshold;

push a first packet of media data of the first stream into the first packet queue;

compare a fill level of the first packet queue to the first congest threshold; and

responsive to the fill level exceeding the first congest threshold, invoke a congestion mitigation measure.

10. The personal computing device of claim 9 , wherein the congestion mitigation measure comprises reducing an encoder data rate for the first stream of media data.

11. The personal computing device of claim 9 , wherein the congestion mitigation measure comprises reducing an encoder data rate for the second stream of media data.

12. The personal computing device of claim 9 , wherein the congestion mitigation measure comprises transmitting a congestion indication message to the media server.

13. The personal computing device of claim 9 , wherein the memory stores instructions executable by the processor to:

transfer data for the call, including the media data and call control data, in the single virtual channel of the protocol.

14. The personal computing device of claim 9 , wherein the single virtual channel is used to transfer all data for the call.

15. The personal computing device of claim 9 , wherein the second packet queue is associated with a second congest threshold, and wherein the memory stores instructions executable by the processor to:

push a second packet of media data of the second stream into the second packet queue;

compare a fill level of the second packet queue to the second congest threshold; and

responsive to the fill level exceeding the second congest threshold, invoke a congestion mitigation measure.

16. The personal computing device of claim 9 , wherein the memory stores instructions executable by the processor to:

select amongst a set of packet queues, including the first packet queue and the second packet queue, based on priorities of packet queues in the set of packet queues; and

transmit a packet from the selected packet queue in the single virtual channel.

17. A non-transitory computer-readable storage medium, comprising executable instructions that, when executed by a processor, facilitate performance of operations, comprising:

opening a media channel between a personal computing device and a media server for a call initiated using a virtual desktop infrastructure server, wherein the media channel is routed through the virtual desktop infrastructure server and encapsulated in a protocol for exchanging data for virtual desktop applications;

merging a first stream of media data for the call with a second stream of media data for the call in a single virtual channel of the protocol using a first packet queue to store packets of the first stream and a second packet queue to store packets of the second stream, wherein the first packet queue is associated with a first congest threshold;

pushing a first packet of media data of the first stream into the first packet queue;

comparing a fill level of the first packet queue to the first congest threshold; and

responsive to the fill level exceeding the first congest threshold, invoking a congestion mitigation measure.

18. The non-transitory computer-readable storage medium of claim 17 , comprising

transferring data for the call, including the media data and call control data, in the single virtual channel of the protocol.

19. The non-transitory computer-readable storage medium of claim 17 , wherein the single virtual channel is used to transfer all data for the call.

20. The non-transitory computer-readable storage medium of claim 17 , wherein the second packet queue is associated with a second congest threshold, comprising executable instructions that, when executed by a processor, facilitate performance of operations, comprising:

pushing a second packet of media data of the second stream into the second packet queue;

comparing a fill level of the second packet queue to the second congest threshold; and

responsive to the fill level exceeding the second congest threshold, invoking a congestion mitigation measure.

Assignments (2)
CHANGE OF NAME Recorded Jan 7, 2025
From: ZOOM VIDEO COMMUNICATIONS, INC.
To: ZOOM COMMUNICATIONS, INC.
Reel/Frame 069839/0593 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2021
From: LUO, XINGZHI; YE, DAOQUAN
To: ZOOM VIDEO COMMUNICATIONS, INC.
Reel/Frame 057041/0447 →