IP Library Granted Patent US 9,571,552
Granted Patent B2
US 9,571,552 · App. 14/482,887 · Granted Feb 14, 2017

Systems, methods, and computer program products for selecting codecs to optimize resource utilization

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 9,571,552
App. No.
14/482,887
Granted
Feb 14, 2017
Kind
B2
Abstract

Embodiments provide systems, methods, apparatus, and computer program products for selecting the codecs that each endpoint will use in a call in order to optimize the utilization of at least one internal resource of a network component. The network component receives a call invite from a first endpoint that identifies available codecs. The network component determines what codecs are available to the second endpoint and determines what codec pairing will have the least impact on at least one identified internal resource of the network component. The network component sends call set-up information to the first endpoint that identifies the selected codec or list of codecs for the first endpoint, and call set-up information to the second endpoint that identifies the selected codec or list of codecs for the second endpoint.

Claims (61)

1. A method performed by a network component that facilitates a communication session set-up process among endpoints in a communication network, the method comprising:

receiving, by the network component, a call invite from a first endpoint directed towards a second endpoint, the call invite identifying a first plurality of codecs available at the first endpoint;

identifying, by the network component, a second plurality of codecs available at the second endpoint;

determining, by the network component, a network component resource from among a plurality of network component resources with a highest utilization from among the plurality of network component resources;

determining, by the network component, an impact of each codec pair from the first plurality of codecs and the second plurality of codecs on the network component resource with the highest utilization, ranging from a codec pair with a highest impact to a codec pair with a lowest impact; and

selecting, by a codec selector of the network component, the codec pair with the lowest impact on the network component resource with the highest utilization, the codec pair comprising a first codec from among the first plurality of codecs and a second codec from among the second plurality of codecs.

2. The method of claim 1 , further comprising:

prioritizing, by the codec selector, each of the first plurality of codecs and the second plurality of codecs in order of the lowest to the highest impact, in relation to each other, on the network component resource with the highest utilization.

3. The method of claim 2 , wherein the selecting further comprises:

selecting a first codec subset from among the first plurality of codecs including the first codec and a second codec subset from among the second plurality of codecs including the second codec, based on the prioritized first plurality of codecs and the prioritized second plurality of codecs; and

communicating an indication of the first codec subset to the first endpoint as a first ordered list of proposed codecs, and communicating an indication of the second codec subset to the second endpoint as a second ordered list of proposed codecs.

4. The method of claim 1 , further comprising:

transmitting, from the network component, call set-up information including an identification of the first codec to the first endpoint and an identification of the second codec to the second endpoint; and

transcoding, by a processor of the network component, media streams conveyed between the first and second endpoints during the communication session.

5. The method of claim 1 , wherein the determining the network component resource with the highest utilization further comprises:

estimating, by the codec selector, a current utilization of the plurality of network component resources.

6. The method of claim 1 wherein the determining the network component resource with the highest utilization further comprises:

receiving, at the codec selector, from the plurality of network component resources a current utilization of the plurality of network component resources.

7. The method of claim 6 , further comprising:

requesting, by the codec selector, the current utilization of the plurality of network component resources in response to receiving the call invite from the first endpoint.

8. The method of claim 1 , further comprising:

communicating, from the network component, an indication of the determined codec pair to a second network component to facilitate transcoding, by the second network component, of media streams conveyed between the first and second endpoints during the communication session.

9. The method of claim 1 , further comprising:

weighting, by the network component, a current utilization of each of the plurality of network component resources, wherein the determining the network component resource with the highest utilization is based on the weighted current utilization of each of the plurality of network component resources.

10. The method of claim 1 , further comprising:

weighting, by the network component, a current utilization of each of the plurality of network component resources,

wherein the network component resource with the highest utilization comprises a weighted combination of one or more of the plurality of network component resources.

11. A network component, comprising:

a transceiver configured to receive a call invite from a first endpoint directed towards a second endpoint, the call invite identifying a first plurality of codecs available at the first endpoint, and transmit call set-up information including an identification of a first codec to the first endpoint and an identification of a second codec to the second endpoint;

a plurality of network component hardware resources configured to assist in facilitating a communication session among the first and second endpoints;

a codec selector configured to:

identify a second plurality of codecs, the second plurality of codecs including the second codec, available at the second endpoint;

determine a network component hardware resource from among the plurality of network component hardware resources with a highest utilization from among the plurality of network component hardware resources;

determine an impact of each codec pair from the first plurality of codecs and the second plurality of codecs on the network component hardware resource with the highest utilization, ranging from a codec pair with a highest impact to a codec pair with a lowest impact; and

select the codec pair with the lowest impact on the network component hardware resource with the highest utilization, the codec pair comprising the first codec from among the first plurality of codecs and the second codec from among the second plurality of codecs; and

a processor configured to execute the codec selector.

12. The network component of claim 11 , wherein the codec selector is further configured to:

prioritize each of the first plurality of codecs and each of the second plurality of codecs in order of the lowest to the highest impact, in relation to each other, on the network component hardware resource with the highest utilization.

