35 #include "include/confbridge.h"
47 static int announce_call(
struct ast_channel *chan,
const char *addr,
int timeout)
70 static void announce_pvt_destructor(
void *vdoomed)
74 ao2_cleanup(doomed->
bridge);
82 const char *conf_name =
data;
90 ast_assert(conference->bridge != NULL);
100 pvt->bridge = conference->bridge;
119 .description =
"Conference Bridge Announcing Channel",
120 .requester = announce_request,
121 .call = announce_call,
122 .hangup = announce_hangup,
141 return &announce_tech;
153 p = ast_channel_tech_pvt(ast);
Main Channel structure associated with a channel.
Channels with this particular technology are an implementation detail of Asterisk and should generall...
Asterisk main include file. File version handling, generic pbx functions.
Structure that contains features information.
int ast_unreal_sendhtml(struct ast_channel *ast, int subclass, const char *data, int datalen)
struct ast_unreal_pvt * ast_unreal_alloc(size_t size, ao2_destructor_fn destructor, struct ast_format_cap *cap)
Allocate the base unreal struct for a derivative.
#define AST_UNREAL_NO_OPTIMIZATION
Structure to pass both assignedid values to channel drivers.
#define AST_UNREAL_CARETAKER_THREAD
struct ast_channel * ast_unreal_new_channels(struct ast_unreal_pvt *p, const struct ast_channel_tech *tech, int semi1_state, int semi2_state, const char *exten, const char *context, const struct ast_assigned_ids *assignedids, const struct ast_channel *requestor, ast_callid callid)
Create the semi1 and semi2 unreal channels.
int ast_channel_add_bridge_role(struct ast_channel *chan, const char *role_name)
Adds a bridge role to a channel.
int ast_unreal_indicate(struct ast_channel *ast, int condition, const void *data, size_t datalen)
int ast_unreal_fixup(struct ast_channel *oldchan, struct ast_channel *newchan)
struct ast_flags feature_flags
int conf_announce_channel_push(struct ast_channel *ast)
Push the announcer channel into the conference.
int ast_bridge_impart(struct ast_bridge *bridge, struct ast_channel *chan, struct ast_channel *swap, struct ast_bridge_features *features, enum ast_bridge_impart_flags flags) attribute_warn_unused_result
Impart a channel to a bridge (non-blocking)
struct ast_unreal_pvt base
#define SCOPED_CHANNELLOCK(varname, chan)
scoped lock specialization for channels.
General Asterisk PBX channel definitions.
void ast_unreal_destructor(void *vdoomed)
struct ast_unreal_pvt destructor.
#define ao2_ref(o, delta)
Reference/unreference an object and return the old refcount.
struct ast_channel_tech * conf_announce_get_tech(void)
Get ConfBridge announce channel technology struct.
int ast_unreal_setoption(struct ast_channel *chan, int option, void *data, int datalen)
struct ao2_container * conference_bridges
Container to hold all conference bridges in progress.
Structure to describe a channel "technology", ie a channel driver See for examples: ...
struct ast_bridge * bridge
struct ast_channel * chan
Structure that contains information about a bridge.
int ast_unreal_write(struct ast_channel *ast, struct ast_frame *f)
int ast_unreal_digit_begin(struct ast_channel *ast, char digit)
The base pvt structure for local channel derivatives.
int ast_unreal_digit_end(struct ast_channel *ast, char digit, unsigned int duration)
void ast_hangup(struct ast_channel *chan)
Hang up a channel.
struct ast_frame * ast_unreal_read(struct ast_channel *ast)
The structure that represents a conference bridge.
struct ast_bridge_features * ast_bridge_features_new(void)
Allocate a new bridge features struct.
int ast_unreal_queryoption(struct ast_channel *ast, int option, void *data, int *datalen)
void ast_copy_string(char *dst, const char *src, size_t size)
Size-limited null-terminating string copy.
int ast_answer(struct ast_channel *chan)
Answer a channel.
#define RAII_VAR(vartype, varname, initval, dtor)
Declare a variable that will call a destructor function when it goes out of scope.
int ast_unreal_hangup(struct ast_unreal_pvt *p, struct ast_channel *ast)
Hangup one end (maybe both ends) of an unreal channel derivative.
int ast_unreal_sendtext(struct ast_channel *ast, const char *text)
Unreal channel derivative framework.