Hi, I know this issue has raised its head so many times before, and I have been over so many threads, bug reports, mantis and other resources and still unable to resolve.
I was using Asterisk 1.4.13 and have upgraded to 1.4.19 and was using Zaptel 1.4.5.1 and now using 1.4.9.2 I found a bug tracking issue where someone has posted a UK CID fix which appeared to work under 1.4.5.1 which was: Index: wctdm.c =================================================================== --- wctdm.c (revision 2300) +++ wctdm.c (working copy) @@ -315,6 +315,7 @@ #else int wasringing; #endif + int lastrdtx; int ringdebounce; int offhook; int battdebounce; @@ -859,30 +860,29 @@ return; #ifndef AUDIO_RINGCHECK if (!wc->mod[card].fxo.offhook) { - res = wc->reg0shadow[card]; - if ((res & 0x60) && wc->mod[card].fxo.battery) { - wc->mod[card].fxo.ringdebounce += (ZT_CHUNKSIZE * 16); - if (wc->mod[card].fxo.ringdebounce >= ZT_CHUNKSIZE * 64) { + res = wc->reg0shadow[card] & 0x60; + if (wc->mod[card].fxo.ringdebounce) { + wc->mod[card].fxo.ringdebounce--; + if (res && res != wc->mod[card].fxo.lastrdtx && wc->mod[card].fxo.battery) { if (!wc->mod[card].fxo.wasringing) { wc->mod[card].fxo.wasringing = 1; - zt_hooksig(&wc->chans[card], ZT_RXSIG_RING); if (debug) printk("RING on %d/%d! \n", wc->span.spanno, card + 1); + zt_hooksig(&wc->chans[card], ZT_RXSIG_RING); } - wc->mod[card].fxo.ringdebounce = ZT_CHUNKSIZE * 64; - } - } else { - wc->mod[card].fxo.ringdebounce -= ZT_CHUNKSIZE * 4; - if (wc->mod[card].fxo.ringdebounce <= 0) { - if (wc->mod[card].fxo.wasringing) { + wc->mod[card].fxo.lastrdtx = res; + wc->mod[card].fxo.ringdebounce = 10; + } else if (!res) { + if (wc->mod[card].fxo.ringdebounce == 0 && wc->mod[card].fxo.wasringing) { wc->mod[card].fxo.wasringing = 0; - zt_hooksig(&wc->chans[card], ZT_RXSIG_OFFHOOK); if (debug) printk("NO RING on %d/ %d!\n", wc->span.spanno, card + 1); + zt_hooksig(&wc->chans[card], ZT_RXSIG_OFFHOOK); } - wc->mod[card].fxo.ringdebounce = 0; } - + } else if (res && wc->mod[card].fxo.battery) { + wc->mod[card].fxo.lastrdtx = res; + wc->mod[card].fxo.ringdebounce = 10; } } #endif @@ -1462,6 +1462,10 @@ reg16 |= (fxo_modes[_opermode].rz << 1); reg16 |= (fxo_modes[_opermode].rt); wctdm_setreg(wc, card, 16, reg16); + + /* Enable ring detector full-wave rectifier mode */ + wctdm_setreg(wc, card, 18, 2); + wctdm_setreg(wc, card, 24, 0); /* Set DC Termination: Tip/Ring voltage adjust, minimum operational current, current limitation */ With this patch I was able to get fairly reliable CID from my TDM400P card (Wildcard TDM400P REV I (4 modules)) , however this now fails to patch against the latest Zaptel 1.4.9.2 and I am unable to get CID working reliably - some calls do show the CID correctly !!!!. This is what appears in the output more often than not: [Apr 5 16:21:13] NOTICE[12685]: chan_zap.c:6191 ss_thread: Got event 2 (Ring/Answered)... [Apr 5 16:21:15] WARNING[12685]: chan_zap.c:6254 ss_thread: CID timed out waiting for ring. Exiting simple switch So for some calls we get it, other times the CID is empty. When plugging the DECT unit into the BT line I get CID perfectly every time, so I am sure this is a driver/card issue. So has anyone found a reliable way in the UK using one of these cards on BT to show UK CID ? I think I have all the right settings in the zapata.conf i.e usecallerid => yes cidsignalling => v23 cidstart => polarity immediate => no So where am I going wrong ? Sorry if this has been covered somewhere else or a fix .. I am just unable to find it - and I am slowly loosing hair ! Regards Matt Brown _______________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users