IVR Fails To Terminate Call Following Timeout Or Invalid Entry

Just upated from an older Asterisk system to new 64 bit AsteriskNow v6.12 with SHMZ & Asterisk modules fully updated. Got the Polycoms, extensions & trunks working well. The one flaw is with the IVR. It’s a simple IVR that allows the caller to dial an extension or dial zero to leave voicemail. The IVR loops the greeting twice. After the two loops, inputs other than those above should terminate the call with a goodbye message. The FreePBX IVR menu has “Terminate Call” & “Hangup” as the chosen selection for both Invalid Destination and Timeout Destination fields. The IVR routes calls properly but it is not terminating calls with invalid entries or timeouts. Instead it delivers a fast busy signal for both situations for like another 30 seconds or more. I can’t deploy the system until this is corrected.

Is there a known issue with hangup on this build? What is the best way to correct this?

I don’t see a way to attach the IVR code from the extensions_additional.conf so I’ll paste it below.

Thanks in advance for any assistance.


[ivr-1] ; Outbound-Greeting1
include => from-did-direct-ivr
exten => s,1,Set(TIMEOUT_LOOPCOUNT=0)
exten => s,n,Set(INVALID_LOOPCOUNT=0)
exten => s,n,Set(IVR_CONTEXT${CONTEXT}=${IVR_CONTEXT})
exten => s,n,Set(_IVR_CONTEXT=${CONTEXT})
exten => s,n,Set(__IVR_RETVM=)
exten => s,n,GotoIf($["${CDR(disposition)}" = “ANSWERED”]?skip)
exten => s,n,Answer
exten => s,n,Wait(1)
exten => s,n(skip),Set(IVR_MSG=custom/outbound_announcement1)
exten => s,n(start),Set(TIMEOUT(digit)=3)
exten => s,n,ExecIf($["${IVR_MSG}" != “”]?Background(${IVR_MSG}))
exten => s,n,WaitExten(5,)

exten => 0,1(ivrsel-0),Goto(ext-local,vms110,1)

exten => i,1,Set(INVALID_LOOPCOUNT=$[${INVALID_LOOPCOUNT}+1])
exten => i,n,GotoIf($[${INVALID_LOOPCOUNT} > 1]?final)
exten => i,n,Set(IVR_MSG=no-valid-responce-pls-try-again)
exten => i,n,Goto(s,start)
exten => i,n(final),Playback(no-valid-responce-transfering)
exten => i,n,Goto(app-blackhole,hangup,1)

exten => t,1,Set(TIMEOUT_LOOPCOUNT=$[${TIMEOUT_LOOPCOUNT}+1])
exten => t,n,GotoIf($[${TIMEOUT_LOOPCOUNT} > 1]?final)
exten => t,n,Set(IVR_MSG=custom/outbound_announcement1)
exten => t,n,Goto(s,start)
exten => t,n(final),Goto(app-blackhole,hangup,1)

exten => return,1,Set(IVR_CONTEXT=${CONTEXT})
exten => return,n,Set(IVR_CONTEXT${CONTEXT}=${IVR_CONTEXT
${CONTEXT}})
exten => return,n,Set(IVR_MSG=custom/outbound_announcement1)
exten => return,n,Goto(s,start)

exten => h,1,Hangup

exten => hang,1,Playback(vm-goodbye)
exten => hang,n,Hangup

;–== end of [ivr-1] ==–;


Using CLI Debug it appears the (app-blackhole, hangup, 2) non zero on IAX…was executed but it still doesn’t terminate.

I may have found the problem to the IVR issue. After rebuilding the entire PBX with the FreePBX ISO (FreePBX-64bit-6.12.65.iso) and updating the system the tests performed the same as when the system was built from the AsteriskNow ISO of the same version. The IVR fails to terminate an inbound call on either timeout or invalid entry conditions. This appears to be a FreePBX problem.

The problem seems to be confirmed by the CLI while placing a call to the IVR. The last CLI message before the failed termination is ‘sent to invalid extension but no invalid handler’. The reason this is happening appears to be in the two extensions responsible for triggering call termination. The first is for invalid entries and the second for timeouts, basically the do-nothing condition.

exten => i,n,Goto(app-blackhole,hangup,1)

exten => t,n(final),Goto(app-blackhole,hangup,1)

The extensions responsible for issuing the “goodbye” message and terminating the call are shown below:

exten => hang,1,Playback(vm-goodbye)
exten => hang,n,Hangup

The problem appears to be that the reference in the Goto extensions points to “hangup” but instead they should probably point to “hang” which is the actual name for those extensions.

Correcting it is the next challenge. The recommended way to substitute macros & extensions in extensions_additional.conf is to place the desired versions in extensions_override_freepbx.conf and reload. I copied the entire IVR with edits to the override file and rebooted but unfortunately the problem wasn’t solved. Still though, I trust the CLI is giving valid input and the initial assessment of the problem is on track. I’m more likely to believe my attempt to use extensions_override_freepbx.conf was not.

I welcome input on any of the above.

Hi, Have you had any luck with this yet?
I’m having exactly the same problem.

Thanks