[asterisk-dev] Add attributes to Asterisk T38 invite for MAX TNT Interop?

Steve Underwood steveu at coppice.org
Tue Dec 8 12:40:10 CST 2009


On 12/09/2009 02:17 AM, JR Richardson wrote:
> Hi All,
> I've been aggressively testing the latest asterisk releases and the 
> new t38 changes.  Mainly focusing on interop with Lucent MAX TNT.  I 
> have the latest ver 14.0.3 code on a test shelf.  Testing with 
> Asterisk 1.6.1.10, 1.6.0.10. 1.4.27.1, 1.6.1 trunk. No version can 
> establish a t38 session.  I found something interesting in the TNT 
> docs about the t38 attributes, it is looking for some specific 
> parameters that are not sent in the invite from asterisk to the tnt.
> Here is what the tnt send to asterisk:
> m=image 32730 udptl t38
> a=T38FaxMaxDatagram:316
> a=T38FaxMaxBuffer:72
> a=T38FaxRateManagement:transferredTCF
> a=T38FaxUdpEC:t38UDPRedundancy
> a=T38FaxVersion:0
> a=T38FaxTranscodingJBIG:0
> a=T38FaxTranscodingMMR:0
> a=T38FaxFillBitRemoval:0
> a=T38MaxBitRate:14400
> Here is what Asterisk sends to the tnt:
> m=image 20228 udptl t38
> a=T38FaxVersion:0
> a=T38MaxBitRate:14400
> a=T38FaxRateManagement:transferredTCF
> a=T38FaxMaxBuffer:0
> a=T38FaxMaxDatagram:0
> a=T38FaxUdpEC:t38UDPRedundancy
> The t38 udptl packets never come from the tnt to asterisk even though 
> the call does switch in the tnt to another dsp supporting t38, like it 
> is trying to setup a session but does not complete.  So here are the 
> attributes the tnt is looking for:
> a=T38FaxMaxDatagram:316                         ;this value is present 
> but ignored
> a=T38FaxMaxBuffer:72                                ;this value is 
> present but ignored
> a=T38FaxRateManagement:transferredTCF   ;this is present and correct
> a=T38FaxUdpEC:t38UDPRedundancy          ;this is present and correct, 
> must be redundancy, fec is rejected
> a=T38FaxVersion:0                                     ;this is present 
> and correct, any other value is rejected
> a=T38FaxTranscodingJBIG:0                        ;this is correct but 
> missing from asterisk invite
> a=T38FaxTranscodingMMR:0                        ;this is correct but 
> missing from asterisk invite
> a=T38FaxFillBitRemoval:0                            ;this is correct 
> but missing from asterisk invite
> a=T38MaxBitRate:14400                              ;this is present 
> and correct
> So i'm guessing the TNT is not setting up the udptl session because it 
> is not getting these parameters:
> a=T38FaxTranscodingJBIG:0                        ;this is correct but 
> missing from asterisk invite
> a=T38FaxTranscodingMMR:0                        ;this is correct but 
> missing from asterisk invite
> a=T38FaxFillBitRemoval:0                            ;this is correct 
> but missing from asterisk invite
> the TNT docs are explicit, these values must in the invite and set 
> to '0' for t38 to work.
> Is there an easy mechanism for me to add these attributed to Asterisk 
> t38 invite or can someone generate a quick patch that adds these in 
> the t38 stack for testing?
>
I've never seen a T.38 quite so badly broken it would need those to make 
it start. The lines:

a=T38FaxTranscodingJBIG:0
a=T38FaxTranscodingMMR:0
a=T38FaxFillBitRemoval:0

are all broken. They should say

a=T38FaxTranscodingJBIG
a=T38FaxTranscodingMMR
a=T38FaxFillBitRemoval

and only be present if you want to turn on those features. Since they 
are rarely supported, those parameters should rarely be present. I would 
look at why you get thse two funky lines:

a=T38FaxMaxBuffer:0
a=T38FaxMaxDatagram:0

That's far more likely to be the issue.

Steve




More information about the asterisk-dev mailing list