[asterisk-bugs] [Asterisk 0010489]: Blind Transfer broken in 1.4.10.1

noreply at bugs.digium.com noreply at bugs.digium.com
Sun Aug 19 06:52:43 CDT 2007


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=10489 
====================================================================== 
Reported By:                rayjay
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   10489
Category:                   Resources/res_features
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     new
Asterisk Version:           1.4.10.1  
SVN Branch (only for SVN checkouts, not tarball releases): N/A  
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             08-18-2007 06:44 CDT
Last Modified:              08-19-2007 06:52 CDT
====================================================================== 
Summary:                    Blind Transfer broken in 1.4.10.1
Description: 
Blind transfer is no longer working in 1.4.10.1 due to a change in the code
of res_features.c since 1.4.9.  I am using SIP channels.  Attended transfer
is unaffected.  I put back the 1.4.9 version of res_features.c and blind
transfers worked correctly again, so seems to be a problem in the recent
changes in this file.  Below is a diff between 1.4.9 and 1.4.10.1 with 5
lines of context.

***************
*** 697,714 ****
                }
                if (transferer->cdr) {
                        ast_cdr_setdestchan(transferer->cdr,
transferee->name);
                        ast_cdr_setapp(transferer->cdr,
"BLINDTRANSFER","");
                }
!               if (!transferee->pbx)
                        res = -1;
!
!               if (option_verbose > 2)
!                       ast_verbose(VERBOSE_PREFIX_3 "Transferring %s to
'%s' (context %s) priority 1\n"
!                                   ,transferee->name, xferto,
transferer_real_context);
!               if (ast_async_goto(transferee, transferer_real_context,
xferto, 1))
!                       ast_log(LOG_WARNING, "Async goto failed :-(\n");
                check_goto_on_transfer(transferer);
                return res;
        } else {
                if (option_verbose > 2)
                        ast_verbose(VERBOSE_PREFIX_3 "Unable to find
extension '%s' in context '%s'\n", xferto, transferer_real_context);
--- 697,718 ----
                }
                if (transferer->cdr) {
                        ast_cdr_setdestchan(transferer->cdr,
transferee->name);
                        ast_cdr_setapp(transferer->cdr,
"BLINDTRANSFER","");
                }
!               if (!transferee->pbx) {
!                       /* Doh!  Use our handy async_goto functions */
!                       if (option_verbose > 2)
!                               ast_verbose(VERBOSE_PREFIX_3 "Transferring
%s to '%s' (context %s) priority 1\n"
!                                                              
,transferee->name, xferto, transferer_real_context);
!                       if (ast_async_goto(transferee,
transferer_real_context, xferto, 1))
!                               ast_log(LOG_WARNING, "Async goto failed
:-(\n");
                        res = -1;
!               } else {
!                       /* Set the channel's new extension, since it
exists, using transferer context */
!                       set_c_e_p(transferee, transferer_real_context,
xferto, 0);
!               }
                check_goto_on_transfer(transferer);
                return res;
        } else {
                if (option_verbose > 2)
                        ast_verbose(VERBOSE_PREFIX_3 "Unable to find
extension '%s' in context '%s'\n", xferto, transferer_real_context);

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

---------------------------------------------------------------------- 
 ruffle - 08-19-07 06:52  
---------------------------------------------------------------------- 
Argh!  (just spent ages chasing this down too).  I confirm that applying
the diff restores blind transfers to their full glory (ie they work!) 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
08-19-07 06:52  ruffle         Note Added: 0069058                          
======================================================================




More information about the asterisk-bugs mailing list