Summary: | ASTERISK-10113: Blind Transfer broken in 1.4.10.1 | ||
Reporter: | rayjay (rayjay) | Labels: | |
Date Opened: | 2007-08-18 06:44:08 | Date Closed: | 2011-06-07 14:03:24 |
Priority: | Major | Regression? | No |
Status: | Closed/Complete | Components: | Resources/res_features |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ||
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); | ||
Comments: | By: Russell Brown (ruffle) 2007-08-19 06:52:42 Argh! (just spent ages chasing this down too). I confirm that applying the diff restores blind transfers to their full glory (ie they work!) By: Joshua C. Colp (jcolp) 2007-08-19 19:09:30 These changes have already been reverted in SVN and a new few for the original issue is being worked on. |