summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-misc/asterisk/files/1.2.0/asterisk-1.2.0_beta-ukcid.patch')
-rw-r--r--net-misc/asterisk/files/1.2.0/asterisk-1.2.0_beta-ukcid.patch168
1 files changed, 0 insertions, 168 deletions
diff --git a/net-misc/asterisk/files/1.2.0/asterisk-1.2.0_beta-ukcid.patch b/net-misc/asterisk/files/1.2.0/asterisk-1.2.0_beta-ukcid.patch
deleted file mode 100644
index f456c3a831e8..000000000000
--- a/net-misc/asterisk/files/1.2.0/asterisk-1.2.0_beta-ukcid.patch
+++ /dev/null
@@ -1,168 +0,0 @@
-? asterisk_ukcid.diff
-Index: channels/chan_zap.c
-===================================================================
-RCS file: /usr/cvsroot/asterisk/channels/chan_zap.c,v
-retrieving revision 1.344.2.7
-diff -u -r1.344.2.7 chan_zap.c
---- channels/chan_zap.c 27 Oct 2004 14:41:55 -0000 1.344.2.7
-+++ channels/chan_zap.c 4 Nov 2004 21:05:03 -0000
-@@ -790,6 +790,14 @@
- return 0;
- }
-
-+static int zt_get_history(int fd, void *buf, int buf_size)
-+{
-+ struct zt_history hist;
-+ hist.buf=buf;
-+ hist.len=buf_size;
-+ return ioctl(fd, ZT_GET_HISTORY, &hist);
-+}
-+
- static int alloc_sub(struct zt_pvt *p, int x)
- {
- ZT_BUFFERINFO bi;
-@@ -5114,6 +5122,120 @@
- }
- }
- #endif
-+ /* If we're using an X100P in the UK, caller ID needs to be extracted from
-+ * the history buffer */
-+ if (p->use_callerid && p->cid_start == CID_START_USEHIST) {
-+ ast_log(LOG_DEBUG,"Using history buffer to extract UK caller ID\n");
-+ cs = callerid_new(cid_signalling);
-+ if (cs) {
-+ unsigned char cidbuf[16384];
-+ res=0;
-+
-+ res = zt_get_history(p->subs[index].zfd,cidbuf,sizeof(cidbuf));
-+ if(res<0) {
-+ ast_log(LOG_ERROR,"zt_get_history failed: %s\n", strerror(errno));
-+ } else {
-+ res=callerid_feed(cs,cidbuf,sizeof(cidbuf),AST_LAW(p));
-+ if (res < 0) {
-+ ast_log(LOG_WARNING, "CallerID feed failed: %s\n", strerror(errno));
-+ }
-+ }
-+
-+ if(res==1) {
-+ callerid_get(cs, &name, &number, &flags);
-+ if (option_debug)
-+ ast_log(LOG_DEBUG, "CallerID number: %s, name: %s, flags=%d\n", number, name, flags);
-+ }
-+ }
-+ if (p->usedistinctiveringdetection == 1) {
-+#if 1
-+ bump_gains(p);
-+#endif
-+ len = 0;
-+ distMatches = 0;
-+ /* Clear the current ring data array so we dont have old data in it. */
-+ for (receivedRingT=0; receivedRingT < 3; receivedRingT++) {
-+ curRingData[receivedRingT] = 0;
-+ }
-+ receivedRingT = 0;
-+ counter = 0;
-+ counter1 = 0;
-+ /* Check to see if context is what it should be, if not set to be. */
-+ if (strcmp(p->context,p->defcontext) != 0) {
-+ strncpy(p->context, p->defcontext, sizeof(p->context)-1);
-+ strncpy(chan->context,p->defcontext,sizeof(chan->context)-1);
-+ }
-+
-+ for(;;) {
-+ i = ZT_IOMUX_READ | ZT_IOMUX_SIGEVENT;
-+ if ((res = ioctl(p->subs[index].zfd, ZT_IOMUX, &i))) {
-+ ast_log(LOG_WARNING, "I/O MUX failed: %s\n", strerror(errno));
-+ callerid_free(cs);
-+ ast_hangup(chan);
-+ return NULL;
-+ }
-+ if (i & ZT_IOMUX_SIGEVENT) {
-+ res = zt_get_event(p->subs[index].zfd);
-+ ast_log(LOG_NOTICE, "Got event %d (%s)...\n", res, event2str(res));
-+ res = 0;
-+ /* Let us detect distinctive ring */
-+
-+ curRingData[receivedRingT] = p->ringt;
-+
-+ if (p->ringt < ringt_base/2)
-+ break;
-+ ++receivedRingT; /* Increment the ringT counter so we can match it against
-+ values in zapata.conf for distinctive ring */
-+ } else if (i & ZT_IOMUX_READ) {
-+ res = read(p->subs[index].zfd, buf, sizeof(buf));
-+ if (res < 0) {
-+ if (errno != ELAST) {
-+ ast_log(LOG_WARNING, "read returned error: %s\n", strerror(errno));
-+ callerid_free(cs);
-+ ast_hangup(chan);
-+ return NULL;
-+ }
-+ break;
-+ }
-+ if (p->ringt)
-+ p->ringt--;
-+ if (p->ringt == 1) {
-+ res = -1;
-+ break;
-+ }
-+ }
-+ }
-+ if(option_verbose > 2)
-+ /* this only shows up if you have n of the dring patterns filled in */
-+ ast_verbose( VERBOSE_PREFIX_3 "Detected ring pattern: %d,%d,%d\n",curRingData[0],curRingData[1],curRingData[2]);
-+
-+ for (counter=0; counter < 3; counter++) {
-+ /* Check to see if the rings we received match any of the ones in zapata.conf for this
-+ channel */
-+ distMatches = 0;
-+ for (counter1=0; counter1 < 3; counter1++) {
-+ if (curRingData[counter1] <= (p->drings.ringnum[counter].ring[counter1]+10) && curRingData[counter1] >=
-+ (p->drings.ringnum[counter].ring[counter1]-10)) {
-+ distMatches++;
-+ }
-+ }
-+ if (distMatches == 3) {
-+ /* The ring matches, set the context to whatever is for distinctive ring.. */
-+ strncpy(p->context, p->drings.ringContext[counter].contextData, sizeof(p->context)-1);
-+ strncpy(chan->context, p->drings.ringContext[counter].contextData, sizeof(chan->context)-1);
-+ if(option_verbose > 2)
-+ ast_verbose( VERBOSE_PREFIX_3 "Distinctive Ring matched context %s\n",p->context);
-+ break;
-+ }
-+ }
-+ }
-+ /* Restore linear mode (if appropriate) for Caller*ID processing */
-+ zt_setlinear(p->subs[index].zfd, p->subs[index].linear);
-+#if 1
-+ restore_gains(p);
-+#endif
-+ }
-+
- /* If we want caller id, we're in a prering state due to a polarity reversal
- * and we're set to use a polarity reversal to trigger the start of caller id,
- * grab the caller id and wait for ringing to start... */
-@@ -9178,6 +9300,8 @@
- cid_start = CID_START_RING;
- else if (!strcasecmp(v->value, "polarity"))
- cid_start = CID_START_POLARITY;
-+ else if (!strcasecmp(v->value, "usehist"))
-+ cid_start = CID_START_USEHIST;
- else if (ast_true(v->value))
- cid_start = CID_START_RING;
- } else if (!strcasecmp(v->name, "threewaycalling")) {
-Index: include/asterisk/callerid.h
-===================================================================
-RCS file: /usr/cvsroot/asterisk/include/asterisk/callerid.h,v
-retrieving revision 1.7
-diff -u -r1.7 callerid.h
---- include/asterisk/callerid.h 19 Sep 2004 16:17:18 -0000 1.7
-+++ include/asterisk/callerid.h 4 Nov 2004 21:05:04 -0000
-@@ -30,6 +30,7 @@
-
- #define CID_START_RING 1
- #define CID_START_POLARITY 2
-+#define CID_START_USEHIST 3
-
-
- #define AST_LIN2X(a) ((codec == AST_FORMAT_ALAW) ? (AST_LIN2A(a)) : (AST_LIN2MU(a)))