[asterisk-bugs] [Asterisk 0017552]: Cancelling a connection does not clear retransmissions
Asterisk Bug Tracker
noreply at bugs.digium.com
Tue Jun 29 14:21:41 CDT 2010
The following issue has been UPDATED.
======================================================================
https://issues.asterisk.org/view.php?id=17552
======================================================================
Reported By: viraptor
Assigned To:
======================================================================
Project: Asterisk
Issue ID: 17552
Category: Channels/chan_iax2
Reproducibility: always
Severity: minor
Priority: normal
Status: acknowledged
Asterisk Version: 1.6.2.9
JIRA:
Regression: No
Reviewboard Link:
SVN Branch (only for SVN checkouts, not tarball releases): N/A
SVN Revision (number only!):
Request Review:
======================================================================
Date Submitted: 2010-06-24 09:12 CDT
Last Modified: 2010-06-29 14:21 CDT
======================================================================
Summary: Cancelling a connection does not clear
retransmissions
Description:
If you create a connection and cancel it (with HANGUP) before getting an
answer, the IAX channel tries to retransmit some messages, even though this
may cause other problems.
The scenario which is specifically affected (this all happens before the
other side responds anything):
> NEW
> HANGUP
> NEW (retransmission)
> HANGUP (retransmission)
In this case, the first hangup is supposed to end the connection. Since
"Upon receipt of a HANGUP message, an IAX peer MUST immediately respond
with an ACK, and then destroy the call leg at its end." [RFC5456 6.2.5],
the second NEW is treated like a beginning of a new call (it's a proper
retransmission of the first one)
So now there are 2 ways to handle it:
- current one, where it's actually following the protocol, but may create
2 calls on the other end, where we'd expect only one
- clear retransmissions of NEW when the call is being cancelled - I think
this is a more logical way to handle it, since there might be another,
worse situation:
> NEW
< (ACK[NEW] gets lost)
> HANGUP
> NEW (retransmitted)
< ACK[HANGUP]
Now the channel stays in NEW state on the other side and keeps resending
auth request, or something else, which results in INVAL on the other side -
in other words: useless traffic.
======================================================================
Issue History
Date Modified Username Field Change
======================================================================
2010-06-29 14:21 lmadsen Description Updated
2010-06-29 14:21 lmadsen Additional Information Updated
======================================================================
More information about the asterisk-bugs
mailing list