diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/app_chanisavail.c | 2 | ||||
-rw-r--r-- | apps/app_chanspy.c | 5 | ||||
-rw-r--r-- | apps/app_dahdibarge.c (renamed from apps/app_zapbarge.c) | 88 | ||||
-rw-r--r-- | apps/app_dahdiras.c (renamed from apps/app_zapras.c) | 56 | ||||
-rw-r--r-- | apps/app_dahdiscan.c (renamed from apps/app_zapscan.c) | 97 | ||||
-rw-r--r-- | apps/app_dial.c | 10 | ||||
-rw-r--r-- | apps/app_fax.c | 741 | ||||
-rw-r--r-- | apps/app_flash.c | 38 | ||||
-rw-r--r-- | apps/app_getcpeid.c | 2 | ||||
-rw-r--r-- | apps/app_meetme.c | 186 | ||||
-rw-r--r-- | apps/app_page.c | 2 | ||||
-rw-r--r-- | apps/app_queue.c | 114 | ||||
-rw-r--r-- | apps/app_rpt.c | 402 |
13 files changed, 474 insertions, 1269 deletions
diff --git a/apps/app_chanisavail.c b/apps/app_chanisavail.c index 6a9cd8128..68cab31aa 100644 --- a/apps/app_chanisavail.c +++ b/apps/app_chanisavail.c @@ -75,7 +75,7 @@ static int chanavail_exec(struct ast_channel *chan, void *data) ); if (ast_strlen_zero(data)) { - ast_log(LOG_WARNING, "ChanIsAvail requires an argument (Zap/1&Zap/2)\n"); + ast_log(LOG_WARNING, "ChanIsAvail requires an argument (DAHDI/1&DAHDI/2)\n"); return -1; } diff --git a/apps/app_chanspy.c b/apps/app_chanspy.c index cd00a25e8..2f5a997d9 100644 --- a/apps/app_chanspy.c +++ b/apps/app_chanspy.c @@ -47,6 +47,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/translate.h" #include "asterisk/module.h" #include "asterisk/lock.h" +#include "asterisk/options.h" #define AST_NAME_STRLEN 256 #define NUM_SPYGROUPS 128 @@ -587,6 +588,7 @@ static struct chanspy_ds *next_channel(struct ast_channel *chan, const char *exten, const char *context, struct chanspy_ds *chanspy_ds) { struct ast_channel *next; + char channel_name[AST_CHANNEL_NAME]; redo: if (!ast_strlen_zero(spec)) @@ -599,7 +601,8 @@ redo: if (!next) return NULL; - if (!strncmp(next->name, "Zap/pseudo", 10)) { + snprintf(channel_name, AST_CHANNEL_NAME, "%s/pseudo", dahdi_chan_name); + if (!strncmp(next->name, channel_name, 10)) { ast_channel_unlock(next); goto redo; } else if (next == chan) { diff --git a/apps/app_zapbarge.c b/apps/app_dahdibarge.c index 892dd1ec0..b70b57b30 100644 --- a/apps/app_zapbarge.c +++ b/apps/app_dahdibarge.c @@ -21,7 +21,7 @@ /*! \file * - * \brief Zap Barge support + * \brief DAHDI Barge support * * \author Mark Spencer <markster@digium.com> * @@ -32,14 +32,14 @@ */ /*** MODULEINFO - <depend>zaptel</depend> + <depend>dahdi</depend> ***/ #include "asterisk.h" ASTERISK_FILE_VERSION(__FILE__, "$Revision$") -#include "asterisk/zapata.h" +#include "asterisk/dahdi.h" #include "asterisk/lock.h" #include "asterisk/file.h" @@ -52,12 +52,13 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/say.h" #include "asterisk/utils.h" -static char *app = "ZapBarge"; +static char *app = "DAHDIBarge"; +static char *deprecated_app = "ZapBarge"; -static char *synopsis = "Barge in (monitor) Zap channel"; +static char *synopsis = "Barge in (monitor) DAHDI channel"; static char *descrip = -" ZapBarge([channel]): Barges in on a specified zap\n" +" DAHDIBarge([channel]): Barges in on a specified DAHDI\n" "channel or prompts if one is not specified. Returns\n" "-1 when caller user hangs up and is independent of the\n" "state of the channel being monitored."; @@ -86,7 +87,7 @@ static int careful_write(int fd, unsigned char *data, int len) static int conf_run(struct ast_channel *chan, int confno, int confflags) { int fd; - struct zt_confinfo ztc; + struct dahdi_confinfo dahdic; struct ast_frame *f; struct ast_channel *c; struct ast_frame fr; @@ -95,11 +96,11 @@ static int conf_run(struct ast_channel *chan, int confno, int confflags) int nfds; int res; int flags; - int retryzap; + int retrydahdi; int origfd; int ret = -1; - ZT_BUFFERINFO bi; + DAHDI_BUFFERINFO bi; char __buf[CONF_SIZE + AST_FRIENDLY_OFFSET]; char *buf = __buf + AST_FRIENDLY_OFFSET; @@ -115,11 +116,11 @@ static int conf_run(struct ast_channel *chan, int confno, int confflags) goto outrun; } ast_indicate(chan, -1); - retryzap = strcasecmp(chan->tech->type, "Zap"); -zapretry: + retrydahdi = strcasecmp(chan->tech->type, "DAHDI"); +dahdiretry: origfd = chan->fds[0]; - if (retryzap) { - fd = open("/dev/zap/pseudo", O_RDWR); + if (retrydahdi) { + fd = open("/dev/dahdi/pseudo", O_RDWR); if (fd < 0) { ast_log(LOG_WARNING, "Unable to open pseudo channel: %s\n", strerror(errno)); goto outrun; @@ -139,10 +140,10 @@ zapretry: /* Setup buffering information */ memset(&bi, 0, sizeof(bi)); bi.bufsize = CONF_SIZE; - bi.txbufpolicy = ZT_POLICY_IMMEDIATE; - bi.rxbufpolicy = ZT_POLICY_IMMEDIATE; + bi.txbufpolicy = DAHDI_POLICY_IMMEDIATE; + bi.rxbufpolicy = DAHDI_POLICY_IMMEDIATE; bi.numbufs = 4; - if (ioctl(fd, ZT_SET_BUFINFO, &bi)) { + if (ioctl(fd, DAHDI_SET_BUFINFO, &bi)) { ast_log(LOG_WARNING, "Unable to set buffering information: %s\n", strerror(errno)); close(fd); goto outrun; @@ -153,34 +154,34 @@ zapretry: fd = chan->fds[0]; nfds = 0; } - memset(&ztc, 0, sizeof(ztc)); + memset(&dahdic, 0, sizeof(dahdic)); /* Check to see if we're in a conference... */ - ztc.chan = 0; - if (ioctl(fd, ZT_GETCONF, &ztc)) { + dahdic.chan = 0; + if (ioctl(fd, DAHDI_GETCONF, &dahdic)) { ast_log(LOG_WARNING, "Error getting conference\n"); close(fd); goto outrun; } - if (ztc.confmode) { + if (dahdic.confmode) { /* Whoa, already in a conference... Retry... */ - if (!retryzap) { - ast_debug(1, "Zap channel is in a conference already, retrying with pseudo\n"); - retryzap = 1; - goto zapretry; + if (!retrydahdi) { + ast_debug(1, "DAHDI channel is in a conference already, retrying with pseudo\n"); + retrydahdi = 1; + goto dahdiretry; } } - memset(&ztc, 0, sizeof(ztc)); + memset(&dahdic, 0, sizeof(dahdic)); /* Add us to the conference */ - ztc.chan = 0; - ztc.confno = confno; - ztc.confmode = ZT_CONF_MONITORBOTH; + dahdic.chan = 0; + dahdic.confno = confno; + dahdic.confmode = DAHDI_CONF_MONITORBOTH; - if (ioctl(fd, ZT_SETCONF, &ztc)) { + if (ioctl(fd, DAHDI_SETCONF, &dahdic)) { ast_log(LOG_WARNING, "Error setting conference\n"); close(fd); goto outrun; } - ast_debug(1, "Placed channel %s in ZAP channel %d monitor\n", chan->name, confno); + ast_debug(1, "Placed channel %s in DAHDI channel %d monitor\n", chan->name, confno); for(;;) { outfd = -1; @@ -188,13 +189,13 @@ zapretry: c = ast_waitfor_nandfds(&chan, 1, &fd, nfds, NULL, &outfd, &ms); if (c) { if (c->fds[0] != origfd) { - if (retryzap) { + if (retrydahdi) { /* Kill old pseudo */ close(fd); } ast_debug(1, "Ooh, something swapped out under us, starting over\n"); - retryzap = 0; - goto zapretry; + retrydahdi = 0; + goto dahdiretry; } f = ast_read(c); if (!f) @@ -236,10 +237,10 @@ zapretry: else { /* Take out of conference */ /* Add us to the conference */ - ztc.chan = 0; - ztc.confno = 0; - ztc.confmode = 0; - if (ioctl(fd, ZT_SETCONF, &ztc)) { + dahdic.chan = 0; + dahdic.confno = 0; + dahdic.confmode = 0; + if (ioctl(fd, DAHDI_SETCONF, &dahdic)) { ast_log(LOG_WARNING, "Error setting conference\n"); } } @@ -258,9 +259,9 @@ static int conf_exec(struct ast_channel *chan, void *data) char confstr[80] = ""; if (!ast_strlen_zero(data)) { - if ((sscanf(data, "Zap/%d", &confno) != 1) && + if ((sscanf(data, "DAHDI/%d", &confno) != 1) && (sscanf(data, "%d", &confno) != 1)) { - ast_log(LOG_WARNING, "ZapBarge Argument (if specified) must be a channel number, not '%s'\n", (char *)data); + ast_log(LOG_WARNING, "DAHDIBarge Argument (if specified) must be a channel number, not '%s'\n", (char *)data); return 0; } } @@ -286,6 +287,12 @@ out: return res; } +static int conf_exec_warn(struct ast_channel *chan, void *data) +{ + ast_log(LOG_WARNING, "Use of the command %s is deprecated, please use %s instead.\n", deprecated_app, app); + return conf_exec(chan, data); +} + static int unload_module(void) { return ast_unregister_application(app); @@ -293,7 +300,8 @@ static int unload_module(void) static int load_module(void) { + ast_register_application(deprecated_app, conf_exec_warn, synopsis, descrip); return ((ast_register_application(app, conf_exec, synopsis, descrip)) ? AST_MODULE_LOAD_FAILURE : AST_MODULE_LOAD_SUCCESS); } -AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Barge in on Zap channel application"); +AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Barge in on DAHDI channel application"); diff --git a/apps/app_zapras.c b/apps/app_dahdiras.c index 6e079e32d..384607d98 100644 --- a/apps/app_zapras.c +++ b/apps/app_dahdiras.c @@ -26,7 +26,7 @@ */ /*** MODULEINFO - <depend>zaptel</depend> + <depend>dahdi</depend> ***/ #include "asterisk.h" @@ -43,7 +43,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include <fcntl.h> -#include "asterisk/zapata.h" +#include "asterisk/dahdi.h" #include "asterisk/lock.h" #include "asterisk/file.h" @@ -52,15 +52,16 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/module.h" #include "asterisk/app.h" -static char *app = "ZapRAS"; +static char *app = "DAHDIRAS"; +static char *deprecated_app = "ZapRAS"; -static char *synopsis = "Executes Zaptel ISDN RAS application"; +static char *synopsis = "Executes DAHDI ISDN RAS application"; static char *descrip = -" ZapRAS(args): Executes a RAS server using pppd on the given channel.\n" -"The channel must be a clear channel (i.e. PRI source) and a Zaptel\n" +" DAHDIRAS(args): Executes a RAS server using pppd on the given channel.\n" +"The channel must be a clear channel (i.e. PRI source) and a DAHDI\n" "channel to be able to use this function (No modem emulation is included).\n" -"Your pppd must be patched to be zaptel aware. Arguments should be\n" +"Your pppd must be patched to be DAHDI aware. Arguments should be\n" "separated by , characters.\n"; @@ -96,7 +97,7 @@ static pid_t spawn_ras(struct ast_channel *chan, char *args) memset(argv, 0, sizeof(argv)); /* First argument is executable, followed by standard - arguments for zaptel PPP */ + arguments for DAHDI PPP */ argv[argc++] = PPP_EXEC; argv[argc++] = "nodetach"; @@ -109,7 +110,7 @@ static pid_t spawn_ras(struct ast_channel *chan, char *args) } argv[argc++] = "plugin"; - argv[argc++] = "zaptel.so"; + argv[argc++] = "dahdi.so"; argv[argc++] = "stdin"; /* Finally launch PPP */ @@ -124,10 +125,10 @@ static void run_ras(struct ast_channel *chan, char *args) int status; int res; int signalled = 0; - struct zt_bufferinfo savebi; + struct dahdi_bufferinfo savebi; int x; - res = ioctl(chan->fds[0], ZT_GET_BUFINFO, &savebi); + res = ioctl(chan->fds[0], DAHDI_GET_BUFINFO, &savebi); if(res) { ast_log(LOG_WARNING, "Unable to check buffer policy on channel %s\n", chan->name); return; @@ -163,10 +164,10 @@ static void run_ras(struct ast_channel *chan, char *args) } /* Throw back into audio mode */ x = 1; - ioctl(chan->fds[0], ZT_AUDIOMODE, &x); + ioctl(chan->fds[0], DAHDI_AUDIOMODE, &x); /* Restore saved values */ - res = ioctl(chan->fds[0], ZT_SET_BUFINFO, &savebi); + res = ioctl(chan->fds[0], DAHDI_SET_BUFINFO, &savebi); if (res < 0) { ast_log(LOG_WARNING, "Unable to set buffer policy on channel %s\n", chan->name); } @@ -176,11 +177,11 @@ static void run_ras(struct ast_channel *chan, char *args) ast_safe_fork_cleanup(); } -static int zapras_exec(struct ast_channel *chan, void *data) +static int dahdiras_exec(struct ast_channel *chan, void *data) { int res=-1; char *args; - ZT_PARAMS ztp; + DAHDI_PARAMS dahdip; if (!data) data = ""; @@ -190,16 +191,16 @@ static int zapras_exec(struct ast_channel *chan, void *data) /* Answer the channel if it's not up */ if (chan->_state != AST_STATE_UP) ast_answer(chan); - if (strcasecmp(chan->tech->type, "Zap")) { - /* If it's not a zap channel, we're done. Wait a couple of + if (strcasecmp(chan->tech->type, "DAHDI")) { + /* If it's not a DAHDI channel, we're done. Wait a couple of seconds and then hangup... */ - ast_verb(2, "Channel %s is not a Zap channel\n", chan->name); + ast_verb(2, "Channel %s is not a DAHDI channel\n", chan->name); sleep(2); } else { - memset(&ztp, 0, sizeof(ztp)); - if (ioctl(chan->fds[0], ZT_GET_PARAMS, &ztp)) { - ast_log(LOG_WARNING, "Unable to get zaptel parameters\n"); - } else if (ztp.sigtype != ZT_SIG_CLEAR) { + memset(&dahdip, 0, sizeof(dahdip)); + if (ioctl(chan->fds[0], DAHDI_GET_PARAMS, &dahdip)) { + ast_log(LOG_WARNING, "Unable to get DAHDI parameters\n"); + } else if (dahdip.sigtype != DAHDI_SIG_CLEAR) { ast_verb(2, "Channel %s is not a clear channel\n", chan->name); } else { /* Everything should be okay. Run PPP. */ @@ -211,6 +212,12 @@ static int zapras_exec(struct ast_channel *chan, void *data) return res; } +static int dahdiras_exec_warn(struct ast_channel *chan, void *data) +{ + ast_log(LOG_WARNING, "Use of the command %s is deprecated, please use %s instead.\n", deprecated_app, app); + return dahdiras_exec(chan, data); +} + static int unload_module(void) { return ast_unregister_application(app); @@ -218,8 +225,9 @@ static int unload_module(void) static int load_module(void) { - return ((ast_register_application(app, zapras_exec, synopsis, descrip)) ? AST_MODULE_LOAD_FAILURE : AST_MODULE_LOAD_SUCCESS); + ast_register_application(deprecated_app, dahdiras_exec_warn, synopsis, descrip); + return ((ast_register_application(app, dahdiras_exec, synopsis, descrip)) ? AST_MODULE_LOAD_FAILURE : AST_MODULE_LOAD_SUCCESS); } -AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Zaptel ISDN Remote Access Server"); +AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "DAHDI ISDN Remote Access Server"); diff --git a/apps/app_zapscan.c b/apps/app_dahdiscan.c index 372467572..b76061395 100644 --- a/apps/app_zapscan.c +++ b/apps/app_dahdiscan.c @@ -23,7 +23,7 @@ /*! \file * - * \brief Zap Scanner + * \brief DAHDI Scanner * * \author Mark Spencer <markster@digium.com> * @@ -31,14 +31,14 @@ */ /*** MODULEINFO - <depend>zaptel</depend> + <depend>dahdi</depend> ***/ #include "asterisk.h" ASTERISK_FILE_VERSION(__FILE__, "$Revision$") -#include "asterisk/zapata.h" +#include "asterisk/dahdi.h" #include "asterisk/lock.h" #include "asterisk/file.h" @@ -50,23 +50,25 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/utils.h" #include "asterisk/cli.h" #include "asterisk/say.h" +#include "asterisk/options.h" -static char *app = "ZapScan"; +static char *app = "DAHDIScan"; +static char *deprecated_app = "ZapScan"; -static char *synopsis = "Scan Zap channels to monitor calls"; +static char *synopsis = "Scan DAHDI channels to monitor calls"; static char *descrip = -" ZapScan([group]) allows a call center manager to monitor Zap channels in\n" +" DAHDIScan([group]) allows a call center manager to monitor DAHDI channels in\n" "a convenient way. Use '#' to select the next channel and use '*' to exit\n" "Limit scanning to a channel GROUP by setting the option group argument.\n"; #define CONF_SIZE 160 -static struct ast_channel *get_zap_channel_locked(int num) { +static struct ast_channel *get_dahdi_channel_locked(int num) { char name[80]; - snprintf(name, sizeof(name), "Zap/%d-1", num); + snprintf(name, sizeof(name), "%s/%d-1", dahdi_chan_name, num); return ast_get_channel_by_name_locked(name); } @@ -92,7 +94,7 @@ static int careful_write(int fd, unsigned char *data, int len) static int conf_run(struct ast_channel *chan, int confno, int confflags) { int fd; - struct zt_confinfo ztc; + struct dahdi_confinfo dahdic; struct ast_frame *f; struct ast_channel *c; struct ast_frame fr; @@ -101,13 +103,13 @@ static int conf_run(struct ast_channel *chan, int confno, int confflags) int nfds; int res; int flags; - int retryzap; + int retrydahdi; int origfd; int ret = -1; char input[4]; int ic = 0; - ZT_BUFFERINFO bi; + DAHDI_BUFFERINFO bi; char __buf[CONF_SIZE + AST_FRIENDLY_OFFSET]; char *buf = __buf + AST_FRIENDLY_OFFSET; @@ -123,11 +125,11 @@ static int conf_run(struct ast_channel *chan, int confno, int confflags) goto outrun; } ast_indicate(chan, -1); - retryzap = strcasecmp(chan->tech->type, "Zap"); - zapretry: + retrydahdi = strcasecmp(chan->tech->type, "DAHDI"); + dahdiretry: origfd = chan->fds[0]; - if (retryzap) { - fd = open("/dev/zap/pseudo", O_RDWR); + if (retrydahdi) { + fd = open("/dev/dahdi/pseudo", O_RDWR); if (fd < 0) { ast_log(LOG_WARNING, "Unable to open pseudo channel: %s\n", strerror(errno)); goto outrun; @@ -147,10 +149,10 @@ static int conf_run(struct ast_channel *chan, int confno, int confflags) /* Setup buffering information */ memset(&bi, 0, sizeof(bi)); bi.bufsize = CONF_SIZE; - bi.txbufpolicy = ZT_POLICY_IMMEDIATE; - bi.rxbufpolicy = ZT_POLICY_IMMEDIATE; + bi.txbufpolicy = DAHDI_POLICY_IMMEDIATE; + bi.rxbufpolicy = DAHDI_POLICY_IMMEDIATE; bi.numbufs = 4; - if (ioctl(fd, ZT_SET_BUFINFO, &bi)) { + if (ioctl(fd, DAHDI_SET_BUFINFO, &bi)) { ast_log(LOG_WARNING, "Unable to set buffering information: %s\n", strerror(errno)); close(fd); goto outrun; @@ -161,34 +163,34 @@ static int conf_run(struct ast_channel *chan, int confno, int confflags) fd = chan->fds[0]; nfds = 0; } - memset(&ztc, 0, sizeof(ztc)); + memset(&dahdic, 0, sizeof(dahdic)); /* Check to see if we're in a conference... */ - ztc.chan = 0; - if (ioctl(fd, ZT_GETCONF, &ztc)) { + dahdic.chan = 0; + if (ioctl(fd, DAHDI_GETCONF, &dahdic)) { ast_log(LOG_WARNING, "Error getting conference\n"); close(fd); goto outrun; } - if (ztc.confmode) { + if (dahdic.confmode) { /* Whoa, already in a conference... Retry... */ - if (!retryzap) { - ast_debug(1, "Zap channel is in a conference already, retrying with pseudo\n"); - retryzap = 1; - goto zapretry; + if (!retrydahdi) { + ast_debug(1, "DAHDI channel is in a conference already, retrying with pseudo\n"); + retrydahdi = 1; + goto dahdiretry; } } - memset(&ztc, 0, sizeof(ztc)); + memset(&dahdic, 0, sizeof(dahdic)); /* Add us to the conference */ - ztc.chan = 0; - ztc.confno = confno; - ztc.confmode = ZT_CONF_MONITORBOTH; + dahdic.chan = 0; + dahdic.confno = confno; + dahdic.confmode = DAHDI_CONF_MONITORBOTH; - if (ioctl(fd, ZT_SETCONF, &ztc)) { + if (ioctl(fd, DAHDI_SETCONF, &dahdic)) { ast_log(LOG_WARNING, "Error setting conference\n"); close(fd); goto outrun; } - ast_debug(1, "Placed channel %s in ZAP channel %d monitor\n", chan->name, confno); + ast_debug(1, "Placed channel %s in DAHDI channel %d monitor\n", chan->name, confno); for (;;) { outfd = -1; @@ -196,13 +198,13 @@ static int conf_run(struct ast_channel *chan, int confno, int confflags) c = ast_waitfor_nandfds(&chan, 1, &fd, nfds, NULL, &outfd, &ms); if (c) { if (c->fds[0] != origfd) { - if (retryzap) { + if (retrydahdi) { /* Kill old pseudo */ close(fd); } ast_debug(1, "Ooh, something swapped out under us, starting over\n"); - retryzap = 0; - goto zapretry; + retrydahdi = 0; + goto dahdiretry; } f = ast_read(c); if (!f) { @@ -222,7 +224,7 @@ static int conf_run(struct ast_channel *chan, int confno, int confflags) input[ic++] = '\0'; ic = 0; ret = atoi(input); - ast_verb(3, "Zapscan: change channel to %d\n", ret); + ast_verb(3, "DAHDIScan: change channel to %d\n", ret); break; } } @@ -265,10 +267,10 @@ static int conf_run(struct ast_channel *chan, int confno, int confflags) } else { /* Take out of conference */ /* Add us to the conference */ - ztc.chan = 0; - ztc.confno = 0; - ztc.confmode = 0; - if (ioctl(fd, ZT_SETCONF, &ztc)) { + dahdic.chan = 0; + dahdic.confno = 0; + dahdic.confmode = 0; + if (ioctl(fd, DAHDI_SETCONF, &dahdic)) { ast_log(LOG_WARNING, "Error setting conference\n"); } } @@ -312,7 +314,7 @@ static int conf_exec(struct ast_channel *chan, void *data) ast_frfree(f); ichan = NULL; if(input) { - ichan = get_zap_channel_locked(input); + ichan = get_dahdi_channel_locked(input); input = 0; } @@ -332,8 +334,8 @@ static int conf_exec(struct ast_channel *chan, void *data) continue; } } - if (tempchan && (!strcmp(tempchan->tech->type, "Zap")) && (tempchan != chan)) { - ast_verb(3, "Zap channel %s is in-use, monitoring...\n", tempchan->name); + if (tempchan && (!strcmp(tempchan->tech->type, "DAHDI")) && (tempchan != chan)) { + ast_verb(3, "DAHDI channel %s is in-use, monitoring...\n", tempchan->name); ast_copy_string(confstr, tempchan->name, sizeof(confstr)); ast_channel_unlock(tempchan); if ((tmp = strchr(confstr, '-'))) { @@ -355,6 +357,12 @@ static int conf_exec(struct ast_channel *chan, void *data) return res; } +static int conf_exec_warn(struct ast_channel *chan, void *data) +{ + ast_log(LOG_WARNING, "Use of the command %s is deprecated, please use %s instead.\n", deprecated_app, app); + return conf_exec(chan, data); +} + static int unload_module(void) { return ast_unregister_application(app); @@ -362,8 +370,9 @@ static int unload_module(void) static int load_module(void) { + ast_register_application(deprecated_app, conf_exec_warn, synopsis, descrip); return ((ast_register_application(app, conf_exec, synopsis, descrip)) ? AST_MODULE_LOAD_FAILURE : AST_MODULE_LOAD_SUCCESS); } -AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Scan Zap channels application"); +AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Scan DAHDI channels application"); diff --git a/apps/app_dial.c b/apps/app_dial.c index d3a2aedd9..490fa3414 100644 --- a/apps/app_dial.c +++ b/apps/app_dial.c @@ -171,8 +171,8 @@ static char *descrip = " o - Specify that the CallerID that was present on the *calling* channel\n" " be set as the CallerID on the *called* channel. This was the\n" " behavior of Asterisk 1.0 and earlier.\n" -" O([x]) - \"Operator Services\" mode (Zaptel channel to Zaptel channel\n" -" only, if specified on non-Zaptel interface, it will be ignored).\n" +" O([x]) - \"Operator Services\" mode (DAHDI channel to DAHDI channel\n" +" only, if specified on non-DAHDI interface, it will be ignored).\n" " When the destination answers (presumably an operator services\n" " station), the originator no longer has control of their line.\n" " They may hang up, but the switch will not release their line\n" @@ -1895,9 +1895,9 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags res = -1; goto done; } - if (opermode && !strncmp(chan->name, "Zap", 3) && !strncmp(peer->name, "Zap", 3)) { - /* what's this special handling for Zap <-> Zap ? - * A: Zap to Zap calls are natively bridged at the kernel driver + if (opermode && !strncmp(chan->tech->type, "DAHDI", 3) && !strncmp(peer->name, "DAHDI", 3)) { + /* what's this special handling for dahdi <-> dahdi ? + * A: dahdi to dahdi calls are natively bridged at the kernel driver * level, so we need to ensure that this mode gets propagated * all the way down. */ struct oprmode oprmode; diff --git a/apps/app_fax.c b/apps/app_fax.c deleted file mode 100644 index cf98cc9a8..000000000 --- a/apps/app_fax.c +++ /dev/null @@ -1,741 +0,0 @@ -/* - * Asterisk -- A telephony toolkit for Linux. - * - * Simple fax applications - * - * 2007-2008, Dmitry Andrianov <asterisk@dima.spb.ru> - * - * Code based on original implementation by Steve Underwood <steveu@coppice.org> - * - * This program is free software, distributed under the terms of - * the GNU General Public License - * - */ - -/*** MODULEINFO - <depend>spandsp</depend> -***/ - -#include "asterisk.h" - -ASTERISK_FILE_VERSION(__FILE__, "$Revision$") - -#include <string.h> -#include <stdlib.h> -#include <stdio.h> -#include <inttypes.h> -#include <pthread.h> -#include <errno.h> -#include <tiffio.h> - -#include <spandsp.h> - -#include "asterisk/lock.h" -#include "asterisk/file.h" -#include "asterisk/logger.h" -#include "asterisk/channel.h" -#include "asterisk/pbx.h" -#include "asterisk/app.h" -#include "asterisk/dsp.h" -#include "asterisk/module.h" -#include "asterisk/manager.h" - -static char *app_sndfax_name = "SendFAX"; -static char *app_sndfax_synopsis = "Send a FAX"; -static char *app_sndfax_desc = -" SendFAX(filename[|options]):\n" -"Send a given TIFF file to the channel as a FAX.\n" -"The option string may contain zero or more of the following characters:\n" -" 'a' -- makes the application behave as an answering machine\n" -" The default behaviour is to behave as a calling machine.\n" -"\n" -"This application uses following variables:\n" -" LOCALSTATIONID to identify itself to the remote end.\n" -" LOCALHEADERINFO to generate a header line on each page.\n" -"\n" -"This application sets the following channel variables upon completion:\n" -" FAXSTATUS - status of operation:\n" -" SUCCESS | FAILED\n" -" FAXERROR - Error when FAILED\n" -" REMOTESTATIONID - CSID of the remote side.\n" -" FAXPAGES - number of pages sent.\n" -" FAXBITRATE - transmition rate.\n" -" FAXRESOLUTION - resolution.\n" -"\n" -"Returns -1 in case of user hang up or any channel error.\n" -"Returns 0 on success.\n"; - -static char *app_rcvfax_name = "ReceiveFAX"; -static char *app_rcvfax_synopsis = "Receive a FAX"; -static char *app_rcvfax_desc = -" ReceiveFAX(filename[|options]):\n" -"Receives a fax from the channel into the given filename overwriting\n" -"the file if it already exists. File created will have TIFF format.\n" -"The option string may contain zero or more of the following characters:\n" -" 'c' -- makes the application behave as a calling machine\n" -" The default behaviour is to behave as an answering machine.\n" -"\n" -"This application uses following variables:\n" -" LOCALSTATIONID to identify itself to the remote end.\n" -" LOCALHEADERINFO to generate a header line on each page.\n" -"\n" -"This application sets the following channel variables upon completion:\n" -" FAXSTATUS - status of operation:\n" -" SUCCESS | FAILED\n" -" FAXERROR - Error when FAILED\n" -" REMOTESTATIONID - CSID of the remote side.\n" -" FAXPAGES - number of pages sent.\n" -" FAXBITRATE - transmition rate.\n" -" FAXRESOLUTION - resolution.\n" -"\n" -"Returns -1 in case of user hang up or any channel error.\n" -"Returns 0 on success.\n"; - -#define MAX_SAMPLES 240 - -/* Watchdog. I have seen situations when remote fax disconnects (because of poor line - quality) while SpanDSP continues staying in T30_STATE_IV_CTC state forever. - To avoid this, we terminate when we see that T30 state does not change for 5 minutes. - We also terminate application when more than 30 minutes passed regardless of - state changes. This is just a precaution measure - no fax should take that long */ - -#define WATCHDOG_TOTAL_TIMEOUT 30 * 60 -#define WATCHDOG_STATE_TIMEOUT 5 * 60 - -typedef struct { - struct ast_channel *chan; - enum ast_t38_state t38state; /* T38 state of the channel */ - int direction; /* Fax direction: 0 - receiving, 1 - sending */ - int caller_mode; - char *file_name; - - volatile int finished; -} fax_session; - -static void span_message(int level, const char *msg) -{ - if (level == SPAN_LOG_ERROR) { - ast_log(LOG_ERROR, "%s", msg); - } else if (level == SPAN_LOG_WARNING) { - ast_log(LOG_WARNING, "%s", msg); - } else { - ast_log(LOG_DEBUG, "%s", msg); - } -} - -static int t38_tx_packet_handler(t38_core_state_t *s, void *user_data, const uint8_t *buf, int len, int count) -{ - struct ast_channel *chan = (struct ast_channel *) user_data; - - struct ast_frame outf = { - .frametype = AST_FRAME_MODEM, - .subclass = AST_MODEM_T38, - .src = __FUNCTION__, - }; - - /* TODO: Asterisk does not provide means of resending the same packet multiple - times so count is ignored at the moment */ - - AST_FRAME_SET_BUFFER(&outf, buf, 0, len); - - if (ast_write(chan, &outf) < 0) { - ast_log(LOG_WARNING, "Unable to write frame to channel; %s\n", strerror(errno)); - return -1; - } - - return 0; -} - -static void phase_e_handler(t30_state_t *f, void *user_data, int result) -{ - const char *local_ident; - const char *far_ident; - char buf[20]; - fax_session *s = (fax_session *) user_data; - t30_stats_t stat; - - ast_debug(1, "Fax phase E handler. result=%d\n", result); - - t30_get_transfer_statistics(f, &stat); - - s = (fax_session *) user_data; - - if (result != T30_ERR_OK) { - s->finished = -1; - - /* FAXSTATUS is already set to FAILED */ - pbx_builtin_setvar_helper(s->chan, "FAXERROR", t30_completion_code_to_str(result)); - - ast_log(LOG_WARNING, "Error transmitting fax. result=%d: %s.\n", result, t30_completion_code_to_str(result)); - - return; - } - - s->finished = 1; - - local_ident = t30_get_tx_ident(f); - far_ident = t30_get_rx_ident(f); - pbx_builtin_setvar_helper(s->chan, "FAXSTATUS", "SUCCESS"); - pbx_builtin_setvar_helper(s->chan, "FAXERROR", NULL); - pbx_builtin_setvar_helper(s->chan, "REMOTESTATIONID", far_ident); - snprintf(buf, sizeof(buf), "%d", stat.pages_transferred); - pbx_builtin_setvar_helper(s->chan, "FAXPAGES", buf); - snprintf(buf, sizeof(buf), "%d", stat.y_resolution); - pbx_builtin_setvar_helper(s->chan, "FAXRESOLUTION", buf); - snprintf(buf, sizeof(buf), "%d", stat.bit_rate); - pbx_builtin_setvar_helper(s->chan, "FAXBITRATE", buf); - - ast_debug(1, "Fax transmitted successfully.\n"); - ast_debug(1, " Remote station ID: %s\n", far_ident); - ast_debug(1, " Pages transferred: %d\n", stat.pages_transferred); - ast_debug(1, " Image resolution: %d x %d\n", stat.x_resolution, stat.y_resolution); - ast_debug(1, " Transfer Rate: %d\n", stat.bit_rate); - - manager_event(EVENT_FLAG_CALL, - s->direction ? "FaxSent" : "FaxReceived", - "Channel: %s\r\n" - "Exten: %s\r\n" - "CallerID: %s\r\n" - "RemoteStationID: %s\r\n" - "LocalStationID: %s\r\n" - "PagesTransferred: %d\r\n" - "Resolution: %d\r\n" - "TransferRate: %d\r\n" - "FileName: %s\r\n", - s->chan->name, - s->chan->exten, - S_OR(s->chan->cid.cid_num, ""), - far_ident, - local_ident, - stat.pages_transferred, - stat.y_resolution, - stat.bit_rate, - s->file_name); -} - -/* === Helper functions to configure fax === */ - -/* Setup SPAN logging according to Asterisk debug level */ -static int set_logging(logging_state_t *state) -{ - int level = SPAN_LOG_WARNING + option_debug; - - span_log_set_message_handler(state, span_message); - span_log_set_level(state, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | level); - - return 0; -} - -static void set_local_info(t30_state_t *state, fax_session *s) -{ - const char *x; - - x = pbx_builtin_getvar_helper(s->chan, "LOCALSTATIONID"); - if (!ast_strlen_zero(x)) - t30_set_tx_ident(state, x); - - x = pbx_builtin_getvar_helper(s->chan, "LOCALHEADERINFO"); - if (!ast_strlen_zero(x)) - t30_set_tx_page_header_info(state, x); -} - -static void set_file(t30_state_t *state, fax_session *s) -{ - if (s->direction) - t30_set_tx_file(state, s->file_name, -1, -1); - else - t30_set_rx_file(state, s->file_name, -1); -} - -static void set_ecm(t30_state_t *state, int ecm) -{ - t30_set_ecm_capability(state, ecm); - t30_set_supported_compressions(state, T30_SUPPORT_T4_1D_COMPRESSION | T30_SUPPORT_T4_2D_COMPRESSION | T30_SUPPORT_T6_COMPRESSION); -} - -/* === Generator === */ - -/* This function is only needed to return passed params so - generator_activate will save it to channel's generatordata */ -static void *fax_generator_alloc(struct ast_channel *chan, void *params) -{ - return params; -} - -static int fax_generator_generate(struct ast_channel *chan, void *data, int len, int samples) -{ - fax_state_t *fax = (fax_state_t*) data; - uint8_t buffer[AST_FRIENDLY_OFFSET + MAX_SAMPLES * sizeof(uint16_t)]; - int16_t *buf = (int16_t *) (buffer + AST_FRIENDLY_OFFSET); - - struct ast_frame outf = { - .frametype = AST_FRAME_VOICE, - .subclass = AST_FORMAT_SLINEAR, - .src = __FUNCTION__, - }; - - if (samples > MAX_SAMPLES) { - ast_log(LOG_WARNING, "Only generating %d samples, where %d requested\n", MAX_SAMPLES, samples); - samples = MAX_SAMPLES; - } - - if ((len = fax_tx(fax, buf, samples)) > 0) { - outf.samples = len; - AST_FRAME_SET_BUFFER(&outf, buffer, AST_FRIENDLY_OFFSET, len * sizeof(int16_t)); - - if (ast_write(chan, &outf) < 0) { - ast_log(LOG_WARNING, "Failed to write frame to '%s': %s\n", chan->name, strerror(errno)); - return -1; - } - } - - return 0; -} - -struct ast_generator generator = { - alloc: fax_generator_alloc, - generate: fax_generator_generate, -}; - - -/* === Transmission === */ - -static int transmit_audio(fax_session *s) -{ - int res = -1; - int original_read_fmt = AST_FORMAT_SLINEAR; - int original_write_fmt = AST_FORMAT_SLINEAR; - fax_state_t fax; - struct ast_dsp *dsp = NULL; - int detect_tone = 0; - struct ast_frame *inf = NULL; - struct ast_frame *fr; - int last_state = 0; - struct timeval now, start, state_change; - enum ast_control_t38 t38control; - - original_read_fmt = s->chan->readformat; - if (original_read_fmt != AST_FORMAT_SLINEAR) { - res = ast_set_read_format(s->chan, AST_FORMAT_SLINEAR); - if (res < 0) { - ast_log(LOG_WARNING, "Unable to set to linear read mode, giving up\n"); - goto done; - } - } - - original_write_fmt = s->chan->writeformat; - if (original_write_fmt != AST_FORMAT_SLINEAR) { - res = ast_set_write_format(s->chan, AST_FORMAT_SLINEAR); - if (res < 0) { - ast_log(LOG_WARNING, "Unable to set to linear write mode, giving up\n"); - goto done; - } - } - - /* Initialize T30 terminal */ - fax_init(&fax, s->caller_mode); - - /* Setup logging */ - set_logging(&fax.logging); - set_logging(&fax.t30_state.logging); - - /* Configure terminal */ - set_local_info(&fax.t30_state, s); - set_file(&fax.t30_state, s); - set_ecm(&fax.t30_state, TRUE); - - fax_set_transmit_on_idle(&fax, TRUE); - - t30_set_phase_e_handler(&fax.t30_state, phase_e_handler, s); - - if (s->t38state == T38_STATE_UNAVAILABLE) { - ast_debug(1, "T38 is unavailable on %s\n", s->chan->name); - } else if (!s->direction) { - /* We are receiving side and this means we are the side which should - request T38 when the fax is detected. Use DSP to detect fax tone */ - ast_debug(1, "Setting up CNG detection on %s\n", s->chan->name); - dsp = ast_dsp_new(); - ast_dsp_set_features(dsp, DSP_FEATURE_FAX_DETECT); - ast_dsp_set_faxmode(dsp, DSP_FAXMODE_DETECT_CNG); - detect_tone = 1; - } - - start = state_change = ast_tvnow(); - - ast_activate_generator(s->chan, &generator, &fax); - - while (!s->finished) { - res = ast_waitfor(s->chan, 20); - if (res < 0) - break; - else if (res > 0) - res = 0; - - inf = ast_read(s->chan); - if (inf == NULL) { - ast_debug(1, "Channel hangup\n"); - res = -1; - break; - } - - ast_debug(10, "frame %d/%d, len=%d\n", inf->frametype, inf->subclass, inf->datalen); - - /* Detect fax tone */ - if (detect_tone && inf->frametype == AST_FRAME_VOICE) { - /* Duplicate frame because ast_dsp_process may free the frame passed */ - fr = ast_frdup(inf); - - /* Do not pass channel to ast_dsp_process otherwise it may queue modified audio frame back */ - fr = ast_dsp_process(NULL, dsp, fr); - if (fr && fr->frametype == AST_FRAME_DTMF && fr->subclass == 'f') { - ast_debug(1, "Fax tone detected. Requesting T38\n"); - t38control = AST_T38_REQUEST_NEGOTIATE; - ast_indicate_data(s->chan, AST_CONTROL_T38, &t38control, sizeof(t38control)); - detect_tone = 0; - } - - ast_frfree(fr); - } - - - /* Check the frame type. Format also must be checked because there is a chance - that a frame in old format was already queued before we set chanel format - to slinear so it will still be received by ast_read */ - if (inf->frametype == AST_FRAME_VOICE && inf->subclass == AST_FORMAT_SLINEAR) { - - if (fax_rx(&fax, inf->data.ptr, inf->samples) < 0) { - /* I know fax_rx never returns errors. The check here is for good style only */ - ast_log(LOG_WARNING, "fax_rx returned error\n"); - res = -1; - break; - } - - /* Watchdog */ - if (last_state != fax.t30_state.state) { - state_change = ast_tvnow(); - last_state = fax.t30_state.state; - } - } else if (inf->frametype == AST_FRAME_CONTROL && inf->subclass == AST_CONTROL_T38 && - inf->datalen == sizeof(enum ast_control_t38)) { - t38control =*((enum ast_control_t38 *) inf->data.ptr); - if (t38control == AST_T38_NEGOTIATED) { - /* T38 switchover completed */ - ast_debug(1, "T38 negotiated, finishing audio loop\n"); - res = 1; - break; - } - } - - ast_frfree(inf); - inf = NULL; - - /* Watchdog */ - now = ast_tvnow(); - if (ast_tvdiff_sec(now, start) > WATCHDOG_TOTAL_TIMEOUT || ast_tvdiff_sec(now, state_change) > WATCHDOG_STATE_TIMEOUT) { - ast_log(LOG_WARNING, "It looks like we hung. Aborting.\n"); - res = -1; - break; - } - } - - ast_debug(1, "Loop finished, res=%d\n", res); - - if (inf) - ast_frfree(inf); - - if (dsp) - ast_dsp_free(dsp); - - ast_deactivate_generator(s->chan); - - /* Remove phase E handler because we do not want it to be executed - only because we called t30_terminate */ - t30_set_phase_e_handler(&fax.t30_state, NULL, NULL); - - t30_terminate(&fax.t30_state); - fax_release(&fax); - -done: - if (original_write_fmt != AST_FORMAT_SLINEAR) { - if (ast_set_write_format(s->chan, original_write_fmt) < 0) - ast_log(LOG_WARNING, "Unable to restore write format on '%s'\n", s->chan->name); - } - - if (original_read_fmt != AST_FORMAT_SLINEAR) { - if (ast_set_read_format(s->chan, original_read_fmt) < 0) - ast_log(LOG_WARNING, "Unable to restore read format on '%s'\n", s->chan->name); - } - - return res; - -} - -static int transmit_t38(fax_session *s) -{ - int res = 0; - t38_terminal_state_t t38; - struct ast_frame *inf = NULL; - int last_state = 0; - struct timeval now, start, state_change, last_frame; - enum ast_control_t38 t38control; - - /* Initialize terminal */ - memset(&t38, 0, sizeof(t38)); - if (t38_terminal_init(&t38, s->caller_mode, t38_tx_packet_handler, s->chan) == NULL) { - ast_log(LOG_WARNING, "Unable to start T.38 termination.\n"); - return -1; - } - - /* Setup logging */ - set_logging(&t38.logging); - set_logging(&t38.t30_state.logging); - set_logging(&t38.t38.logging); - - /* Configure terminal */ - set_local_info(&t38.t30_state, s); - set_file(&t38.t30_state, s); - set_ecm(&t38.t30_state, TRUE); - - t30_set_phase_e_handler(&t38.t30_state, phase_e_handler, s); - - now = start = state_change = ast_tvnow(); - - while (!s->finished) { - - res = ast_waitfor(s->chan, 20); - if (res < 0) - break; - else if (res > 0) - res = 0; - - last_frame = now; - now = ast_tvnow(); - t38_terminal_send_timeout(&t38, ast_tvdiff_us(now, last_frame) / (1000000 / 8000)); - - inf = ast_read(s->chan); - if (inf == NULL) { - ast_debug(1, "Channel hangup\n"); - res = -1; - break; - } - - ast_debug(10, "frame %d/%d, len=%d\n", inf->frametype, inf->subclass, inf->datalen); - - if (inf->frametype == AST_FRAME_MODEM && inf->subclass == AST_MODEM_T38) { - t38_core_rx_ifp_packet(&t38.t38, inf->data.ptr, inf->datalen, inf->seqno); - - /* Watchdog */ - if (last_state != t38.t30_state.state) { - state_change = ast_tvnow(); - last_state = t38.t30_state.state; - } - } else if (inf->frametype == AST_FRAME_CONTROL && inf->subclass == AST_CONTROL_T38 && - inf->datalen == sizeof(enum ast_control_t38)) { - - t38control = *((enum ast_control_t38 *) inf->data.ptr); - - if (t38control == AST_T38_TERMINATED || t38control == AST_T38_REFUSED) { - ast_debug(1, "T38 down, terminating\n"); - res = -1; - break; - } - } - - ast_frfree(inf); - inf = NULL; - - /* Watchdog */ - if (ast_tvdiff_sec(now, start) > WATCHDOG_TOTAL_TIMEOUT || ast_tvdiff_sec(now, state_change) > WATCHDOG_STATE_TIMEOUT) { - ast_log(LOG_WARNING, "It looks like we hung. Aborting.\n"); - res = -1; - break; - } - } - - ast_debug(1, "Loop finished, res=%d\n", res); - - if (inf) - ast_frfree(inf); - - /* Remove phase E handler because we do not want it to be executed - only because we called t30_terminate */ - t30_set_phase_e_handler(&t38.t30_state, NULL, NULL); - - t30_terminate(&t38.t30_state); - - return res; -} - -static int transmit(fax_session *s) -{ - int res = 0; - - /* Clear all channel variables which to be set by the application. - Pre-set status to error so in case of any problems we can just leave */ - pbx_builtin_setvar_helper(s->chan, "FAXSTATUS", "FAILED"); - pbx_builtin_setvar_helper(s->chan, "FAXERROR", "Channel problems"); - - pbx_builtin_setvar_helper(s->chan, "REMOTESTATIONID", NULL); - pbx_builtin_setvar_helper(s->chan, "FAXPAGES", NULL); - pbx_builtin_setvar_helper(s->chan, "FAXRESOLUTION", NULL); - pbx_builtin_setvar_helper(s->chan, "FAXBITRATE", NULL); - - if (s->chan->_state != AST_STATE_UP) { - /* Shouldn't need this, but checking to see if channel is already answered - * Theoretically asterisk should already have answered before running the app */ - res = ast_answer(s->chan); - if (res) { - ast_log(LOG_WARNING, "Could not answer channel '%s'\n", s->chan->name); - return res; - } - } - - s->t38state = ast_channel_get_t38_state(s->chan); - if (s->t38state != T38_STATE_NEGOTIATED) { - /* T38 is not negotiated on the channel yet. First start regular transmission. If it switches to T38, follow */ - res = transmit_audio(s); - if (res > 0) { - /* transmit_audio reports switchover to T38. Update t38state */ - s->t38state = ast_channel_get_t38_state(s->chan); - if (s->t38state != T38_STATE_NEGOTIATED) { - ast_log(LOG_ERROR, "Audio loop reports T38 switchover but t38state != T38_STATE_NEGOTIATED\n"); - } - } - } - - if (s->t38state == T38_STATE_NEGOTIATED) { - res = transmit_t38(s); - } - - if (res) { - ast_log(LOG_WARNING, "Transmission error\n"); - res = -1; - } else if (s->finished < 0) { - ast_log(LOG_WARNING, "Transmission failed\n"); - } else if (s->finished > 0) { - ast_debug(1, "Transmission finished Ok\n"); - } - - return res; -} - -/* === Application functions === */ - -static int sndfax_exec(struct ast_channel *chan, void *data) -{ - int res = 0; - char *parse; - fax_session session; - - AST_DECLARE_APP_ARGS(args, - AST_APP_ARG(file_name); - AST_APP_ARG(options); - ); - - if (chan == NULL) { - ast_log(LOG_ERROR, "Fax channel is NULL. Giving up.\n"); - return -1; - } - - /* The next few lines of code parse out the filename and header from the input string */ - if (ast_strlen_zero(data)) { - /* No data implies no filename or anything is present */ - ast_log(LOG_ERROR, "SendFAX requires an argument (filename)\n"); - return -1; - } - - parse = ast_strdupa(data); - AST_STANDARD_APP_ARGS(args, parse); - - session.caller_mode = TRUE; - - if (args.options) { - if (strchr(args.options, 'a')) - session.caller_mode = FALSE; - } - - /* Done parsing */ - session.direction = 1; - session.file_name = args.file_name; - session.chan = chan; - session.finished = 0; - - res = transmit(&session); - - return res; -} - -static int rcvfax_exec(struct ast_channel *chan, void *data) -{ - int res = 0; - char *parse; - fax_session session; - - AST_DECLARE_APP_ARGS(args, - AST_APP_ARG(file_name); - AST_APP_ARG(options); - ); - - if (chan == NULL) { - ast_log(LOG_ERROR, "Fax channel is NULL. Giving up.\n"); - return -1; - } - - /* The next few lines of code parse out the filename and header from the input string */ - if (ast_strlen_zero(data)) { - /* No data implies no filename or anything is present */ - ast_log(LOG_ERROR, "ReceiveFAX requires an argument (filename)\n"); - return -1; - } - - parse = ast_strdupa(data); - AST_STANDARD_APP_ARGS(args, parse); - - session.caller_mode = FALSE; - - if (args.options) { - if (strchr(args.options, 'c')) - session.caller_mode = TRUE; - } - - /* Done parsing */ - session.direction = 0; - session.file_name = args.file_name; - session.chan = chan; - session.finished = 0; - - res = transmit(&session); - - return res; -} - -static int unload_module(void) -{ - int res; - - res = ast_unregister_application(app_sndfax_name); - res |= ast_unregister_application(app_rcvfax_name); - - return res; -} - -static int load_module(void) -{ - int res ; - - res = ast_register_application(app_sndfax_name, sndfax_exec, app_sndfax_synopsis, app_sndfax_desc); - res |= ast_register_application(app_rcvfax_name, rcvfax_exec, app_rcvfax_synopsis, app_rcvfax_desc); - - /* The default SPAN message handler prints to stderr. It is something we do not want */ - span_set_message_handler(NULL); - - return res; -} - - -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Simple FAX Application", - .load = load_module, - .unload = unload_module, - ); - - diff --git a/apps/app_flash.c b/apps/app_flash.c index d57feeb91..dd13f414f 100644 --- a/apps/app_flash.c +++ b/apps/app_flash.c @@ -18,7 +18,7 @@ /*! \file * - * \brief App to flash a zap trunk + * \brief App to flash a DAHDI trunk * * \author Mark Spencer <markster@digium.com> * @@ -26,14 +26,14 @@ */ /*** MODULEINFO - <depend>zaptel</depend> + <depend>dahdi</depend> ***/ #include "asterisk.h" ASTERISK_FILE_VERSION(__FILE__, "$Revision$") -#include "asterisk/zapata.h" +#include "asterisk/dahdi.h" #include "asterisk/lock.h" #include "asterisk/file.h" @@ -45,22 +45,22 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") static char *app = "Flash"; -static char *synopsis = "Flashes a Zap Trunk"; +static char *synopsis = "Flashes a DAHDI Trunk"; static char *descrip = -"Performs a flash on a zap trunk. This can be used\n" +"Performs a flash on a DAHDI trunk. This can be used\n" "to access features provided on an incoming analogue circuit\n" "such as conference and call waiting. Use with SendDTMF() to\n" "perform external transfers\n"; -static inline int zt_wait_event(int fd) +static inline int dahdi_wait_event(int fd) { - /* Avoid the silly zt_waitevent which ignores a bunch of events */ + /* Avoid the silly dahdi_waitevent which ignores a bunch of events */ int i,j=0; - i = ZT_IOMUX_SIGEVENT; - if (ioctl(fd, ZT_IOMUX, &i) == -1) return -1; - if (ioctl(fd, ZT_GETEVENT, &j) == -1) return -1; + i = DAHDI_IOMUX_SIGEVENT; + if (ioctl(fd, DAHDI_IOMUX, &i) == -1) return -1; + if (ioctl(fd, DAHDI_GETEVENT, &j) == -1) return -1; return j; } @@ -68,23 +68,23 @@ static int flash_exec(struct ast_channel *chan, void *data) { int res = -1; int x; - struct zt_params ztp; + struct dahdi_params dahdip; - if (strcasecmp(chan->tech->type, "Zap")) { - ast_log(LOG_WARNING, "%s is not a Zap channel\n", chan->name); + if (strcasecmp(chan->tech->type, "DAHDI")) { + ast_log(LOG_WARNING, "%s is not a DAHDI channel\n", chan->name); return -1; } - memset(&ztp, 0, sizeof(ztp)); - res = ioctl(chan->fds[0], ZT_GET_PARAMS, &ztp); + memset(&dahdip, 0, sizeof(dahdip)); + res = ioctl(chan->fds[0], DAHDI_GET_PARAMS, &dahdip); if (!res) { - if (ztp.sigtype & __ZT_SIG_FXS) { - x = ZT_FLASH; - res = ioctl(chan->fds[0], ZT_HOOK, &x); + if (dahdip.sigtype & __DAHDI_SIG_FXS) { + x = DAHDI_FLASH; + res = ioctl(chan->fds[0], DAHDI_HOOK, &x); if (!res || (errno == EINPROGRESS)) { if (res) { /* Wait for the event to finish */ - zt_wait_event(chan->fds[0]); + dahdi_wait_event(chan->fds[0]); } res = ast_safe_sleep(chan, 1000); ast_verb(3, "Flashed channel %s\n", chan->name); diff --git a/apps/app_getcpeid.c b/apps/app_getcpeid.c index 1bab819b7..6ff051899 100644 --- a/apps/app_getcpeid.c +++ b/apps/app_getcpeid.c @@ -42,7 +42,7 @@ static char *synopsis = "Get ADSI CPE ID"; static char *descrip = " GetCPEID(): Obtains and displays ADSI CPE ID and other information in order\n" -"to properly setup zapata.conf for on-hook operations.\n"; +"to properly setup dahdi.conf for on-hook operations.\n"; static int cpeid_setstatus(struct ast_channel *chan, char *stuff[], int voice) diff --git a/apps/app_meetme.c b/apps/app_meetme.c index 8b017ffda..fc0a08ae0 100644 --- a/apps/app_meetme.c +++ b/apps/app_meetme.c @@ -30,14 +30,14 @@ */ /*** MODULEINFO - <depend>zaptel</depend> + <depend>dahdi</depend> ***/ #include "asterisk.h" ASTERISK_FILE_VERSION(__FILE__, "$Revision$") -#include "asterisk/zapata.h" +#include "asterisk/dahdi.h" #include "asterisk/lock.h" #include "asterisk/file.h" @@ -228,15 +228,15 @@ static const char *descrip = "conference. If the conference number is omitted, the user will be prompted\n" "to enter one. User can exit the conference by hangup, or if the 'p' option\n" "is specified, by pressing '#'.\n" -"Please note: The Zaptel kernel modules and at least one hardware driver (or ztdummy)\n" -" must be present for conferencing to operate properly. In addition, the chan_zap\n" +"Please note: The DAHDI kernel modules and at least one hardware driver (or dahdi_dummy)\n" +" must be present for conferencing to operate properly. In addition, the chan_dahdi\n" " channel driver must be loaded for the 'i' and 'r' options to operate at all.\n\n" "The option string may contain zero or more of the following characters:\n" " 'a' -- set admin mode\n" " 'A' -- set marked mode\n" " 'b' -- run AGI script specified in ${MEETME_AGI_BACKGROUND}\n" " Default: conf-background.agi (Note: This does not work with\n" -" non-Zap channels in the same conference)\n" +" non-DAHDI channels in the same conference)\n" " 'c' -- announce user(s) count on joining a conference\n" " 'C' -- continue in dialplan when kicked out of conference\n" " 'd' -- dynamically add conference\n" @@ -361,7 +361,7 @@ struct ast_conference { struct ast_channel *chan; /*!< Announcements channel */ struct ast_channel *lchan; /*!< Listen/Record channel */ int fd; /*!< Announcements fd */ - int zapconf; /*!< Zaptel Conf # */ + int dahdiconf; /*!< DAHDI Conf # */ int users; /*!< Number of active users */ int markedusers; /*!< Number of marked users */ int maxusers; /*!< Participant limit if scheduled */ @@ -403,7 +403,7 @@ struct ast_conf_user { int adminflags; /*!< Flags set by the Admin */ struct ast_channel *chan; /*!< Connected channel */ int talking; /*!< Is user talking */ - int zapchannel; /*!< Is a Zaptel channel */ + int dahdichannel; /*!< Is a DAHDI channel */ char usrvalue[50]; /*!< Custom User Value */ char namerecloc[PATH_MAX]; /*!< Name Recorded file Location */ time_t jointime; /*!< Time the user joined the conference */ @@ -639,8 +639,8 @@ static int careful_write(int fd, unsigned char *data, int len, int block) while (len) { if (block) { - x = ZT_IOMUX_WRITE | ZT_IOMUX_SIGEVENT; - res = ioctl(fd, ZT_IOMUX, &x); + x = DAHDI_IOMUX_WRITE | DAHDI_IOMUX_SIGEVENT; + res = ioctl(fd, DAHDI_IOMUX, &x); } else res = 0; if (res >= 0) @@ -801,7 +801,7 @@ static void conf_play(struct ast_channel *chan, struct ast_conference *conf, enu static struct ast_conference *build_conf(char *confno, char *pin, char *pinadmin, int make, int dynamic, int refcount, const struct ast_channel *chan) { struct ast_conference *cnf; - struct zt_confinfo ztc = { 0, }; + struct dahdi_confinfo dahdic = { 0, }; int confno_int = 0; AST_LIST_LOCK(&confs); @@ -827,11 +827,11 @@ static struct ast_conference *build_conf(char *confno, char *pin, char *pinadmin ast_copy_string(cnf->pinadmin, pinadmin, sizeof(cnf->pinadmin)); ast_copy_string(cnf->uniqueid, chan->uniqueid, sizeof(cnf->uniqueid)); - /* Setup a new zap conference */ - ztc.confno = -1; - ztc.confmode = ZT_CONF_CONFANN | ZT_CONF_CONFANNMON; - cnf->fd = open("/dev/zap/pseudo", O_RDWR); - if (cnf->fd < 0 || ioctl(cnf->fd, ZT_SETCONF, &ztc)) { + /* Setup a new dahdi conference */ + dahdic.confno = -1; + dahdic.confmode = DAHDI_CONF_CONFANN | DAHDI_CONF_CONFANNMON; + cnf->fd = open("/dev/dahdi/pseudo", O_RDWR); + if (cnf->fd < 0 || ioctl(cnf->fd, DAHDI_SETCONF, &dahdic)) { ast_log(LOG_WARNING, "Unable to open pseudo device\n"); if (cnf->fd >= 0) close(cnf->fd); @@ -840,17 +840,17 @@ static struct ast_conference *build_conf(char *confno, char *pin, char *pinadmin goto cnfout; } - cnf->zapconf = ztc.confno; + cnf->dahdiconf = dahdic.confno; /* Setup a new channel for playback of audio files */ - cnf->chan = ast_request("zap", AST_FORMAT_SLINEAR, "pseudo", NULL); + cnf->chan = ast_request("DAHDI", AST_FORMAT_SLINEAR, "pseudo", NULL); if (cnf->chan) { ast_set_read_format(cnf->chan, AST_FORMAT_SLINEAR); ast_set_write_format(cnf->chan, AST_FORMAT_SLINEAR); - ztc.chan = 0; - ztc.confno = cnf->zapconf; - ztc.confmode = ZT_CONF_CONFANN | ZT_CONF_CONFANNMON; - if (ioctl(cnf->chan->fds[0], ZT_SETCONF, &ztc)) { + dahdic.chan = 0; + dahdic.confno = cnf->dahdiconf; + dahdic.confmode = DAHDI_CONF_CONFANN | DAHDI_CONF_CONFANNMON; + if (ioctl(cnf->chan->fds[0], DAHDI_SETCONF, &dahdic)) { ast_log(LOG_WARNING, "Error setting conference\n"); if (cnf->chan) ast_hangup(cnf->chan); @@ -867,7 +867,7 @@ static struct ast_conference *build_conf(char *confno, char *pin, char *pinadmin cnf->start = time(NULL); cnf->maxusers = 0x7fffffff; cnf->isdynamic = dynamic ? 1 : 0; - ast_verb(3, "Created MeetMe conference %d for conference '%s'\n", cnf->zapconf, cnf->confno); + ast_verb(3, "Created MeetMe conference %d for conference '%s'\n", cnf->dahdiconf, cnf->confno); AST_LIST_INSERT_HEAD(&confs, cnf, list); /* Reserve conference number in map */ @@ -1309,8 +1309,8 @@ static void conf_flush(int fd, struct ast_channel *chan) } /* flush any data sitting in the pseudo channel */ - x = ZT_FLUSH_ALL; - if (ioctl(fd, ZT_FLUSH, &x)) + x = DAHDI_FLUSH_ALL; + if (ioctl(fd, DAHDI_FLUSH, &x)) ast_log(LOG_WARNING, "Error flushing channel\n"); } @@ -1484,7 +1484,7 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c struct ast_conf_user *user = NULL; struct ast_conf_user *usr = NULL; int fd; - struct zt_confinfo ztc, ztc_empty; + struct dahdi_confinfo dahdic, dahdic_empty; struct ast_frame *f; struct ast_channel *c; struct ast_frame fr; @@ -1493,7 +1493,7 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c int nfds; int res; int flags; - int retryzap; + int retrydahdi; int origfd; int musiconhold = 0; int firstpass = 0; @@ -1520,7 +1520,7 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c char members[10] = ""; int dtmf, opt_waitmarked_timeout = 0; time_t timeout = 0; - ZT_BUFFERINFO bi; + DAHDI_BUFFERINFO bi; char __buf[CONF_SIZE + AST_FRIENDLY_OFFSET]; char *buf = __buf + AST_FRIENDLY_OFFSET; char *exitkeys = NULL; @@ -1645,13 +1645,13 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c } ast_mutex_lock(&conf->recordthreadlock); - if ((conf->recordthread == AST_PTHREADT_NULL) && (confflags & CONFFLAG_RECORDCONF) && ((conf->lchan = ast_request("zap", AST_FORMAT_SLINEAR, "pseudo", NULL)))) { + if ((conf->recordthread == AST_PTHREADT_NULL) && (confflags & CONFFLAG_RECORDCONF) && ((conf->lchan = ast_request("DAHDI", AST_FORMAT_SLINEAR, "pseudo", NULL)))) { ast_set_read_format(conf->lchan, AST_FORMAT_SLINEAR); ast_set_write_format(conf->lchan, AST_FORMAT_SLINEAR); - ztc.chan = 0; - ztc.confno = conf->zapconf; - ztc.confmode = ZT_CONF_CONFANN | ZT_CONF_CONFANNMON; - if (ioctl(conf->lchan->fds[0], ZT_SETCONF, &ztc)) { + dahdic.chan = 0; + dahdic.confno = conf->dahdiconf; + dahdic.confmode = DAHDI_CONF_CONFANN | DAHDI_CONF_CONFANNMON; + if (ioctl(conf->lchan->fds[0], DAHDI_SETCONF, &dahdic)) { ast_log(LOG_WARNING, "Error starting listen channel\n"); ast_hangup(conf->lchan); conf->lchan = NULL; @@ -1832,13 +1832,13 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c goto outrun; } - retryzap = (strcasecmp(chan->tech->type, "Zap") || (chan->audiohooks || chan->monitor) ? 1 : 0); - user->zapchannel = !retryzap; + retrydahdi = (strcasecmp(chan->tech->type, "DAHDI") || (chan->audiohooks || chan->monitor) ? 1 : 0); + user->dahdichannel = !retrydahdi; - zapretry: + dahdiretry: origfd = chan->fds[0]; - if (retryzap) { - fd = open("/dev/zap/pseudo", O_RDWR); + if (retrydahdi) { + fd = open("/dev/dahdi/pseudo", O_RDWR); if (fd < 0) { ast_log(LOG_WARNING, "Unable to open pseudo channel: %s\n", strerror(errno)); goto outrun; @@ -1859,16 +1859,16 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c /* Setup buffering information */ memset(&bi, 0, sizeof(bi)); bi.bufsize = CONF_SIZE / 2; - bi.txbufpolicy = ZT_POLICY_IMMEDIATE; - bi.rxbufpolicy = ZT_POLICY_IMMEDIATE; + bi.txbufpolicy = DAHDI_POLICY_IMMEDIATE; + bi.rxbufpolicy = DAHDI_POLICY_IMMEDIATE; bi.numbufs = audio_buffers; - if (ioctl(fd, ZT_SET_BUFINFO, &bi)) { + if (ioctl(fd, DAHDI_SET_BUFINFO, &bi)) { ast_log(LOG_WARNING, "Unable to set buffering information: %s\n", strerror(errno)); close(fd); goto outrun; } x = 1; - if (ioctl(fd, ZT_SETLINEAR, &x)) { + if (ioctl(fd, DAHDI_SETLINEAR, &x)) { ast_log(LOG_WARNING, "Unable to set linear mode: %s\n", strerror(errno)); close(fd); goto outrun; @@ -1879,27 +1879,27 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c fd = chan->fds[0]; nfds = 0; } - memset(&ztc, 0, sizeof(ztc)); - memset(&ztc_empty, 0, sizeof(ztc_empty)); + memset(&dahdic, 0, sizeof(dahdic)); + memset(&dahdic_empty, 0, sizeof(dahdic_empty)); /* Check to see if we're in a conference... */ - ztc.chan = 0; - if (ioctl(fd, ZT_GETCONF, &ztc)) { + dahdic.chan = 0; + if (ioctl(fd, DAHDI_GETCONF, &dahdic)) { ast_log(LOG_WARNING, "Error getting conference\n"); close(fd); goto outrun; } - if (ztc.confmode) { + if (dahdic.confmode) { /* Whoa, already in a conference... Retry... */ - if (!retryzap) { - ast_debug(1, "Zap channel is in a conference already, retrying with pseudo\n"); - retryzap = 1; - goto zapretry; + if (!retrydahdi) { + ast_debug(1, "DAHDI channel is in a conference already, retrying with pseudo\n"); + retrydahdi = 1; + goto dahdiretry; } } - memset(&ztc, 0, sizeof(ztc)); + memset(&dahdic, 0, sizeof(dahdic)); /* Add us to the conference */ - ztc.chan = 0; - ztc.confno = conf->zapconf; + dahdic.chan = 0; + dahdic.confno = conf->dahdiconf; ast_mutex_lock(&conf->playlock); @@ -1913,21 +1913,21 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c } if (confflags & CONFFLAG_WAITMARKED && !conf->markedusers) - ztc.confmode = ZT_CONF_CONF; + dahdic.confmode = DAHDI_CONF_CONF; else if (confflags & CONFFLAG_MONITOR) - ztc.confmode = ZT_CONF_CONFMON | ZT_CONF_LISTENER; + dahdic.confmode = DAHDI_CONF_CONFMON | DAHDI_CONF_LISTENER; else if (confflags & CONFFLAG_TALKER) - ztc.confmode = ZT_CONF_CONF | ZT_CONF_TALKER; + dahdic.confmode = DAHDI_CONF_CONF | DAHDI_CONF_TALKER; else - ztc.confmode = ZT_CONF_CONF | ZT_CONF_TALKER | ZT_CONF_LISTENER; + dahdic.confmode = DAHDI_CONF_CONF | DAHDI_CONF_TALKER | DAHDI_CONF_LISTENER; - if (ioctl(fd, ZT_SETCONF, &ztc)) { + if (ioctl(fd, DAHDI_SETCONF, &dahdic)) { ast_log(LOG_WARNING, "Error setting conference\n"); close(fd); ast_mutex_unlock(&conf->playlock); goto outrun; } - ast_debug(1, "Placed channel %s in ZAP conf %d\n", chan->name, conf->zapconf); + ast_debug(1, "Placed channel %s in ZAP conf %d\n", chan->name, conf->dahdiconf); if (!sent_event) { manager_event(EVENT_FLAG_CALL, "MeetmeJoin", @@ -1968,8 +1968,8 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c } ast_channel_unlock(chan); - if (user->zapchannel) { - /* Set CONFMUTE mode on Zap channel to mute DTMF tones */ + if (user->dahdichannel) { + /* Set CONFMUTE mode on DAHDI channel to mute DTMF tones */ x = 1; ast_channel_setoption(chan, AST_OPTION_TONE_VERIFY, &x, sizeof(char), 0); } @@ -1981,14 +1981,14 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c ast_log(LOG_WARNING, "Could not find application (agi)\n"); ret = -2; } - if (user->zapchannel) { - /* Remove CONFMUTE mode on Zap channel */ + if (user->dahdichannel) { + /* Remove CONFMUTE mode on DAHDI channel */ x = 0; ast_channel_setoption(chan, AST_OPTION_TONE_VERIFY, &x, sizeof(char), 0); } } else { - if (user->zapchannel && (confflags & CONFFLAG_STARMENU)) { - /* Set CONFMUTE mode on Zap channel to mute DTMF tones when the menu is enabled */ + if (user->dahdichannel && (confflags & CONFFLAG_STARMENU)) { + /* Set CONFMUTE mode on DAHDI channel to mute DTMF tones when the menu is enabled */ x = 1; ast_channel_setoption(chan, AST_OPTION_TONE_VERIFY, &x, sizeof(char), 0); } @@ -2139,8 +2139,8 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c ret = 0; break; } else { - ztc.confmode = ZT_CONF_CONF; - if (ioctl(fd, ZT_SETCONF, &ztc)) { + dahdic.confmode = DAHDI_CONF_CONF; + if (ioctl(fd, DAHDI_SETCONF, &dahdic)) { ast_log(LOG_WARNING, "Error setting conference\n"); close(fd); goto outrun; @@ -2155,12 +2155,12 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c /* Marked user entered, so cancel timeout */ timeout = 0; if (confflags & CONFFLAG_MONITOR) - ztc.confmode = ZT_CONF_CONFMON | ZT_CONF_LISTENER; + dahdic.confmode = DAHDI_CONF_CONFMON | DAHDI_CONF_LISTENER; else if (confflags & CONFFLAG_TALKER) - ztc.confmode = ZT_CONF_CONF | ZT_CONF_TALKER; + dahdic.confmode = DAHDI_CONF_CONF | DAHDI_CONF_TALKER; else - ztc.confmode = ZT_CONF_CONF | ZT_CONF_TALKER | ZT_CONF_LISTENER; - if (ioctl(fd, ZT_SETCONF, &ztc)) { + dahdic.confmode = DAHDI_CONF_CONF | DAHDI_CONF_TALKER | DAHDI_CONF_LISTENER; + if (ioctl(fd, DAHDI_SETCONF, &dahdic)) { ast_log(LOG_WARNING, "Error setting conference\n"); close(fd); goto outrun; @@ -2204,9 +2204,9 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c /* Check if my modes have changed */ /* If I should be muted but am still talker, mute me */ - if ((user->adminflags & (ADMINFLAG_MUTED | ADMINFLAG_SELFMUTED)) && (ztc.confmode & ZT_CONF_TALKER)) { - ztc.confmode ^= ZT_CONF_TALKER; - if (ioctl(fd, ZT_SETCONF, &ztc)) { + if ((user->adminflags & (ADMINFLAG_MUTED | ADMINFLAG_SELFMUTED)) && (dahdic.confmode & DAHDI_CONF_TALKER)) { + dahdic.confmode ^= DAHDI_CONF_TALKER; + if (ioctl(fd, DAHDI_SETCONF, &dahdic)) { ast_log(LOG_WARNING, "Error setting conference - Un/Mute \n"); ret = -1; break; @@ -2222,9 +2222,9 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c } /* If I should be un-muted but am not talker, un-mute me */ - if (!(user->adminflags & (ADMINFLAG_MUTED | ADMINFLAG_SELFMUTED)) && !(confflags & CONFFLAG_MONITOR) && !(ztc.confmode & ZT_CONF_TALKER)) { - ztc.confmode |= ZT_CONF_TALKER; - if (ioctl(fd, ZT_SETCONF, &ztc)) { + if (!(user->adminflags & (ADMINFLAG_MUTED | ADMINFLAG_SELFMUTED)) && !(confflags & CONFFLAG_MONITOR) && !(dahdic.confmode & DAHDI_CONF_TALKER)) { + dahdic.confmode |= DAHDI_CONF_TALKER; + if (ioctl(fd, DAHDI_SETCONF, &dahdic)) { ast_log(LOG_WARNING, "Error setting conference - Un/Mute \n"); ret = -1; break; @@ -2283,16 +2283,16 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c if (c) { char dtmfstr[2] = ""; - if (c->fds[0] != origfd || (user->zapchannel && (c->audiohooks || c->monitor))) { + if (c->fds[0] != origfd || (user->dahdichannel && (c->audiohooks || c->monitor))) { if (using_pseudo) { /* Kill old pseudo */ close(fd); using_pseudo = 0; } ast_debug(1, "Ooh, something swapped out under us, starting over\n"); - retryzap = (strcasecmp(c->tech->type, "Zap") || (c->audiohooks || c->monitor) ? 1 : 0); - user->zapchannel = !retryzap; - goto zapretry; + retrydahdi = (strcasecmp(c->tech->type, "DAHDI") || (c->audiohooks || c->monitor) ? 1 : 0); + user->dahdichannel = !retrydahdi; + goto dahdiretry; } if ((confflags & CONFFLAG_MONITOR) || (user->adminflags & (ADMINFLAG_MUTED | ADMINFLAG_SELFMUTED))) f = ast_read_noaudio(c); @@ -2358,7 +2358,7 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c } else if (((f->frametype == AST_FRAME_DTMF) && (f->subclass == '*') && (confflags & CONFFLAG_STARMENU)) || ((f->frametype == AST_FRAME_DTMF) && menu_active)) { if (confflags & CONFFLAG_PASS_DTMF) conf_queue_dtmf(conf, user, f); - if (ioctl(fd, ZT_SETCONF, &ztc_empty)) { + if (ioctl(fd, DAHDI_SETCONF, &dahdic_empty)) { ast_log(LOG_WARNING, "Error setting conference\n"); close(fd); ast_frfree(f); @@ -2513,7 +2513,7 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c if (musiconhold) conf_start_moh(chan, optargs[OPT_ARG_MOH_CLASS]); - if (ioctl(fd, ZT_SETCONF, &ztc)) { + if (ioctl(fd, DAHDI_SETCONF, &dahdic)) { ast_log(LOG_WARNING, "Error setting conference\n"); close(fd); ast_frfree(f); @@ -2625,10 +2625,10 @@ bailoutandtrynormal: close(fd); else { /* Take out of conference */ - ztc.chan = 0; - ztc.confno = 0; - ztc.confmode = 0; - if (ioctl(fd, ZT_SETCONF, &ztc)) { + dahdic.chan = 0; + dahdic.confno = 0; + dahdic.confmode = 0; + if (ioctl(fd, DAHDI_SETCONF, &dahdic)) { ast_log(LOG_WARNING, "Error setting conference\n"); } } @@ -2834,13 +2834,13 @@ static struct ast_conference *find_conf_realtime(struct ast_channel *chan, char if (confflags && !cnf->chan && !ast_test_flag(confflags, CONFFLAG_QUIET) && ast_test_flag(confflags, CONFFLAG_INTROUSER)) { - ast_log(LOG_WARNING, "No Zap channel available for conference, user introduction disabled (is chan_zap loaded?)\n"); + ast_log(LOG_WARNING, "No DAHDI channel available for conference, user introduction disabled (is chan_dahdi loaded?)\n"); ast_clear_flag(confflags, CONFFLAG_INTROUSER); } if (confflags && !cnf->chan && ast_test_flag(confflags, CONFFLAG_RECORDCONF)) { - ast_log(LOG_WARNING, "No Zap channel available for conference, conference recording disabled (is chan_zap loaded?)\n"); + ast_log(LOG_WARNING, "No DAHDI channel available for conference, conference recording disabled (is chan_dahdi loaded?)\n"); ast_clear_flag(confflags, CONFFLAG_RECORDCONF); } } @@ -2932,13 +2932,13 @@ static struct ast_conference *find_conf(struct ast_channel *chan, char *confno, if (confflags && !cnf->chan && !ast_test_flag(confflags, CONFFLAG_QUIET) && ast_test_flag(confflags, CONFFLAG_INTROUSER)) { - ast_log(LOG_WARNING, "No Zap channel available for conference, user introduction disabled (is chan_zap loaded?)\n"); + ast_log(LOG_WARNING, "No DAHDI channel available for conference, user introduction disabled (is chan_dahdi loaded?)\n"); ast_clear_flag(confflags, CONFFLAG_INTROUSER); } if (confflags && !cnf->chan && ast_test_flag(confflags, CONFFLAG_RECORDCONF)) { - ast_log(LOG_WARNING, "No Zap channel available for conference, conference recording disabled (is chan_zap loaded?)\n"); + ast_log(LOG_WARNING, "No DAHDI channel available for conference, conference recording disabled (is chan_dahdi loaded?)\n"); ast_clear_flag(confflags, CONFFLAG_RECORDCONF); } } @@ -3722,9 +3722,9 @@ static void load_config_meetme(void) if ((sscanf(val, "%d", &audio_buffers) != 1)) { ast_log(LOG_WARNING, "audiobuffers setting must be a number, not '%s'\n", val); audio_buffers = DEFAULT_AUDIO_BUFFERS; - } else if ((audio_buffers < ZT_DEFAULT_NUM_BUFS) || (audio_buffers > ZT_MAX_NUM_BUFS)) { + } else if ((audio_buffers < DAHDI_DEFAULT_NUM_BUFS) || (audio_buffers > DAHDI_MAX_NUM_BUFS)) { ast_log(LOG_WARNING, "audiobuffers setting must be between %d and %d\n", - ZT_DEFAULT_NUM_BUFS, ZT_MAX_NUM_BUFS); + DAHDI_DEFAULT_NUM_BUFS, DAHDI_MAX_NUM_BUFS); audio_buffers = DEFAULT_AUDIO_BUFFERS; } if (audio_buffers != DEFAULT_AUDIO_BUFFERS) diff --git a/apps/app_page.c b/apps/app_page.c index 5db858ce9..9f94b491d 100644 --- a/apps/app_page.c +++ b/apps/app_page.c @@ -26,7 +26,7 @@ */ /*** MODULEINFO - <depend>zaptel</depend> + <depend>dahdi</depend> <depend>app_meetme</depend> ***/ diff --git a/apps/app_queue.c b/apps/app_queue.c index fef86f318..d8471a1a1 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -529,7 +529,6 @@ static struct ao2_container *queues; static void update_realtime_members(struct call_queue *q); static int set_member_paused(const char *queuename, const char *interface, const char *reason, int paused); -static void queue_transfer_fixup(void *data, struct ast_channel *old_chan, struct ast_channel *new_chan); /*! \brief sets the QUEUESTATUS channel variable */ static void set_queue_result(struct ast_channel *chan, enum queue_result res) { @@ -3043,82 +3042,6 @@ static void send_agent_complete(const struct queue_ent *qe, const char *queuenam qe->parent->eventwhencalled == QUEUE_EVENT_VARIABLES ? vars2manager(qe->chan, vars, vars_len) : ""); } -struct queue_transfer_ds { - struct queue_ent *qe; - struct member *member; - int starttime; -}; - -/*! \brief a datastore used to help correctly log attended transfers of queue callers - */ -static const struct ast_datastore_info queue_transfer_info = { - .type = "queue_transfer", - .chan_fixup = queue_transfer_fixup, -}; - -/*! \brief Log an attended transfer when a queue caller channel is masqueraded - * - * When a caller is masqueraded, we want to log a transfer. Fixup time is the closest we can come to when - * the actual transfer occurs. This happens during the masquerade after datastores are moved from old_chan - * to new_chan. This is why new_chan is referenced for exten, context, and datastore information. - * - * At the end of this, we want to remove the datastore so that this fixup function is not called on any - * future masquerades of the caller during the current call. - */ -static void queue_transfer_fixup(void *data, struct ast_channel *old_chan, struct ast_channel *new_chan) -{ - struct queue_transfer_ds *qtds = data; - struct queue_ent *qe = qtds->qe; - struct member *member = qtds->member; - int callstart = qtds->starttime; - struct ast_datastore *datastore; - - ast_queue_log(qe->parent->name, qe->chan->uniqueid, member->membername, "TRANSFER", "%s|%s|%ld|%ld", - new_chan->exten, new_chan->context, (long) (callstart - qe->start), - (long) (time(NULL) - callstart)); - - if (!(datastore = ast_channel_datastore_find(new_chan, &queue_transfer_info, NULL))) { - ast_log(LOG_WARNING, "Can't find the queue_transfer datastore.\n"); - return; - } - - ast_channel_datastore_remove(new_chan, datastore); -} - -/*! \brief mechanism to tell if a queue caller was atxferred by a queue member. - * - * When a caller is atxferred, then the queue_transfer_info datastore - * is removed from the channel. If it's still there after the bridge is - * broken, then the caller was not atxferred. - */ -static int attended_transfer_occurred(struct ast_channel *chan) -{ - return ast_channel_datastore_find(chan, &queue_transfer_info, NULL) ? 0 : 1; -} - -/*! \brief create a datastore for storing relevant info to log attended transfers in the queue_log - */ -static void setup_transfer_datastore(struct queue_ent *qe, struct member *member, int starttime) -{ - struct ast_datastore *ds; - struct queue_transfer_ds qtds; - - ast_channel_lock(qe->chan); - if (!(ds = ast_channel_datastore_alloc(&queue_transfer_info, NULL))) { - ast_channel_unlock(qe->chan); - ast_log(LOG_WARNING, "Unable to create transfer datastore. queue_log will not show attended transfer\n"); - return; - } - - qtds.qe = qe; - /* This member is refcounted in try_calling, so no need to add it here, too */ - qtds.member = member; - qtds.starttime = starttime; - ds->data = &qtds; - ast_channel_datastore_add(qe->chan, ds); - ast_channel_unlock(qe->chan); -} - /*! \brief A large function which calls members, updates statistics, and bridges the caller and a member * * Here is the process of this function @@ -3396,9 +3319,9 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce /* Ah ha! Someone answered within the desired timeframe. Of course after this we will always return with -1 so that it is hung up properly after the conversation. */ - if (!strcmp(qe->chan->tech->type, "Zap")) + if (!strcmp(qe->chan->tech->type, "DAHDI")) ast_channel_setoption(qe->chan, AST_OPTION_TONE_VERIFY, &nondataquality, sizeof(nondataquality), 0); - if (!strcmp(peer->tech->type, "Zap")) + if (!strcmp(peer->tech->type, "DAHDI")) ast_channel_setoption(peer, AST_OPTION_TONE_VERIFY, &nondataquality, sizeof(nondataquality), 0); /* Update parameters for the queue */ time(&now); @@ -3758,27 +3681,22 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce ast_copy_string(oldcontext, qe->chan->context, sizeof(oldcontext)); ast_copy_string(oldexten, qe->chan->exten, sizeof(oldexten)); time(&callstart); - setup_transfer_datastore(qe, member, callstart); + bridge = ast_bridge_call(qe->chan,peer, &bridge_config); - /* If the queue member did an attended transfer, then the TRANSFER already was logged in the queue_log - * when the masquerade occurred. These other "ending" queue_log messages are unnecessary - */ - if (!attended_transfer_occurred(qe->chan)) { - if (strcasecmp(oldcontext, qe->chan->context) || strcasecmp(oldexten, qe->chan->exten)) { - ast_queue_log(queuename, qe->chan->uniqueid, member->membername, "TRANSFER", "%s|%s|%ld|%ld", - qe->chan->exten, qe->chan->context, (long) (callstart - qe->start), - (long) (time(NULL) - callstart)); - send_agent_complete(qe, queuename, peer, member, callstart, vars, sizeof(vars), TRANSFER); - } else if (ast_check_hangup(qe->chan)) { - ast_queue_log(queuename, qe->chan->uniqueid, member->membername, "COMPLETECALLER", "%ld|%ld|%d", - (long) (callstart - qe->start), (long) (time(NULL) - callstart), qe->opos); - send_agent_complete(qe, queuename, peer, member, callstart, vars, sizeof(vars), CALLER); - } else { - ast_queue_log(queuename, qe->chan->uniqueid, member->membername, "COMPLETEAGENT", "%ld|%ld|%d", - (long) (callstart - qe->start), (long) (time(NULL) - callstart), qe->opos); - send_agent_complete(qe, queuename, peer, member, callstart, vars, sizeof(vars), AGENT); - } + if (strcasecmp(oldcontext, qe->chan->context) || strcasecmp(oldexten, qe->chan->exten)) { + ast_queue_log(queuename, qe->chan->uniqueid, member->membername, "TRANSFER", "%s|%s|%ld|%ld", + qe->chan->exten, qe->chan->context, (long) (callstart - qe->start), + (long) (time(NULL) - callstart)); + send_agent_complete(qe, queuename, peer, member, callstart, vars, sizeof(vars), TRANSFER); + } else if (ast_check_hangup(qe->chan)) { + ast_queue_log(queuename, qe->chan->uniqueid, member->membername, "COMPLETECALLER", "%ld|%ld|%d", + (long) (callstart - qe->start), (long) (time(NULL) - callstart), qe->opos); + send_agent_complete(qe, queuename, peer, member, callstart, vars, sizeof(vars), CALLER); + } else { + ast_queue_log(queuename, qe->chan->uniqueid, member->membername, "COMPLETEAGENT", "%ld|%ld|%d", + (long) (callstart - qe->start), (long) (time(NULL) - callstart), qe->opos); + send_agent_complete(qe, queuename, peer, member, callstart, vars, sizeof(vars), AGENT); } if (bridge != AST_PBX_NO_HANGUP_PEER) diff --git a/apps/app_rpt.c b/apps/app_rpt.c index d34abd4f2..0a8ee0053 100644 --- a/apps/app_rpt.c +++ b/apps/app_rpt.c @@ -152,7 +152,7 @@ */ /*** MODULEINFO - <depend>zaptel</depend> + <depend>dahdi</depend> <depend>tonezone</depend> <defaultenabled>no</defaultenabled> ***/ @@ -763,7 +763,7 @@ static struct rpt int parrottimer; unsigned int parrotcnt; struct ast_channel *rxchannel,*txchannel, *monchannel, *parrotchannel; - struct ast_channel *pchannel,*txpchannel, *zaprxchannel, *zaptxchannel; + struct ast_channel *pchannel,*txpchannel, *dahdirxchannel, *dahditxchannel; struct ast_channel *voxchannel; struct ast_frame *lastf1,*lastf2; struct rpt_tele tele; @@ -3601,13 +3601,13 @@ static struct morse_bits mbits[] = { ast_stopstream(chan); /* - * Wait for the zaptel driver to physically write the tone blocks to the hardware + * Wait for the DAHDI driver to physically write the tone blocks to the hardware */ for(i = 0; i < 20 ; i++){ - flags = ZT_IOMUX_WRITEEMPTY | ZT_IOMUX_NOWAIT; - res = ioctl(chan->fds[0], ZT_IOMUX, &flags); - if(flags & ZT_IOMUX_WRITEEMPTY) + flags = DAHDI_IOMUX_WRITEEMPTY | DAHDI_IOMUX_NOWAIT; + res = ioctl(chan->fds[0], DAHDI_IOMUX, &flags); + if(flags & DAHDI_IOMUX_WRITEEMPTY) break; if( ast_safe_sleep(chan, 50)){ res = -1; @@ -3658,13 +3658,13 @@ static int send_tone_telemetry(struct ast_channel *chan, char *tonestring) ast_stopstream(chan); /* - * Wait for the zaptel driver to physically write the tone blocks to the hardware + * Wait for the DAHDI driver to physically write the tone blocks to the hardware */ for(i = 0; i < 20 ; i++){ - flags = ZT_IOMUX_WRITEEMPTY | ZT_IOMUX_NOWAIT; - res = ioctl(chan->fds[0], ZT_IOMUX, &flags); - if(flags & ZT_IOMUX_WRITEEMPTY) + flags = DAHDI_IOMUX_WRITEEMPTY | DAHDI_IOMUX_NOWAIT; + res = ioctl(chan->fds[0], DAHDI_IOMUX, &flags); + if(flags & DAHDI_IOMUX_WRITEEMPTY) break; if( ast_safe_sleep(chan, 50)){ res = -1; @@ -3934,7 +3934,7 @@ static int split_freq(char *mhz, char *decimals, char *freq); static void *rpt_tele_thread(void *this) { -ZT_CONFINFO ci; /* conference info */ +DAHDI_CONFINFO ci; /* conference info */ int res = 0,haslink,hastx,hasremote,imdone = 0, unkeys_queued, x; struct rpt_tele *mytele = (struct rpt_tele *)this; struct rpt_tele *tlist; @@ -3954,7 +3954,7 @@ int i,ns,rbimode; char mhz[MAXREMSTR]; char decimals[MAXREMSTR]; char mystr[200]; -struct zt_params par; +struct dahdi_params par; /* get a pointer to myrpt */ @@ -4002,7 +4002,7 @@ struct zt_params par; /* allocate a pseudo-channel thru asterisk */ - mychannel = ast_request("zap",AST_FORMAT_SLINEAR,"pseudo",NULL); + mychannel = ast_request("DAHDI",AST_FORMAT_SLINEAR,"pseudo",NULL); if (!mychannel) { fprintf(stderr,"rpt:Sorry unable to obtain pseudo channel\n"); @@ -4047,9 +4047,9 @@ struct zt_params par; (mytele->mode == TAILMSG) || (mytele->mode == LINKUNKEY) || (mytele->mode == TIMEOUT) || (mytele->mode == PARROT) || (mytele->mode == STATS_TIME_LOCAL)) ? myrpt->txconf : myrpt->conf); - ci.confmode = ZT_CONF_CONFANN; + ci.confmode = DAHDI_CONF_CONFANN; /* first put the channel on the conference in announce mode */ - if (ioctl(mychannel->fds[0],ZT_SETCONF,&ci) == -1) + if (ioctl(mychannel->fds[0],DAHDI_SETCONF,&ci) == -1) { ast_log(LOG_WARNING, "Unable to set conference mode to Announce\n"); rpt_mutex_lock(&myrpt->lock); @@ -4242,9 +4242,9 @@ struct zt_params par; /* set for all to hear */ ci.chan = 0; ci.confno = myrpt->conf; - ci.confmode = ZT_CONF_CONFANN; + ci.confmode = DAHDI_CONF_CONFANN; /* first put the channel on the conference in announce mode */ - if (ioctl(mychannel->fds[0],ZT_SETCONF,&ci) == -1) + if (ioctl(mychannel->fds[0],DAHDI_SETCONF,&ci) == -1) { ast_log(LOG_WARNING, "Unable to set conference mode to Announce\n"); rpt_mutex_lock(&myrpt->lock); @@ -4283,9 +4283,9 @@ struct zt_params par; /* set for all to hear */ ci.chan = 0; ci.confno = myrpt->txconf; - ci.confmode = ZT_CONF_CONFANN; + ci.confmode = DAHDI_CONF_CONFANN; /* first put the channel on the conference in announce mode */ - if (ioctl(mychannel->fds[0],ZT_SETCONF,&ci) == -1) + if (ioctl(mychannel->fds[0],DAHDI_SETCONF,&ci) == -1) { ast_log(LOG_WARNING, "Unable to set conference mode to Announce\n"); rpt_mutex_lock(&myrpt->lock); @@ -4512,15 +4512,15 @@ struct zt_params par; } if (myrpt->iofd < 0) { - i = ZT_FLUSH_EVENT; - if (ioctl(myrpt->zaptxchannel->fds[0],ZT_FLUSH,&i) == -1) + i = DAHDI_FLUSH_EVENT; + if (ioctl(myrpt->dahditxchannel->fds[0],DAHDI_FLUSH,&i) == -1) { ast_mutex_unlock(&myrpt->remlock); ast_log(LOG_ERROR,"Cant flush events"); res = -1; break; } - if (ioctl(myrpt->zaprxchannel->fds[0],ZT_GET_PARAMS,&par) == -1) + if (ioctl(myrpt->dahdirxchannel->fds[0],DAHDI_GET_PARAMS,&par) == -1) { ast_mutex_unlock(&myrpt->remlock); ast_log(LOG_ERROR,"Cant get params"); @@ -5285,7 +5285,7 @@ char *v1, *v2; static void *rpt_call(void *this) { -ZT_CONFINFO ci; /* conference info */ +DAHDI_CONFINFO ci; /* conference info */ struct rpt *myrpt = (struct rpt *)this; int res; int stopped,congstarted,dialtimer,lastcidx,aborted; @@ -5293,7 +5293,7 @@ struct ast_channel *mychannel,*genchannel; myrpt->mydtmf = 0; /* allocate a pseudo-channel thru asterisk */ - mychannel = ast_request("zap",AST_FORMAT_SLINEAR,"pseudo",NULL); + mychannel = ast_request("DAHDI",AST_FORMAT_SLINEAR,"pseudo",NULL); if (!mychannel) { fprintf(stderr,"rpt:Sorry unable to obtain pseudo channel\n"); @@ -5306,12 +5306,12 @@ struct ast_channel *mychannel,*genchannel; ci.chan = 0; ci.confno = myrpt->conf; /* use the pseudo conference */ #if 0 - ci.confmode = ZT_CONF_REALANDPSEUDO | ZT_CONF_TALKER | ZT_CONF_LISTENER - | ZT_CONF_PSEUDO_TALKER | ZT_CONF_PSEUDO_LISTENER; + ci.confmode = DAHDI_CONF_REALANDPSEUDO | DAHDI_CONF_TALKER | DAHDI_CONF_LISTENER + | DAHDI_CONF_PSEUDO_TALKER | DAHDI_CONF_PSEUDO_LISTENER; #endif - ci.confmode = ZT_CONF_CONF | ZT_CONF_TALKER | ZT_CONF_LISTENER; + ci.confmode = DAHDI_CONF_CONF | DAHDI_CONF_TALKER | DAHDI_CONF_LISTENER; /* first put the channel on the conference */ - if (ioctl(mychannel->fds[0],ZT_SETCONF,&ci) == -1) + if (ioctl(mychannel->fds[0],DAHDI_SETCONF,&ci) == -1) { ast_log(LOG_WARNING, "Unable to set conference mode to Announce\n"); ast_hangup(mychannel); @@ -5319,7 +5319,7 @@ struct ast_channel *mychannel,*genchannel; pthread_exit(NULL); } /* allocate a pseudo-channel thru asterisk */ - genchannel = ast_request("zap",AST_FORMAT_SLINEAR,"pseudo",NULL); + genchannel = ast_request("DAHDI",AST_FORMAT_SLINEAR,"pseudo",NULL); if (!genchannel) { fprintf(stderr,"rpt:Sorry unable to obtain pseudo channel\n"); @@ -5332,10 +5332,10 @@ struct ast_channel *mychannel,*genchannel; #endif ci.chan = 0; ci.confno = myrpt->conf; - ci.confmode = ZT_CONF_REALANDPSEUDO | ZT_CONF_TALKER | ZT_CONF_LISTENER - | ZT_CONF_PSEUDO_TALKER | ZT_CONF_PSEUDO_LISTENER; + ci.confmode = DAHDI_CONF_REALANDPSEUDO | DAHDI_CONF_TALKER | DAHDI_CONF_LISTENER + | DAHDI_CONF_PSEUDO_TALKER | DAHDI_CONF_PSEUDO_LISTENER; /* first put the channel on the conference */ - if (ioctl(genchannel->fds[0],ZT_SETCONF,&ci) == -1) + if (ioctl(genchannel->fds[0],DAHDI_SETCONF,&ci) == -1) { ast_log(LOG_WARNING, "Unable to set conference mode to Announce\n"); ast_hangup(mychannel); @@ -5360,7 +5360,7 @@ struct ast_channel *mychannel,*genchannel; pthread_exit(NULL); } /* start dialtone if patchquiet is 0. Special patch modes don't send dial tone */ - if ((!myrpt->patchquiet) && (tone_zone_play_tone(genchannel->fds[0],ZT_TONE_DIALTONE) < 0)) + if ((!myrpt->patchquiet) && (tone_zone_play_tone(genchannel->fds[0],DAHDI_TONE_DIALTONE) < 0)) { ast_log(LOG_WARNING, "Cannot start dialtone\n"); ast_hangup(mychannel); @@ -5414,7 +5414,7 @@ struct ast_channel *mychannel,*genchannel; if(!congstarted){ congstarted = 1; /* start congestion tone */ - tone_zone_play_tone(genchannel->fds[0],ZT_TONE_CONGESTION); + tone_zone_play_tone(genchannel->fds[0],DAHDI_TONE_CONGESTION); } } res = ast_safe_sleep(mychannel, MSWAIT); @@ -5492,10 +5492,10 @@ struct ast_channel *mychannel,*genchannel; /* set appropriate conference for the pseudo */ ci.chan = 0; ci.confno = myrpt->conf; - ci.confmode = (myrpt->p.duplex == 2) ? ZT_CONF_CONFANNMON : - (ZT_CONF_CONF | ZT_CONF_LISTENER | ZT_CONF_TALKER); + ci.confmode = (myrpt->p.duplex == 2) ? DAHDI_CONF_CONFANNMON : + (DAHDI_CONF_CONF | DAHDI_CONF_LISTENER | DAHDI_CONF_TALKER); /* first put the channel on the conference in announce mode */ - if (ioctl(myrpt->pchannel->fds[0],ZT_SETCONF,&ci) == -1) + if (ioctl(myrpt->pchannel->fds[0],DAHDI_SETCONF,&ci) == -1) { ast_log(LOG_WARNING, "Unable to set conference mode to Announce\n"); ast_hangup(mychannel); @@ -5504,7 +5504,7 @@ struct ast_channel *mychannel,*genchannel; pthread_exit(NULL); } /* get its channel number */ - if (ioctl(mychannel->fds[0],ZT_CHANNO,&res) == -1) + if (ioctl(mychannel->fds[0],DAHDI_CHANNO,&res) == -1) { ast_log(LOG_WARNING, "Unable to get autopatch channel number\n"); ast_hangup(mychannel); @@ -5513,9 +5513,9 @@ struct ast_channel *mychannel,*genchannel; } ci.chan = 0; ci.confno = res; - ci.confmode = ZT_CONF_MONITOR; + ci.confmode = DAHDI_CONF_MONITOR; /* put vox channel monitoring on the channel */ - if (ioctl(myrpt->voxchannel->fds[0],ZT_SETCONF,&ci) == -1) + if (ioctl(myrpt->voxchannel->fds[0],DAHDI_SETCONF,&ci) == -1) { ast_log(LOG_WARNING, "Unable to set conference mode to Announce\n"); ast_hangup(mychannel); @@ -5542,7 +5542,7 @@ struct ast_channel *mychannel,*genchannel; myrpt->callmode = 4; rpt_mutex_unlock(&myrpt->lock); /* start congestion tone */ - tone_zone_play_tone(genchannel->fds[0],ZT_TONE_CONGESTION); + tone_zone_play_tone(genchannel->fds[0],DAHDI_TONE_CONGESTION); rpt_mutex_lock(&myrpt->lock); } } @@ -5578,10 +5578,10 @@ struct ast_channel *mychannel,*genchannel; /* set appropriate conference for the pseudo */ ci.chan = 0; ci.confno = myrpt->conf; - ci.confmode = ((myrpt->p.duplex == 2) || (myrpt->p.duplex == 4)) ? ZT_CONF_CONFANNMON : - (ZT_CONF_CONF | ZT_CONF_LISTENER | ZT_CONF_TALKER); + ci.confmode = ((myrpt->p.duplex == 2) || (myrpt->p.duplex == 4)) ? DAHDI_CONF_CONFANNMON : + (DAHDI_CONF_CONF | DAHDI_CONF_LISTENER | DAHDI_CONF_TALKER); /* first put the channel on the conference in announce mode */ - if (ioctl(myrpt->pchannel->fds[0],ZT_SETCONF,&ci) == -1) + if (ioctl(myrpt->pchannel->fds[0],DAHDI_SETCONF,&ci) == -1) { ast_log(LOG_WARNING, "Unable to set conference mode to Announce\n"); } @@ -5690,7 +5690,7 @@ static int connect_link(struct rpt *myrpt, char* node, int mode, int perma) struct rpt_link *l; int reconnects = 0; int i,n; - ZT_CONFINFO ci; /* conference info */ + DAHDI_CONFINFO ci; /* conference info */ val = node_lookup(myrpt,node); if (!val){ @@ -5829,7 +5829,7 @@ static int connect_link(struct rpt *myrpt, char* node, int mode, int perma) return -1; } /* allocate a pseudo-channel thru asterisk */ - l->pchan = ast_request("zap",AST_FORMAT_SLINEAR,"pseudo",NULL); + l->pchan = ast_request("DAHDI",AST_FORMAT_SLINEAR,"pseudo",NULL); if (!l->pchan){ ast_log(LOG_WARNING,"rpt connect: Sorry unable to obtain pseudo channel\n"); ast_hangup(l->chan); @@ -5845,9 +5845,9 @@ static int connect_link(struct rpt *myrpt, char* node, int mode, int perma) /* make a conference for the tx */ ci.chan = 0; ci.confno = myrpt->conf; - ci.confmode = ZT_CONF_CONF | ZT_CONF_LISTENER | ZT_CONF_TALKER; + ci.confmode = DAHDI_CONF_CONF | DAHDI_CONF_LISTENER | DAHDI_CONF_TALKER; /* first put the channel on the conference in proper mode */ - if (ioctl(l->pchan->fds[0], ZT_SETCONF, &ci) == -1) + if (ioctl(l->pchan->fds[0], DAHDI_SETCONF, &ci) == -1) { ast_log(LOG_WARNING, "Unable to set conference mode to Announce\n"); ast_hangup(l->chan); @@ -7384,22 +7384,22 @@ static void rbi_out_parallel(struct rpt *myrpt,unsigned char *data) static void rbi_out(struct rpt *myrpt,unsigned char *data) { -struct zt_radio_param r; +struct dahdi_radio_param r; - memset(&r,0,sizeof(struct zt_radio_param)); - r.radpar = ZT_RADPAR_REMMODE; - r.data = ZT_RADPAR_REM_RBI1; + memset(&r,0,sizeof(struct dahdi_radio_param)); + r.radpar = DAHDI_RADPAR_REMMODE; + r.data = DAHDI_RADPAR_REM_RBI1; /* if setparam ioctl fails, its probably not a pciradio card */ - if (ioctl(myrpt->zaprxchannel->fds[0],ZT_RADIO_SETPARAM,&r) == -1) + if (ioctl(myrpt->dahdirxchannel->fds[0],DAHDI_RADIO_SETPARAM,&r) == -1) { rbi_out_parallel(myrpt,data); return; } - r.radpar = ZT_RADPAR_REMCOMMAND; + r.radpar = DAHDI_RADPAR_REMCOMMAND; memcpy(&r.data,data,5); - if (ioctl(myrpt->zaprxchannel->fds[0],ZT_RADIO_SETPARAM,&r) == -1) + if (ioctl(myrpt->dahdirxchannel->fds[0],DAHDI_RADIO_SETPARAM,&r) == -1) { - ast_log(LOG_WARNING,"Cannot send RBI command for channel %s\n",myrpt->zaprxchannel->name); + ast_log(LOG_WARNING,"Cannot send RBI command for channel %s\n",myrpt->dahdirxchannel->name); return; } } @@ -7408,7 +7408,7 @@ static int serial_remote_io(struct rpt *myrpt, unsigned char *txbuf, int txbytes unsigned char *rxbuf, int rxmaxbytes, int asciiflag) { int i,j,index,oldmode,olddata; - struct zt_radio_param prm; + struct dahdi_radio_param prm; char c; if(debug) { @@ -7453,50 +7453,50 @@ static int serial_remote_io(struct rpt *myrpt, unsigned char *txbuf, int txbytes return(i); } - /* if not a zap channel, cant use pciradio stuff */ - if (myrpt->rxchannel != myrpt->zaprxchannel) return -1; + /* if not a DAHDI channel, cant use pciradio stuff */ + if (myrpt->rxchannel != myrpt->dahdirxchannel) return -1; - prm.radpar = ZT_RADPAR_UIOMODE; - if (ioctl(myrpt->zaprxchannel->fds[0],ZT_RADIO_GETPARAM,&prm) == -1) return -1; + prm.radpar = DAHDI_RADPAR_UIOMODE; + if (ioctl(myrpt->dahdirxchannel->fds[0],DAHDI_RADIO_GETPARAM,&prm) == -1) return -1; oldmode = prm.data; - prm.radpar = ZT_RADPAR_UIODATA; - if (ioctl(myrpt->zaprxchannel->fds[0],ZT_RADIO_GETPARAM,&prm) == -1) return -1; + prm.radpar = DAHDI_RADPAR_UIODATA; + if (ioctl(myrpt->dahdirxchannel->fds[0],DAHDI_RADIO_GETPARAM,&prm) == -1) return -1; olddata = prm.data; - prm.radpar = ZT_RADPAR_REMMODE; - if (asciiflag & 1) prm.data = ZT_RADPAR_REM_SERIAL_ASCII; - else prm.data = ZT_RADPAR_REM_SERIAL; - if (ioctl(myrpt->zaprxchannel->fds[0],ZT_RADIO_SETPARAM,&prm) == -1) return -1; + prm.radpar = DAHDI_RADPAR_REMMODE; + if (asciiflag & 1) prm.data = DAHDI_RADPAR_REM_SERIAL_ASCII; + else prm.data = DAHDI_RADPAR_REM_SERIAL; + if (ioctl(myrpt->dahdirxchannel->fds[0],DAHDI_RADIO_SETPARAM,&prm) == -1) return -1; if (asciiflag & 2) { - i = ZT_ONHOOK; - if (ioctl(myrpt->zaprxchannel->fds[0],ZT_HOOK,&i) == -1) return -1; + i = DAHDI_ONHOOK; + if (ioctl(myrpt->dahdirxchannel->fds[0],DAHDI_HOOK,&i) == -1) return -1; usleep(100000); } - prm.radpar = ZT_RADPAR_REMCOMMAND; + prm.radpar = DAHDI_RADPAR_REMCOMMAND; prm.data = rxmaxbytes; memcpy(prm.buf,txbuf,txbytes); prm.index = txbytes; - if (ioctl(myrpt->zaprxchannel->fds[0],ZT_RADIO_SETPARAM,&prm) == -1) return -1; + if (ioctl(myrpt->dahdirxchannel->fds[0],DAHDI_RADIO_SETPARAM,&prm) == -1) return -1; if (rxbuf) { *rxbuf = 0; memcpy(rxbuf,prm.buf,prm.index); } index = prm.index; - prm.radpar = ZT_RADPAR_REMMODE; - prm.data = ZT_RADPAR_REM_NONE; - if (ioctl(myrpt->zaprxchannel->fds[0],ZT_RADIO_SETPARAM,&prm) == -1) return -1; + prm.radpar = DAHDI_RADPAR_REMMODE; + prm.data = DAHDI_RADPAR_REM_NONE; + if (ioctl(myrpt->dahdirxchannel->fds[0],DAHDI_RADIO_SETPARAM,&prm) == -1) return -1; if (asciiflag & 2) { - i = ZT_OFFHOOK; - if (ioctl(myrpt->zaprxchannel->fds[0],ZT_HOOK,&i) == -1) return -1; + i = DAHDI_OFFHOOK; + if (ioctl(myrpt->dahdirxchannel->fds[0],DAHDI_HOOK,&i) == -1) return -1; } - prm.radpar = ZT_RADPAR_UIOMODE; + prm.radpar = DAHDI_RADPAR_UIOMODE; prm.data = oldmode; - if (ioctl(myrpt->zaprxchannel->fds[0],ZT_RADIO_SETPARAM,&prm) == -1) return -1; - prm.radpar = ZT_RADPAR_UIODATA; + if (ioctl(myrpt->dahdirxchannel->fds[0],DAHDI_RADIO_SETPARAM,&prm) == -1) return -1; + prm.radpar = DAHDI_RADPAR_UIODATA; prm.data = olddata; - if (ioctl(myrpt->zaprxchannel->fds[0],ZT_RADIO_SETPARAM,&prm) == -1) return -1; + if (ioctl(myrpt->dahdirxchannel->fds[0],DAHDI_RADIO_SETPARAM,&prm) == -1) return -1; return(index); } @@ -10726,7 +10726,7 @@ char *tele,*idtalkover,c,myfirst,*p; int ms = MSWAIT,i,lasttx=0,val,remrx=0,identqueued,othertelemqueued; int tailmessagequeued,ctqueued,dtmfed,lastmyrx,localmsgqueued; struct ast_channel *who; -ZT_CONFINFO ci; /* conference info */ +DAHDI_CONFINFO ci; /* conference info */ time_t t; struct rpt_link *l,*m; struct rpt_tele *telem; @@ -10782,9 +10782,9 @@ char tmpstr[300],lstr[MAXLINKLIST]; } *tele++ = 0; myrpt->rxchannel = ast_request(tmpstr,AST_FORMAT_SLINEAR,tele,NULL); - myrpt->zaprxchannel = NULL; - if (!strcasecmp(tmpstr,"Zap")) - myrpt->zaprxchannel = myrpt->rxchannel; + myrpt->dahdirxchannel = NULL; + if (!strcasecmp(tmpstr,"DAHDI")) + myrpt->dahdirxchannel = myrpt->rxchannel; if (myrpt->rxchannel) { if (myrpt->rxchannel->_state == AST_STATE_BUSY) @@ -10825,7 +10825,7 @@ char tmpstr[300],lstr[MAXLINKLIST]; myrpt->rpt_thread = AST_PTHREADT_STOP; pthread_exit(NULL); } - myrpt->zaptxchannel = NULL; + myrpt->dahditxchannel = NULL; if (myrpt->txchanname) { strncpy(tmpstr,myrpt->txchanname,sizeof(tmpstr) - 1); @@ -10840,8 +10840,8 @@ char tmpstr[300],lstr[MAXLINKLIST]; } *tele++ = 0; myrpt->txchannel = ast_request(tmpstr,AST_FORMAT_SLINEAR,tele,NULL); - if (!strcasecmp(tmpstr,"Zap")) - myrpt->zaptxchannel = myrpt->txchannel; + if (!strcasecmp(tmpstr,"DAHDI")) + myrpt->dahditxchannel = myrpt->txchannel; if (myrpt->txchannel) { if (myrpt->txchannel->_state == AST_STATE_BUSY) @@ -10889,13 +10889,13 @@ char tmpstr[300],lstr[MAXLINKLIST]; else { myrpt->txchannel = myrpt->rxchannel; - if (!strncasecmp(myrpt->rxchanname,"Zap",3)) - myrpt->zaptxchannel = myrpt->txchannel; + if (!strncasecmp(myrpt->rxchanname,"DAHDI",3)) + myrpt->dahditxchannel = myrpt->txchannel; } ast_indicate(myrpt->txchannel,AST_CONTROL_RADIO_KEY); ast_indicate(myrpt->txchannel,AST_CONTROL_RADIO_UNKEY); /* allocate a pseudo-channel thru asterisk */ - myrpt->pchannel = ast_request("zap",AST_FORMAT_SLINEAR,"pseudo",NULL); + myrpt->pchannel = ast_request("DAHDI",AST_FORMAT_SLINEAR,"pseudo",NULL); if (!myrpt->pchannel) { fprintf(stderr,"rpt:Sorry unable to obtain pseudo channel\n"); @@ -10910,12 +10910,12 @@ char tmpstr[300],lstr[MAXLINKLIST]; if (myrpt->pchannel->cdr) ast_set_flag(myrpt->pchannel->cdr,AST_CDR_FLAG_POST_DISABLED); #endif - if (!myrpt->zaprxchannel) myrpt->zaprxchannel = myrpt->pchannel; - if (!myrpt->zaptxchannel) + if (!myrpt->dahdirxchannel) myrpt->dahdirxchannel = myrpt->pchannel; + if (!myrpt->dahditxchannel) { /* allocate a pseudo-channel thru asterisk */ - myrpt->zaptxchannel = ast_request("zap",AST_FORMAT_SLINEAR,"pseudo",NULL); - if (!myrpt->zaptxchannel) + myrpt->dahditxchannel = ast_request("DAHDI",AST_FORMAT_SLINEAR,"pseudo",NULL); + if (!myrpt->dahditxchannel) { fprintf(stderr,"rpt:Sorry unable to obtain pseudo channel\n"); rpt_mutex_unlock(&myrpt->lock); @@ -10925,15 +10925,15 @@ char tmpstr[300],lstr[MAXLINKLIST]; myrpt->rpt_thread = AST_PTHREADT_STOP; pthread_exit(NULL); } - ast_set_read_format(myrpt->zaptxchannel,AST_FORMAT_SLINEAR); - ast_set_write_format(myrpt->zaptxchannel,AST_FORMAT_SLINEAR); + ast_set_read_format(myrpt->dahditxchannel,AST_FORMAT_SLINEAR); + ast_set_write_format(myrpt->dahditxchannel,AST_FORMAT_SLINEAR); #ifdef AST_CDR_FLAG_POST_DISABLED - if (myrpt->zaptxchannel->cdr) - ast_set_flag(myrpt->zaptxchannel->cdr,AST_CDR_FLAG_POST_DISABLED); + if (myrpt->dahditxchannel->cdr) + ast_set_flag(myrpt->dahditxchannel->cdr,AST_CDR_FLAG_POST_DISABLED); #endif } /* allocate a pseudo-channel thru asterisk */ - myrpt->monchannel = ast_request("zap",AST_FORMAT_SLINEAR,"pseudo",NULL); + myrpt->monchannel = ast_request("DAHDI",AST_FORMAT_SLINEAR,"pseudo",NULL); if (!myrpt->monchannel) { fprintf(stderr,"rpt:Sorry unable to obtain pseudo channel\n"); @@ -10953,9 +10953,9 @@ char tmpstr[300],lstr[MAXLINKLIST]; /* make a conference for the tx */ ci.chan = 0; ci.confno = -1; /* make a new conf */ - ci.confmode = ZT_CONF_CONF | ZT_CONF_LISTENER; + ci.confmode = DAHDI_CONF_CONF | DAHDI_CONF_LISTENER; /* first put the channel on the conference in proper mode */ - if (ioctl(myrpt->zaptxchannel->fds[0],ZT_SETCONF,&ci) == -1) + if (ioctl(myrpt->dahditxchannel->fds[0],DAHDI_SETCONF,&ci) == -1) { ast_log(LOG_WARNING, "Unable to set conference mode to Announce\n"); rpt_mutex_unlock(&myrpt->lock); @@ -10972,10 +10972,10 @@ char tmpstr[300],lstr[MAXLINKLIST]; /* make a conference for the pseudo */ ci.chan = 0; ci.confno = -1; /* make a new conf */ - ci.confmode = ((myrpt->p.duplex == 2) || (myrpt->p.duplex == 4)) ? ZT_CONF_CONFANNMON : - (ZT_CONF_CONF | ZT_CONF_LISTENER | ZT_CONF_TALKER); + ci.confmode = ((myrpt->p.duplex == 2) || (myrpt->p.duplex == 4)) ? DAHDI_CONF_CONFANNMON : + (DAHDI_CONF_CONF | DAHDI_CONF_LISTENER | DAHDI_CONF_TALKER); /* first put the channel on the conference in announce mode */ - if (ioctl(myrpt->pchannel->fds[0],ZT_SETCONF,&ci) == -1) + if (ioctl(myrpt->pchannel->fds[0],DAHDI_SETCONF,&ci) == -1) { ast_log(LOG_WARNING, "Unable to set conference mode to Announce\n"); rpt_mutex_unlock(&myrpt->lock); @@ -10992,10 +10992,10 @@ char tmpstr[300],lstr[MAXLINKLIST]; /* make a conference for the pseudo */ ci.chan = 0; if ((strstr(myrpt->txchannel->name,"pseudo") == NULL) && - (myrpt->zaptxchannel == myrpt->txchannel)) + (myrpt->dahditxchannel == myrpt->txchannel)) { /* get tx channel's port number */ - if (ioctl(myrpt->txchannel->fds[0],ZT_CHANNO,&ci.confno) == -1) + if (ioctl(myrpt->txchannel->fds[0],DAHDI_CHANNO,&ci.confno) == -1) { ast_log(LOG_WARNING, "Unable to set tx channel's chan number\n"); rpt_mutex_unlock(&myrpt->lock); @@ -11007,15 +11007,15 @@ char tmpstr[300],lstr[MAXLINKLIST]; myrpt->rpt_thread = AST_PTHREADT_STOP; pthread_exit(NULL); } - ci.confmode = ZT_CONF_MONITORTX; + ci.confmode = DAHDI_CONF_MONITORTX; } else { ci.confno = myrpt->txconf; - ci.confmode = ZT_CONF_CONFANNMON; + ci.confmode = DAHDI_CONF_CONFANNMON; } /* first put the channel on the conference in announce mode */ - if (ioctl(myrpt->monchannel->fds[0],ZT_SETCONF,&ci) == -1) + if (ioctl(myrpt->monchannel->fds[0],DAHDI_SETCONF,&ci) == -1) { ast_log(LOG_WARNING, "Unable to set conference mode for monitor\n"); rpt_mutex_unlock(&myrpt->lock); @@ -11028,7 +11028,7 @@ char tmpstr[300],lstr[MAXLINKLIST]; pthread_exit(NULL); } /* allocate a pseudo-channel thru asterisk */ - myrpt->parrotchannel = ast_request("zap",AST_FORMAT_SLINEAR,"pseudo",NULL); + myrpt->parrotchannel = ast_request("DAHDI",AST_FORMAT_SLINEAR,"pseudo",NULL); if (!myrpt->parrotchannel) { fprintf(stderr,"rpt:Sorry unable to obtain pseudo channel\n"); @@ -11046,7 +11046,7 @@ char tmpstr[300],lstr[MAXLINKLIST]; ast_set_flag(myrpt->parrotchannel->cdr,AST_CDR_FLAG_POST_DISABLED); #endif /* allocate a pseudo-channel thru asterisk */ - myrpt->voxchannel = ast_request("zap",AST_FORMAT_SLINEAR,"pseudo",NULL); + myrpt->voxchannel = ast_request("DAHDI",AST_FORMAT_SLINEAR,"pseudo",NULL); if (!myrpt->voxchannel) { fprintf(stderr,"rpt:Sorry unable to obtain pseudo channel\n"); @@ -11064,7 +11064,7 @@ char tmpstr[300],lstr[MAXLINKLIST]; ast_set_flag(myrpt->voxchannel->cdr,AST_CDR_FLAG_POST_DISABLED); #endif /* allocate a pseudo-channel thru asterisk */ - myrpt->txpchannel = ast_request("zap",AST_FORMAT_SLINEAR,"pseudo",NULL); + myrpt->txpchannel = ast_request("DAHDI",AST_FORMAT_SLINEAR,"pseudo",NULL); if (!myrpt->txpchannel) { fprintf(stderr,"rpt:Sorry unable to obtain pseudo channel\n"); @@ -11084,9 +11084,9 @@ char tmpstr[300],lstr[MAXLINKLIST]; /* make a conference for the tx */ ci.chan = 0; ci.confno = myrpt->txconf; - ci.confmode = ZT_CONF_CONF | ZT_CONF_TALKER ; + ci.confmode = DAHDI_CONF_CONF | DAHDI_CONF_TALKER ; /* first put the channel on the conference in proper mode */ - if (ioctl(myrpt->txpchannel->fds[0],ZT_SETCONF,&ci) == -1) + if (ioctl(myrpt->txpchannel->fds[0],DAHDI_SETCONF,&ci) == -1) { ast_log(LOG_WARNING, "Unable to set conference mode to Announce\n"); rpt_mutex_unlock(&myrpt->lock); @@ -11179,8 +11179,8 @@ char tmpstr[300],lstr[MAXLINKLIST]; /* DEBUG Dump */ if((myrpt->disgorgetime) && (time(NULL) >= myrpt->disgorgetime)){ - struct rpt_link *zl; - struct rpt_tele *zt; + struct rpt_link *dl; + struct rpt_tele *dt; myrpt->disgorgetime = 0; ast_log(LOG_NOTICE,"********** Variable Dump Start (app_rpt) **********\n"); @@ -11201,30 +11201,30 @@ char tmpstr[300],lstr[MAXLINKLIST]; ast_log(LOG_NOTICE,"myrpt->tailtimer = %d\n",myrpt->tailtimer); ast_log(LOG_NOTICE,"myrpt->tailevent = %d\n",myrpt->tailevent); - zl = myrpt->links.next; - while(zl != &myrpt->links){ - ast_log(LOG_NOTICE,"*** Link Name: %s ***\n",zl->name); - ast_log(LOG_NOTICE," link->lasttx %d\n",zl->lasttx); - ast_log(LOG_NOTICE," link->lastrx %d\n",zl->lastrx); - ast_log(LOG_NOTICE," link->connected %d\n",zl->connected); - ast_log(LOG_NOTICE," link->hasconnected %d\n",zl->hasconnected); - ast_log(LOG_NOTICE," link->outbound %d\n",zl->outbound); - ast_log(LOG_NOTICE," link->disced %d\n",zl->disced); - ast_log(LOG_NOTICE," link->killme %d\n",zl->killme); - ast_log(LOG_NOTICE," link->disctime %ld\n",zl->disctime); - ast_log(LOG_NOTICE," link->retrytimer %ld\n",zl->retrytimer); - ast_log(LOG_NOTICE," link->retries = %d\n",zl->retries); - ast_log(LOG_NOTICE," link->reconnects = %d\n",zl->reconnects); - ast_log(LOG_NOTICE," link->newkey = %d\n",zl->newkey); - zl = zl->next; + dl = myrpt->links.next; + while(dl != &myrpt->links){ + ast_log(LOG_NOTICE,"*** Link Name: %s ***\n",dl->name); + ast_log(LOG_NOTICE," link->lasttx %d\n",dl->lasttx); + ast_log(LOG_NOTICE," link->lastrx %d\n",dl->lastrx); + ast_log(LOG_NOTICE," link->connected %d\n",dl->connected); + ast_log(LOG_NOTICE," link->hasconnected %d\n",dl->hasconnected); + ast_log(LOG_NOTICE," link->outbound %d\n",dl->outbound); + ast_log(LOG_NOTICE," link->disced %d\n",dl->disced); + ast_log(LOG_NOTICE," link->killme %d\n",dl->killme); + ast_log(LOG_NOTICE," link->disctime %ld\n",dl->disctime); + ast_log(LOG_NOTICE," link->retrytimer %ld\n",dl->retrytimer); + ast_log(LOG_NOTICE," link->retries = %d\n",dl->retries); + ast_log(LOG_NOTICE," link->reconnects = %d\n",dl->reconnects); + ast_log(LOG_NOTICE," link->newkey = %d\n",dl->newkey); + dl = dl->next; } - zt = myrpt->tele.next; - if(zt != &myrpt->tele) + dt = myrpt->tele.next; + if(dt != &myrpt->tele) ast_log(LOG_NOTICE,"*** Telemetry Queue ***\n"); - while(zt != &myrpt->tele){ - ast_log(LOG_NOTICE," Telemetry mode: %d\n",zt->mode); - zt = zt->next; + while(dt != &myrpt->tele){ + ast_log(LOG_NOTICE," Telemetry mode: %d\n",dt->mode); + dt = dt->next; } ast_log(LOG_NOTICE,"******* Variable Dump End (app_rpt) *******\n"); @@ -11266,7 +11266,7 @@ char tmpstr[300],lstr[MAXLINKLIST]; if (myrpt->voxchannel && ast_check_hangup(myrpt->voxchannel)) break; if (ast_check_hangup(myrpt->txpchannel)) break; - if (myrpt->zaptxchannel && ast_check_hangup(myrpt->zaptxchannel)) break; + if (myrpt->dahditxchannel && ast_check_hangup(myrpt->dahditxchannel)) break; /* Set local tx with keyed */ myrpt->localtx = myrpt->keyed; @@ -11547,11 +11547,11 @@ char tmpstr[300],lstr[MAXLINKLIST]; char myfname[300]; ci.confno = myrpt->conf; - ci.confmode = ZT_CONF_CONFANNMON; + ci.confmode = DAHDI_CONF_CONFANNMON; ci.chan = 0; /* first put the channel on the conference in announce mode */ - if (ioctl(myrpt->parrotchannel->fds[0],ZT_SETCONF,&ci) == -1) + if (ioctl(myrpt->parrotchannel->fds[0],DAHDI_SETCONF,&ci) == -1) { ast_log(LOG_WARNING, "Unable to set conference mode for parrot\n"); break; @@ -11601,8 +11601,8 @@ char tmpstr[300],lstr[MAXLINKLIST]; if (myrpt->voxchannel) cs[n++] = myrpt->voxchannel; cs[n++] = myrpt->txpchannel; if (myrpt->txchannel != myrpt->rxchannel) cs[n++] = myrpt->txchannel; - if (myrpt->zaptxchannel != myrpt->txchannel) - cs[n++] = myrpt->zaptxchannel; + if (myrpt->dahditxchannel != myrpt->txchannel) + cs[n++] = myrpt->dahditxchannel; l = myrpt->links.next; while(l != &myrpt->links) { @@ -11977,7 +11977,7 @@ char tmpstr[300],lstr[MAXLINKLIST]; ci.chan = 0; /* first put the channel on the conference in announce mode */ - if (ioctl(myrpt->parrotchannel->fds[0],ZT_SETCONF,&ci) == -1) + if (ioctl(myrpt->parrotchannel->fds[0],DAHDI_SETCONF,&ci) == -1) { ast_log(LOG_WARNING, "Unable to set conference mode for parrot\n"); break; @@ -12088,7 +12088,7 @@ char tmpstr[300],lstr[MAXLINKLIST]; /* apply inbound filters, if any */ rpt_filter(myrpt,f->data,f->datalen / 2); #endif - if (ioctl(myrpt->zaprxchannel->fds[0], ZT_GETCONFMUTE, &ismuted) == -1) + if (ioctl(myrpt->dahdirxchannel->fds[0], DAHDI_GETCONFMUTE, &ismuted) == -1) { ismuted = 0; } @@ -12276,9 +12276,9 @@ char tmpstr[300],lstr[MAXLINKLIST]; ast_frfree(f); continue; } - if (who == myrpt->zaptxchannel) /* if it was a read from pseudo-tx */ + if (who == myrpt->dahditxchannel) /* if it was a read from pseudo-tx */ { - f = ast_read(myrpt->zaptxchannel); + f = ast_read(myrpt->dahditxchannel); if (!f) { if (debug) printf("@@@@ rpt:Hung Up\n"); @@ -12517,7 +12517,7 @@ char tmpstr[300],lstr[MAXLINKLIST]; ast_frfree(f); f = AST_LIST_REMOVE_HEAD(&l->rxq,frame_list); } - if (ioctl(l->chan->fds[0], ZT_GETCONFMUTE, &ismuted) == -1) + if (ioctl(l->chan->fds[0], DAHDI_GETCONFMUTE, &ismuted) == -1) { ismuted = 0; } @@ -12878,7 +12878,7 @@ char tmpstr[300],lstr[MAXLINKLIST]; if (myrpt->voxchannel) ast_hangup(myrpt->voxchannel); ast_hangup(myrpt->txpchannel); if (myrpt->txchannel != myrpt->rxchannel) ast_hangup(myrpt->txchannel); - if (myrpt->zaptxchannel != myrpt->txchannel) ast_hangup(myrpt->zaptxchannel); + if (myrpt->dahditxchannel != myrpt->txchannel) ast_hangup(myrpt->dahditxchannel); if (myrpt->lastf1) ast_frfree(myrpt->lastf1); myrpt->lastf1 = NULL; if (myrpt->lastf2) ast_frfree(myrpt->lastf2); @@ -13125,11 +13125,11 @@ static int rpt_exec(struct ast_channel *chan, void *data) struct ast_channel *who; struct ast_channel *cs[20]; struct rpt_link *l; - ZT_CONFINFO ci; /* conference info */ - ZT_PARAMS par; + DAHDI_CONFINFO ci; /* conference info */ + DAHDI_PARAMS par; int ms,elap,nullfd; time_t t,last_timeout_warning; - struct zt_radio_param z; + struct dahdi_radio_param z; struct rpt_tele *telem; int numlinks; @@ -13617,7 +13617,7 @@ static int rpt_exec(struct ast_channel *chan, void *data) ast_set_read_format(l->chan,AST_FORMAT_SLINEAR); ast_set_write_format(l->chan,AST_FORMAT_SLINEAR); /* allocate a pseudo-channel thru asterisk */ - l->pchan = ast_request("zap",AST_FORMAT_SLINEAR,"pseudo",NULL); + l->pchan = ast_request("DAHDI",AST_FORMAT_SLINEAR,"pseudo",NULL); if (!l->pchan) { fprintf(stderr,"rpt:Sorry unable to obtain pseudo channel\n"); @@ -13632,9 +13632,9 @@ static int rpt_exec(struct ast_channel *chan, void *data) /* make a conference for the tx */ ci.chan = 0; ci.confno = myrpt->conf; - ci.confmode = ZT_CONF_CONF | ZT_CONF_LISTENER | ZT_CONF_TALKER; + ci.confmode = DAHDI_CONF_CONF | DAHDI_CONF_LISTENER | DAHDI_CONF_TALKER; /* first put the channel on the conference in proper mode */ - if (ioctl(l->pchan->fds[0],ZT_SETCONF,&ci) == -1) + if (ioctl(l->pchan->fds[0],DAHDI_SETCONF,&ci) == -1) { ast_log(LOG_WARNING, "Unable to set conference mode to Announce\n"); pthread_exit(NULL); @@ -13760,9 +13760,9 @@ static int rpt_exec(struct ast_channel *chan, void *data) } *tele++ = 0; myrpt->rxchannel = ast_request(myrpt->rxchanname,AST_FORMAT_SLINEAR,tele,NULL); - myrpt->zaprxchannel = NULL; - if (!strcasecmp(myrpt->rxchanname,"Zap")) - myrpt->zaprxchannel = myrpt->rxchannel; + myrpt->dahdirxchannel = NULL; + if (!strcasecmp(myrpt->rxchanname,"DAHDI")) + myrpt->dahdirxchannel = myrpt->rxchannel; if (myrpt->rxchannel) { ast_set_read_format(myrpt->rxchannel,AST_FORMAT_SLINEAR); @@ -13790,7 +13790,7 @@ static int rpt_exec(struct ast_channel *chan, void *data) pthread_exit(NULL); } *--tele = '/'; - myrpt->zaptxchannel = NULL; + myrpt->dahditxchannel = NULL; if (myrpt->txchanname) { tele = strchr(myrpt->txchanname,'/'); @@ -13803,8 +13803,8 @@ static int rpt_exec(struct ast_channel *chan, void *data) } *tele++ = 0; myrpt->txchannel = ast_request(myrpt->txchanname,AST_FORMAT_SLINEAR,tele,NULL); - if (!strncasecmp(myrpt->txchanname,"Zap",3)) - myrpt->zaptxchannel = myrpt->txchannel; + if (!strncasecmp(myrpt->txchanname,"DAHDI",3)) + myrpt->dahditxchannel = myrpt->txchannel; if (myrpt->txchannel) { ast_set_read_format(myrpt->txchannel,AST_FORMAT_SLINEAR); @@ -13837,11 +13837,11 @@ static int rpt_exec(struct ast_channel *chan, void *data) else { myrpt->txchannel = myrpt->rxchannel; - if (!strncasecmp(myrpt->rxchanname,"Zap",3)) - myrpt->zaptxchannel = myrpt->rxchannel; + if (!strncasecmp(myrpt->rxchanname,"DAHDI",3)) + myrpt->dahditxchannel = myrpt->rxchannel; } /* allocate a pseudo-channel thru asterisk */ - myrpt->pchannel = ast_request("zap",AST_FORMAT_SLINEAR,"pseudo",NULL); + myrpt->pchannel = ast_request("DAHDI",AST_FORMAT_SLINEAR,"pseudo",NULL); if (!myrpt->pchannel) { fprintf(stderr,"rpt:Sorry unable to obtain pseudo channel\n"); @@ -13857,14 +13857,14 @@ static int rpt_exec(struct ast_channel *chan, void *data) if (myrpt->pchannel->cdr) ast_set_flag(myrpt->pchannel->cdr,AST_CDR_FLAG_POST_DISABLED); #endif - if (!myrpt->zaprxchannel) myrpt->zaprxchannel = myrpt->pchannel; - if (!myrpt->zaptxchannel) myrpt->zaptxchannel = myrpt->pchannel; + if (!myrpt->dahdirxchannel) myrpt->dahdirxchannel = myrpt->pchannel; + if (!myrpt->dahditxchannel) myrpt->dahditxchannel = myrpt->pchannel; /* make a conference for the pseudo */ ci.chan = 0; ci.confno = -1; /* make a new conf */ - ci.confmode = ZT_CONF_CONFANNMON ; + ci.confmode = DAHDI_CONF_CONFANNMON ; /* first put the channel on the conference in announce/monitor mode */ - if (ioctl(myrpt->pchannel->fds[0],ZT_SETCONF,&ci) == -1) + if (ioctl(myrpt->pchannel->fds[0],DAHDI_SETCONF,&ci) == -1) { ast_log(LOG_WARNING, "Unable to set conference mode to Announce\n"); rpt_mutex_unlock(&myrpt->lock); @@ -13889,30 +13889,30 @@ static int rpt_exec(struct ast_channel *chan, void *data) } iskenwood_pci4 = 0; memset(&z,0,sizeof(z)); - if ((myrpt->iofd < 1) && (myrpt->txchannel == myrpt->zaptxchannel)) + if ((myrpt->iofd < 1) && (myrpt->txchannel == myrpt->dahditxchannel)) { - z.radpar = ZT_RADPAR_REMMODE; - z.data = ZT_RADPAR_REM_NONE; - res = ioctl(myrpt->zaptxchannel->fds[0],ZT_RADIO_SETPARAM,&z); + z.radpar = DAHDI_RADPAR_REMMODE; + z.data = DAHDI_RADPAR_REM_NONE; + res = ioctl(myrpt->dahditxchannel->fds[0],DAHDI_RADIO_SETPARAM,&z); /* if PCIRADIO and kenwood selected */ if ((!res) && (!strcmp(myrpt->remoterig,remote_rig_kenwood))) { - z.radpar = ZT_RADPAR_UIOMODE; + z.radpar = DAHDI_RADPAR_UIOMODE; z.data = 1; - if (ioctl(myrpt->zaptxchannel->fds[0],ZT_RADIO_SETPARAM,&z) == -1) + if (ioctl(myrpt->dahditxchannel->fds[0],DAHDI_RADIO_SETPARAM,&z) == -1) { ast_log(LOG_ERROR,"Cannot set UIOMODE\n"); return -1; } - z.radpar = ZT_RADPAR_UIODATA; + z.radpar = DAHDI_RADPAR_UIODATA; z.data = 3; - if (ioctl(myrpt->zaptxchannel->fds[0],ZT_RADIO_SETPARAM,&z) == -1) + if (ioctl(myrpt->dahditxchannel->fds[0],DAHDI_RADIO_SETPARAM,&z) == -1) { ast_log(LOG_ERROR,"Cannot set UIODATA\n"); return -1; } - i = ZT_OFFHOOK; - if (ioctl(myrpt->zaptxchannel->fds[0],ZT_HOOK,&i) == -1) + i = DAHDI_OFFHOOK; + if (ioctl(myrpt->dahditxchannel->fds[0],DAHDI_HOOK,&i) == -1) { ast_log(LOG_ERROR,"Cannot set hook\n"); return -1; @@ -13920,26 +13920,26 @@ static int rpt_exec(struct ast_channel *chan, void *data) iskenwood_pci4 = 1; } } - if (myrpt->txchannel == myrpt->zaptxchannel) + if (myrpt->txchannel == myrpt->dahditxchannel) { - i = ZT_ONHOOK; - ioctl(myrpt->zaptxchannel->fds[0],ZT_HOOK,&i); + i = DAHDI_ONHOOK; + ioctl(myrpt->dahditxchannel->fds[0],DAHDI_HOOK,&i); /* if PCIRADIO and Yaesu ft897/ICOM IC-706 selected */ if ((myrpt->iofd < 1) && (!res) && ((!strcmp(myrpt->remoterig,remote_rig_ft897)) || (!strcmp(myrpt->remoterig,remote_rig_ic706)) || (!strcmp(myrpt->remoterig,remote_rig_tm271)))) { - z.radpar = ZT_RADPAR_UIOMODE; + z.radpar = DAHDI_RADPAR_UIOMODE; z.data = 1; - if (ioctl(myrpt->zaptxchannel->fds[0],ZT_RADIO_SETPARAM,&z) == -1) + if (ioctl(myrpt->dahditxchannel->fds[0],DAHDI_RADIO_SETPARAM,&z) == -1) { ast_log(LOG_ERROR,"Cannot set UIOMODE\n"); return -1; } - z.radpar = ZT_RADPAR_UIODATA; + z.radpar = DAHDI_RADPAR_UIODATA; z.data = 3; - if (ioctl(myrpt->zaptxchannel->fds[0],ZT_RADIO_SETPARAM,&z) == -1) + if (ioctl(myrpt->dahditxchannel->fds[0],DAHDI_RADIO_SETPARAM,&z) == -1) { ast_log(LOG_ERROR,"Cannot set UIODATA\n"); return -1; @@ -13976,16 +13976,16 @@ static int rpt_exec(struct ast_channel *chan, void *data) if (myrpt->remote && (myrpt->rxchannel == myrpt->txchannel)) { i = 128; - ioctl(myrpt->zaprxchannel->fds[0],ZT_ECHOCANCEL,&i); + ioctl(myrpt->dahdirxchannel->fds[0],DAHDI_ECHOCANCEL,&i); } if (chan->_state != AST_STATE_UP) { ast_answer(chan); if (!phone_mode) send_newkey(chan); } - if (myrpt->rxchannel == myrpt->zaprxchannel) + if (myrpt->rxchannel == myrpt->dahdirxchannel) { - if (ioctl(myrpt->zaprxchannel->fds[0],ZT_GET_PARAMS,&par) != -1) + if (ioctl(myrpt->dahdirxchannel->fds[0],DAHDI_GET_PARAMS,&par) != -1) { if (par.rxisoffhook) { @@ -14255,11 +14255,11 @@ static int rpt_exec(struct ast_channel *chan, void *data) if((myrpt->remtxfreqok = check_tx_freq(myrpt))) { time(&myrpt->last_activity_time); - if ((iskenwood_pci4) && (myrpt->txchannel == myrpt->zaptxchannel)) + if ((iskenwood_pci4) && (myrpt->txchannel == myrpt->dahditxchannel)) { - z.radpar = ZT_RADPAR_UIODATA; + z.radpar = DAHDI_RADPAR_UIODATA; z.data = 1; - if (ioctl(myrpt->zaptxchannel->fds[0],ZT_RADIO_SETPARAM,&z) == -1) + if (ioctl(myrpt->dahditxchannel->fds[0],DAHDI_RADIO_SETPARAM,&z) == -1) { ast_log(LOG_ERROR,"Cannot set UIODATA\n"); return -1; @@ -14279,11 +14279,11 @@ static int rpt_exec(struct ast_channel *chan, void *data) if(!myrpt->remtxfreqok){ rpt_telemetry(myrpt,UNAUTHTX,NULL); } - if ((iskenwood_pci4) && (myrpt->txchannel == myrpt->zaptxchannel)) + if ((iskenwood_pci4) && (myrpt->txchannel == myrpt->dahditxchannel)) { - z.radpar = ZT_RADPAR_UIODATA; + z.radpar = DAHDI_RADPAR_UIODATA; z.data = 3; - if (ioctl(myrpt->zaptxchannel->fds[0],ZT_RADIO_SETPARAM,&z) == -1) + if (ioctl(myrpt->dahditxchannel->fds[0],DAHDI_RADIO_SETPARAM,&z) == -1) { ast_log(LOG_ERROR,"Cannot set UIODATA\n"); return -1; @@ -14333,7 +14333,7 @@ static int rpt_exec(struct ast_channel *chan, void *data) } if (f->frametype == AST_FRAME_VOICE) { - if (ioctl(chan->fds[0], ZT_GETCONFMUTE, &ismuted) == -1) + if (ioctl(chan->fds[0], DAHDI_GETCONFMUTE, &ismuted) == -1) { ismuted = 0; } @@ -14556,24 +14556,24 @@ static int rpt_exec(struct ast_channel *chan, void *data) myrpt->lastf1 = NULL; if (myrpt->lastf2) ast_frfree(myrpt->lastf2); myrpt->lastf2 = NULL; - if ((iskenwood_pci4) && (myrpt->txchannel == myrpt->zaptxchannel)) + if ((iskenwood_pci4) && (myrpt->txchannel == myrpt->dahditxchannel)) { - z.radpar = ZT_RADPAR_UIOMODE; + z.radpar = DAHDI_RADPAR_UIOMODE; z.data = 3; - if (ioctl(myrpt->zaptxchannel->fds[0],ZT_RADIO_SETPARAM,&z) == -1) + if (ioctl(myrpt->dahditxchannel->fds[0],DAHDI_RADIO_SETPARAM,&z) == -1) { ast_log(LOG_ERROR,"Cannot set UIOMODE\n"); return -1; } - z.radpar = ZT_RADPAR_UIODATA; + z.radpar = DAHDI_RADPAR_UIODATA; z.data = 3; - if (ioctl(myrpt->zaptxchannel->fds[0],ZT_RADIO_SETPARAM,&z) == -1) + if (ioctl(myrpt->dahditxchannel->fds[0],DAHDI_RADIO_SETPARAM,&z) == -1) { ast_log(LOG_ERROR,"Cannot set UIODATA\n"); return -1; } - i = ZT_OFFHOOK; - if (ioctl(myrpt->zaptxchannel->fds[0],ZT_HOOK,&i) == -1) + i = DAHDI_OFFHOOK; + if (ioctl(myrpt->dahditxchannel->fds[0],DAHDI_HOOK,&i) == -1) { ast_log(LOG_ERROR,"Cannot set hook\n"); return -1; |