Sunday 27 July 2008

Asterisk, TDM400P and reliable Caller ID in the UK

Since my post back in March, I've been quite remiss in keeping my own Asterisk box up to date. As it has been getting significantly more use in the last couple of weeks, I've noticed that I sometimes get external calls appearing to come from "asterisk asterisk" instead of the usual Caller ID information. Delving into the logs, it seems I've been failing to capture the calling party's CID about once in every five calls.

Blindly hoping that a freshened install may help, after having already shamed myself by running code that was over four months old(!), I brought the Zaptel software up to 1.4.11 and Asterisk up to 1.4.21.2. Unfortunately, and very predictably, this didn't alter the CID behaviour.

Reading around the subject I learned that for each incoming call my UK BT line undergoes a polarity reversal, a 300ms delay and then receives a burst of V23 CID information before the first ring. My ATCOM TDM400P clone and the wctdm drivers support the polarity reversal detection. Watching the Asterisk console showed that, on a failed CID capture, a "Got event 2 (Ring/Answered)..." was processed just before the CID information should have been displayed. Some further Googling eventually turned up this 2006 post and the answer.

I had to update chan_zap.c manually and have taken a new diff file that can be found here. To apply it, save the file to the root of your Asterisk source code and from there "patch -p0 <reliable-uk-callerid-1.4.21.diff", compile and install. I've tested this patch successfully on Asterisk 1.4.21, 1.4.21.1 and 1.4.21.2 and now Caller ID information is captured every time.

2 comments :

handaomeng@hotmail.com said...

hi
i have a problem with asterisk callerid detect.

can you mail me the "reliable-uk-callerid-1.4.21.diff"

thanks
handaomeng@hotmail.com

BigHippo999 said...

I know this is an old blog, but hoping you get this.

Do you still use this or even a newer version?

I've had this bookmarked for ages, and have successfully applied it during upgrades (a HUGE thanks btw).

I've forced to upgrade now that my server died, and unfortunately even with this applied chan_dahdi is very hit and miss on cli detection. Running Asterisk 1.8.6.0

Was just wondering if your still using it and if you have any issues.

Cheers.