summaryrefslogtreecommitdiff
path: root/main/bridge.c
diff options
context:
space:
mode:
authorJonathan Rose <jrose@digium.com>2015-12-01 16:11:07 -0600
committerJonathan Rose <jrose@digium.com>2015-12-02 12:57:04 -0600
commiteadad24b595c3b6e5f0472f9936e7e37259308b5 (patch)
treec2fc7fa630efe2337121f45ff0ace6371800e29d /main/bridge.c
parent3fcf160faeb036529c575b66d73e7978f475fb28 (diff)
Unset BRIDGEPEER when leaving a bridge
Currently if a channel is transferred out of a bridge, the BRIDGEPEER variable (also BRIDGEPVTCALLID) remain set even once the channel is out of the bridge. This patch removes these variables when leaving the bridge. ASTERISK-25600 #close Reported by: Mark Michelson Change-Id: I753ead2fffbfc65427ed4e9244c7066610e546da
Diffstat (limited to 'main/bridge.c')
-rw-r--r--main/bridge.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/main/bridge.c b/main/bridge.c
index 7644884eb..b5c59514c 100644
--- a/main/bridge.c
+++ b/main/bridge.c
@@ -1213,7 +1213,7 @@ static void check_bridge_play_sounds(struct ast_bridge *bridge)
}
}
-static void update_bridge_vars_set(struct ast_channel *chan, const char *name, const char *pvtid)
+void ast_bridge_vars_set(struct ast_channel *chan, const char *name, const char *pvtid)
{
ast_channel_stage_snapshot(chan);
pbx_builtin_setvar_helper(chan, "BRIDGEPEER", name);
@@ -1253,12 +1253,12 @@ static void set_bridge_peer_vars_2party(struct ast_channel *c0, struct ast_chann
ast_channel_unlock(c1);
ast_channel_lock(c0);
- update_bridge_vars_set(c0, c1_name, c1_pvtid);
+ ast_bridge_vars_set(c0, c1_name, c1_pvtid);
UPDATE_BRIDGE_VARS_GET(c0, c0_name, c0_pvtid);
ast_channel_unlock(c0);
ast_channel_lock(c1);
- update_bridge_vars_set(c1, c0_name, c0_pvtid);
+ ast_bridge_vars_set(c1, c0_name, c0_pvtid);
ast_channel_unlock(c1);
}
@@ -1359,7 +1359,7 @@ static void set_bridge_peer_vars_multiparty(struct ast_bridge *bridge)
++idx;
ast_channel_lock(bridge_channel->chan);
- update_bridge_vars_set(bridge_channel->chan, buf, NULL);
+ ast_bridge_vars_set(bridge_channel->chan, buf, NULL);
ast_channel_unlock(bridge_channel->chan);
}
}
@@ -1381,7 +1381,7 @@ static void set_bridge_peer_vars_holding(struct ast_bridge *bridge)
AST_LIST_TRAVERSE(&bridge->channels, bridge_channel, entry) {
ast_channel_lock(bridge_channel->chan);
- update_bridge_vars_set(bridge_channel->chan, NULL, NULL);
+ ast_bridge_vars_set(bridge_channel->chan, NULL, NULL);
ast_channel_unlock(bridge_channel->chan);
}
}