# US 10,873,539 B2 · System and method for intelligent bandwidth allocation on multi-track multimedia communication systems

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,873,539 B2
- Document ID: US10873539B2
- Status: Granted
- Kind: B2
- Application number: 16/655,919
- Filed: 2019-10-17
- Published: 2020-04-23
- Granted: 2020-12-22
- Earliest claimed: 2018-10-17
- Assignees: Twilio Inc.
- Applicants: Twilio Inc.
- Inventors: Luis Lopez Fernandez; Miguel Paris Diaz; David Fernandez Lopez
- Web page: https://patentgrep.com/patent/US10873539B2

## CPC

- H04L 47/801: {Real time traffic}
- H04L 47/805: {QOS or priority aware}
- H04L 65/403: Arrangements for multi-party communication, e.g. for conferences (data switching systems for conference H04L12/18; arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities H04M3/56; television conferencing systems H04N7/15)
- H04L 65/80: Responding to QoS
- H04N 7/15: Conference systems
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Disclosed are systems, methods, and non-transitory computer-readable media for bandwidth allocation in multi-track media communication that can include receiving a set of inbound media tracks; resolving track priority configuration for the set of media tracks; resolving media constraints that are at least partially derived from properties of the set of media tracks; producing bandwidth allocation configuration based on at least the track priority configuration and media constraints; and allocating bandwidth to outbound media tracks within a communication link to a client device wherein bandwidth of the outbound media tracks is allocated based on the bandwidth allocation configuration.

## Claims

### Claim 1

A method for bandwidth allocation in multi-track media communication comprising:
receiving a set of inbound media tracks;
resolving track priority configuration for the set of media tracks;
resolving media constraints that are at least partially derived from properties of the set of media tracks;
producing bandwidth allocation configuration based on at least the track priority configuration and media constraints, wherein producing bandwidth allocation configuration comprises applying a series of processes that comprise of at least:
maximizing a sum of bandwidth consumed by the set of media tracks,
verifying the link does not consume more than the available bandwidth,
verifying that no tracks are over a respective maximum bandwidth specified in the media constraints,
for each track in the set of media tracks, verifying a track is over a minimum bandwidth specified in the media constraints, and
regulating bandwidth allocation such that bandwidth allocation follows priorities of tracks specified in the track priority configuration; and
allocating bandwidth to outbound media tracks within a communication link to a client device wherein bandwidth of the outbound media tracks is allocated based on the bandwidth allocation configuration.

### Claim 2 (depends on 1)

The method of claim 1, further comprising receiving bandwidth estimation feedback and estimating available bandwidth of the communication link; and wherein producing the bandwidth allocation configuration is further based on the available bandwidth.

### Claim 3 (depends on 1)

The method of claim 1, wherein the inbound media tracks are video media tracks from a set of participants; and wherein the communication link to the client device is a link of video media tracks.

### Claim 4 (depends on 1)

The method of claim 1, wherein the inbound media tracks are audio media tracks from a set of participants; and wherein the communication link to the client device is a communication link of audio media tracks.

### Claim 5 (depends on 4)

The method of claim 4, further comprising, for each track in the set of media tracks, setting the media track to a switched off state upon determining that the media track is not over a minimum bandwidth; and activating a media track in the switched off state to a switched on state upon determining that all the higher priority media tracks have been allocated a specified maximum bandwidth.

### Claim 6 (depends on 1)

The method of claim 1, wherein the track priority configuration comprises of media policy configuration selected from a set of modes that comprises of at least a speaker detection mode, a presence detection mode, and a movement detection.

### Claim 7 (depends on 1)

The method of claim 1, wherein resolving media constraints comprises determining a minimal bandwidth threshold and maximum bandwidth threshold derived from a media format of a media track.

### Claim 8 (depends on 1)

The method of claim 1, wherein resolving track priority configuration for the set of media tracks comprises: setting media-based track priority, setting use-case track priority, and determining the track priority from the media-based track priority and the use-case track priority.

### Claim 9 (depends on 1)

The method of claim 1, wherein allocating bandwidth to outbound media tracks within a communication link to a client device comprises transmitting the media tracks within a WebRTC peer connection to a client device.

### Claim 10 (depends on 9)

The method of claim 9, wherein receiving a set of inbound media tracks comprises of receiving a media track from the client device through the WebRTC peer connection.

### Claim 11

A machine-readable storage medium comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform operations comprising:
receiving a set of inbound media tracks;
receiving track priority configuration for the set of media tracks;
resolving media constraints that are at least partially derived from properties of the set of media tracks;
producing bandwidth allocation configuration based on at least the track priority configuration and media constraints, wherein producing bandwidth allocation configuration comprises applying a series of processes that comprise of at least:
maximizing a sum of bandwidth consumed by the set of media tracks,
verifying the link does not consume more than the available bandwidth,
verifying that no tracks are over their respective maximum bandwidth,
for each track in the set of media tracks, verifying a track is over a minimum bandwidth, and
regulating bandwidth allocation such that bandwidth allocation follows priorities of tracks; and
allocating bandwidth to outbound media tracks within a communication link to a client device wherein bandwidth of the outbound media tracks is allocated based on the bandwidth allocation configuration.

### Claim 12 (depends on 11)

The machine-readable storage medium of claim 11, further comprising instructions that cause the machine to perform operations that comprise of receiving bandwidth estimation feedback and estimating available bandwidth of the outbound link; and wherein producing the bandwidth allocation configuration is further based on the available bandwidth.

### Claim 13 (depends on 11)

The machine-readable storage medium of claim 11, wherein the inbound media tracks are video media tracks from a set of participants; and wherein the communication link to the client device is a communication link of video media tracks.

### Claim 14 (depends on 11)

The machine-readable storage medium of claim 11, wherein the inbound media tracks are audio media tracks from a set of participants; and wherein the communication link to the client device is a communication link of audio media tracks.

### Claim 15 (depends on 11)

The machine-readable storage medium of claim 11, further comprising instructions that cause the machine to perform operations that comprise of, for each track in the set of media tracks, setting the track to a switched off state upon determining that the track is not over a minimum bandwidth; and activating a track in the switched off state to a switched on state upon determining that all the higher priority tracks have been allocated a specified maximum bandwidth.

### Claim 16

A system for bandwidth allocation comprising:
a media track interface through which a set of inbound media tracks are received;
a policy manager configured to specify a track priority configuration for the set of media tracks;
a bandwidth management system that is configured to resolve media constraints that are at least partially derived from properties of the set of media tracks, and set bandwidth allocation configuration based on at least the track priority configuration and media constraints; and
a bandwidth allocator configured to allocate bandwidth to outbound media tracks within a communication link to a client device wherein bandwidth of the outbound media tracks is allocated based on the bandwidth allocation configuration and wherein the bandwidth allocation configuration is set through application of a series of processes configured to:
maximize a sum of bandwidth consumed by the set of media tracks,
verify the link does not consume more than the available bandwidth,
verify that no tracks are over their respective maximum bandwidth,
for each track in the set of media tracks, verify a media track is over a minimum bandwidth and set the track to a switched off state upon determining that the media track is not over a minimum bandwidth,
activate a track in the switched off state to a switched on state upon determining that all the higher priority tracks have been allocated a specified maximum bandwidth, and
regulate bandwidth allocation such that bandwidth allocation follows priorities of tracks.

### Claim 17 (depends on 16)

The system of claim 16, wherein the bandwidth management system further comprises a bandwidth estimator configured to estimate available bandwidth of the outbound link; and wherein configuration to produce the bandwidth allocation configuration is further configured to produce the bandwidth allocation configuration based on the available bandwidth.
