#include <stdio.h>
#include <string.h>
#include <sys/signal.h>
#include <errno.h>
#include <stdlib.h>
#include <stdint.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <zaptel.h>
#include <math.h>
#include <tonezone.h>
#include <ctype.h>
#include "asterisk.h"
#include "asterisk/lock.h"
#include "asterisk/channel.h"
#include "asterisk/config.h"
#include "asterisk/logger.h"
#include "asterisk/module.h"
#include "asterisk/pbx.h"
#include "asterisk/options.h"
#include "asterisk/file.h"
#include "asterisk/ulaw.h"
#include "asterisk/alaw.h"
#include "asterisk/callerid.h"
#include "asterisk/adsi.h"
#include "asterisk/cli.h"
#include "asterisk/cdr.h"
#include "asterisk/features.h"
#include "asterisk/musiconhold.h"
#include "asterisk/say.h"
#include "asterisk/tdd.h"
#include "asterisk/app.h"
#include "asterisk/dsp.h"
#include "asterisk/astdb.h"
#include "asterisk/manager.h"
#include "asterisk/causes.h"
#include "asterisk/term.h"
#include "asterisk/utils.h"
#include "asterisk/transcap.h"
Include dependency graph for chan_zap.c:

Go to the source code of this file.
Data Structures | |
| struct | distRingData |
| struct | ringContextData |
| struct | zt_chan_conf |
| Channel configuration from zapata.conf . This struct is used for parsing the [channels] section of zapata.conf. Generally there is a field here for every possible configuration item. More... | |
| struct | zt_distRings |
| struct | zt_pri_conf |
| The PRI part of the channel configuration. Separated as it is is applied to the span rather than to the channel. More... | |
| struct | zt_pvt |
| struct | zt_subchannel |
Defines | |
| #define | ASCII_BYTES_PER_CHAR 80 |
| #define | AST_LAW(p) (((p)->law == ZT_LAW_ALAW) ? AST_FORMAT_ALAW : AST_FORMAT_ULAW) |
| #define | CALLWAITING_REPEAT_SAMPLES ( (10000 * 8) / READ_SIZE) |
| #define | CALLWAITING_SILENT_SAMPLES ( (300 * 8) / READ_SIZE) |
| #define | CANBUSYDETECT(p) (ISTRUNK(p) || (p->sig & (SIG_EM | SIG_EM_E1 | SIG_SF)) /* || (p->sig & __ZT_SIG_FXO) */) |
| #define | CANPROGRESSDETECT(p) (ISTRUNK(p) || (p->sig & (SIG_EM | SIG_EM_E1 | SIG_SF)) /* || (p->sig & __ZT_SIG_FXO) */) |
| #define | CHAN_PSEUDO -2 |
| #define | CHANNEL_PSEUDO -12 |
| #define | CIDCW_EXPIRE_SAMPLES ( (500 * 8) / READ_SIZE) |
| #define | CONF_USER_REAL (1 << 0) |
| #define | CONF_USER_THIRDCALL (1 << 1) |
| #define | DCHAN_AVAILABLE (DCHAN_PROVISIONED | DCHAN_NOTINALARM | DCHAN_UP) |
| #define | DCHAN_NOTINALARM (1 << 1) |
| #define | DCHAN_PROVISIONED (1 << 0) |
| #define | DCHAN_UP (1 << 2) |
| #define | DEFAULT_CIDRINGS 1 |
| Typically, how many rings before we should send Caller*ID. | |
| #define | DEFAULT_RINGT ( (8000 * 8) / READ_SIZE) |
| #define | END_SILENCE_LEN 400 |
| #define | FORMAT "%-40.40s %-10.10s %-10d %-10d %-10d\n" |
| #define | FORMAT "%7s %-10.10s %-15.15s %-10.10s %-20.20s\n" |
| #define | FORMAT2 "%-40.40s %-10.10s %-10.10s %-10.10s %-10.10s\n" |
| #define | FORMAT2 "%7s %-10.10s %-15.15s %-10.10s %-20.20s\n" |
| #define | GET_CHANNEL(p) ((p)->channel) |
| #define | HANGUP 1 |
| #define | HEADER_LEN ((HEADER_MS + TRAILER_MS) * 8) |
| #define | HEADER_MS 50 |
| #define | ISTRUNK(p) |
| #define | MASK_AVAIL (1 << 0) |
| #define | MASK_INUSE (1 << 1) |
| #define | MAX_CHANNELS 672 |
| #define | MAX_SLAVES 4 |
| #define | MIN_MS_SINCE_FLASH ( (2000) ) |
| #define | NEED_MFDETECT(p) (((p)->sig == SIG_FEATDMF) || ((p)->sig == SIG_FEATDMF_TA) || ((p)->sig == SIG_E911) || ((p)->sig == SIG_FEATB)) |
| Signaling types that need to use MF detection should be placed in this macro. | |
| #define | NUM_CADENCE_MAX 25 |
| #define | NUM_DCHANS 4 |
| #define | NUM_SPANS 32 |
| #define | POLARITY_IDLE 0 |
| #define | POLARITY_REV 1 |
| #define | READ_SIZE 160 |
| #define | sig2str zap_sig2str |
| #define | SIG_E911 (0x1000000 | ZT_SIG_EM) |
| #define | SIG_EM ZT_SIG_EM |
| #define | SIG_EM_E1 ZT_SIG_EM_E1 |
| #define | SIG_EMWINK (0x0100000 | ZT_SIG_EM) |
| #define | SIG_FEATB (0x0800000 | ZT_SIG_EM) |
| #define | SIG_FEATD (0x0200000 | ZT_SIG_EM) |
| #define | SIG_FEATDMF (0x0400000 | ZT_SIG_EM) |
| #define | SIG_FEATDMF_TA (0x2000000 | ZT_SIG_EM) |
| #define | SIG_FXOGS ZT_SIG_FXOGS |
| #define | SIG_FXOKS ZT_SIG_FXOKS |
| #define | SIG_FXOLS ZT_SIG_FXOLS |
| #define | SIG_FXSGS ZT_SIG_FXSGS |
| #define | SIG_FXSKS ZT_SIG_FXSKS |
| #define | SIG_FXSLS ZT_SIG_FXSLS |
| #define | SIG_GR303FXOKS (0x0100000 | ZT_SIG_FXOKS) |
| #define | SIG_GR303FXSKS (0x0100000 | ZT_SIG_FXSKS) |
| #define | SIG_PRI ZT_SIG_CLEAR |
| #define | SIG_R2 ZT_SIG_CAS |
| #define | SIG_SF ZT_SIG_SF |
| #define | SIG_SF_FEATB (0x0800000 | ZT_SIG_SF) |
| #define | SIG_SF_FEATD (0x0200000 | ZT_SIG_SF) |
| #define | SIG_SF_FEATDMF (0x0400000 | ZT_SIG_SF) |
| #define | SIG_SFWINK (0x0100000 | ZT_SIG_SF) |
| #define | SUB_CALLWAIT 1 |
| #define | SUB_REAL 0 |
| #define | SUB_THREEWAY 2 |
| #define | TRAILER_MS 5 |
| #define | TRANSFER 0 |
| #define | ZT_EVENT_DTMFDOWN 0 |
| #define | ZT_EVENT_DTMFUP 0 |
Functions | |
| static int | __unload_module (void) |
| static struct ast_frame * | __zt_exception (struct ast_channel *ast) |
| static int | action_transfer (struct mansession *s, struct message *m) |
| static int | action_transferhangup (struct mansession *s, struct message *m) |
| static int | action_zapdialoffhook (struct mansession *s, struct message *m) |
| static int | action_zapdndoff (struct mansession *s, struct message *m) |
| static int | action_zapdndon (struct mansession *s, struct message *m) |
| static int | action_zapshowchannels (struct mansession *s, struct message *m) |
| static char * | alarm2str (int alarm) |
| static int | alloc_sub (struct zt_pvt *p, int x) |
| AST_MUTEX_DEFINE_STATIC (monlock) | |
| Protect the monitoring thread, so only one process can kill or start it, and not when it's doing something critical. | |
| AST_MUTEX_DEFINE_STATIC (iflock) | |
| Protect the interface list (of zt_pvt's). | |
| AST_MUTEX_DEFINE_STATIC (usecnt_lock) | |
| static int | attempt_transfer (struct zt_pvt *p) |
| static int | available (struct zt_pvt *p, int channelmatch, int groupmatch, int *busy, int *channelmatched, int *groupmatched) |
| static int | bump_gains (struct zt_pvt *p) |
| static struct zt_pvt * | chandup (struct zt_pvt *src) |
| static int | check_for_conference (struct zt_pvt *p) |
| static int | conf_add (struct zt_pvt *p, struct zt_subchannel *c, int index, int slavechannel) |
| static int | conf_del (struct zt_pvt *p, struct zt_subchannel *c, int index) |
| char * | description () |
| Provides a description of the module. | |
| static int | destroy_channel (struct zt_pvt *prev, struct zt_pvt *cur, int now) |
| static void | destroy_zt_pvt (struct zt_pvt **pvt) |
| static void | disable_dtmf_detect (struct zt_pvt *p) |
| static void * | do_monitor (void *data) |
| static void | enable_dtmf_detect (struct zt_pvt *p) |
| static char * | event2str (int event) |
| static void | fill_rxgain (struct zt_gains *g, float gain, int law) |
| static void | fill_txgain (struct zt_gains *g, float gain, int law) |
| static struct zt_pvt * | find_channel (int channel) |
| static int | get_alarms (struct zt_pvt *p) |
| static int | handle_init_event (struct zt_pvt *i, int event) |
| static int | handle_zap_show_cadences (int fd, int argc, char *argv[]) |
| static int | has_voicemail (struct zt_pvt *p) |
| static int | isourconf (struct zt_pvt *p, struct zt_subchannel *c) |
| static int | isslavenative (struct zt_pvt *p, struct zt_pvt **out) |
| char * | key () |
| Returns the ASTERISK_GPL_KEY. | |
| int | load_module (void) |
| Initialize the module. | |
| static struct zt_pvt * | mkintf (int channel, struct zt_chan_conf chan_conf, struct zt_pri *pri, int reloading) |
| static int | my_getsigstr (struct ast_channel *chan, char *str, const char *term, int ms) |
| static int | my_zt_write (struct zt_pvt *p, unsigned char *buf, int len, int index, int linear) |
| int | reload (void) |
| Reload stuff. | |
| static int | reset_conf (struct zt_pvt *p) |
| static int | restart_monitor (void) |
| static int | restore_conference (struct zt_pvt *p) |
| static int | restore_gains (struct zt_pvt *p) |
| static int | save_conference (struct zt_pvt *p) |
| static int | send_callerid (struct zt_pvt *p) |
| int | send_cwcidspill (struct zt_pvt *p) |
| int | set_actual_gain (int fd, int chan, float rxgain, float txgain, int law) |
| int | set_actual_rxgain (int fd, int chan, float gain, int law) |
| int | set_actual_txgain (int fd, int chan, float gain, int law) |
| static int | setup_zap (int reload) |
| static void * | ss_thread (void *data) |
| static void | swap_subs (struct zt_pvt *p, int a, int b) |
| static int | unalloc_sub (struct zt_pvt *p, int x) |
| int | unload_module () |
| Cleanup all module structures, sockets, etc. | |
| static int | update_conf (struct zt_pvt *p) |
| int | usecount () |
| Provides a usecount. | |
| static void | wakeup_sub (struct zt_pvt *p, int a, void *pri) |
| static int | zap_destroy_channel (int fd, int argc, char **argv) |
| static int | zap_fake_event (struct zt_pvt *p, int mode) |
| static void | zap_queue_frame (struct zt_pvt *p, struct ast_frame *f, void *pri) |
| static int | zap_show_channel (int fd, int argc, char **argv) |
| static int | zap_show_channels (int fd, int argc, char **argv) |
| static int | zap_show_status (int fd, int argc, char *argv[]) |
| static char * | zap_sig2str (int sig) |
| static int | zt_answer (struct ast_channel *ast) |
| static enum ast_bridge_result | zt_bridge (struct ast_channel *c0, struct ast_channel *c1, int flags, struct ast_frame **fo, struct ast_channel **rc, int timeoutms) |
| static int | zt_call (struct ast_channel *ast, char *rdest, int timeout) |
| static int | zt_callwait (struct ast_channel *ast) |
| zt_chan_conf | zt_chan_conf_default (void) |
| static void | zt_close (int fd) |
| static int | zt_confmute (struct zt_pvt *p, int muted) |
| static int | zt_digit (struct ast_channel *ast, char digit) |
| static void | zt_disable_ec (struct zt_pvt *p) |
| static void | zt_enable_ec (struct zt_pvt *p) |
| ast_frame * | zt_exception (struct ast_channel *ast) |
| static int | zt_fixup (struct ast_channel *oldchan, struct ast_channel *newchan) |
| static int | zt_get_event (int fd) |
| Avoid the silly zt_getevent which ignores a bunch of events. | |
| static int | zt_get_index (struct ast_channel *ast, struct zt_pvt *p, int nullok) |
| static void | zt_handle_dtmfup (struct ast_channel *ast, int index, struct ast_frame **dest) |
| static struct ast_frame * | zt_handle_event (struct ast_channel *ast) |
| static int | zt_hangup (struct ast_channel *ast) |
| static int | zt_indicate (struct ast_channel *chan, int condition) |
| static void | zt_link (struct zt_pvt *slave, struct zt_pvt *master) |
| static struct ast_channel * | zt_new (struct zt_pvt *, int, int, int, int, int) |
| static int | zt_open (char *fn) |
| ast_frame * | zt_read (struct ast_channel *ast) |
| static struct ast_channel * | zt_request (const char *type, int format, void *data, int *cause) |
| static int | zt_ring_phone (struct zt_pvt *p) |
| static int | zt_sendtext (struct ast_channel *c, const char *text) |
| static int | zt_set_hook (int fd, int hs) |
| int | zt_setlaw (int zfd, int law) |
| int | zt_setlinear (int zfd, int linear) |
| static int | zt_setoption (struct ast_channel *chan, int option, void *data, int datalen) |
| static void | zt_train_ec (struct zt_pvt *p) |
| static void | zt_unlink (struct zt_pvt *slave, struct zt_pvt *master, int needlock) |
| static int | zt_wait_event (int fd) |
| Avoid the silly zt_waitevent which ignores a bunch of events. | |
| static int | zt_wink (struct zt_pvt *p, int index) |
| static int | zt_write (struct ast_channel *ast, struct ast_frame *frame) |
Variables | |
| struct { | |
| int alarm | |
| char * name | |
| } | alarms [] |
| static struct zt_ring_cadence | cadences [NUM_CADENCE_MAX] |
| static int | cidrings [NUM_CADENCE_MAX] |
| cidrings says in which pause to transmit the cid information, where the first pause is 1, the second pause is 2 and so on. | |
| static const char | config [] = "zapata.conf" |
| static char | defaultcic [64] = "" |
| static char | defaultozz [64] = "" |
| static const char | desc [] = "Zapata Telephony" |
| static char | destroy_channel_usage [] |
| static struct zt_distRings | drings |
| static char * | events [] |
| static int | firstdigittimeout = 16000 |
| Wait up to 16 seconds for first digit (FXO logic). | |
| static int | gendigittimeout = 8000 |
| How long to wait for following digits (FXO logic). | |
| static int | ifcount = 0 |
| static struct zt_pvt * | ifend |
| static struct zt_pvt * | iflist |
| static char | language [MAX_LANGUAGE] = "" |
| static int | matchdigittimeout = 3000 |
| How long to wait for an extra digit, if there is an ambiguous match. | |
| static pthread_t | monitor_thread = AST_PTHREADT_NULL |
| This is the thread for the monitor which checks for input on the channels which are not currently in use. | |
| static int | num_cadence = 4 |
| static int | numbufs = 4 |
| static char | progzone [10] = "" |
| static int | ringt_base = DEFAULT_RINGT |
| zt_pvt * | round_robin [32] |
| static char | show_channel_usage [] |
| static char | show_channels_usage [] |
| static char * | subnames [] |
| static const char | tdesc [] = "Zapata Telephony Driver" |
| static const char | type [] = "Zap" |
| static int | usecnt = 0 |
| static int | usedistinctiveringdetection = 0 |
| static int | user_has_defined_cadences = 0 |
| static struct ast_cli_entry | zap_cli [] |
| static char | zap_show_cadences_help [] |
| static char | zap_show_status_usage [] |
| static struct ast_channel_tech | zap_tech |
Connects to the zaptel telephony library as well as libpri. Libpri is optional and needed only if you are going to use ISDN connections.
You need to install libraries before you attempt to compile and install the zaptel channel.
Definition in file chan_zap.c.
| #define ASCII_BYTES_PER_CHAR 80 |
Referenced by zt_sendtext().
| #define AST_LAW | ( | p | ) | (((p)->law == ZT_LAW_ALAW) ? AST_FORMAT_ALAW : AST_FORMAT_ULAW) |
Definition at line 136 of file chan_zap.c.
Referenced by do_monitor(), send_cwcidspill(), ss_thread(), zt_call(), zt_callwait(), and zt_sendtext().
| #define CALLWAITING_REPEAT_SAMPLES ( (10000 * 8) / READ_SIZE) |
| #define CALLWAITING_SILENT_SAMPLES ( (300 * 8) / READ_SIZE) |
300 ms
Definition at line 277 of file chan_zap.c.
| #define CANBUSYDETECT | ( | p | ) | (ISTRUNK(p) || (p->sig & (SIG_EM | SIG_EM_E1 | SIG_SF)) /* || (p->sig & __ZT_SIG_FXO) */) |
| #define CANPROGRESSDETECT | ( | p | ) | (ISTRUNK(p) || (p->sig & (SIG_EM | SIG_EM_E1 | SIG_SF)) /* || (p->sig & __ZT_SIG_FXO) */) |
| #define CHAN_PSEUDO -2 |
Definition at line 190 of file chan_zap.c.
Referenced by enable_dtmf_detect(), mkintf(), setup_zap(), zt_new(), and zt_request().
| #define CHANNEL_PSEUDO -12 |
Definition at line 134 of file chan_zap.c.
| #define CIDCW_EXPIRE_SAMPLES ( (500 * 8) / READ_SIZE) |
| #define CONF_USER_REAL (1 << 0) |
Definition at line 411 of file chan_zap.c.
| #define CONF_USER_THIRDCALL (1 << 1) |
Definition at line 412 of file chan_zap.c.
| #define DCHAN_AVAILABLE (DCHAN_PROVISIONED | DCHAN_NOTINALARM | DCHAN_UP) |
Definition at line 196 of file chan_zap.c.
| #define DCHAN_NOTINALARM (1 << 1) |
Definition at line 193 of file chan_zap.c.
| #define DCHAN_PROVISIONED (1 << 0) |
Definition at line 192 of file chan_zap.c.
| #define DCHAN_UP (1 << 2) |
Definition at line 194 of file chan_zap.c.
| #define DEFAULT_CIDRINGS 1 |
Typically, how many rings before we should send Caller*ID.
Definition at line 132 of file chan_zap.c.
Referenced by zt_chan_conf_default().
| #define DEFAULT_RINGT ( (8000 * 8) / READ_SIZE) |
Definition at line 281 of file chan_zap.c.
| #define END_SILENCE_LEN 400 |
Referenced by zt_sendtext().
| #define FORMAT "%-40.40s %-10.10s %-10d %-10d %-10d\n" |
| #define FORMAT "%7s %-10.10s %-15.15s %-10.10s %-20.20s\n" |
| #define FORMAT2 "%-40.40s %-10.10s %-10.10s %-10.10s %-10.10s\n" |
| #define FORMAT2 "%7s %-10.10s %-15.15s %-10.10s %-20.20s\n" |
| #define GET_CHANNEL | ( | p | ) | ((p)->channel) |
Definition at line 878 of file chan_zap.c.
| #define HANGUP 1 |
Definition at line 10040 of file chan_zap.c.
Referenced by action_transferhangup(), and zap_fake_event().
| #define HEADER_LEN ((HEADER_MS + TRAILER_MS) * 8) |
Referenced by zt_sendtext().
| #define HEADER_MS 50 |
Referenced by zt_sendtext().
| #define ISTRUNK | ( | p | ) |
| #define MASK_AVAIL (1 << 0) |
Channel available for PRI use
Definition at line 274 of file chan_zap.c.
| #define MASK_INUSE (1 << 1) |
Channel currently in use
Definition at line 275 of file chan_zap.c.
| #define MAX_CHANNELS 672 |
No more than a DS3 per trunk group
Definition at line 188 of file chan_zap.c.
Referenced by mkintf().
| #define MAX_SLAVES 4 |
| #define MIN_MS_SINCE_FLASH ( (2000) ) |
| #define NEED_MFDETECT | ( | p | ) | (((p)->sig == SIG_FEATDMF) || ((p)->sig == SIG_FEATDMF_TA) || ((p)->sig == SIG_E911) || ((p)->sig == SIG_FEATB)) |
Signaling types that need to use MF detection should be placed in this macro.
Definition at line 139 of file chan_zap.c.
Referenced by ss_thread(), and zt_new().
| #define NUM_CADENCE_MAX 25 |
Definition at line 903 of file chan_zap.c.
| #define NUM_DCHANS 4 |
No more than 4 d-channels
Definition at line 187 of file chan_zap.c.
| #define NUM_SPANS 32 |
Definition at line 186 of file chan_zap.c.
| #define POLARITY_IDLE 0 |
Definition at line 371 of file chan_zap.c.
Referenced by unalloc_sub(), zt_handle_event(), and zt_hangup().
| #define POLARITY_REV 1 |
Definition at line 372 of file chan_zap.c.
Referenced by handle_init_event(), and zt_handle_event().
| #define READ_SIZE 160 |
Chunk size to read -- we use 20ms chunks to make things happy.
Definition at line 272 of file chan_zap.c.
Referenced by my_zt_write(), send_cwcidspill(), setup_zap(), zt_callwait(), zt_open(), zt_read(), zt_sendtext(), and zt_setoption().
| #define sig2str zap_sig2str |
Definition at line 1341 of file chan_zap.c.
Referenced by action_zapshowchannels(), handle_init_event(), mkintf(), setup_zap(), zap_show_channel(), and zt_handle_event().
| #define SIG_E911 (0x1000000 | ZT_SIG_EM) |
Definition at line 167 of file chan_zap.c.
Referenced by handle_init_event(), setup_zap(), ss_thread(), zap_sig2str(), zt_answer(), zt_call(), and zt_handle_event().
| #define SIG_EM ZT_SIG_EM |
Definition at line 162 of file chan_zap.c.
Referenced by handle_init_event(), setup_zap(), ss_thread(), zap_sig2str(), zt_answer(), zt_call(), and zt_handle_event().
| #define SIG_EM_E1 ZT_SIG_EM_E1 |
Definition at line 182 of file chan_zap.c.
Referenced by handle_init_event(), setup_zap(), ss_thread(), zap_sig2str(), zt_answer(), zt_call(), and zt_handle_event().
| #define SIG_EMWINK (0x0100000 | ZT_SIG_EM) |
Definition at line 163 of file chan_zap.c.
Referenced by handle_init_event(), setup_zap(), ss_thread(), zap_sig2str(), zt_answer(), zt_call(), and zt_handle_event().
| #define SIG_FEATB (0x0800000 | ZT_SIG_EM) |
Definition at line 166 of file chan_zap.c.
Referenced by handle_init_event(), setup_zap(), ss_thread(), zap_sig2str(), zt_answer(), zt_call(), and zt_handle_event().
| #define SIG_FEATD (0x0200000 | ZT_SIG_EM) |
Definition at line 164 of file chan_zap.c.
Referenced by handle_init_event(), setup_zap(), ss_thread(), zap_sig2str(), zt_answer(), zt_call(), and zt_handle_event().
| #define SIG_FEATDMF (0x0400000 | ZT_SIG_EM) |
Definition at line 165 of file chan_zap.c.
Referenced by handle_init_event(), setup_zap(), ss_thread(), zap_sig2str(), zt_answer(), zt_call(), and zt_handle_event().
| #define SIG_FEATDMF_TA (0x2000000 | ZT_SIG_EM) |
Definition at line 168 of file chan_zap.c.
Referenced by setup_zap(), zap_sig2str(), zt_call(), and zt_handle_event().
| #define SIG_FXOGS ZT_SIG_FXOGS |
Definition at line 173 of file chan_zap.c.
Referenced by available(), handle_init_event(), setup_zap(), ss_thread(), zap_sig2str(), zt_answer(), zt_call(), zt_handle_event(), zt_hangup(), and zt_new().
| #define SIG_FXOKS ZT_SIG_FXOKS |
Definition at line 174 of file chan_zap.c.
Referenced by available(), handle_init_event(), mkintf(), setup_zap(), ss_thread(), zap_sig2str(), zt_answer(), zt_call(), zt_handle_event(), zt_hangup(), and zt_new().
| #define SIG_FXOLS ZT_SIG_FXOLS |
Definition at line 172 of file chan_zap.c.
Referenced by available(), handle_init_event(), setup_zap(), ss_thread(), zap_sig2str(), zt_answer(), zt_call(), zt_handle_event(), zt_hangup(), and zt_new().
| #define SIG_FXSGS ZT_SIG_FXSGS |
Definition at line 170 of file chan_zap.c.
Referenced by available(), handle_init_event(), setup_zap(), ss_thread(), zap_sig2str(), zt_answer(), zt_call(), zt_handle_event(), zt_hangup(), and zt_indicate().
| #define SIG_FXSKS ZT_SIG_FXSKS |
Definition at line 171 of file chan_zap.c.
Referenced by available(), handle_init_event(), mkintf(), setup_zap(), ss_thread(), zap_sig2str(), zt_answer(), zt_call(), zt_handle_event(), zt_hangup(), zt_indicate(), zt_new(), and zt_request().
| #define SIG_FXSLS ZT_SIG_FXSLS |
Definition at line 169 of file chan_zap.c.
Referenced by available(), handle_init_event(), setup_zap(), ss_thread(), zap_sig2str(), zt_answer(), zt_call(), zt_handle_event(), zt_hangup(), and zt_indicate().
| #define SIG_GR303FXOKS (0x0100000 | ZT_SIG_FXOKS) |
Definition at line 183 of file chan_zap.c.
Referenced by handle_init_event(), mkintf(), setup_zap(), and zap_sig2str().
| #define SIG_GR303FXSKS (0x0100000 | ZT_SIG_FXSKS) |
Definition at line 184 of file chan_zap.c.
Referenced by handle_init_event(), mkintf(), setup_zap(), and zap_sig2str().
| #define SIG_PRI ZT_SIG_CLEAR |
Definition at line 175 of file chan_zap.c.
Referenced by handle_init_event(), mkintf(), setup_zap(), ss_thread(), zap_sig2str(), zt_answer(), zt_call(), zt_confmute(), zt_digit(), zt_enable_ec(), zt_handle_event(), zt_hangup(), zt_indicate(), zt_new(), zt_read(), and zt_write().
| #define SIG_R2 ZT_SIG_CAS |
Definition at line 176 of file chan_zap.c.
Referenced by mkintf(), setup_zap(), zap_sig2str(), zt_answer(), zt_handle_event(), and zt_hangup().
| #define SIG_SF ZT_SIG_SF |
Definition at line 177 of file chan_zap.c.
Referenced by handle_init_event(), setup_zap(), ss_thread(), zap_sig2str(), zt_answer(), zt_call(), and zt_handle_event().
| #define SIG_SF_FEATB (0x0800000 | ZT_SIG_SF) |
Definition at line 181 of file chan_zap.c.
Referenced by handle_init_event(), setup_zap(), ss_thread(), zap_sig2str(), zt_answer(), zt_call(), and zt_handle_event().
| #define SIG_SF_FEATD (0x0200000 | ZT_SIG_SF) |
Definition at line 179 of file chan_zap.c.
Referenced by handle_init_event(), ss_thread(), zap_sig2str(), zt_answer(), zt_call(), and zt_handle_event().
| #define SIG_SF_FEATDMF (0x0400000 | ZT_SIG_SF) |
Definition at line 180 of file chan_zap.c.
Referenced by handle_init_event(), ss_thread(), zap_sig2str(), zt_answer(), zt_call(), and zt_handle_event().
| #define SIG_SFWINK (0x0100000 | ZT_SIG_SF) |
Definition at line 178 of file chan_zap.c.
Referenced by handle_init_event(), setup_zap(), ss_thread(), zap_sig2str(), zt_answer(), zt_call(), and zt_handle_event().
| #define SUB_CALLWAIT 1 |
Call-Waiting call on hold
Definition at line 367 of file chan_zap.c.
| #define SUB_REAL 0 |
Active call
Definition at line 366 of file chan_zap.c.
| #define SUB_THREEWAY 2 |
Three-way call
Definition at line 368 of file chan_zap.c.
| #define TRAILER_MS 5 |
Referenced by zt_sendtext().
| #define TRANSFER 0 |
| #define ZT_EVENT_DTMFDOWN 0 |
| #define ZT_EVENT_DTMFUP 0 |
| static int __unload_module | ( | void | ) | [static] |
Definiti