Asterisk - The Open Source Telephony Project
18.5.0
|
Stasis bridge subclass. More...
#include "asterisk.h"
#include "asterisk/bridge.h"
#include "asterisk/bridge_after.h"
#include "asterisk/bridge_internal.h"
#include "asterisk/bridge_features.h"
#include "asterisk/stasis_app.h"
#include "asterisk/stasis_channels.h"
#include "stasis_bridge.h"
#include "control.h"
#include "command.h"
#include "app.h"
#include "asterisk/pbx.h"
Go to the source code of this file.
Data Structures | |
struct | defer_bridge_add_obj |
Functions | |
void | bridge_stasis_init (void) |
static int | bridge_stasis_moving (struct ast_bridge_channel *bridge_channel, void *hook_pvt, struct ast_bridge *src, struct ast_bridge *dst) |
struct ast_bridge * | bridge_stasis_new (uint32_t capabilities, unsigned int flags, const char *name, const char *id, enum ast_bridge_video_mode_type video_mode) |
static void | bridge_stasis_pull (struct ast_bridge *self, struct ast_bridge_channel *bridge_channel) |
static int | bridge_stasis_push (struct ast_bridge *self, struct ast_bridge_channel *bridge_channel, struct ast_bridge_channel *swap) |
static int | bridge_stasis_push_peek (struct ast_bridge *self, struct ast_bridge_channel *bridge_channel, struct ast_bridge_channel *swap) |
static void | bridge_stasis_queue_join_action (struct ast_bridge *self, struct ast_bridge_channel *bridge_channel, struct ast_bridge_channel *swap) |
static void | bridge_stasis_run_cb (struct ast_channel *chan, void *data) |
static int | defer_bridge_add (struct stasis_app_control *control, struct ast_channel *chan, void *obj) |
static void | defer_bridge_add_dtor (void *obj) |
Variables | |
static struct ast_bridge_methods | bridge_stasis_v_table |
void bridge_stasis_init | ( | void | ) |
Definition at line 327 of file stasis_bridge.c.
References ast_bridge_base_v_table, bridge_stasis_pull(), bridge_stasis_push(), bridge_stasis_push_peek(), bridge_stasis_v_table, ast_bridge_methods::name, ast_bridge_methods::pull, ast_bridge_methods::push, and ast_bridge_methods::push_peek.
Referenced by load_module().
|
static |
Definition at line 248 of file stasis_bridge.c.
References ao2_ref, app_send_end_msg(), ast_assert, bridge_stasis_v_table, ast_bridge_channel::chan, control_app(), NULL, stasis_app_channel_set_stasis_end_published(), stasis_app_control_find_by_channel(), and ast_bridge::v_table.
Referenced by bridge_stasis_pull().
struct ast_bridge* bridge_stasis_new | ( | uint32_t | capabilities, |
unsigned int | flags, | ||
const char * | name, | ||
const char * | id, | ||
enum ast_bridge_video_mode_type | video_mode | ||
) |
Definition at line 300 of file stasis_bridge.c.
References ast_bridge_set_sfu_video_mode(), ast_bridge_set_single_src_video_mode(), ast_bridge_set_talker_src_video_mode(), ast_bridge_set_video_update_discard(), AST_BRIDGE_VIDEO_MODE_SFU, AST_BRIDGE_VIDEO_MODE_SINGLE_SRC, defer_bridge_add_obj::bridge, bridge_alloc(), bridge_base_init(), bridge_register(), bridge_stasis_v_table, and NULL.
Referenced by bridge_create_common().
|
static |
Definition at line 284 of file stasis_bridge.c.
References ast_bridge_base_v_table, AST_BRIDGE_CAPABILITY_HOLDING, ast_bridge_channel_update_accountcodes(), AST_BRIDGE_FLAG_SMART, ast_bridge_move_hook(), ast_channel_clear_bridge_roles(), ast_test_flag, bridge_stasis_moving(), ast_bridge_channel::chan, ast_bridge_channel::features, NULL, ast_bridge_methods::pull, and STASIS_BRIDGE_MIXING_CAPABILITIES.
Referenced by bridge_stasis_init().
|
static |
Definition at line 192 of file stasis_bridge.c.
References ao2_cleanup, ast_bridge_base_v_table, AST_BRIDGE_CAPABILITY_HOLDING, ast_bridge_channel_update_accountcodes(), ast_bridge_channel_update_linkedids(), AST_BRIDGE_FLAG_SMART, ast_bridge_set_after_callback(), ast_channel_add_bridge_role(), ast_channel_has_role(), ast_channel_name(), ast_channel_set_bridge_role_option(), ast_debug, ast_log, ast_test_flag, bridge_stasis_queue_join_action(), bridge_stasis_run_cb(), ast_bridge_channel::chan, LOG_ERROR, NULL, ast_bridge_methods::push, stasis_app_channel_is_internal(), stasis_app_control_find_by_channel(), and STASIS_BRIDGE_MIXING_CAPABILITIES.
Referenced by bridge_stasis_init().
|
static |
Definition at line 142 of file stasis_bridge.c.
References ao2_cleanup, ao2_ref, app_set_replace_channel_app(), app_set_replace_channel_snapshot(), ast_bridge_base_v_table, ast_channel_lock, ast_channel_name(), ast_channel_snapshot_get_latest(), ast_channel_uniqueid(), ast_channel_unlock, ast_debug, ast_log, ast_bridge_channel::chan, control_app(), done, LOG_ERROR, ast_bridge_methods::push_peek, stasis_app_control_find_by_channel(), and stasis_app_name().
Referenced by bridge_stasis_init().
|
static |
Definition at line 105 of file stasis_bridge.c.
References __ao2_cleanup(), AO2_ALLOC_OPT_LOCK_NOLOCK, ao2_alloc_options, ao2_ref, ast_channel_lock, ast_channel_ref, ast_channel_unlock, defer_bridge_add_obj::bridge, ast_bridge_channel::chan, command_prestart_queue_command(), defer_bridge_add(), defer_bridge_add_dtor(), and defer_bridge_add_obj::swap.
Referenced by bridge_stasis_push().
|
static |
Definition at line 49 of file stasis_bridge.c.
References app_get_replace_channel_app(), app_name(), ast_channel_name(), ast_check_hangup_locked(), ast_free, ast_log, LOG_ERROR, LOG_WARNING, NULL, pbx_exec(), pbx_findapp(), and RAII_VAR.
Referenced by bridge_stasis_push().
|
static |
Definition at line 96 of file stasis_bridge.c.
References defer_bridge_add_obj::bridge, control_swap_channel_in_bridge(), and defer_bridge_add_obj::swap.
Referenced by bridge_stasis_queue_join_action().
|
static |
Definition at line 88 of file stasis_bridge.c.
References ao2_cleanup, ast_channel_cleanup, defer_bridge_add_obj::bridge, and defer_bridge_add_obj::swap.
Referenced by bridge_stasis_queue_join_action().
|
static |
Definition at line 47 of file stasis_bridge.c.
Referenced by bridge_stasis_init(), bridge_stasis_moving(), and bridge_stasis_new().