[asterisk-users] Fax throughput - Asterisk 1.6.1.9

Cyprus VoIP voipcy at gmail.com
Wed Dec 16 01:50:50 CST 2009


> Cyprus VoIP wrote:
> 
>> This is the reINVITE SDP received from the SIP Proxy:
>> -----------
>> Content-Type: application/sdp
>> Content-Length: 353
>>
>> v=0
>> o=root 30427 30428 IN IP4 194.98.xxx.xxx
>> s=session
>> c=IN IP4 194.98.xxx.xxx
>> t=0 0
>> m=image 17548 udptl t38
>> a=T38FaxVersion:0
>> a=T38MaxBitRate:14400
>> a=T38FaxFillBitRemoval:0
>> a=T38FaxTranscodingMMR:0
>> a=T38FaxTranscodingJBIG:0
>> a=T38FaxRateManagement:transferredTCF
>> a=T38FaxMaxBuffer:72
>> a=T38FaxMaxDatagram:72
>> a=T38FaxUdpEC:t38UDPRedundancy
>> -----------
> 
> This is probably originating from a Cisco gateway. Cisco gateways
> generate T.38 SDPs that do not conform to the T.38 recommendation in one
> very obvious (and painful) way: they tell us that they can only accept
> 72 byte packets (T38FaxMaxDatagram), when in fact they can accept
> packets much larger than that. When you notice that they are also
> requesting that we use t38UDPRedundancy for error correction, that means
> that the maximum IFP (single FAX protocol packet) we can include in a
> UDPTL datagram is around 30 bytes, since we'd need to have room for two
> of them and a bit of overhead. 30 bytes is a ridiculously small limit
> for IFPs, and does not allow successful FAXing at any possible bit rate
> (except for 2400 bits per second using 10 millisecond IFPs, but no FAX
> stack would do that).
> 
> There is code in Asterisk already to deal with this problem, however...
> see below.
> 
>> pbx*CLI>  Got UDPTL packet from 192.168.2.11:9100 (type 0, seq 0, len 86)
>> [Dec 15 12:38:05] WARNING[5262]: udptl.c:997 ast_udptl_write: UDPTL 
>> asked to send 77 bytes of IFP when far end only prepared to accept 12 
>> bytes; data loss may occur. You may need to override the 
>> T38FaxMaxDatagram value for this endpoint in the channel driver 
>> configuration.
> 
> Have you followed these instructions? The message is fairly clear in
> describing the problem, and the description of how and why this is
> needed is spelled out in the sip.conf.sample file in the configs
> directory of the source tree.
> 
> Setting a lower limit for the max datagram value used when communicating
> with this peer (and others like it that generate incorrect
> T38FaxMaxDatagram values) will resolve this problem.
> 

Hi,

Yes. I saw the message and the required addition in the sip.conf. The 
problem is that if I set it to 72, other terminating gateways that 
support 400 or more would also be limited to 72.

What doesn't make sense is Asterisk's "commission". Why doesn't it 
simply pass/use whatever it gets without cutting the values? It looks 
like it's a bug.

Alternatively, I could (had I known how ;-)) set this ATA not to relay 
the RTP via Asterisk, in which case maybe Asterisk would leave the 
values unchanged. When I use another port on this ATA from the same 
location to the same destination without passing through the Asterisk, 
the faxes go through. How should I define this peer in sip.conf so that 
Asterisk wouldn't relay the RTP for it?

Thanks,

Andreas



More information about the asterisk-users mailing list