[Asterisk-Dev] changing codec during call

Steve Underwood steveu at coppice.org
Fri Feb 25 12:13:57 MST 2005


Steve Kann wrote:

> Steve Underwood wrote:
>
>> Steve Kann wrote:
>>
>>> Race Vanderdecken wrote:
>>>
>>>> Detecting the the bandwidth constraint constraint might be possible
>>>> using RTCP. http://www.nwfusion.com/news/tech/2003/1117techupdate.html
>>>>
>>>> I have not looked to see if Asterisk is using RTCP, but that would be
>>>> the correct way to control and detect.
>>>>  
>>>>
>>>
>>> IAX2 now supports sending all of the parameters that are described 
>>> in the _extended_ RTCP XR stuff you quote there (the basic RTCP RR 
>>> does not support all of this).
>>>
>>> But I still fail to see how you can determine from this information 
>>> alone, whether reducing your bandwidth usage by 5kbps or whatever is 
>>> going to affect the call quality in a positive or negative way.
>>>
>>> Certainly, it would be good network policy for us to lower our 
>>> consumption when we see congestion (like TCP does), but it is not 
>>> necessarily going to improve the quality of our call.
>>
>>
>>
>> High packet loss rate, or even high jitter, might give us a clue that 
>> a lower bit rate would be beneficial. 
>
>
> If you read my previous message on the topic, depending on the 
> location of the congestion, it might just make things worse.
>
> If the congestion is a very low bandwidth last-hop, it might help.  
> But if the congestion is on a high-bandwidth link (and caused by other 
> applications, or even line errors), it will just make things sound 
> worse.   For example, imagine that the loss is on some 45mbps link in 
> the middle of the internet, being caused by some network-unfriendly 
> application.  If we lower our bandwidth consumption, it's unlikely to 
> make any difference at all in the loss rate.  However, it will 
> probably make the loss _more_ noticable to the user, and not less 
> noticable.  (i.e. going from 20ms uLaw frames, to 60ms 
> highly-compressed frames will probably end up causing the same loss 
> percentage to be much more noticable, and more difficult to conceal).

I fully realise this. That' why I said "clue" rather than something like 
"solid indication" :-) If you could work out that the bandwidh in use is 
too like to flood the local tributary, you could double every packet, or 
send overlapping packets, in a fight with the other users of the main 
channel. Evil, but possibly self-beneficial. :-)

>
>> I have no idea how to meaningfully determine that a higher bit rate 
>> would be harmless. Probing with the higher rate every time the loss 
>> and jitter are low is quite likely to cause far too much juggling of 
>> rates.
>
>
>
> There's a lot of research on this kind of stuff out there for TCP 
> behavior and algorithms.   If we wanted to make our protocol 
> network-friendly, we would definately slow down our rates when we saw 
> loss, to do congestion-avoidance like TCP does.  But I'm not sure we 
> want our VoIP streams to be as nice as TCP is, because in general, the 
> VoIP streams are going to be considered a higher priority in the 
> network.  (And surely, those RTP streams that fight against IAX sure 
> aren't going to slow down!).

I don't this any of that TCP stuff has much meaning for streaming.

Regards,
Steve




More information about the asterisk-dev mailing list