*/
int ast_bridge_unsuspend(struct ast_bridge *bridge, struct ast_channel *chan);
+/*!
+ * \brief Sets BRIDGECHANNEL and BRIDGEPVTCALLID for a channel
+ *
+ * \pre chan must be locked before calling
+ *
+ * \param name channel name of the bridged peer
+ * \param pvtid Private CallID of the bridged peer
+ *
+ * \return nothing
+ */
+void ast_bridge_vars_set(struct ast_channel *chan, const char *name, const char *pvtid);
+
struct ast_unreal_pvt;
/*!
}
}
-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);
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);
}
++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);
}
}
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);
}
}
channel_set_cause(bridge_channel->chan, cause);
+ ast_channel_lock(bridge_channel->chan);
+ ast_bridge_vars_set(bridge_channel->chan, NULL, NULL);
+ ast_channel_unlock(bridge_channel->chan);
+
/* Change the state on the bridge channel */
bridge_channel->state = new_state;