Asterisk - The Open Source Telephony Project GIT-master-f36a736
|
Structure to describe a channel "technology", ie a channel driver See for examples: More...
#include <channel.h>
Data Fields | |
int(*const | answer )(struct ast_channel *chan) |
Answer the channel. More... | |
int(*const | answer_with_stream_topology )(struct ast_channel *chan, struct ast_stream_topology *topology) |
Answer the channel with topology. More... | |
int(*const | call )(struct ast_channel *chan, const char *addr, int timeout) |
Make a call. More... | |
struct ast_format_cap * | capabilities |
int(* | cc_callback )(struct ast_channel *inbound, const char *dest, ast_cc_callback_fn callback) |
Call a function with cc parameters as a function parameter. More... | |
const char *const | description |
int(*const | devicestate )(const char *device_number) |
enum ast_bridge_result(*const | early_bridge )(struct ast_channel *c0, struct ast_channel *c1) |
Bridge two channels of the same type together (early) More... | |
struct ast_frame *(*const | exception )(struct ast_channel *chan) |
Handle an exception, reading a frame. More... | |
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. More... | |
int(* | func_channel_read )(struct ast_channel *chan, const char *function, char *data, char *buf, size_t len) |
Provide additional read items for CHANNEL() dialplan function. More... | |
int(* | func_channel_write )(struct ast_channel *chan, const char *function, char *data, const char *value) |
Provide additional write items for CHANNEL() dialplan function. More... | |
const char *(* | get_pvt_uniqueid )(struct ast_channel *chan) |
Get the unique identifier for the PVT, i.e. SIP call-ID for SIP. More... | |
int(*const | hangup )(struct ast_channel *chan) |
Hangup (and possibly destroy) the channel. More... | |
int(*const | indicate )(struct ast_channel *c, int condition, const void *data, size_t datalen) |
Indicate a particular condition (e.g. AST_CONTROL_BUSY or AST_CONTROL_RINGING or AST_CONTROL_CONGESTION. More... | |
int(* | pre_call )(struct ast_channel *chan, const char *sub_args) |
Execute a Gosub call on the channel in a technology specific way before a call is placed. More... | |
int(*const | presencestate )(const char *presence_provider, char **subtype, char **message) |
int | properties |
int(*const | queryoption )(struct ast_channel *chan, int option, void *data, int *datalen) |
Query a given option. Called with chan locked. More... | |
struct ast_frame *(*const | read )(struct ast_channel *chan) |
Read a frame (or chain of frames from the same stream), in standard format (see frame.h) More... | |
struct ast_frame *(*const | read_stream )(struct ast_channel *chan) |
Read a frame (or chain of frames from the same stream), in standard format (see frame.h), with stream num. More... | |
struct ast_channel *(*const | requester )(const char *type, struct ast_format_cap *cap, const struct ast_assigned_ids *assignedids, const struct ast_channel *requestor, const char *addr, int *cause) |
Requester - to set up call data structures (pvt's) More... | |
struct ast_channel *(*const | requester_with_stream_topology )(const char *type, struct ast_stream_topology *topology, const struct ast_assigned_ids *assignedids, const struct ast_channel *requestor, const char *addr, int *cause) |
Requester - to set up call data structures (pvt's) with stream topology. More... | |
int(*const | send_digit_begin )(struct ast_channel *chan, char digit) |
Start sending a literal DTMF digit. More... | |
int(*const | send_digit_end )(struct ast_channel *chan, char digit, unsigned int duration) |
Stop sending a literal DTMF digit. More... | |
int(*const | send_html )(struct ast_channel *chan, int subclass, const char *data, int len) |
Send HTML data. More... | |
int(*const | send_image )(struct ast_channel *chan, struct ast_frame *frame) |
Display or send an image. More... | |
int(*const | send_text )(struct ast_channel *chan, const char *text) |
Display or transmit text. More... | |
int(*const | send_text_data )(struct ast_channel *chan, struct ast_msg_data *data) |
Display or transmit text with data. More... | |
int(*const | setoption )(struct ast_channel *chan, int option, void *data, int datalen) |
Set a given option. Called with chan locked. More... | |
int(*const | transfer )(struct ast_channel *chan, const char *newdest) |
Blind transfer other side (see app_transfer.c and ast_transfer() More... | |
const char *const | type |
int(*const | write )(struct ast_channel *chan, struct ast_frame *frame) |
Write a frame, in standard format (see frame.h) More... | |
int(*const | write_stream )(struct ast_channel *chan, int stream_num, struct ast_frame *frame) |
Write a frame on a specific stream, in standard format (see frame.h) More... | |
int(*const | write_text )(struct ast_channel *chan, struct ast_frame *frame) |
Write a text frame, in standard format. More... | |
int(*const | write_video )(struct ast_channel *chan, struct ast_frame *frame) |
Write a frame, in standard format. More... | |
Structure to describe a channel "technology", ie a channel driver See for examples:
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.
int(*const answer) (struct ast_channel *chan) |
Answer the channel.
Definition at line 727 of file channel.h.
Referenced by ast_raw_answer_with_stream_topology().
int(*const answer_with_stream_topology) (struct ast_channel *chan, struct ast_stream_topology *topology) |
Answer the channel with topology.
chan | The channel to answer |
topology | The topology to use, probably the peer's. |
Definition at line 740 of file channel.h.
Referenced by ast_raw_answer_with_stream_topology().
int(*const call) (struct ast_channel *chan, const char *addr, int timeout) |
Make a call.
chan | which channel to make the call on |
addr | destination of the call |
timeout | time to wait on for connect (Doesn't seem to be used.) |
0 | on success |
-1 | on failure |
Definition at line 721 of file channel.h.
Referenced by ast_call().
struct ast_format_cap* capabilities |
format capabilities this channel can handle
Definition at line 652 of file channel.h.
Referenced by __unload_module(), ast_local_init(), cleanup_capabilities(), console_request(), load_module(), local_request_with_stream_topology(), local_shutdown(), mbl_new(), register_channel_tech(), unload_module(), and unregister_channel_tech().
int(* cc_callback) (struct ast_channel *inbound, const char *dest, ast_cc_callback_fn callback) |
Call a function with cc parameters as a function parameter.
This is a highly specialized callback that is not likely to be needed in many channel drivers. When dealing with a busy channel, for instance, most channel drivers will successfully return a channel to the requester. Once called, the channel can then queue a busy frame when it receives an appropriate message from the far end. In such a case, the channel driver has the opportunity to also queue a CC frame. The parameters for the CC channel can be retrieved from the channel structure.
For other channel drivers, notably those that deal with "dumb" phones, the channel driver will not return a channel when one is requested. In such a scenario, there is never an opportunity for the channel driver to queue a CC frame since the channel is never called. Furthermore, it is not possible to retrieve the CC configuration parameters for the desired channel because no channel is ever allocated or returned to the requester. In such a case, call completion may still be a viable option. What we do is pass the same string that the requester used originally to request the channel to the channel driver. The channel driver can then find any potential channels/devices that match the input and return call the designated callback with the device's call completion parameters as a parameter.
Definition at line 847 of file channel.h.
Referenced by ast_cc_callback().
const char* const description |
Definition at line 650 of file channel.h.
Referenced by ast_channel_register(), ast_var_channel_types_table(), Api::load(), ResourceApi::load(), Model::load(), Parameter::load(), Property::load(), load_module(), and register_channel_tech().
int(*const devicestate) (const char *device_number) |
Devicestate call back
Definition at line 695 of file channel.h.
Referenced by _ast_device_state(), and ast_var_channel_types_table().
enum ast_bridge_result(*const early_bridge) (struct ast_channel *c0, struct ast_channel *c1) |
Bridge two channels of the same type together (early)
Definition at line 782 of file channel.h.
Referenced by ast_channel_early_bridge().
struct ast_frame *(*const exception) (struct ast_channel *chan) |
Handle an exception, reading a frame.
Definition at line 782 of file channel.h.
Referenced by __ast_read().
int(*const fixup) (struct ast_channel *oldchan, struct ast_channel *newchan) |
int(* func_channel_read) (struct ast_channel *chan, const char *function, char *data, char *buf, size_t len) |
int(* func_channel_write) (struct ast_channel *chan, const char *function, char *data, const char *value) |
const char *(* get_pvt_uniqueid) (struct ast_channel *chan) |
int(*const hangup) (struct ast_channel *chan) |
Hangup (and possibly destroy) the channel.
Definition at line 724 of file channel.h.
Referenced by ast_hangup().
int(*const indicate) (struct ast_channel *c, int condition, const void *data, size_t datalen) |
Indicate a particular condition (e.g. AST_CONTROL_BUSY or AST_CONTROL_RINGING or AST_CONTROL_CONGESTION.
Definition at line 791 of file channel.h.
Referenced by ast_channel_request_stream_topology_change(), ast_channel_stream_topology_changed(), ast_var_channel_types_table(), and indicate_data_internal().
int(* pre_call) (struct ast_channel *chan, const char *sub_args) |
Execute a Gosub call on the channel in a technology specific way before a call is placed.
chan | Channel to execute Gosub in a tech specific way. |
sub_args | Gosub application parameter string. |
0 | on success. |
-1 | on error. |
Definition at line 861 of file channel.h.
Referenced by ast_pre_call().
int(*const presencestate) (const char *presence_provider, char **subtype, char **message) |
Presencestate callback
Definition at line 696 of file channel.h.
Referenced by ast_presence_state_helper().
int properties |
Technology Properties
Definition at line 654 of file channel.h.
Referenced by ast_jb_do_usecheck(), channel_snapshot_base_create(), create_msg_q_chan(), and Model::has_properties().
int(*const queryoption) (struct ast_channel *chan, int option, void *data, int *datalen) |
Query a given option. Called with chan locked.
Definition at line 800 of file channel.h.
Referenced by ast_channel_queryoption().
struct ast_frame *(*const read) (struct ast_channel *chan) |
Read a frame (or chain of frames from the same stream), in standard format (see frame.h)
chan | channel to read frames from |
non-NULL | on success |
NULL | on failure |
Definition at line 740 of file channel.h.
Referenced by __ast_read(), and AST_TEST_DEFINE().
struct ast_frame *(*const read_stream) (struct ast_channel *chan) |
Read a frame (or chain of frames from the same stream), in standard format (see frame.h), with stream num.
chan | channel to read frames from |
non-NULL | on success |
NULL | on failure |
Definition at line 740 of file channel.h.
Referenced by __ast_read(), ast_channel_is_multistream(), AST_TEST_DEFINE(), make_channel(), and read_test().
struct ast_channel *(*const requester) (const char *type, struct ast_format_cap *cap, const struct ast_assigned_ids *assignedids, const struct ast_channel *requestor, const char *addr, int *cause) |
Requester - to set up call data structures (pvt's)
type | type of channel to request |
cap | Format capabilities for requested channel |
assignedid | Unique ID string to assign to channel |
requestor | channel asking for data |
addr | destination of the call |
cause | Cause of failure |
Request a channel of a given type, with addr as optional information used by the low level module
NULL | failure |
non-NULL | channel on success |
struct ast_channel *(*const requester_with_stream_topology) (const char *type, struct ast_stream_topology *topology, const struct ast_assigned_ids *assignedids, const struct ast_channel *requestor, const char *addr, int *cause) |
Requester - to set up call data structures (pvt's) with stream topology.
type | type of channel to request |
topology | Stream topology for requested channel |
assignedid | Unique ID string to assign to channel |
requestor | channel asking for data |
addr | destination of the call |
cause | Cause of failure |
Request a channel of a given type, with addr as optional information used by the low level module
NULL | failure |
non-NULL | channel on success |
int(*const send_digit_begin) (struct ast_channel *chan, char digit) |
int(*const send_digit_end) (struct ast_channel *chan, char digit, unsigned int duration) |
Stop sending a literal DTMF digit.
Definition at line 710 of file channel.h.
Referenced by ast_senddigit_end().
int(*const send_html) (struct ast_channel *chan, int subclass, const char *data, int len) |
Send HTML data.
Definition at line 782 of file channel.h.
Referenced by ast_channel_sendhtml(), and ast_write_stream().
int(*const send_image) (struct ast_channel *chan, struct ast_frame *frame) |
int(*const send_text) (struct ast_channel *chan, const char *text) |
Display or transmit text.
Definition at line 776 of file channel.h.
Referenced by ast_sendtext_data(), and ast_write_stream().
int(*const send_text_data) (struct ast_channel *chan, struct ast_msg_data *data) |
Display or transmit text with data.
Definition at line 864 of file channel.h.
Referenced by ast_sendtext_data().
int(*const setoption) (struct ast_channel *chan, int option, void *data, int datalen) |
Set a given option. Called with chan locked.
Definition at line 797 of file channel.h.
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()
Definition at line 803 of file channel.h.
Referenced by ast_transfer_protocol(), and ast_var_channel_types_table().
const char* const type |
Definition at line 649 of file channel.h.
Referenced by ast_ari_channels_rtpstatistics(), ast_channel_register(), ast_unreal_new_channels(), ast_var_channel_types_table(), dahdi_setoption(), Property::load(), load_module(), native_bridge_is_capable(), register_channel_tech(), and try_calling().
int(*const write) (struct ast_channel *chan, struct ast_frame *frame) |
Write a frame, in standard format (see frame.h)
Definition at line 770 of file channel.h.
Referenced by ast_write_stream(), tech_write(), and MultiOrderedConfigParser::write().
int(*const write_stream) (struct ast_channel *chan, int stream_num, struct ast_frame *frame) |
Write a frame on a specific stream, in standard format (see frame.h)
Definition at line 773 of file channel.h.
Referenced by ast_channel_is_multistream(), ast_write_stream(), and tech_write().
int(*const write_text) (struct ast_channel *chan, struct ast_frame *frame) |
Write a text frame, in standard format.
Definition at line 809 of file channel.h.
Referenced by ast_sendtext_data(), and ast_write_stream().
int(*const write_video) (struct ast_channel *chan, struct ast_frame *frame) |
Write a frame, in standard format.
Definition at line 806 of file channel.h.
Referenced by ast_write_stream().