Asterisk - The Open Source Telephony Project  21.4.1
Enumerations | Functions | Variables
chan_rtp.c File Reference

RTP (Multicast and Unicast) Media Channel. More...

#include "asterisk.h"
#include "asterisk/channel.h"
#include "asterisk/module.h"
#include "asterisk/pbx.h"
#include "asterisk/acl.h"
#include "asterisk/app.h"
#include "asterisk/rtp_engine.h"
#include "asterisk/causes.h"
#include "asterisk/format_cache.h"
#include "asterisk/multicast_rtp.h"
#include "asterisk/dns_core.h"

Go to the source code of this file.

Enumerations

enum  { OPT_RTP_CODEC = (1 << 0), OPT_RTP_ENGINE = (1 << 1), OPT_RTP_GLUE = (1 << 2) }
 
enum  { OPT_ARG_RTP_CODEC, OPT_ARG_RTP_ENGINE, OPT_ARG_ARRAY_SIZE }
 

Functions

static void __reg_module (void)
 
static void __unreg_module (void)
 
struct ast_moduleAST_MODULE_SELF_SYM (void)
 
static void chan_rtp_get_codec (struct ast_channel *chan, struct ast_format_cap *result)
 Function called by RTP engine to get peer capabilities.
 
static enum ast_rtp_glue_result chan_rtp_get_rtp_peer (struct ast_channel *chan, struct ast_rtp_instance **instance)
 Function called by RTP engine to get local audio RTP peer.
 
static enum ast_rtp_glue_result chan_rtp_get_vrtp_peer (struct ast_channel *chan, struct ast_rtp_instance **instance)
 Function called by RTP engine to get local audio RTP peer.
 
static int chan_rtp_set_rtp_peer (struct ast_channel *chan, struct ast_rtp_instance *rtp, struct ast_rtp_instance *vrtp, struct ast_rtp_instance *tpeer, const struct ast_format_cap *cap, int nat_active)
 Function called by RTP engine to change where the remote party should send media. More...
 
static struct ast_formatderive_format_from_cap (struct ast_format_cap *cap)
 
static int load_module (void)
 Function called when our module is loaded.
 
static struct ast_channelmulticast_rtp_request (const char *type, struct ast_format_cap *cap, const struct ast_assigned_ids *assignedids, const struct ast_channel *requestor, const char *data, int *cause)
 Function called when we should prepare to call the multicast destination.
 
static int rtp_call (struct ast_channel *ast, const char *dest, int timeout)
 Function called when we should actually call the destination.
 
static int rtp_hangup (struct ast_channel *ast)
 Function called when we should hang the channel up.
 
static struct ast_framertp_read (struct ast_channel *ast)
 Function called when we should read a frame from the channel.
 
static int rtp_write (struct ast_channel *ast, struct ast_frame *f)
 Function called when we should write a frame to the channel.
 
static struct ast_channelunicast_rtp_request (const char *type, struct ast_format_cap *cap, const struct ast_assigned_ids *assignedids, const struct ast_channel *requestor, const char *data, int *cause)
 Function called when we should prepare to call the unicast destination.
 
static int unload_module (void)
 Function called when our module is unloaded.
 

Variables

static struct ast_module_info __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_LOAD_ORDER , .description = "RTP Media Channel" , .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" , .support_level = AST_MODULE_SUPPORT_CORE, .load = load_module, .unload = unload_module, .load_pri = AST_MODPRI_CHANNEL_DRIVER, .requires = "res_rtp_multicast", }
 
static const struct ast_module_infoast_module_info = &__mod_info
 
static const struct ast_datastore_info chan_rtp_datastore_info
 
static struct ast_channel_tech multicast_rtp_tech
 
static struct ast_rtp_glue unicast_rtp_glue
 Local glue for interacting with the RTP engine core.
 
static const struct ast_app_option unicast_rtp_options [128] = { [ 'c' ] = { .flag = OPT_RTP_CODEC , .arg_index = OPT_ARG_RTP_CODEC + 1 }, [ 'e' ] = { .flag = OPT_RTP_ENGINE , .arg_index = OPT_ARG_RTP_ENGINE + 1 }, [ 'g' ] = { .flag = OPT_RTP_GLUE }, }
 
static struct ast_channel_tech unicast_rtp_tech
 

Detailed Description

RTP (Multicast and Unicast) Media Channel.

Author
Joshua Colp jcolp.nosp@m.@dig.nosp@m.ium.c.nosp@m.om
Andreas 'MacBrody' Brodmann andre.nosp@m.as.b.nosp@m.rodma.nosp@m.nn@g.nosp@m.mail..nosp@m.com

Definition in file chan_rtp.c.

Function Documentation

static int chan_rtp_set_rtp_peer ( struct ast_channel chan,
struct ast_rtp_instance rtp,
struct ast_rtp_instance vrtp,
struct ast_rtp_instance tpeer,
const struct ast_format_cap cap,
int  nat_active 
)
static

Function called by RTP engine to change where the remote party should send media.

chan_rtp is not able to actually update the peer, so this function has no effect.

Definition at line 432 of file chan_rtp.c.

433 {
434  return -1;
435 }

Variable Documentation

const struct ast_datastore_info chan_rtp_datastore_info
static
Initial value:
= {
.type = "CHAN_RTP_GLUE",
}

Definition at line 272 of file chan_rtp.c.