[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