[asterisk-dev] Jitterbuffer and FAXes with E1

Steve Underwood steveu at coppice.org
Thu Jun 28 08:16:54 CDT 2007


Martin Vít wrote:
> Steve Underwood wrote:
>> Martin Vít wrote:
>>   
>>> Hello,
>>>
>>> I'm testing 1.4.5 (no modifications) with E1 card and i've found problem.
>>>
>>> I've this scenaro
>>>
>>> FAX -> SIP - ATA -> asterisk -> E1 port A --loopback--> E1 port B --> 
>>> iaxmodem.
>>>
>>>
>>> When jbenabled is off FAX is delivred OK. But when jbenable = on FAX are 
>>> failing in almost every line. I've compared WAV extracted from network 
>>> with WAV recorded (app monitor) before it gets to iaxmodem and there is 
>>> small differences. Network jitter is about 2ms (lab environment).
>>>
>>> Where could jitterbuffer modifies frames? I've tried to disable plc in 
>>> plc.c but without success. Any idea?
>>>   
>>>     
>> This is correct behaviour. Most VoIP kit has the ability to disable 
>> jitter buffering when a FAX is in progress.
>>   
>
> I still dont understand, what is correct. I'll be more specific:
>
> FAX frames are delivering from SIP ATA to asterisk box, routed through 
> E1 and returned back to the same E1 and then to iaxmodem (it is silly 
> but just for test).
>
> If jbenable = yes in zapata.conf and in sip.conf, every rows in fax 
> are  bad:
>
>     Jun 28 14:48:10.25: [11153]: RECV/CQ: Bad 1D pixel count, row 763, 
> got 2355, expected 1728
>
>
> If jbenable = no in zapata.conf and sip.conf, everything are OK.
>
> I've checked debug file from jitterbuffer and it seems that all frames 
> are delivered ok
>
>             JB_GET {now=136}: Delivered frame with ts=49147553 and len=20
>             JB_GET {now=156}: Delivered frame with ts=49147573 and len=20
>             JB_GET {now=176}: Delivered frame with ts=49147593 and len=20
>
> I've tried adaptive and fixed jbiml, always the same
>
> So i've tried simulate fixed latency on my router (hold data for 200ms 
> from ATA to asterisk) and disable jb at all. FAX are OK. If jbenable = 
> yes - problem.
>
> There is something wrong with jbenable or am I missing something?
>
> Maybe there is somewhere activated PLC or some another filter? 
> whenever jbenable is turned on?
>
> Codec is alaw
It is correct that a perceptual jitter buffer will play with the timing, 
and that will break things like faxing. You need to disable clever 
jitter buffering algorithms when you need an unbroken stream. Typically 
VoIP equipment will do this automatically when they hear FAX tones.

Steve




More information about the asterisk-dev mailing list