[asterisk-bugs] [Asterisk 0017204]: [patch] Dial()'s do_forward() breaks Local/ channel frame forwarding

Asterisk Bug Tracker noreply at bugs.digium.com
Mon Apr 19 13:30:16 CDT 2010


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=17204 
====================================================================== 
Reported By:                one47
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   17204
Category:                   Applications/app_dial
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     confirmed
Asterisk Version:           1.6.2.6 
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-04-19 12:07 CDT
Last Modified:              2010-04-19 13:30 CDT
====================================================================== 
Summary:                    [patch] Dial()'s do_forward() breaks Local/ channel
frame forwarding
Description: 
This was spotted due to an issue that is caused with CDR records of calls
redirected via a SIP 302 message. The dstchannel is recorded incorrectly.


In chan_local:local_queue_frame(), there is a test to see whether
there is a channel or app to forward data to before frames are passed
on:

               if (other->pbx || other->_bridge ||
!ast_strlen_zero(other->appl)) {
                       ast_queue_frame(other, f);
               }

For a call that is being dialled, there is no pbx or bridge object, so
chan_local will only forward data if 'appl' is correctly set.

In app_dial:do_forward(), the original channel is replaced with a new
"forward" channel, but 'appl' is never set on this channel - The
effectively kills frame passing on the new Local/ channel created by
do_forward, and it stays that way until it is optimized away.

====================================================================== 

---------------------------------------------------------------------- 
 (0120586) lmadsen (administrator) - 2010-04-19 13:30
 https://issues.asterisk.org/view.php?id=17204#c120586 
---------------------------------------------------------------------- 
Issue confirmed until a developer can review and make sure this is the
right approach, but the reporter seems to have figured out what needs to be
done here. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-04-19 13:30 lmadsen        Note Added: 0120586                          
======================================================================




More information about the asterisk-bugs mailing list