Call does not disconnect

Telco says they do provide disconnect supervision on these POTS lines by using battery reversal at 800ms.

After some more troubleshooting, it seems that the channels are being seized by voicemail. Meaning, an external call comes in, and get sent to voicemail. If that caller hangs up before leaving a message, the channels stays active until I clear it manually.

The telco engineer told me that it sounds like the caller hangs up before the PBX disconnects the call (in this case voicemail) and thus the PBX isn’t getting the disconnect signal.

What adjustments can I make to try alleviate this issue?

Thanks!

Setup dahdi to hangup on that battery reversal, google dahdi.conf for how to do that.

By default the card is looking for a >500ms battery pull. Typically this is looking for <4VDC. During the reversal the line probably does not stay under 4VDC for over 500ms

What you are looking for is:

hanguponpolarityswitch=yes

I just inserted the hanguppolarityswitch=yes into my chan_dahdi.conf file. Testing

Looks like it’s still happening. This is the output of core show channels when a channel is hung up. It looks like it indeed happens when the call hits voicemail but the caller hangs up before leaving a message. Suggestions are most welcome.

Channel Location State Application(Data)
DAHDI/2-1 s-NOANSWER@macro-vm: Up VoiceMail(100@default,ug(12))
1 active channel
1 active call
156996 calls processed

here is the output of core show channel DAHDI/2-1

– General –
Name: DAHDI/2-1
Type: DAHDI
UniqueID: 1395263285.6470
LinkedID: 1395263285.6470
Caller ID: (N/A)
Caller ID Name: (N/A)
Connected Line ID: (N/A)
Connected Line ID Name: (N/A)
Eff. Connected Line ID: (N/A)
Eff. Connected Line ID Name: (N/A)
DNID Digits: (N/A)
Language: en
State: Up (6)
Rings: 1
NativeFormats: (ulaw)
WriteFormat: slin
ReadFormat: ulaw
WriteTranscode: Yes (slin)->(ulaw)
ReadTranscode: No
1st File Descriptor: 21
Frames in: 71979
Frames out: 71966
Time to Hangup: 0
Elapsed Time: 0h24m5s
Direct Bridge:
Indirect Bridge:
– PBX –
Context: macro-vm
Extension: s-NOANSWER
Priority: 2
Call Group: 0
Pickup Group: 0
Application: VoiceMail
Data: 100@default,ug(12)
Blocking in: ast_waitfor_nandfds
Call Identifer: [C-000004e5]
Variables:
MACRO_DEPTH=1
MACRO_PRIORITY=1
MACRO_CONTEXT=ext-local
MACRO_EXTEN=vmu100
ARG1=100
VMCONTEXT=default
DB_RESULT=default
MODE=unavail
RETVM=
MMODE=NOANSWER
MEXTEN=100
GOSUB_RETVAL=
VMGAIN=g(12)
AMPUSERCIDNAME=
AMPUSER=
REALCALLERIDNUM=
TOUCH_MONITOR=1395263285.6470
ARG3=
ARG2=NOANSWER
NODEST=
RingGroupMethod=
REC_POLICY_MODE=
DIALSTATUS=NOANSWER
DIALEDTIME=
ANSWEREDTIME=
DIALEDPEERNAME=
DIALEDPEERNUMBER=
AGISTATUS=SUCCESS
ds=SIP/100&SIP/101&SIP/102&SIP/103&SIP/104&SIP/105,25,m(default)TtM(auto-blkvm)
FILTERED_DIAL=100-101-102-103-104-105
DIALSTATUS_CW=
KEEPCID=TRUE
CALLFILENAME=rg-600-unknown-20140319-140811-1395263285.6470
FROMEXTEN=unknown
TIMESTR=20140319-140811
YEAR=2014
MONTH=03
DAY=19
NOW=1395263291
REC_STATUS=INITIALIZED
MON_FMT=gsm
REC_POLICY_MODE_SAVE=
RRNODEST=
BLKVM_CHANNEL=DAHDI/2-1
TTL=64
CALLINGPRES_SV=allowed_not_screened
MOHCLASS=default
FROM_DID=9164887229
CHAN=2
DID=s

CDR Variables:
level 1: cnam=
level 1: cnum=
level 1: dnid=
level 1: did=9164887229
level 1: dst=s
level 1: dcontext=from-analog
level 1: channel=DAHDI/2-1
level 1: dstchannel=SIP/105-000014b7
level 1: lastapp=VoiceMail
level 1: lastdata=100@default,ug(12)
level 1: start=2014-03-19 14:08:05
level 1: answer=2014-03-19 14:08:36
level 1: duration=1445
level 1: billsec=1414
level 1: disposition=ANSWERED
level 1: amaflags=DOCUMENTATION
level 1: uniqueid=1395263285.6470
level 1: linkedid=1395263285.6470
level 1: sequence=7452

FreePBX®FreePBX is a registered trademark of
Schmooze Com., Inc.
FreePBX 2.11.0.27 is licensed under the GPL
Copyright© 2013www.schmoozecom.com

Channel Location State Application(Data)
DAHDI/1-1 s-NOANSWER@macro-vm: Up VoiceMail(100@default,ug(12))
DAHDI/2-1 s-NOANSWER@macro-vm: Up VoiceMail(100@default,ug(12))
2 active channels
2 active calls
166810 calls processed

You are still not detecting any far end disconnect signal, stick a butt set on the line and listen/watch the light on the dial for a clue.

I will have to do this the next time I am onsite. This system is in Sacramento and I am in Los Angeles. I’ll port back when I have more info.

Is there a way to work-around this issue for the time being? Could I asdjust the message length in the voicemail settings or something like that?

you can set maxmessage= and maxsilence= in voicemail.conf

I have these set…

maxmessage=180
maxsilence=10

You know I have been thinking about the disconnect supervision.

In the day of big iron PBX’s we used ground start circuits. Certainly a very positive disconnect method. 1FB’s had the same issues.

James is extremely knowledgeable about all the parameters you can tweak. Keep in mind however that 10 miles of copper can change impedance due to temperature, water intrusion etc. It’s a bit of voodoo when you are talking about sub 4v signals that are barely above the noise floor. That’s why battery is 48v and ring is over 90. You can mistake those voltages (one is AC and one is DC). So reversing the polarity or a short removal of battery are the only methods to signal using electrical signals. The next step is detecting the tones the telco uses to indicate a hung line.

It’s just a thought that analog and PBX have never mixed. Bringing IP into the mix certainly didn’t change anything.

I have seen a similar issue with a 4-line analog system (all phones are AT&T 1040s) the line stays active after a caller has hung up. I always thought it was a wiring issue or the handset itself.

I never thought I’d have to deal with these issues with Asterisk/FreePBX.

I am still seeing the same issue. Only 2 channels showed in use, but they could not make any calls in or out until I manually cleared the 2 channels by using ‘channel request hangup all’. Can someone help me track this down? Is there something awry in my configs?