summaryrefslogtreecommitdiff
path: root/res/parking
diff options
context:
space:
mode:
authorJonathan Rose <jrose@digium.com>2013-12-13 20:13:22 +0000
committerJonathan Rose <jrose@digium.com>2013-12-13 20:13:22 +0000
commit63b2c28c4b5410d3876f175c8ec0d24c121c7b36 (patch)
tree60effb4983c98c1763a67438b3434995862f1eb8 /res/parking
parent84e1790beb1c28f762fa991f99d4a41ede2c3935 (diff)
Transfers: Make Asterisk set ATTENDEDTRANSFER/BLINDTRANSFER more reliably
There were still a few cases in which ATTENDEDTRANSFER and BLINDTRANSFER wouldn't be set on channels involved with blind and attended transfers. This would happen with features that were initialized by channel driver specific mechanisms in multiparty calls. This patch resolves those cases while attempted to keep the behavior for setting those variables as consistent as possible. (closes issue AFS-24) Review: https://reviewboard.asterisk.org/r/3040/ ........ Merged revisions 403781 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@403783 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res/parking')
-rw-r--r--res/parking/parking_bridge_features.c4
-rw-r--r--res/parking/parking_manager.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/res/parking/parking_bridge_features.c b/res/parking/parking_bridge_features.c
index 4f39e2e94..ba0ffddfb 100644
--- a/res/parking/parking_bridge_features.c
+++ b/res/parking/parking_bridge_features.c
@@ -220,7 +220,7 @@ static struct ast_channel *park_local_transfer(struct ast_channel *parker, const
/* We need to have the parker subscribe to the new local channel before hand. */
create_parked_subscription(parker, ast_channel_uniqueid(parkee_side_2));
- pbx_builtin_setvar_helper(parkee_side_2, "BLINDTRANSFER", ast_channel_name(parker));
+ ast_bridge_set_transfer_variables(parkee_side_2, ast_channel_name(parker), 0);
ast_channel_unref(parkee_side_2);
@@ -375,7 +375,7 @@ static int parking_park_bridge_channel(struct ast_bridge_channel *bridge_channel
return -1;
}
- pbx_builtin_setvar_helper(bridge_channel->chan, "BLINDTRANSFER", ast_channel_name(parker));
+ ast_bridge_set_transfer_variables(bridge_channel->chan, ast_channel_name(parker), 0);
/* bridge_channel must be locked so we can get a reference to the bridge it is currently on */
ao2_lock(bridge_channel);
diff --git a/res/parking/parking_manager.c b/res/parking/parking_manager.c
index 0c577018a..60baa6510 100644
--- a/res/parking/parking_manager.c
+++ b/res/parking/parking_manager.c
@@ -453,7 +453,7 @@ static int manager_park(struct mansession *s, const struct message *m)
ast_channel_lock(chan);
if (!ast_strlen_zero(timeout_channel)) {
- pbx_builtin_setvar_helper(chan, "BLINDTRANSFER", timeout_channel);
+ ast_bridge_set_transfer_variables(chan, timeout_channel, 0);
}
ast_channel_unlock(chan);