35 #include "include/confbridge.h"
47 .name =
"MULTI_MARKED",
48 .join_unmarked = join_active,
49 .join_waitmarked = join_active,
51 .leave_unmarked = leave_active,
52 .leave_waitmarked = leave_active,
54 .entry = transition_to_marked,
91 if ((ast_test_flag(&user_iter->
u_profile, USER_OPT_ENDMARKED) || ast_test_flag(&user_iter->
u_profile, USER_OPT_ENDMARKEDANY)) && !user_iter->
kicked) {
92 if (ast_test_flag(&user_iter->
u_profile, USER_OPT_WAITMARKED)
93 && (!ast_test_flag(&user_iter->
u_profile, USER_OPT_MARKEDUSER) || ast_test_flag(&user_iter->
u_profile, USER_OPT_ENDMARKEDANY))) {
102 }
else if (ast_test_flag(&user_iter->
u_profile, USER_OPT_WAITMARKED)
103 && !ast_test_flag(&user_iter->
u_profile, USER_OPT_MARKEDUSER)) {
161 if (!ast_test_flag(&user->
u_profile, USER_OPT_QUIET)) {
172 if (ast_test_flag(&user_iter->
u_profile, USER_OPT_MUSICONHOLD)) {
195 int waitmarked_moved = 0;
213 && ast_test_flag(&user->
u_profile, USER_OPT_MARKEDUSER)
214 && !ast_test_flag(&user->
u_profile, USER_OPT_QUIET)
215 && waitmarked_moved) {
void conf_remove_user_marked(struct confbridge_conference *conference, struct confbridge_user *user)
Remove a conference bridge user from the marked active conference users in the conference.
void conf_add_user_active(struct confbridge_conference *conference, struct confbridge_user *user)
Add a conference bridge user as an unmarked active user of the conference.
int ast_bridge_remove(struct ast_bridge *bridge, struct ast_channel *chan)
Remove a channel from a bridge.
int conf_add_post_join_action(struct confbridge_user *user, int(*func)(struct confbridge_user *user))
Queue a function to run with the given conference bridge user as an argument once the state transitio...
struct confbridge_state * CONF_STATE_MULTI
Conference state with multiple active users, but no marked users.
Asterisk main include file. File version handling, generic pbx functions.
void conf_remove_user_active(struct confbridge_conference *conference, struct confbridge_user *user)
Remove a conference bridge user from the unmarked active conference users in the conference.
int ast_autoservice_start(struct ast_channel *chan)
Automatically service a channel for us...
struct ast_channel * chan
struct confbridge_conference * conference
const char * conf_get_sound(enum conf_sounds sound, struct bridge_profile_sounds *custom_sounds)
Looks to see if sound file is stored in bridge profile sounds, if not default sound is provided...
void conf_update_user_mute(struct confbridge_user *user)
Update the actual mute status of the user and set it on the bridge.
struct confbridge_state * CONF_STATE_EMPTY
Conference state with no active or waiting users.
struct confbridge_user::@94 list
void conf_add_user_marked(struct confbridge_conference *conference, struct confbridge_user *user)
Add a conference bridge user as a marked active user of the conference.
#define AST_LIST_TRAVERSE_SAFE_END
Closes a safe loop traversal block.
conference_event_fn join_marked
struct confbridge_conference::@90 active_list
struct bridge_profile b_profile
struct confbridge_state * CONF_STATE_SINGLE_MARKED
Conference state with only a single marked active user.
unsigned int waitingusers
conference_event_fn leave_marked
int async_play_sound_file(struct confbridge_conference *conference, const char *filename, struct ast_channel *initiator)
Play sound file into conference bridge asynchronously.
#define AST_LIST_REMOVE_CURRENT(field)
Removes the current entry from a list during a traversal.
A set of macros to manage forward-linked lists.
Core PBX routines and definitions.
int ast_autoservice_stop(struct ast_channel *chan)
Stop servicing a channel for us...
void conf_moh_start(struct confbridge_user *user)
Start MOH for the conference user.
#define AST_LIST_INSERT_TAIL(head, elm, field)
Appends a list entry to the tail of a list.
struct confbridge_state * CONF_STATE_SINGLE
Conference state with only a single unmarked active user.
void conf_moh_stop(struct confbridge_user *user)
Stop MOH for the conference user.
#define AST_LIST_TRAVERSE(head, var, field)
Loops over (traverses) the entries in a list.
structure to hold users read from users.conf
Confbridge state handling.
A conference state object to hold the various state callback functions.
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...
struct confbridge_state * CONF_STATE_INACTIVE
Conference state with only waiting users.
The structure that represents a conference bridge user.
struct confbridge_conference::@91 waiting_list
#define AST_LIST_TRAVERSE_SAFE_BEGIN(head, var, field)
Loops safely over (traverses) the entries in a list.
int play_sound_file(struct confbridge_conference *conference, const char *filename)
Play sound file into conference bridge.
struct user_profile u_profile
struct confbridge_state * CONF_STATE_MULTI_MARKED
Conference state with multiple active users and at least one marked user.
void conf_change_state(struct confbridge_user *user, struct confbridge_state *newstate)
Execute conference state transition because of a user action.
struct ast_bridge * bridge