[asterisk-bugs] [Asterisk 0011467]: h extension not executing, zap channel getting stuck

noreply at bugs.digium.com noreply at bugs.digium.com
Thu Dec 6 18:53:57 CST 2007


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=11467 
====================================================================== 
Reported By:                jmls
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   11467
Category:                   Core/Channels
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     new
Asterisk Version:            SVN 
SVN Branch (only for SVN checkouts, not tarball releases):  1.4  
SVN Revision (number only!): 90876 
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             12-04-2007 15:51 CST
Last Modified:              12-06-2007 18:53 CST
====================================================================== 
Summary:                    h extension not executing, zap channel getting stuck
Description: 
If either func_curl or func_odbc is executed, and during the time it takes
to execute the function the caller hangs up, then the h extension is not
executed, and the zap channel the call came in on gets "stuck"
====================================================================== 

---------------------------------------------------------------------- 
 putnopvut - 12-06-07 18:53  
---------------------------------------------------------------------- 
I was able to reproduce this problem using the "memberdelay" option for
queues. The problem is with hanging up while a channel is being
autoserviced. The problem stems from the fact that a hangup actually
generates a NULL frame, not a hangup frame.

I have uploaded a patch which will fix the problem, but I'm not sure if
this should be merged as is. This fix simply queues the hangup frame, and
the frame will not be processed until autoservice is stopped on the
channel. This means that in the case reported here, the hangup will not
actually occur until after the call to odbc or curl has finished.

The other way to go would be to treat a hangup as a sign to immediately
stop autoservice and process the hangup.

Thoughts? 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
12-06-07 18:53  putnopvut      Note Added: 0074987                          
======================================================================




More information about the asterisk-bugs mailing list