[asterisk-bugs] [Asterisk 0016946]: Call that clears in same app_dial poll as answer is reported as NOANSWER but NORMAL_CLEARING
Asterisk Bug Tracker
noreply at bugs.digium.com
Wed Oct 13 17:45:17 CDT 2010
A NOTE has been added to this issue.
======================================================================
https://issues.asterisk.org/view.php?id=16946
======================================================================
Reported By: davidw
Assigned To: twilson
======================================================================
Project: Asterisk
Issue ID: 16946
Category: Applications/app_dial
Reproducibility: sometimes
Severity: minor
Priority: normal
Status: acknowledged
Target Version: 1.6.2.15
Asterisk Version: SVN
JIRA: SWP-984
Regression: No
Reviewboard Link: https://reviewboard.asterisk.org/r/740/
SVN Branch (only for SVN checkouts, not tarball releases): N/A
SVN Revision (number only!):
Request Review:
======================================================================
Date Submitted: 2010-03-02 13:54 CST
Last Modified: 2010-10-13 17:45 CDT
======================================================================
Summary: Call that clears in same app_dial poll as answer is
reported as NOANSWER but NORMAL_CLEARING
Description:
If a call clears so fast after being answered that app_dial fails to read a
frame before it realises it has been answered, handle_cause breaks from its
switch and does not increment any of its failure reason counters. The call
ends up with a "No one is available to answer at this time (1:0/0/0)"
message logged, the default DIALSTATUS of NOANSWER and a HANGUPCAUSE of 16
(AST_CAUSE_NORMAL_CLEARING).
If it clears just slightly later, it is treated as a successful, if short
call (that's why it is "sometimes", not "always".
The variablility in the result, depending on precise timing is confusing,
and NOANSWER does not seem an appropriate status.
======================================================================
----------------------------------------------------------------------
(0127991) svnbot (reporter) - 2010-10-13 17:45
https://issues.asterisk.org/view.php?id=16946#c127991
----------------------------------------------------------------------
Repository: asterisk
Revision: 291577
U branches/1.4/main/channel.c
------------------------------------------------------------------------
r291577 | twilson | 2010-10-13 17:45:16 -0500 (Wed, 13 Oct 2010) | 19
lines
Don't ignore frames that have been queued when softhangup'd
When an outgoing call is answered and hung up by the far end *very*
quickly, we
may not read any frames and therefor end up with a call that displays the
wrong
disposition/DIALSTATUS. The reason is because ast_queue_hangup()
immediately
sets the _softhangup flag on the channel and then queues the HANGUP
control
frame, but __ast_read refuses to read any frames if ast_check_hangup()
indicates
that a hangup request has been made (which it will if _softhangup is set).
So,
we end up losing control frames.
This change makes __ast_read continue to read frames even if a soft hangup
has
been requested. It queues a hangup frame to make sure that __ast_read()
will
still eventually return NULL.
(closes issue https://issues.asterisk.org/view.php?id=16946)
Reported by: davidw
Review: https://reviewboard.asterisk.org/r/740/
------------------------------------------------------------------------
http://svn.digium.com/view/asterisk?view=rev&revision=291577
Issue History
Date Modified Username Field Change
======================================================================
2010-10-13 17:45 svnbot Checkin
2010-10-13 17:45 svnbot Note Added: 0127991
======================================================================
More information about the asterisk-bugs
mailing list