35#define MAX_CONF_NAME AST_MAX_EXTENSION
39#define MAX_PROFILE_NAME 128
41#define DEFAULT_USER_PROFILE "default_user"
42#define DEFAULT_BRIDGE_PROFILE "default_bridge"
43#define DEFAULT_MENU_PROFILE "default_menu"
46#define DEFAULT_TALKING_THRESHOLD 160
49#define DEFAULT_SILENCE_THRESHOLD 2500
Asterisk main include file. File version handling, generic pbx functions.
#define MAXIMUM_DTMF_FEATURE_STRING
Maximum length of a DTMF feature string.
General Asterisk PBX channel definitions.
#define AST_MAX_EXTENSION
Confbridge state handling.
struct stasis_message_type * confbridge_mute_type(void)
get the confbridge mute stasis message type
int func_confbridge_helper(struct ast_channel *chan, const char *cmd, char *data, const char *value)
struct ast_channel_tech * conf_announce_get_tech(void)
Get ConfBridge announce channel technology struct.
int conf_handle_only_person(struct confbridge_user *user)
Handle actions whenever an user joins an empty conference.
void conf_moh_stop(struct confbridge_user *user)
Stop MOH for the conference user.
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 manager_confbridge_init(void)
register stasis message routers to handle manager events for confbridge messages
int conf_reload_config(void)
reload confbridge.conf file
struct stasis_message_type * confbridge_talking_type(void)
get the confbridge talking stasis message type
const char * confbridge_event_type_to_string(struct stasis_message_type *event_type)
Get the string representation of a confbridge stasis message type.
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_send_event_to_participants(struct confbridge_conference *conference, struct ast_channel *chan, struct stasis_message *msg)
Send events to bridge participants.
struct stasis_message_type * confbridge_stop_record_type(void)
get the confbridge stop_record stasis message type
int conf_handle_inactive_waitmarked(struct confbridge_user *user)
Handle actions every time a waitmarked user joins w/o a marked user present.
void confbridge_handle_atxfer(struct ast_attended_transfer_message *msg)
Create join/leave events for attended transfers.
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.
@ USER_OPT_ANNOUNCEUSERCOUNTALL
@ USER_OPT_HEAR_OWN_JOIN_SOUND
@ USER_OPT_TEXT_MESSAGING
@ USER_OPT_ANNOUNCEUSERCOUNT
@ USER_OPT_ANSWER_CHANNEL
@ USER_OPT_ANNOUNCE_JOIN_LEAVE
@ USER_OPT_ANNOUNCE_JOIN_LEAVE_REVIEW
void conf_add_user_waiting(struct confbridge_conference *conference, struct confbridge_user *user)
Add a conference bridge user as an waiting user of the conference.
struct stasis_message_type * confbridge_end_type(void)
get the confbridge end stasis message type
void manager_confbridge_shutdown(void)
unregister stasis message routers to handle manager events for confbridge messages
@ CONF_SOUND_OTHER_IN_PARTY
@ CONF_SOUND_PARTICIPANTS_UNMUTED
@ CONF_SOUND_PARTICIPANTS_MUTED
@ CONF_SOUND_WAIT_FOR_LEADER
@ CONF_SOUND_BINAURAL_OFF
@ CONF_SOUND_LEADER_HAS_LEFT
@ CONF_SOUND_PLACE_IN_CONF
@ CONF_SOUND_UNLOCKED_NOW
void conf_remove_user_waiting(struct confbridge_conference *conference, struct confbridge_user *user)
Remove a conference bridge user from the waiting conference users in the conference.
int conf_find_menu_entry_by_sequence(const char *dtmf_sequence, struct conf_menu *menu, struct conf_menu_entry *result)
Finds a menu_entry in a menu structure matched by DTMF sequence.
struct stasis_message_type * confbridge_start_type(void)
get the confbridge start stasis message type
struct stasis_message_type * confbridge_welcome_type(void)
get the confbridge welcome stasis message type
void conf_bridge_profile_destroy(struct bridge_profile *b_profile)
Destroy a bridge profile found by 'conf_find_bridge_profile'.
void conf_ended(struct confbridge_conference *conference)
Callback to be called when the conference has become empty.
struct ast_channel_tech * conf_record_get_tech(void)
Get ConfBridge record channel technology struct.
int async_play_sound_file(struct confbridge_conference *conference, const char *filename, struct ast_channel *initiator)
Play sound file into conference bridge asynchronously.
int play_sound_file(struct confbridge_conference *conference, const char *filename)
Play sound file into conference bridge.
struct stasis_message_type * confbridge_start_record_type(void)
get the confbridge start_record stasis message type
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.
int conf_handle_dtmf(struct ast_bridge_channel *bridge_channel, struct confbridge_user *user, struct conf_menu_entry *menu_entry, struct conf_menu *menu)
Once a DTMF sequence matches a sequence in the user's DTMF menu, this function will get called to per...
int conf_load_config(void)
load confbridge.conf file
void conf_update_user_mute(struct confbridge_user *user)
Update the actual mute status of the user and set it on the bridge.
const struct bridge_profile * conf_find_bridge_profile(struct ast_channel *chan, const char *bridge_profile_name, struct bridge_profile *result)
Find a bridge profile given a bridge profile's name and store that profile in result structure.
void conf_mute_only_active(struct confbridge_conference *conference)
Attempt to mute/play MOH to the only user in the conference if they require it.
struct ao2_container * conference_bridges
Container to hold all conference bridges in progress.
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...
int conf_set_menu_to_user(struct ast_channel *chan, struct confbridge_user *user, const char *menu_profile_name)
find a menu profile given a menu profile's name and apply the menu in DTMF hooks.
struct confbridge_conference * conf_find_bridge(const char *conference_name)
Find a confbridge by name.
struct stasis_message_type * confbridge_unmute_type(void)
get the confbridge unmute stasis message type
void conf_handle_first_join(struct confbridge_conference *conference)
Callback to execute any time we transition from zero to one active users.
void conf_moh_start(struct confbridge_user *user)
Start MOH for the conference user.
struct stasis_message_type * confbridge_join_type(void)
get the confbridge join stasis message type
void conf_bridge_profile_copy(struct bridge_profile *dst, struct bridge_profile *src)
copies a bridge profile
void conf_destroy_config(void)
destroy the information loaded from the confbridge.conf file
@ BRIDGE_OPT_REMB_BEHAVIOR_AVERAGE
@ BRIDGE_OPT_REMB_BEHAVIOR_HIGHEST_ALL
@ BRIDGE_OPT_REMB_BEHAVIOR_LOWEST
@ BRIDGE_OPT_VIDEO_SRC_FOLLOW_TALKER
@ BRIDGE_OPT_VIDEO_SRC_LAST_MARKED
@ BRIDGE_OPT_VIDEO_SRC_SFU
@ BRIDGE_OPT_BINAURAL_ACTIVE
@ BRIDGE_OPT_RECORD_CONFERENCE
@ BRIDGE_OPT_REMB_BEHAVIOR_LOWEST_ALL
@ BRIDGE_OPT_RECORD_FILE_TIMESTAMP
@ BRIDGE_OPT_ENABLE_EVENTS
@ BRIDGE_OPT_REMB_BEHAVIOR_FORCE
@ BRIDGE_OPT_RECORD_FILE_APPEND
@ BRIDGE_OPT_REMB_BEHAVIOR_AVERAGE_ALL
@ BRIDGE_OPT_REMB_BEHAVIOR_HIGHEST
@ BRIDGE_OPT_VIDEO_SRC_FIRST_MARKED
const struct user_profile * conf_find_user_profile(struct ast_channel *chan, const char *user_profile_name, struct user_profile *result)
find a user profile given a user profile's name and store that profile in result structure.
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.
struct stasis_message_type * confbridge_leave_type(void)
get the confbridge leave stasis message type
void async_play_sound_ready(struct ast_channel *chan)
Indicate the initiator of an async sound file is ready for it to play.
void conf_handle_second_active(struct confbridge_conference *conference)
Handle when a conference moves to having more than one active participant.
@ MENU_ACTION_RELEASE_SINGLE_VIDEO_SRC
@ MENU_ACTION_SET_SINGLE_VIDEO_SRC
@ MENU_ACTION_ADMIN_KICK_LAST
@ MENU_ACTION_TOGGLE_BINAURAL
@ MENU_ACTION_RESET_LISTENING
@ MENU_ACTION_INCREASE_TALKING
@ MENU_ACTION_ADMIN_TOGGLE_MUTE_PARTICIPANTS
@ MENU_ACTION_INCREASE_LISTENING
@ MENU_ACTION_DIALPLAN_EXEC
@ MENU_ACTION_DECREASE_LISTENING
@ MENU_ACTION_PLAYBACK_AND_CONTINUE
@ MENU_ACTION_ADMIN_TOGGLE_LOCK
@ MENU_ACTION_DECREASE_TALKING
@ MENU_ACTION_PARTICIPANT_COUNT
@ MENU_ACTION_TOGGLE_MUTE
@ MENU_ACTION_RESET_TALKING
int conf_announce_channel_push(struct ast_channel *ast)
Push the announcer channel into the conference.
void conf_menu_entry_destroy(struct conf_menu_entry *menu_entry)
Destroys and frees all the actions stored in a menu_entry structure.
Application convenience functions, designed to give consistent look and feel to Asterisk apps.
Support for logging to various files, console and syslog Configuration in file logger....
A set of macros to manage forward-linked lists.
#define AST_LIST_HEAD_NOLOCK(name, type)
Defines a structure to be used to hold a list of specified type (with no lock).
#define AST_LIST_ENTRY(type)
Declare a forward link structure inside a list entry.
#define AST_DECLARE_STRING_FIELDS(field_list)
Declare the fields needed in a structure.
#define AST_STRING_FIELD(name)
Declare a string field.
Message representing attended transfer.
Structure that contains information regarding a channel in a bridge.
Structure that contains features information.
Structure specific to bridge technologies capable of performing talking optimizations.
Structure that contains information about a bridge.
Structure to describe a channel "technology", ie a channel driver See for examples:
Main Channel structure associated with a channel.
Support for dynamic strings.
A ast_taskprocessor structure is a singleton by name.
const ast_string_field waitforleader
const ast_string_field invalidpin
const ast_string_field placeintoconf
const ast_string_field onlyone
const ast_string_field otherinparty
const ast_string_field unlockednow
const ast_string_field binauralon
const ast_string_field getpin
const ast_string_field errormenu
const ast_string_field participantsunmuted
const ast_string_field participantsmuted
const ast_string_field leave
const ast_string_field locked
const ast_string_field join
const ast_string_field kicked
const ast_string_field hasleft
const ast_string_field unmuted
const ast_string_field leaderhasleft
const ast_string_field lockednow
const ast_string_field hasjoin
const ast_string_field binauraloff
const ast_string_field onlyperson
const ast_string_field thereare
const ast_string_field muted
const ast_string_field begin
unsigned int remb_send_interval
unsigned int maximum_sample_rate
unsigned int remb_estimated_bitrate
char regcontext[AST_MAX_CONTEXT]
unsigned int mix_interval
unsigned int video_update_discard
unsigned int internal_sample_rate
char language[MAX_LANGUAGE]
char name[MAX_PROFILE_NAME]
struct bridge_profile_sounds * sounds
The structure that represents a conference bridge.
struct confbridge_state * state
struct ast_str * orig_rec_file
struct ast_str * record_filename
struct ast_bridge * bridge
struct ast_channel * playback_chan
unsigned int waitingusers
struct ast_taskprocessor * playback_queue
struct bridge_profile b_profile
struct confbridge_conference::@94 active_list
struct ast_channel * record_chan
struct confbridge_conference::@95 waiting_list
A conference state object to hold the various state callback functions.
The structure that represents a conference bridge user.
struct confbridge_conference * conference
struct confbridge_user::@98 list
char menu_name[MAX_PROFILE_NAME]
struct ast_channel * chan
struct ast_bridge_features features
struct bridge_profile b_profile
char name_rec_location[PATH_MAX]
struct user_profile u_profile
struct ast_bridge_tech_optimizations tech_args
unsigned int suspended_moh
struct confbridge_user::@97 post_join_list
int(* func)(struct confbridge_user *user)
struct post_join_action::@96 list
unsigned int silence_threshold
char announcement[PATH_MAX]
unsigned int talking_threshold
unsigned int announce_user_count_all_after
char name[MAX_PROFILE_NAME]
structure to hold users read from users.conf