SImple Menu question


I am running with X-Lite phones trying to gain familiarity with Asterisk. I have created a basic menu system but it does not behave as I would have expected. I would be very grateful for some input on this.

The user dials 3065, and can then chose to dial 1 to be put through to 3092, or 2 to be put through to 3094. This works fine as long as the person being called picks up. If they do not pick up or they are not running a softphone, the system correctly plays a “Nobody is available” audio message but then fails to hangup. By this I mean that visually, The calling Xlite shows that the call to 3065 is still established with the call duration timer still incrementing. I would have expected Hangup() to drop the connection !?

The extension.conf settings are :
; ----------------------------------------------------------
exten => 3065,1,Answer()
exten => 3065,n,Background(enter-ext-of-person)
exten => 3065,n,WaitExten()

exten => 1,1,Dial(SIP/3092,10)
exten => 1,n,Playback(vm-nobodyavail)
exten => 1,n,Hangup()

exten => 2,1,Dial(SIP/3094,10)
exten => 2,n,Playback(vm-nobodyavail)
exten => 2,n,Hangup()

;handle invalid, i.e.neither 1 nor 2 has been pressed
exten => i,1,Playback(pbx-invalid)
exten => i,n,Goto(internal,3065,1)

; handle timeout
exten => t,1,Playback(vm-goodbye)
exten => t,n,Hangup()

; ----------------------------------------------------

The CLI trace is for a call from 3062 to 3065, with a selection of option 1, is as follows :

-- Executing Answer("SIP/3062-09f3da58", "") in new stack
-- Executing BackGround("SIP/3062-09f3da58", "enter-ext-of-person") in new stack
-- Playing 'enter-ext-of-person' (language 'en')
-- Executing WaitExten("SIP/3062-09f3da58", "") in new stack

== CDR updated on SIP/3062-09f3da58
– Executing Dial(“SIP/3062-09f3da58”, “SIP/3092|10”) in new stack
== Everyone is busy/congested at this time (1:0/0/1)
– Executing Playback(“SIP/3062-09f3da58”, “vm-nobodyavail”) in new stack
– Playing ‘vm-nobodyavail’ (language ‘en’)
– Executing Hangup(“SIP/3062-09f3da58”, “”) in new stack
== Spawn extension (phones, 1, 3) exited non-zero on 'SIP/3062-09f3da58’

So the Hangup does appear to be getting executed.

Any ideas what I am doing wrong ? How can I get the system to drop the call after the message is played?


I have cured this, but sadly it took a reboot of the Asterisk box.

I also had a few other symptoms at the same time, which all dissappeared together after the reboot.

  1. after a call was picked up the caller could not hear the callee until he toggled hold. (Note that the callee was not on hold in the first place)
  2. after making a call, without warning the system hung up the call after 35-40 seconds of call duration had elapsed
  3. as in the original post, executing hangup in the extensions.conf following a failed DIAL attempt from a menu, did not actually cause the call to be hungup.

All these were reproducible.

For info, I am using
FreePBX framework, Asterisk svn rev 79171, (part of TrixBox 2.2.12)
X-Lite 3.41150 on Windows XP SP2