Dynamically adapting the transmission rate of packets in real-time VoIP communications to the available bandwidth
First Claim
1. A method for adapting the transmission rate of media packets between endpoints in a voice over Internet protocol (VoIP) communication comprising:
- determining a starting bandwidth measure at a starting endpoint;
selecting a staffing CODEC at the starting endpoint based on the starting bandwidth measure, wherein the starting CODEC is associated with a staffing CODEC nominal data rate;
determining an ending bandwidth measure at an ending endpoint;
selecting an ending CODEC at the ending endpoint based on the ending bandwidth measure, wherein the ending CODEC is associated with an ending CODEC nominal data rate;
informing the ending endpoint of the starting CODEC nominal data rate;
informing the starting endpoint of the ending CODEC nominal data rate;
selecting a current CODEC comprising a data rate equal to the lower of the starting CODEC nominal data rate and the ending CODEC nominal data rate;
using the current CODEC at the starting and ending end points;
obtaining a packet loss ratio of a media packet stream between the starting endpoint and the ending endpoint;
determining whether the packet loss ratio exceeds a maximum packet loss ratio associated with the current CODEC;
when the packet loss ratio exceeds the maximum packet loss ratio, determining a nominal in-use data rate of the current CODEC;
determining whether the current CODEC is associated with an alternate nominal data rate that is lower than the nominal in-use data rate;
when the current CODEC is associated with the alternate nominal data rate that is lower than the nominal in-use data rate, substituting the alternate nominal data rate for the nominal in-use data rate;
when the current CODEC is not associated with the alternate nominal data rate that is lower than the in-use nominal data rate, determining whether a current frames per packet measure is less than a maximum frames per packet measure associated with the current CODEC;
when the current frames per packet measure is less than the maximum frames per packet measure associated with the current CODEC, increasing the frames per packet measure of the media packet stream;
when the current frames per packet measure is greater than or equal to the maximum frames per packet measure, determining whether a substitute CODEC having a substitute nominal data rate that is lower than the in-use nominal data rate is available at the starting and ending endpoints; and
when the substitute CODEC is available at the staffing and ending endpoints, using the substitute CODEC at the staffing and ending endpoints.
15 Assignments
0 Petitions
Accused Products
Abstract
A system and method for dynamically adapting the transmission rate of packets in real-time voice over IP communications to the available bandwidth. A real-time bandwidth monitor (RTBM) for VoIP applications senses the call path bandwidth between two endpoints of a VoIP communication and adapts in real-time the packet transmission rate to utilize that bandwidth. If sufficient bandwidth is available, the RTBM selects a low compression, low latency CODEC to offer best possible voice quality to the user. If the bandwidth is constrained, the RTBM degrades gracefully by switching to a high compression CODEC. On further bandwidth reduction, the RTBM increases the media frames per packet. Because the bandwidth reduction may be transitory, the RTBM constantly monitors the end-to-end available bandwidth so as to invoke the CODEC/frame per packet combination that provides the best quality of service (QoS) achievable over the current end-to-end available bandwidth.
140 Citations
4 Claims
-
1. A method for adapting the transmission rate of media packets between endpoints in a voice over Internet protocol (VoIP) communication comprising:
-
determining a starting bandwidth measure at a starting endpoint; selecting a staffing CODEC at the starting endpoint based on the starting bandwidth measure, wherein the starting CODEC is associated with a staffing CODEC nominal data rate;
determining an ending bandwidth measure at an ending endpoint;selecting an ending CODEC at the ending endpoint based on the ending bandwidth measure, wherein the ending CODEC is associated with an ending CODEC nominal data rate;
informing the ending endpoint of the starting CODEC nominal data rate;
informing the starting endpoint of the ending CODEC nominal data rate;
selecting a current CODEC comprising a data rate equal to the lower of the starting CODEC nominal data rate and the ending CODEC nominal data rate;using the current CODEC at the starting and ending end points; obtaining a packet loss ratio of a media packet stream between the starting endpoint and the ending endpoint; determining whether the packet loss ratio exceeds a maximum packet loss ratio associated with the current CODEC; when the packet loss ratio exceeds the maximum packet loss ratio, determining a nominal in-use data rate of the current CODEC; determining whether the current CODEC is associated with an alternate nominal data rate that is lower than the nominal in-use data rate; when the current CODEC is associated with the alternate nominal data rate that is lower than the nominal in-use data rate, substituting the alternate nominal data rate for the nominal in-use data rate; when the current CODEC is not associated with the alternate nominal data rate that is lower than the in-use nominal data rate, determining whether a current frames per packet measure is less than a maximum frames per packet measure associated with the current CODEC;
when the current frames per packet measure is less than the maximum frames per packet measure associated with the current CODEC, increasing the frames per packet measure of the media packet stream;when the current frames per packet measure is greater than or equal to the maximum frames per packet measure, determining whether a substitute CODEC having a substitute nominal data rate that is lower than the in-use nominal data rate is available at the starting and ending endpoints; and when the substitute CODEC is available at the staffing and ending endpoints, using the substitute CODEC at the staffing and ending endpoints. - View Dependent Claims (2, 3, 4)
-
Specification