75{
79 char *c_name;
80 int failed;
81
82
85 }
86
88 data = "";
90 } else {
92 }
93 if (!c_ref) {
94 ast_verb(4,
"Channel '%s' not found\n", data);
96 return 0;
97 }
98 if (chan == c_ref) {
101 return 0;
102 }
103
105
109
111
112 if (!bridge) {
113 ast_verb(4,
"Channel '%s' is not in a bridge\n", c_name);
115 return 0;
116 }
117
118 ast_verb(4,
"%s is joining %s in bridge %s\n",
120
123 if (failed) {
124 ast_verb(4,
"%s failed to join %s in bridge %s\n",
126 }
127
131 return 0;
132}
#define ast_strdupa(s)
duplicate a string in memory from the stack
int ast_bridge_join(struct ast_bridge *bridge, struct ast_channel *chan, struct ast_channel *swap, struct ast_bridge_features *features, struct ast_bridge_tech_optimizations *tech_args, enum ast_bridge_join_flags flags)
Join a channel to a bridge (blocking)
int ast_bridge_features_init(struct ast_bridge_features *features)
Initialize bridge features structure.
void ast_bridge_features_cleanup(struct ast_bridge_features *features)
Clean up the contents of a bridge features structure.
const char * ast_channel_name(const struct ast_channel *chan)
#define ast_channel_lock(chan)
struct ast_channel * ast_channel_get_by_name_prefix(const char *name, size_t name_len)
Find a channel by a name prefix.
struct ast_bridge * ast_channel_get_bridge(const struct ast_channel *chan)
Get the bridge associated with a channel.
#define ast_channel_unref(c)
Decrease channel reference count.
int ast_answer(struct ast_channel *chan)
Answer a channel.
#define ast_channel_unlock(chan)
ast_channel_state
ast_channel states
#define ast_verb(level,...)
int pbx_builtin_setvar_helper(struct ast_channel *chan, const char *name, const char *value)
Add a variable to the channel variable stack, removing the most recently set value for the same name.
static force_inline int attribute_pure ast_strlen_zero(const char *s)
Structure that contains features information.
Structure that contains information about a bridge.
const ast_string_field uniqueid
Main Channel structure associated with a channel.