[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 18:47:12 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:                     closed
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:              
Resolution:                 fixed
Fixed in Version:           
====================================================================== 
Date Submitted:             2010-03-02 13:54 CST
Last Modified:              2010-10-13 18:47 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.
====================================================================== 

---------------------------------------------------------------------- 
 (0128001) svnbot (reporter) - 2010-10-13 18:47
 https://issues.asterisk.org/view.php?id=16946#c128001 
---------------------------------------------------------------------- 
Repository: asterisk
Revision: 291657

_U  trunk/
U   trunk/main/channel.c

------------------------------------------------------------------------
r291657 | twilson | 2010-10-13 18:47:11 -0500 (Wed, 13 Oct 2010) | 42
lines

Merged revisions 291581 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r291581 | twilson | 2010-10-13 16:01:56 -0700 (Wed, 13 Oct 2010) | 35
lines
  
  Merged revisions 291580 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2
  
  ................
    r291580 | twilson | 2010-10-13 15:58:43 -0700 (Wed, 13 Oct 2010) | 28
lines
    
    Merged revisions 291577 via svnmerge from 
    https://origsvn.digium.com/svn/asterisk/branches/1.4
    
    ........
      r291577 | twilson | 2010-10-13 15:45:15 -0700 (Wed, 13 Oct 2010) |
21 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.
      
      Much thanks to David Vossel for all of the reviews, discussion, and
help!
      
      (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=291657 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-10-13 18:47 svnbot         Checkin                                      
2010-10-13 18:47 svnbot         Note Added: 0128001                          
======================================================================




More information about the asterisk-bugs mailing list