[Asterisk-Dev] Help Debugging Dropped Call Audio - Possibly Fixed
Florian Overkamp
florian at obsimref.com
Sat Dec 24 09:13:59 MST 2005
Hi,
Kevin P. Fleming wrote:
>> That change passed only the first element of the array of channels to
>> ast_waitfor_n(), guaranteeing that it would win the race to be read.
>> In conjunction with the swapping of the channels in the array on each
>> pass of the bridging loop, this guarantees that each channel gets read
>> an equal number of times. I tested this by leaving the additional
>> logging in place, making the change, and placing a test call. The
>> call produced no "WARNING" or "NOTICE" messages and the recording had
>> no pops.
>
> But it doesn't actually guarantee that at all... you have to keep in
> mind that the packet delivery from the channels is not consistent
> (jitter and packet loss come into play) and its very possible in this
> configuration to lose packets from a channel because you have decided to
> wait for a packet from the other one and the 'current' packet from that
> channel is late and/or lost. In that case, you will read from this
> channel, then read from the other channel, then go back to this one,
> even though the other channel still has a pending packet to be read.
Actually, shouln't the bridge happen _after_ a jitterbuffer of sorts ?
In such a case the JB would return a 'no data' packet on the read and
leave it to the other end to decide what to do, or simply generate an
intermediate packet to cover it up ?
I could be wrong though, I'm not that deep into the code these days.
Florian
More information about the asterisk-dev
mailing list