summaryrefslogtreecommitdiff
path: root/res/res_features.c
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2007-07-30 17:12:58 +0000
committerJoshua Colp <jcolp@digium.com>2007-07-30 17:12:58 +0000
commit9d2d0e3896823a16a68844d06fda0f76fce94c2a (patch)
tree010120e0bacf4efdd883af549c0c1a490420bc75 /res/res_features.c
parent6e771511da8d06f297c72a693040c1d211fd718c (diff)
Merged revisions 77778 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r77778 | file | 2007-07-30 14:11:02 -0300 (Mon, 30 Jul 2007) | 4 lines (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. ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77779 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res/res_features.c')
-rw-r--r--res/res_features.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/res/res_features.c b/res/res_features.c
index ef8e81b69..610fffa99 100644
--- a/res/res_features.c
+++ b/res/res_features.c
@@ -736,17 +736,15 @@ static int builtin_blindtransfer(struct ast_channel *chan, struct ast_channel *p
ast_cdr_setdestchan(transferer->cdr, transferee->name);
ast_cdr_setapp(transferer->cdr, "BLINDTRANSFER","");
}
- if (!transferee->pbx) {
- /* Doh! Use our handy async_goto functions */
- ast_verb(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);
- }
+
+ /* Doh! Use our handy async_goto functions */
+ ast_verb(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 {