78{
82 char *c_name;
83 int failed;
84
85
88 }
89
91 data = "";
93 } else {
95 }
96 if (!c_ref) {
97 ast_verb(4,
"Channel '%s' not found\n", data);
99 return 0;
100 }
101 if (chan == c_ref) {
104 return 0;
105 }
106
108
112
114
115 if (!bridge) {
116 ast_verb(4,
"Channel '%s' is not in a bridge\n", c_name);
118 return 0;
119 }
120
121 ast_verb(4,
"%s is joining %s in bridge %s\n",
123
126 if (failed) {
127 ast_verb(4,
"%s failed to join %s in bridge %s\n",
129 }
130
134 return 0;
135}
#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.