Asterisk - The Open Source Telephony Project  21.4.1
Data Structures | Typedefs | Enumerations | Functions | Variables
bridge_holding.c File Reference

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_moduleAST_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_infoast_module_info = &__mod_info
 
static struct ast_bridge_technology holding_bridge
 

Detailed Description

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.

Author
Jonathan Rose jrose.nosp@m.@dig.nosp@m.ium.c.nosp@m.om

Definition in file bridge_holding.c.