aboutsummaryrefslogtreecommitdiff
path: root/net/asterisk10/files/patch-channels::chan_zap.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/asterisk10/files/patch-channels::chan_zap.c')
-rw-r--r--net/asterisk10/files/patch-channels::chan_zap.c100
1 files changed, 0 insertions, 100 deletions
diff --git a/net/asterisk10/files/patch-channels::chan_zap.c b/net/asterisk10/files/patch-channels::chan_zap.c
deleted file mode 100644
index 458a6147d215..000000000000
--- a/net/asterisk10/files/patch-channels::chan_zap.c
+++ /dev/null
@@ -1,100 +0,0 @@
-
-$FreeBSD$
-
---- channels/chan_zap.c.orig Sun Feb 17 18:01:44 2002
-+++ channels/chan_zap.c Sun Feb 17 18:03:26 2002
-@@ -46,7 +46,9 @@
- #include <sys/signal.h>
- #include <errno.h>
- #include <stdlib.h>
-+#ifndef __FreeBSD__
- #include <stdint.h>
-+#endif
- #include <unistd.h>
- #include <sys/ioctl.h>
- #ifdef __linux__
-@@ -320,7 +322,7 @@
- #define CALLWAITING_REPEAT_SAMPLES ( (10000 * 8) / READ_SIZE) /* 300 ms */
- #define CIDCW_EXPIRE_SAMPLES ( (500 * 8) / READ_SIZE) /* 500 ms */
- #define MIN_MS_SINCE_FLASH ( (2000) ) /* 2000 ms */
--#define RINGT ( (8000 * 8) / READ_SIZE)
-+#define RINGT ( (8000 * 8) / READ_SIZE) /* 8000 ms */
-
- struct zt_pvt;
-
-@@ -535,6 +537,7 @@
- int cidpos;
- int cidlen;
- int ringt;
-+ int waitnorings;
- int stripmsd;
- int callwaiting;
- int callwaitcas;
-@@ -2134,12 +2137,20 @@
-
- if (option_debug)
- ast_log(LOG_DEBUG, "zt_hangup(%s)\n", ast->name);
-+
- if (!ast->pvt->pvt) {
- ast_log(LOG_WARNING, "Asked to hangup channel not connected\n");
- return 0;
- }
-
- ast_mutex_lock(&p->lock);
-+
-+
-+ if((p->sig == SIG_FXSGS) || (p->sig == SIG_FXSKS) || (p->sig == SIG_FXSLS))
-+ if((ast->_state == AST_STATE_RING) && (p->ringt > 1))
-+ {
-+ p->waitnorings = 1;
-+ }
-
- index = zt_get_index(ast, p, 1);
-
-@@ -5717,7 +5728,37 @@
- ast_setstate(chan, AST_STATE_RING);
- chan->rings = 1;
- p->ringt = RINGT;
-+ p->waitnorings = 0;
- res = ast_pbx_run(chan);
-+
-+ if(p->waitnorings)
-+ {
-+ p->ringt = RINGT;
-+ for(;;)
-+ {
-+ int i,j=0;
-+ i = ZT_IOMUX_SIGEVENT | ZT_IOMUX_NOWAIT;
-+ if (ioctl(p->subs[index].zfd, ZT_IOMUX, &i) == -1)
-+ break;
-+
-+ if (ioctl(p->subs[index].zfd, ZT_GETEVENT, &j) == -1)
-+ break;
-+
-+ if(j == ZT_EVENT_RINGOFFHOOK)
-+ p->ringt = RINGT;
-+
-+ usleep(20000);
-+
-+ if (p->ringt <= 0)
-+ break;
-+
-+ else if (p->ringt > 0)
-+ p->ringt--;
-+ }
-+ p->ringt = 0;
-+ p->waitnorings = 0;
-+ }
-+
- if (res) {
- ast_hangup(chan);
- ast_log(LOG_WARNING, "PBX exited non-zero\n");
-@@ -6018,7 +6059,7 @@
- i = iflist;
- while(i) {
- if ((i->subs[SUB_REAL].zfd > -1) && i->sig && (!i->radio)) {
-- if (!i->owner && !i->subs[SUB_REAL].owner) {
-+ if (!i->owner && !i->subs[SUB_REAL].owner && !i->waitnorings) {
- /* This needs to be watched, as it lacks an owner */
- pfds[count].fd = i->subs[SUB_REAL].zfd;
- pfds[count].events = POLLPRI;