diff options
author | twilson <twilson@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-01-21 23:23:59 +0000 |
---|---|---|
committer | twilson <twilson@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-01-21 23:23:59 +0000 |
commit | e6732fc1ebe25f090eeeb891726578de6f3e3562 (patch) | |
tree | e6203f49cb3eb448f7a5f3d40409368a7bbbb347 /res | |
parent | bbe48893444efab43c853655426542587f124e33 (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.c | 4 |
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! */ |