13. The network component of claim 12 , wherein:

the codec selector is further configured to select a first codec subset from among the first plurality of codecs including the first codec and a second codec subset from among the second plurality of codecs including the second codec based on the prioritized first plurality of codecs and the prioritized second plurality of codecs; and

the identification of the first codec to the first endpoint comprises the first codec subset as a first ordered list of proposed codecs, and the identification of the second codec to the second endpoint comprises the second codec subset as a second ordered list of proposed codecs.

14. The network component of claim 11 , wherein:

the plurality network component hardware resources comprise a digital signal processor (DSP) resource, an internet protocol (IP) resource, a hardware accelerator resource, and a memory resource, and

the network component comprises a media gateway.

15. The network component of claim 11 , wherein the processor is further configured to transcode a media stream conveyed between the first and second endpoints based on the codec pair.

16. The network component of claim 11 , wherein the codec selector is further configured to receive, from the plurality of network component hardware resources, a current utilization of the plurality of network component hardware resources.

17. A computer program product comprising machine-readable instructions on a non-transitory storage medium of a network component for facilitating a communication session among endpoints in a communication network, the computer program product comprising:

code to determine a utilization of a plurality of network component resources of the network component in response to receiving a call invite from a first endpoint directed towards a second endpoint, the call invite identifying a first plurality of codecs available at the first endpoint;

code to determine a network component resource from among the plurality of network component resources with a highest utilization from among the plurality of network component resources;

code to filter a second plurality of codecs based on a listing of codec preferences for the second endpoint, the second plurality of codecs being identified as available at the second endpoint;

code to determine an impact of codec pairs from the first plurality of codecs and the second plurality of codecs on the network component resource with the highest utilization, ranging from a codec pair with a highest impact to a codec pair with a lowest impact;

code to select the codec pair with the lowest impact to minimize an increase in the utilization, the codec pair with the lowest impact comprising a first codec from among the first plurality of codecs and a second codec from among the second plurality of codecs; and

code to transmit call set-up information including an identification of the first codec to the first endpoint and an identification of the second codec to the second endpoint.

18. The computer program product of claim 17 , further comprising:

code to prioritize each of the first plurality of codecs and each of the second plurality of codecs in order of the lowest to the highest impact, in relation to each other, on the network component resource with the highest utilization; and

code to transcode a media stream conveyed between the first and second endpoints based on the codec pair.

19. The computer program product of claim 16 , further comprising:

code to select a first codec subset from among the first plurality of codecs including the first codec and a second codec subset from among the second plurality of codecs including the second codec, based on the prioritized first plurality of codecs and the prioritized second plurality of codecs,

wherein the identification of the first codec to the first endpoint comprises the first codec subset as a first ordered list of proposed codecs, and the identification of the second codec to the second endpoint comprises the second codec subset as a second ordered list of proposed codecs.

20. The computer program product of claim 17 , further comprising:

code to receive, from the plurality of network component resources, a current utilization of the plurality of network component resources.

Assignments (10)
SHORT-FORM PATENTS SECURITY AGREEMENT Recorded Sep 5, 2024
From: RIBBON COMMUNICATIONS OPERATING COMPANY, INC.
To: HPS INVESTMENT PARTNERS, LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 068857/0290 →
RELEASE OF SECURITY INTEREST Recorded Jun 24, 2024
From: CITIZENS BANK, N.A.
To: RIBBON COMMUNICATIONS OPERATING COMPANY, INC. (F/K/A GENBAND US LLC AND SONUS NETWORKS, INC.)
Reel/Frame 067822/0433 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 044978/0801 Recorded Dec 6, 2021
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: RIBBON COMMUNICATIONS OPERATING COMPANY, INC. (F/K/A GENBAND US LLC AND SONUS NETWORKS, INC.)
Reel/Frame 058949/0497 →
MERGER Recorded Jul 15, 2020
From: GENBAND US LLC
To: RIBBON COMMUNICATIONS OPERATING COMPANY, INC.
Reel/Frame 053223/0260 →
SECURITY INTEREST Recorded Mar 3, 2020
From: RIBBON COMMUNICATIONS OPERATING COMPANY, INC.
To: CITIZENS BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 052076/0905 →
SECURITY INTEREST Recorded Jan 2, 2018
From: GENBAND US LLC; SONUS NETWORKS, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 044978/0801 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT Recorded Dec 29, 2017
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: GENBAND US LLC
Reel/Frame 044986/0303 →
CORRECTIVE ASSIGNMENT TO CORRECT PATENT NO. 6381239 PREVIOUSLY RECORDED AT REEL: 039269 FRAME: 0234. ASSIGNOR(S) HEREBY CONFIRMS THE PATENT SECURITY AGREEMENT. Recorded Jan 3, 2017
From: GENBAND US LLC
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 041422/0080 →
PATENT SECURITY AGREEMENT Recorded Jul 6, 2016
From: GENBAND US LLC
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 039269/0234 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2014
From: POULIN, ERIC
To: GENBAND US LLC
Reel/Frame 033714/0433 →