[Home]

Summary:ASTERISK-24009: Disable T.38 (t38pt_udptl=no) reject T.38 REINVITE with 488 Not acceptable here
Reporter:nicolasom (nicolasom)Labels:
Date Opened:2014-07-09 11:03:45Date Closed:2014-07-09 12:01:51
Priority:MajorRegression?
Status:Closed/CompleteComponents:Channels/chan_sip/T.38
Versions:1.8.28.2 Frequency of
Occurrence
Constant
Related
Issues:
Environment:Attachments:( 0) trace.cap
Description:Incoming call offers T.38,alaw,ulaw for fax. Is rejected if T.38 is disabled instead of accept alaw or ulaw codecs.

I think the problem is in function process_sdp in chan_sip.c:
{code}
9531 if (initialize_udptl(p)) {
9532 ast_log(LOG_WARNING, "Rejecting offer with image stream due to UDPTL initialization failure\n");
9533 return -1;
9534 }
{code}

The function initialize_udptl return 1 if T.38 is disabled. I would change 'return -1' with 'continue' for ignore T.38 if is disabled or the initialization failed.

In the past works. This revision changes the behavior:
http://svnview.digium.com/svn/asterisk/branches/1.8?view=revision&revision=368218
Comments:By: Matt Jordan (mjordan) 2014-07-09 12:01:51.161-0500

That change was intentional. Quoting from the review:

{quote}
* Nearly all SDP errors will result in a '488 Not Acceptable Here' response, rather than an attempt to use some part of the offer/answer presented in the SDP.
{quote}

There was a lengthy discussion of this on the -dev list. Today, {{chan_sip}} does not have a mechanism in its SDP generation code to decline media streams that it doesn't understand. Because of that, it has to treat offers as an "all or nothing" - otherwise, it will negotiate back things that it doesn't understand and is not equipped to handle.

Relevant asterisk-dev discussion:

http://lists.digium.com/pipermail/asterisk-dev/2012-May/055365.html