FXO Hangup/disconnect supervision problem


My TDM400P (1FXO/1FXS) card is not detecting hangup properly on the FXO port. I know this issue has been covered over and over but none of the solutions I found solved my problem. Any help will be appreciated

  1. My telco is Telus in Vancouver, BC, Canada
  2. I have callerid/call waiting/call waiting callerid on my PSTN line
  3. I use fxsks=1 in zaptel.conf and the fxs_ks signalling method in zapata.conf with loadzone/country = us.
  4. dmesg correctly reports Module 0: Installed – AUTO FXO (FCC mode)
  5. I use asterisk 1.4.19 and zaptel 1.4.10

When someone calls me through the FXO port, asterisk does detect the hangup but only (approximately) 15 seconds after it happens. So if someone hangs up during the voicemail greeting, I get an empty message of about 12 seconds (say 3 seconds to finish the greeting and another 12 before the hangup is detected). Basically if the hangup occurs at any point in the dial plan, the rules keep getting executed for those 15 seconds until the hangup is detected. If at some point during the dial plan a Hangup() application is reached, execution continues from the s,1 extension (really, it does).

In order to solve this I tried playing with some variables in zapata.conf. Specifically I tried playing with hanguponpolarityswitch, busydetect, busycount and callprogress. Every time I restarted asterisk the same hangup problem occurred.

So is it possible that my telco keeps the line alive for 15 seconds before it sends the hangup signal? When I called them they didn’t seem to know what I was talking about when I asked about ‘disconnect supervision’. Maybe I’ll try them again, see if I can get a different technician. In the mean time can someone suggest anything that would help? Any help would be greatly appreciated.


It is for the asterisk need time to detect the hangup by busy tone. if your pstn line has polarity reversal signal, you could try by this to detect hangup.