[Home]

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:40Date Closed:2008-02-03 04:44:08.000-0600
Priority:MajorRegression?No
Status:Closed/CompleteComponents: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