DAHDI UK PSTN remote pickup not detected (Nobody picked up in ...)

First, I’ll admit to being a newbie, but I’ve trawled the docs and fora and google, and I’m drawing a blank with this one. It’s a small home system on the UK BT telephone network connected via a wildcard tdm400p using the wctdm module. The system works, I have incoming caller ID most of the time (I’d say >90% of the time with some failures), both SIP and analogue POTS extensions work fine internally.

The snag is that although outgoing calls can be placed successfully, they drop after 5 minutes with the error “Nobody picked up in 30000 ms”. This is despite answeronpolarityswitch=yes being set. I think the polarity switching must be being picked up fine because I also have hanguponpolarityswitch=yes and that makes a definite difference.

I’ve fudged the issue for now by extending the timeout to a couple of hours, but I’d rather it detected pickup properly. Should I expect my bodge break anything else as I develop this system further? Is there anything I should be doing for further debugging?

There seems to be some debate about whether one should pass a UK parameter to the wctdm kernel module. Might that make a difference, and if so what would be the correct format (again, there seems to be disagreement around capitalisation etc.)?

The asterisk and dahdi versions I’m running are the Debian packaged ones in Jessie (11.13.1 and 2.10 respectively).

The relevant part of my chan_dahdi.conf is this:

;Main UK callerID setup block
sendcalleridafter = 2
callerid = asreceived
;Other hardware/CLI/pickup-hangup related settings
answeronpolarityswitch=yes      ;yes/no may not make much difference, perhaps yes makes pick up a tad faster??
hanguponpolarityswitch=yes      ;seems to prevent ring-on after remote caller hangs up
rxgain=5.0      ;default 0, raise to enhance CLI, lower to enhance DTMF reception. Higher than 5 stops outbound dialling!
;txgain=5.0     ;default 0
faxbuffers => 12,half
;Callwaiting settings - after putting this block in there were a couple of dropped CID's, may not be causal
;Now all those settings for the dahdi channels have been made, include the file which defines them
#include /etc/asterisk/dahdi-channels.conf

The included config for the single FXS module connected to the line is this:

;;; line="4 WCTDM/4/3 FXSKS  (In use) (EC: OSLEC - INACTIVE)"
channel => 4

Many thanks in advance to anyone who can give me some guidance.


I would get a meter and confirm that your line sends a reversal on answer and on hangup, BT lines usually do nothing or send a CPC signal on hangup.

callerid start is usually a reversal in the UK.

I would set answeronpolarityswitch=no unless you can confirm that you do get a reversal when the far end answers, and im pretty sure you wont.


Thanks Ian, sounds like I misinterpreted what I was seeing in descriptions of BT settings. I’ll give that change a go and see what comes to pass.

Update - that did it. Hopefully this thread will serve to correct others who had been following the same information as me.

Of course, thinking about it I suppose it isn’t really necessary to detect pickup outgoing on a BT line since BT will themselves cut it off after a while if there’s been no pickup.


You want to search the BT site for the supplier information notes (SINs) on standard analogue lines and caller ID. There are options, mainly to cope with the odd small exchange in the highliands. If I remember correctly the official disconnect supervision signal is actually removal of battery, not line reversal.

I think you want SIN 242 and SIN 351. http://www.sinet.bt.com/sinet/

Thanks David! That’s immensely helpful; I might just get on top of this yet…