Asterisk.org: Developer Documentation (28 Oct 2009)

Wed Oct 28 15:49:28 2009

## Asterisk developer's documentation

# ast_channel_tech Struct Reference

`#include <channel.h>`

Collaboration diagram for ast_channel_tech:

[legend]

## Data Fields

int(*const | answer )(struct ast_channel *chan)
enum ast_bridge_result(*const | bridge )(struct ast_channel *c0, struct ast_channel *c1, int flags, struct ast_frame **fo, struct ast_channel **rc, int timeoutms)
struct ast_channel *(*const | bridged_channel )(struct ast_channel *chan, struct ast_channel *bridge)
int(*const | call )(struct ast_channel *chan, char *addr, int timeout)
int | capabilities
const char *const | description
int(*const | devicestate )(void *data)
struct ast_frame *(*const | exception )(struct ast_channel *chan)
int(*const | fixup )(struct ast_channel *oldchan, struct ast_channel *newchan)
int(*const | hangup )(struct ast_channel *chan)
int(*const | indicate )(struct ast_channel *c, int condition)
int | properties
int(*const | queryoption )(struct ast_channel *chan, int option, void *data, int *datalen)
struct ast_frame *(*const | read )(struct ast_channel *chan)
struct ast_channel *(*const | requester )(const char *type, int format, void *data, int *cause)
int(*const | send_digit )(struct ast_channel *chan, char digit)
int(*const | send_html )(struct ast_channel *chan, int subclass, const char *data, int len)
int(*const | send_image )(struct ast_channel *chan, struct ast_frame *frame)
int(*const | send_text )(struct ast_channel *chan, const char *text)
int(*const | setoption )(struct ast_channel *chan, int option, void *data, int datalen)
int(*const | transfer )(struct ast_channel *chan, const char *newdest)
const char *const | type
int(*const | write )(struct ast_channel *chan, struct ast_frame *frame)
int(*const | write_video )(struct ast_channel *chan, struct ast_frame *frame)

## Detailed Description

Structure to describe a channel "technology", ie a channel driver See

- chan_iax2.c - The Inter-Asterisk exchange protocol
- chan_sip.c - The SIP channel driver
- chan_zap.c - PSTN connectivity (TDM, PRI, T1/E1, FXO, FXS)

If you develop your own channel driver, this is where you tell the PBX at registration of your driver what properties this driver supports and where different callbacks are implemented.

Definition at line 174 of file channel.h.

## Field Documentation

int(* const answer)(struct ast_channel *chan)

Answer the channel

Referenced by ast_answer().

enum ast_bridge_result(* const bridge)(struct ast_channel *c0, struct ast_channel *c1, int flags, struct ast_frame **fo, struct ast_channel **rc, int timeoutms)

Bridge two channels of the same type together

Referenced by ast_channel_bridge().

struct ast_channel*(* const bridged_channel)(struct ast_channel *chan, struct ast_channel *bridge)`[read]`

Find bridged channel

Referenced by ast_bridged_channel().

int(* const call)(struct ast_channel *chan, char *addr, int timeout)

Call a given phone number (address, etc), but don't take longer than timeout seconds to do so.

Referenced by ast_call().

int capabilities

Bitmap of formats this channel can handle

Definition at line 179 of file channel.h.

Referenced by ast_request(), and load_module().

const char* const description

Definition at line 176 of file channel.h.

Referenced by ast_channel_register(), description(), and show_channeltypes().

int(* const devicestate)(void *data)

Devicestate call back

Referenced by ast_device_state(), and show_channeltypes().

struct ast_frame*(* const exception)(struct ast_channel *chan)`[read]`

Handle an exception, reading a frame

Referenced by ast_read().

int(* const fixup)(struct ast_channel *oldchan, struct ast_channel *newchan)

Fix up a channel: If a channel is consumed, this is called. Basically update any ->owner links

Referenced by ast_do_masquerade().

int(* const hangup)(struct ast_channel *chan)

Hangup (and possibly destroy) the channel

Referenced by ast_do_masquerade(), and ast_hangup().

int(* const indicate)(struct ast_channel *c, int condition)

Indicate a particular condition (e.g. AST_CONTROL_BUSY or AST_CONTROL_RINGING or AST_CONTROL_CONGESTION

Referenced by agent_indicate(), ast_indicate(), and show_channeltypes().

int properties

Technology Properties

Definition at line 182 of file channel.h.

Referenced by schedule_delivery().

int(* const queryoption)(struct ast_channel *chan, int option, void *data, int *datalen)

Query a given option

struct ast_frame*(* const read)(struct ast_channel *chan)`[read]`

Read a frame, in standard format (see frame.h)

Referenced by ast_read(), and sound_thread().

struct ast_channel*(* const requester)(const char *type, int format, void *data, int *cause)`[read]`

Requester - to set up call data structures (pvt's)

Referenced by ast_request().

int(* const send_digit)(struct ast_channel *chan, char digit)

Send a literal DTMF digit

Referenced by agent_digit(), and do_senddigit().

int(* const send_html)(struct ast_channel *chan, int subclass, const char *data, int len)

Send HTML data

Referenced by ast_channel_sendhtml(), ast_channel_sendurl(), ast_channel_supports_html(), and ast_write().

int(* const send_image)(struct ast_channel *chan, struct ast_frame *frame)

Display or send an image

Referenced by ast_send_image(), and ast_supports_images().

int(* const send_text)(struct ast_channel *chan, const char *text)

Display or transmit text

Referenced by ast_sendtext(), ast_write(), and sendtext_exec().

int(* const setoption)(struct ast_channel *chan, int option, void *data, int datalen)

Set a given option

Referenced by ast_channel_setoption().

int(* const transfer)(struct ast_channel *chan, const char *newdest)

Blind transfer other side (see app_transfer.c and ast_transfer()

Referenced by ast_transfer(), show_channeltypes(), and transfer_exec().

const char* const type

Definition at line 175 of file channel.h.

Referenced by ast_channel_register(), ast_channel_unregister(), ast_get_channel_tech(), ast_request(), cb_events(), misdn_facility_exec(), misdn_set_opt_exec(), and show_channeltypes().

int(* const write)(struct ast_channel *chan, struct ast_frame *frame)

Write a frame, in standard format (see frame.h)

Referenced by ast_write().

int(* const write_video)(struct ast_channel *chan, struct ast_frame *frame)

Write a frame, in standard format

Referenced by ast_write(), and ast_write_video().

The documentation for this struct was generated from the following file:

- channel.h