Asterisk - The Open Source Telephony Project
21.4.1
|
Bridging technology for storing channels in a bridge for the purpose of holding, parking, queues, and other such states where a channel may need to be in a bridge but not actually communicating with anything. More...
#include "asterisk.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include "asterisk/module.h"
#include "asterisk/channel.h"
#include "asterisk/bridge.h"
#include "asterisk/bridge_technology.h"
#include "asterisk/frame.h"
#include "asterisk/musiconhold.h"
#include "asterisk/format_cache.h"
Go to the source code of this file.
Data Structures | |
struct | deferred_data |
struct | holding_channel |
Structure which contains per-channel role information. More... | |
Typedefs | |
typedef void(* | deferred_cb) (struct ast_bridge_channel *bridge_channel) |
Enumerations | |
enum | holding_roles { HOLDING_ROLE_PARTICIPANT, HOLDING_ROLE_ANNOUNCER } |
enum | idle_modes { IDLE_MODE_NONE, IDLE_MODE_MOH, IDLE_MODE_RINGING, IDLE_MODE_SILENCE, IDLE_MODE_HOLD } |
Functions | |
static void | __reg_module (void) |
static void | __unreg_module (void) |
struct ast_module * | AST_MODULE_SELF_SYM (void) |
static int | defer_action (struct ast_bridge_channel *bridge_channel, deferred_cb callback) |
static void | deferred_action (struct ast_bridge_channel *bridge_channel, const void *payload, size_t payload_size) |
static void | handle_participant_join (struct ast_bridge_channel *bridge_channel, struct ast_bridge_channel *announcer_channel) |
static int | holding_bridge_join (struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel) |
static void | holding_bridge_leave (struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel) |
static void | holding_bridge_suspend (struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel) |
static void | holding_bridge_unsuspend (struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel) |
static int | holding_bridge_write (struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel, struct ast_frame *frame) |
static int | load_module (void) |
static void | participant_entertainment_start (struct ast_bridge_channel *bridge_channel) |
static void | participant_entertainment_stop (struct ast_bridge_channel *bridge_channel) |
static void | participant_idle_mode_setup (struct ast_bridge_channel *bridge_channel) |
static void | participant_reaction_announcer_join (struct ast_bridge_channel *bridge_channel) |
static void | participant_reaction_announcer_leave (struct ast_bridge_channel *bridge_channel) |
static int | unload_module (void) |
Variables | |
static struct ast_module_info | __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_LOAD_ORDER , .description = "Holding bridge module" , .key = "This paragraph is copyright (c) 2006 by Digium, Inc. \In order for your module to load, it must return this \key via a function called \"key\". Any code which \includes this paragraph must be licensed under the GNU \General Public License version 2 or later (at your \option). In addition to Digium's general reservations \of rights, Digium expressly reserves the right to \allow other parties to license this paragraph under \different terms. Any use of Digium, Inc. trademarks or \logos (including \"Asterisk\" or \"Digium\") without \express written permission of Digium, Inc. is prohibited.\n" , .buildopt_sum = "da6642af068ee5e6490c5b1d2cc1d238" , .load = load_module, .unload = unload_module, .load_pri = AST_MODPRI_DEFAULT, .support_level = AST_MODULE_SUPPORT_CORE, } |
static const struct ast_module_info * | ast_module_info = &__mod_info |
static struct ast_bridge_technology | holding_bridge |
Bridging technology for storing channels in a bridge for the purpose of holding, parking, queues, and other such states where a channel may need to be in a bridge but not actually communicating with anything.
Definition in file bridge_holding.c.