Patent ID: 7460480

Claim:
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.