# US 11,445,001 B2 · Synchronization of a media codec between network elements of a media communication session

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

- Number: US 11,445,001 B2
- Document ID: US11445001B2
- Status: Granted
- Kind: B2
- Application number: 15/284,094
- Filed: 2016-10-03
- Published: 2018-04-05
- Granted: 2022-09-13
- Earliest claimed: 2016-10-03
- Assignees: Avaya Inc.
- Applicants: Avaya Inc.
- Inventors: John Lynch; Paul Haig; Chris McArthur
- Web page: https://patentgrep.com/patent/US11445001B2

## CPC

- H04L 65/80: Responding to QoS
- H04L 65/65: Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
- 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: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Embodiments disclosed herein provide systems, methods, and computer readable media for synchronizing a media codec between network elements of a media communication session. In a particular embodiment, a method provides designating a first network element to be a static-clock network element during the media communication session and designating at least a second network element to be a dynamic-clock network element during the media communication session. The method further provides determining that a difference in clock speed exists between a second clock speed for the media codec at the second network element and a first clock speed for the media codec at the first network element. Also, the method provides adjusting the second clock speed to account for the difference in clock speed.

## Claims

### Claim 1

A method for synchronizing a media codec between network elements of a media communication session, the method comprising:
after initiation of the media communication session between a first network element and at least a second network element:
determining that a first clock speed for the media codec at the first network element comprises a most accurate clock speed relative to clock speeds of other network elements on the media communication session;
designating the first network element to be a static-clock network element during the media communication session and designating at least the second network element to be a dynamic-clock network element during the media communication session, wherein real-time user communications are exchanged between the first network element and at least the second network element during the media communication session, and wherein the real-time user communications comprise media encoded using the media codec;
determining that a difference in clock speed exists between a second clock speed for the media codec at the second network element and the first clock speed; and
adjusting the second clock speed to account for the difference in clock speed;
at a time after designating the first network element to be the static-clock network element:
determining that the first clock speed no longer comprises the most accurate clock speed;
designating the first network element as a dynamic-clock network element; and
designating another network element now having the most accurate clock speed to be the static-clock network element.

### Claim 2 (depends on 1)

The method of claim 1, wherein determining that the difference in clock speed exists comprises:
at the second network element, receiving a plurality of data packets for the media communication session from the first network element;
calculating an average frequency in which the plurality of data packets is received; and
determining that a difference in frequency exists between the average frequency and a frequency of the first clock speed.

### Claim 3 (depends on 2)

The method of claim 2, wherein calculating the average frequency comprises:
using the second clock speed to maintain a counter to calculate an arrival rate of the plurality of data packets.

### Claim 4 (depends on 2)

The method of claim 2, wherein adjusting the second first clock speed comprises:
increasing the second clock speed when the average frequency is determined to be lower than the frequency of the first clock speed; and
decreasing the second clock speed when the average frequency is determined to be higher than the frequency of the first clock speed.

### Claim 5 (depends on 2)

The method of claim 2, wherein the plurality of data packets is received in the Real-time Transport Protocol (RTP).

### Claim 6 (depends on 1)

The method of claim 1, wherein the first network element comprises a first endpoint to the media communication session that is operated by a first user, the second network element comprises a second endpoint to the media communication session that is operated by a second user, and the media communication session is initiated by a conference system that provides real-time media communication services to the first network element and at least the second network element.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
at the second network element, receiving a clock speed indication from the first network element indicating the first clock speed.

### Claim 8 (depends on 1)

The method of claim 1, wherein the first clock speed comprises a default clock speed for the media codec.

### Claim 9

A network element to synchronize a media codec between network elements of a media communication session, the network element comprising:
one or more computer readable storage media;
a processing system operatively coupled with the one or more computer readable storage media; and
program instructions stored on the one or more computer readable storage media that, when read and executed by the processing system, direct the processing system to:
after initiation of the media communication session between a first network element and at least a second network element:
determine that a first clock speed for the media codec at the first network element comprises a most accurate clock speed relative to clock speeds of other network elements on the media communication session;
designate the first network element to be a static-clock network element during the media communication session and designate at least the second network element to be a dynamic-clock network element during the media communication session, wherein real-time user communications are exchanged between the first network element and at least the second network element during the media communication session, wherein the real-time user communications comprise media encoded using the media codec;
determine that a difference in clock speed exists between a second clock speed for the media codec at the second network element and the first clock speed; and
adjust the second clock speed to account for the difference in clock speed;
at a time after designating the first network element to be the static-clock network element:
determine that the first clock speed no longer comprises the most accurate clock speed;
designate the first network element as a dynamic-clock network element; and
designate another network element now having the most accurate clock speed to be the static-clock network element.

### Claim 10 (depends on 9)

The network element of claim 9, wherein the first network element comprises a first endpoint to the media communication session that is operated by a first user, the second network element comprises a second endpoint to the media communication session that is operated by a second user, and the media communication session is initiated by a conference system that provides real-time media communication services to the first network element and at least the second network element.

### Claim 11 (depends on 9)

The network element of claim 9, wherein the program instructions further direct the processing system to:
provide the second network element with a clock speed indication from the first network element indicating the first clock speed.

### Claim 12

A network element to synchronize a media codec between network elements of a media communication session, the network element comprising:
one or more computer readable storage media;
a processing system operatively coupled with the one or more computer readable storage media; and
program instructions stored on the one or more computer readable storage media that, when read and executed by the processing system, direct the processing system to:
after initiation of the media communication session between a first network element and at least the network element:
designate the network element to be a dynamic-clock network element during the media communication session, wherein a first clock speed for the media codec at the first network element is determined to comprise a most accurate clock speed relative to clock speeds of other network elements on the media communication session, wherein the first network element is designated to be a static-clock network element during the media communication session, wherein real-time user communications are exchanged between the first network element and at least the network element during the media communication session, and wherein the real-time user communications comprise media encoded using the media codec;
determine that a difference in clock speed exists between a second clock speed for the media codec at the network element and the first clock speed; and
adjust the second clock speed to account for the difference in clock speed;
wherein at a time after designating the first network element to be the static-clock network element, the first clock speed is determined to no longer comprise the most accurate clock speed, first network element is designated as a dynamic-clock network element, and another network element now having the most accurate clock speed is designated to be the static-clock network element.

### Claim 13 (depends on 12)

The network element of claim 12, wherein to determine that the difference in clock speed exists, the program instructions direct the processing system to:
receive a plurality of data packets for the media communication session from the first network element;
calculate an average frequency in which the plurality of data packets is received; and
determine that a difference in frequency exists between the average frequency and a frequency of the first clock speed.

### Claim 14 (depends on 13)

The network element of claim 13, wherein to calculate the average frequency, the program instructions direct the processing system to:
use the second clock speed to maintain a counter to calculate an arrival rate of the plurality of data packets.

### Claim 15 (depends on 13)

The network element of claim 13, wherein to adjust the second clock speed, the program instructions direct the processing system to:
increase the second clock speed when the average frequency is determined to be lower than the frequency of the first clock speed; and
decrease the second clock speed when the average frequency is determined to be higher than the frequency of the first clock speed.

### Claim 16 (depends on 13)

The network element of claim 13, wherein the plurality of data packets is received in the Real-time Transport Protocol (RTP).
