Sangoma Hangup Detection

Hi All,

I’m aware that there are topics related to this subjected but none of the issues were resolved.

If I call the PBX number then hangup without the PBX picking up, the phone assigned to the PBX will continue to ring. It does turn off but only after 30 seconds or so

The logs do not recognize that I’ve hung up. If it helps I have a Sangoma A200D dahdi card using FXO. I have a BT line based in the UK. -Running Asterisk 13.1.0 & FreePBX 12.0.29, all modules are up to date

Feel free to ask for more information

Mohammed

http://wiki.sangoma.com/troubleshooter-boards-analog-Hangup-Detection-issues
and
http://www.voip-info.org/wiki/view/UK+Asterisk+Details

1 Like

We have the hangup detection working for calls (UK) but not if the calls goes in to a IVR as it seams to get stuck.

Post from your logfile ( as it has time stamps) a call exhibiting such behavio(u)r

IVR is setup at the moment to go to 2 voicemails, normal telephone calls work fine and the hangup detection seams to be working.

[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [s@tc-maint:1] NoCDR(“Local/s@tc-maint-000019af;2”, “”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [s@tc-maint:2] Set(“Local/s@tc-maint-000019af;2”, “TCMAINT=RETURN”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [s@tc-maint:3] Gosub(“Local/s@tc-maint-000019af;2”, “timeconditions,1,1()”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [1@timeconditions:1] Set(“Local/s@tc-maint-000019af;2”, “DB(TC/1/INUSESTATE)=INUSE”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [1@timeconditions:2] Set(“Local/s@tc-maint-000019af;2”, “DB(TC/1/NOT_INUSESTATE)=NOT_INUSE”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [1@timeconditions:3] GotoIfTime(“Local/s@tc-maint-000019af;2”, “09:00-16:30,mon-fri,,?truestate”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [1@timeconditions:4] GotoIf(“Local/s@tc-maint-000019af;2”, “0?truegoto”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [1@timeconditions:5] ExecIf(“Local/s@tc-maint-000019af;2”, “0?Set(DB(TC/1)=)”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [1@timeconditions:6] Set(“Local/s@tc-maint-000019af;2”, “DEVICE_STATE(Custom:TC1)=INUSE”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [1@timeconditions:7] ExecIf(“Local/s@tc-maint-000019af;2”, “0?Set(NOT_INUSE)”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [1@timeconditions:8] GotoIf(“Local/s@tc-maint-000019af;2”, “0?app-blackhole,hangup,1”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [1@timeconditions:9] Set(“Local/s@tc-maint-000019af;2”, “TCSTATE=false”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [1@timeconditions:10] Return(“Local/s@tc-maint-000019af;2”, “”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [s@tc-maint:4] Gosub(“Local/s@tc-maint-000019af;2”, “timeconditions,2,1()”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [2@timeconditions:1] Set(“Local/s@tc-maint-000019af;2”, “DB(TC/2/INUSESTATE)=INUSE”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [2@timeconditions:2] Set(“Local/s@tc-maint-000019af;2”, “DB(TC/2/NOT_INUSESTATE)=NOT_INUSE”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [2@timeconditions:3] GotoIfTime(“Local/s@tc-maint-000019af;2”, “08:30-17:30,mon-fri,,?truestate”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [2@timeconditions:4] GotoIf(“Local/s@tc-maint-000019af;2”, “0?truegoto”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [2@timeconditions:5] ExecIf(“Local/s@tc-maint-000019af;2”, “0?Set(DB(TC/2)=)”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [2@timeconditions:6] Set(“Local/s@tc-maint-000019af;2”, “DEVICE_STATE(Custom:TC2)=INUSE”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [2@timeconditions:7] ExecIf(“Local/s@tc-maint-000019af;2”, “0?Set(NOT_INUSE)”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [2@timeconditions:8] GotoIf(“Local/s@tc-maint-000019af;2”, “0?timeconditions,3,1”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [2@timeconditions:9] Set(“Local/s@tc-maint-000019af;2”, “TCSTATE=false”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [2@timeconditions:10] Return(“Local/s@tc-maint-000019af;2”, “”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [s@tc-maint:5] Gosub(“Local/s@tc-maint-000019af;2”, “timeconditions,3,1()”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [3@timeconditions:1] Set(“Local/s@tc-maint-000019af;2”, “DB(TC/3/INUSESTATE)=INUSE”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [3@timeconditions:2] Set(“Local/s@tc-maint-000019af;2”, “DB(TC/3/NOT_INUSESTATE)=NOT_INUSE”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [3@timeconditions:3] GotoIfTime(“Local/s@tc-maint-000019af;2”, “08:30-12:00,sat,,?truestate”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [3@timeconditions:4] GotoIf(“Local/s@tc-maint-000019af;2”, “0?truegoto”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [3@timeconditions:5] ExecIf(“Local/s@tc-maint-000019af;2”, “0?Set(DB(TC/3)=)”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [3@timeconditions:6] Set(“Local/s@tc-maint-000019af;2”, “DEVICE_STATE(Custom:TC3)=INUSE”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [3@timeconditions:7] ExecIf(“Local/s@tc-maint-000019af;2”, “0?Set(NOT_INUSE)”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [3@timeconditions:8] GotoIf(“Local/s@tc-maint-000019af;2”, “0?ivr-1,s,1”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [3@timeconditions:9] Set(“Local/s@tc-maint-000019af;2”, “TCSTATE=false”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [3@timeconditions:10] Return(“Local/s@tc-maint-000019af;2”, “”) in new stack
[2015-01-24 17:53:00] VERBOSE[31855][C-000019de] pbx.c: – Executing [s@tc-maint:6] System(“Local/s@tc-maint-000019af;2”, “/var/lib/asterisk/bin/schedtc.php 60 /var/spool/asterisk/outgoing 0”) in new stack
[2015-01-24 17:53:01] VERBOSE[31855][C-000019de] pbx.c: – Executing [s@tc-maint:7] Answer(“Local/s@tc-maint-000019af;2”, “”) in new stack
[2015-01-24 17:53:01] VERBOSE[31855][C-000019de] pbx.c: == Spawn extension (tc-maint, s, 7) exited non-zero on ‘Local/s@tc-maint-000019af;2’
[2015-01-24 17:53:01] NOTICE[31854] pbx_spool.c: Call completed to Local/s@tc-maint
[2015-01-24 17:53:05] VERBOSE[31649][C-000019d7] app.c: – User hung up
[2015-01-24 17:53:05] VERBOSE[31649][C-000019d7] config.c: == Parsing ‘/var/spool/asterisk/voicemail/default/204/INBOX/msg0000.txt’: Found
[2015-01-24 17:53:06] VERBOSE[31649][C-000019d7] app_macro.c: == Spawn extension (macro-vm, s-BUSY, 3) exited non-zero on ‘DAHDI/1-1’ in macro ‘vm’
[2015-01-24 17:53:06] VERBOSE[31649][C-000019d7] pbx.c: == Spawn extension (ext-local, vmb204, 1) exited non-zero on ‘DAHDI/1-1’
[2015-01-24 17:53:06] VERBOSE[31649][C-000019d7] pbx.c: – Executing [h@ext-local:1] Macro(“DAHDI/1-1”, “hangupcall,”) in new stack
[2015-01-24 17:53:06] VERBOSE[31649][C-000019d7] pbx.c: – Executing [s@macro-hangupcall:1] GotoIf(“DAHDI/1-1”, “1?theend”) in new stack
[2015-01-24 17:53:06] VERBOSE[31649][C-000019d7] pbx.c: – Goto (macro-hangupcall,s,3)
[2015-01-24 17:53:06] VERBOSE[31649][C-000019d7] pbx.c: – Executing [s@macro-hangupcall:3] ExecIf(“DAHDI/1-1”, “0?Set(CDR(recordingfile)=)”) in new stack
[2015-01-24 17:53:06] VERBOSE[31649][C-000019d7] pbx.c: – Executing [s@macro-hangupcall:4] Hangup(“DAHDI/1-1”, “”) in new stack
[2015-01-24 17:53:06] VERBOSE[31649][C-000019d7] app_macro.c: == Spawn extension (macro-hangupcall, s, 4) exited non-zero on ‘DAHDI/1-1’ in macro ‘hangupcall’
[2015-01-24 17:53:06] VERBOSE[31649][C-000019d7] pbx.c: == Spawn extension (ext-local, h, 1) exited non-zero on ‘DAHDI/1-1’
[2015-01-24 17:53:06] VERBOSE[31649][C-000019d7] sig_analog.c: – Hanging up on ‘DAHDI/1-1’
[2015-01-24 17:53:06] VERBOSE[31649][C-000019d7] chan_dahdi.c: – Hungup ‘DAHDI/1-1’
[2015-01-24 17:53:06] VERBOSE[31650][C-000019d7] app_mixmonitor.c: == MixMonitor close filestream (mixed)
[2015-01-24 17:53:06] VERBOSE[31650][C-000019d7] app_mixmonitor.c: == End MixMonitor Recording DAHDI/1-1

Ok, you have a couple of calls mixed up in there, your call was 31649 (and 31650) and both are incompletely posted, so:-

grep -E “31649|31650” /var/log/asterisk/full

to extract the interesting bits . . .

Been reading up and tring to fix this, currently dadhi is configured

[channels]
language=en
busydetect=yes
busycount=3
usecallerid=yes
callwaiting=yes
usecallingpres=yes
threewaycalling=yes
transfer=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=no
echotraining=no
immediate=yes
faxdetect=no
rxgain=8
txgain=8
cidsignalling=v23
cidstart=polarity
callerid=asreceived
signalling=fx[s/o]_ks
progzone=uk
hanguponporlarityswitch=yes

Which does not detect the caller hanging up, but if i add

callprogess = yes

It detects hangups but then on a outgoing call there is one way(out) audio.