Summary: | ASTERISK-10174: DTMF INFO event appears to be causing Maximum retries exceeded on transmission hangup. | ||
Reporter: | Eric Jacksch (jacksch) | Labels: | |
Date Opened: | 2007-08-26 23:09:40 | Date Closed: | 2008-02-03 04:44:08.000-0600 |
Priority: | Major | Regression? | No |
Status: | Closed/Complete | Components: | Channels/chan_sip/General |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ( 0) pound.problem.txt | |
Description: | I've spent a *lot* of time struggling with outgoing calls being disconnected 20 seconds after they were answered. Since my phones are on a LAN (private addressing) and my Asterisk box is dual homed (one interface with a public IP), there is definately no NAT problem. My Asterisk talks SIP to all my local devices on the LAN, and sends outbound calls for termination via IAX2. If I dial a number and hit pound (to cause the call to be dialled immediately) on a phone connected to my Sipura 2000, Asterisk connects the call, and I have two way audio, but then it begins transmitting INVITES to the ATA. The ATA acknowledging them, but, it still results in : [Aug 27 00:01:02] WARNING[15661]: chan_sip.c:1920 retrans_pkt: Maximum retries exceeded on transmission 9d4091f7-a13e2f8d@192.168.220.52 for seqno 102 (Critical Response) [Aug 27 00:01:02] WARNING[15661]: chan_sip.c:1944 retrans_pkt: Hanging up call 9d4091f7-a13e2f8d@192.168.220.52 - no reply to our critical packet. If I place the same call and just wait for the ATA to time out (as opposed to hitting # after dialling the number), the problem does not occur. Please contact me if you would like the full debug file -- eric( a t )jacksch( d o t )com | ||
Comments: | By: Joshua C. Colp (jcolp) 2007-08-27 07:06:46 Please provide a full sip debug with this bug. By: Eric Jacksch (jacksch) 2007-08-27 12:37:11 Verbose asterisk and SIP debug uploaded as attachment. By: Emmanuel BUU (neutrino88) 2007-09-14 13:58:36 Same note as in http://bugs.digium.com/view.php?id=10332 I had a similar situation where a SIP phone would initiate a new transaction BEFORE the ACK was sent: SIP Phone Asterisk INVITE (CSEQ=1) ----------> <------------------ 180 RINGING <------------------ 200 OK INFO (CSEQ=3) ----------> <------------------ 200 OK ACK CSEQ = 2 ------------> dropped <------------------- 200 OK (CSEQ=2) restransmision I designed a patch for 1.4.x branch Index: channels/chan_sip.c =================================================================== --- channels/chan_sip.c (révision 82392) +++ channels/chan_sip.c (copie de travail) @@ -14952,7 +14952,7 @@ if (option_debug > 3) ast_log(LOG_DEBUG, "**** Received %s (%d) - Command in SIP %s\n", sip_methods[p->method].text, sip_methods[p->method].id, cmd); - if (p->icseq && (p->icseq > seqno)) { + if (p->icseq && (p->icseq > seqno) && req->method != SIP_ACK) { if (option_debug) ast_log(LOG_DEBUG, "Ignoring too old SIP packet packet %d (expecting >= %d)\n", seqno, p->icseq); if (req->method != SIP_ACK) By: Olle Johansson (oej) 2008-01-31 13:28:59.000-0600 Please try with latest 1.4 as we've changed a lot of functionality in regards to in-dialog messages. If it still doesn't work, please upload a full SIP debug including debug output at the level of 5. (Make sure debug channel is enabled in logger.conf). THanks. By: Emmanuel BUU (neutrino88) 2008-01-31 15:25:38.000-0600 I checked out the code of branches/1.4 and the code still does not include any fix in regard with the ACK glaring. if (p->icseq && (p->icseq > seqno)) { if (option_debug) ast_log(LOG_DEBUG, "Ignoring too old SIP packet packet %d (expecting >= %d)\n", seqno, p->icseq); By: Olle Johansson (oej) 2008-02-01 01:48:36.000-0600 Did you actually test? Would be nice to get a SIP debug as I asked for, so I can check details. Thanks for quick feedback. By: Olle Johansson (oej) 2008-02-03 03:36:24.000-0600 This is not only about ACK, it's also about CANCEL so we need to handle both. By: Digium Subversion (svnbot) 2008-02-03 04:35:23.000-0600 Repository: asterisk Revision: 102090 U branches/1.4/channels/chan_sip.c ------------------------------------------------------------------------ r102090 | oej | 2008-02-03 04:35:21 -0600 (Sun, 03 Feb 2008) | 8 lines Handle ACK and CANCEL in an invite transaction - even if we get INFO transactions during the actual call setup. (closes issue ASTERISK-10174) Reported by: jacksch Tested by: oej Patch by: oej inspired by suggestions from neutrino88 in the bug tracker ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=102090 By: Digium Subversion (svnbot) 2008-02-03 04:44:08.000-0600 Repository: asterisk Revision: 102091 _U trunk/ U trunk/channels/chan_sip.c ------------------------------------------------------------------------ r102091 | oej | 2008-02-03 04:44:07 -0600 (Sun, 03 Feb 2008) | 16 lines Merged revisions 102090 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r102090 | oej | 2008-02-03 11:37:32 +0100 (S?�95?Y?�94?�82n, 03 Feb 2008) | 8 lines Handle ACK and CANCEL in an invite transaction - even if we get INFO transactions during the actual call setup. (closes issue ASTERISK-10174) Reported by: jacksch Tested by: oej Patch by: oej inspired by suggestions from neutrino88 in the bug tracker ........ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=102091 |