Author: file
Date: Mon Jul 30 12:11:02 2007
New Revision: 77778

URL: http://svn.digium.com/view/asterisk?view=rev&rev=77778
Log:
(closes issue #10327)
Reported by: kkiely
Instead of directly mucking with the extension/context/priority of the channel 
we are transferring when it has a PBX simply call ast_async_goto on it. This 
will ensure that the channel gets handled properly and sent to the right place.

Modified:
    branches/1.4/res/res_features.c

Modified: branches/1.4/res/res_features.c
URL: 
http://svn.digium.com/view/asterisk/branches/1.4/res/res_features.c?view=diff&rev=77778&r1=77777&r2=77778
==============================================================================
--- branches/1.4/res/res_features.c (original)
+++ branches/1.4/res/res_features.c Mon Jul 30 12:11:02 2007
@@ -699,18 +699,14 @@
                        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");
+               if (!transferee->pbx)
                        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);
-               }
+               
+               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 {


_______________________________________________
--Bandwidth and Colocation Provided by http://www.api-digital.com--

svn-commits mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/svn-commits

Reply via email to