[Asterisk-Dev] UK BT Caller ID - work on new patch

Marc McLaughlin (LUSYN) marc at lusyn.com
Tue Nov 9 05:38:02 MST 2004


Hi all,

The original patch developed by Tony Hoyle was reported in Bug ID 1719.
Modified versions of these are now available which work with v1 of *
(download from www.lusyn.com/asterisk/patches.html).  I'm trying to come up
with a new patch for UK BT Caller ID on X100P with the aim of it being
accepted into CVS as a permanent fix.  

Since v1 of *, which now incorporates a UK Caller ID fix which I believe was
done by dant, I thought it would be easiest to monitor for a sample above a
certain threshold (as Mark suggested in the bugnotes) but to then signal
ZT_EVENT_POLARITY.  That would fire off to chan_zap.c which should extract
the Caller ID info and then carry on with distinctive ring checks, etc.  I
set a flag to indicate a signal has been sent, which gets cleared when
wc->off_hook is set to 0.

At the moment my modified wcfxo.c results in the following :

1) Samples detected on line, ZT_EVENT_POLARITY signalled
2) Caller ID info extracted correctly by chan_zap.c
3) Distinctive ring checks fail
4) Call forwarded as expected to SIP phone
5) When hanging up and wc->off_hook set to 0, extra samples are detected
which fires off ZT_EVENT_POLARITY again

The first problem is that distinctive ring checks fail.  I remember dant
saying in the bugnotes that he couldn't test distinctive ring with his
Caller ID patch (which has been incorporated into CVS head).  I've found a
simple test whether or not you have BT Call Sign (distinctive ring product).
First of all make sure you have set "usedistinctiveringdetection=yes" in
/etc/asterisk/zapata.conf.  If the line gets answered after the first ring
and distinctive ring is detected as 0,0,0 then the distinctive ring
detection is not working.  If the line gets answered after a couple of rings
and distinctive ring is not detected as 0,0,0 (I normally get 367,*,* for
normal ring), then distinctive ring detection is probably working.

The second problem is with samples generated which are nothing to do with
Caller ID info being sent before a call.  I can ignore the start-up samples
which appear when wcfxo is loaded and then ztcfg'd, but the difficult bit is
knowing when a call has closed down properly and it's safe to start
monitoring for Caller ID info again.  Unfortunately the close-down samples
are similar in value to the samples generated just before Caller ID.
Thinking perhaps of checking the actual values against the Channel Seizure
Signal (01010101 x 30).

Anyone got any ideas?

Rgds,

Marc





More information about the asterisk-dev mailing list