Summary: | ASTERISK-15209: [patch] New SDP handling code totally broke T.38 reinvites | ||
Reporter: | Alexander V. Chernikov (bird_of_luck) | Labels: | |
Date Opened: | 2009-11-24 08:52:21.000-0600 | Date Closed: | 2010-01-28 14:28:11.000-0600 |
Priority: | Minor | Regression? | No |
Status: | Closed/Complete | Components: | Channels/chan_sip/T.38 |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ( 0) parse_sdp_a_image.diff ( 1) t38-sdp-parsing-fix1.diff ( 2) t38-sdp-parsing-fix2.patch ( 3) t38-sdp-parsing-fix3.diff | |
Description: | SDP handling code introduced in r227758 effectively sets t38jointcapability to 0 causing reinvite to fail with reason 'No compatible codecs, not accepting this offer!' ****** ADDITIONAL INFORMATION ****** Attached patch seems to fix an issue with accepting INVITE, but there are some other issues with r38 passthrough. Downgrading to 1.4.26 fixes issue completely | ||
Comments: | By: Kristijan Vrban (vrban) 2009-12-21 05:28:42.000-0600 hello, i just want to confirm this issue. I also have problems with t.38 passthrough since latestes asterisk 1.4 versions. with my old 1.4.20 t.38 passthrough is ok, and with latest 1.4.28, asterisk does not passthrough t.38 as expected. something is wrong, and i just started to find the changeset that at fault. By: Kristijan Vrban (vrban) 2009-12-21 08:11:21.000-0600 yes, it is definite r227758 that broke t.38 passthrough in 1.4 the branch. What is funny, the comment in the reviewboard*: "Not tested with T.38, but it should work well." Well, t.38 is not working well... *https://reviewboard.asterisk.org/r/385/ By: Matthew Nicholson (mnicholson) 2009-12-21 11:49:07.000-0600 Please test with the patch I just uploaded. By: Kristijan Vrban (vrban) 2009-12-21 14:58:12.000-0600 hello mnicholson, with your patch, chan_sip send now all the t38 related sdp lines that where missing in the OK for the T.38 RE-INVITE, but still no UDPTL activity with 1.4.28 "udptl debug" just show nothing. By: Matthew Nicholson (mnicholson) 2009-12-21 15:55:45.000-0600 Please upload a sip debug or a tcpdump of a faulty call. By: Matthew Nicholson (mnicholson) 2009-12-21 15:59:57.000-0600 Actually both the sip debug and the tcpdump may be useful. Please upload both if possible. By: Kristijan Vrban (vrban) 2009-12-21 16:44:21.000-0600 hello mnicholson, please dont write a patch for this if you also found the error meanwhile. i allready found the bug in the source, and i want the write patch, to get my name into the next changelog. Because i collect all changelogs where i have been involved for my next application for employment :) By: Matthew Nicholson (mnicholson) 2009-12-21 16:47:13.000-0600 I have already written a patch to fix this. There may be parts of this issue that my patch does not fix though. Feel free to upload any fixes you have developed. By: Kristijan Vrban (vrban) 2009-12-21 17:31:57.000-0600 no, i dont know how to fix it on the quick, it's to late now There is no udptl activity/forwarding, because all incoming udptl's get dropped in udptl.c here: /* Ignore if the other side hasn't been given an address yet. */ if (!udptl->them.sin_addr.s_addr || !udptl->them.sin_port) { By: Kristijan Vrban (vrban) 2009-12-21 19:20:45.000-0600 i could not stand still, there is the fix. The problem was, the Return after the "Have T.38 but no audio codecs, accepting offer anyway" debug message, before the t.38 port/ip was set. And since this check is completely needless (i think), i removed it. now T.38 pass-through is working for me again. By: Mihail (mihaill) 2009-12-22 04:32:08.000-0600 hello, have a nice day. Today I try to install Asterisk 1.4.27 on Gentoo as02# uname -a Linux as02 2.6.27-gentoo-r8 #1 SMP Fri Mar 27 17:22:51 MSK 2009 i686 Intel(R) Core(TM)2 Quad CPU Q9400 @ 2.66GHz GenuineIntel GNU/Linux so t38-sdp-parsing-fix1.diff renamed to patch_aster_t38_1.diff and try to apply, I had a massenge "Failed Patch: patch_aster_t38_1.diff !" when I lookind log of installation I see PATCH COMMAND: patch -p0 -g0 -E --no-backup-if-mismatch < /usr/portage/local/layman/voip/net-misc/asterisk/files/1.4/patch_aster_t38_1.diff ================================== patching file channels/chan_sip.c Hunk #1 FAILED at 5614. Hunk #2 FAILED at 5904. Hunk #3 FAILED at 5918. Hunk #4 FAILED at 5941. Hunk ASTERISK-1 FAILED at 5956. Hunk ASTERISK-2 FAILED at 5968. Hunk ASTERISK-3 FAILED at 5980. 7 out of 7 hunks FAILED -- saving rejects to file channels/chan_sip.c.rej ================================== PATCH COMMAND: patch -p1 -g0 -E --no-backup-if-mismatch < /usr/portage/local/layman/voip/net-misc/asterisk/files/1.4/patch_aster_t38_1.diff ================================== can't find file to patch at input line 3 Perhaps you used the wrong -p or --strip option? The text leading up to this was: -------------------------- |--- channels/chan_sip.c (revision 233035) |+++ channels/chan_sip.c (working copy) -------------------------- No file to patch. Skipping patch. 7 out of 7 hunks ignored etc... so patch don`t apply, I open dirrectory with sourse and look diff manual - I see that patch already apply, it`s normally? without a patch asterisk build on, so i will test wor t38 By: Matthew Nicholson (mnicholson) 2009-12-22 09:49:46.000-0600 The patch must be applied to the latest version of asterisk 1.4. By: Matthew Nicholson (mnicholson) 2009-12-22 12:27:16.000-0600 vrban, I have merged a modified version of your patch with my patch. Please test. By: Kristijan Vrban (vrban) 2009-12-22 15:00:07.000-0600 Not tested yet, but since the merged version of both patches are functionally the same, it should work well. ...wait, do i have a deja vu, no no ;-) By: Mihail (mihaill) 2009-12-23 04:21:52.000-0600 hello! have a nice day. installed today 1.4.28 and applyed patch. begin test it, at the current moment it work my scheme: fax <-> NSG800 <-> * <-> cisco_5350 <PRI> i can send to mail log of asterisk and dump from tcpdump By: Kristijan Vrban (vrban) 2009-12-23 09:08:05.000-0600 ok, t38-sdp-parsing-fix3.diff is tested. works as expected. By: Digium Subversion (svnbot) 2009-12-23 09:21:30.000-0600 Repository: asterisk Revision: 236261 U branches/1.4/channels/chan_sip.c ------------------------------------------------------------------------ r236261 | mnicholson | 2009-12-23 09:21:29 -0600 (Wed, 23 Dec 2009) | 8 lines Properly set T.38 attributes and don't return before T.38 ports are configured when T.38 is found but no audio stream is found. (closes issue ASTERISK-15209) Reported by: bird_of_Luck Patches: t38-sdp-parsing-fix3.diff uploaded by mnicholson (license 96) Tested by: vrban, mihaill ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=236261 By: Digium Subversion (svnbot) 2009-12-23 09:46:27.000-0600 Repository: asterisk Revision: 236261 U branches/1.4/channels/chan_sip.c ------------------------------------------------------------------------ r236261 | mnicholson | 2009-12-23 09:21:28 -0600 (Wed, 23 Dec 2009) | 8 lines Properly set T.38 attributes and don't return before T.38 ports are configured when T.38 is found but no audio stream is found. (closes issue ASTERISK-15209) Reported by: bird_of_Luck Patches: t38-sdp-parsing-fix3.diff uploaded by mnicholson (license 96), written by vrban and mnicholson Tested by: vrban, mihaill ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=236261 |