aboutsummaryrefslogtreecommitdiffstats
path: root/res
diff options
context:
space:
mode:
authortwilson <twilson@f38db490-d61c-443f-a65b-d21fe96a405b>2009-01-21 23:23:59 +0000
committertwilson <twilson@f38db490-d61c-443f-a65b-d21fe96a405b>2009-01-21 23:23:59 +0000
commite6732fc1ebe25f090eeeb891726578de6f3e3562 (patch)
treee6203f49cb3eb448f7a5f3d40409368a7bbbb347 /res
parentbbe48893444efab43c853655426542587f124e33 (diff)
Fix builtin_blindtransfer calling back the wrong channel
Blindtransfer also was calling back the wrong channel when a timeout occurred. This should be the last of these, as there are no more masq_park_announce calls that aren't passing orig_chan_name git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@169868 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'res')
-rw-r--r--res/res_features.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/res/res_features.c b/res/res_features.c
index c7fa2ef10..5017188f2 100644
--- a/res/res_features.c
+++ b/res/res_features.c
@@ -715,8 +715,10 @@ static int builtin_blindtransfer(struct ast_channel *chan, struct ast_channel *p
const char *transferer_real_context;
char xferto[256];
int res;
+ const char *orig_chan_name;
set_peers(&transferer, &transferee, peer, chan, sense);
+ orig_chan_name = ast_strdupa(transferer->name);
transferer_real_context = real_ctx(transferer, transferee);
/* Start autoservice on chan while we talk to the originator */
ast_autoservice_start(transferee);
@@ -743,7 +745,7 @@ static int builtin_blindtransfer(struct ast_channel *chan, struct ast_channel *p
res = finishup(transferee);
if (res)
res = -1;
- else if (!masq_park_call_announce(transferee, transferer, 0, NULL, NULL)) { /* success */
+ else if (!masq_park_call_announce(transferee, transferer, 0, NULL, orig_chan_name)) { /* success */
/* We return non-zero, but tell the PBX not to hang the channel when
the thread dies -- We have to be careful now though. We are responsible for
hanging up the channel, else it will never be hung up! */