Blind transfer to voice mail and VmX Locator

It looks like I’ve got a problem with FreePBX. Callers are unable to leave a message when they are transfered to voice mail and the extension has VmX Locator enabled. Has any one seen this before?

Here’s how it happens. A caller dials in and reaches an extension. A person answers the extension. Then, the person presses the Flash button, enters the feature code for voice mail and their extension, and then hangs up. The caller hears the unavailable message, but then hears an error message and the call disconnects.

If I disable VmX Locator on the extension, the above process works. It also works if the person does an attended transfer, staying on the line until the message has been left.

Software version: Asterisk 1.6.0.6, FreePBX 2.5.1.1

Excerpt from the log file: (DAHDI/32 = extension, DAHDI/2 = incoming line)

– Goto (macro-vm,vmx,1)
– Executing [[email protected]:1] GotoIf(“DAHDI/31-2”, “0?s-DIRECTDIAL,1”) in new stack
– Executing [[email protected]:2] Set(“DAHDI/31-2”, “MODE=unavail”) in new stack
– Executing [[email protected]:3] GotoIf(“DAHDI/31-2”, “0?notdirect”) in new stack
– Executing [[email protected]:4] Set(“DAHDI/31-2”, “MODE=unavail”) in new stack
– Executing [[email protected]:5] NoOp(“DAHDI/31-2”, “Checking if ext 252 is enabled: enabled”) in new stack
– Executing [[email protected]:6] GotoIf(“DAHDI/31-2”, “0?s-DIRECTDIAL,1”) in new stack
– Executing [[email protected]:7] Macro(“DAHDI/31-2”, “get-vmcontext,252”) in new stack
– Executing [[email protected]:1] Set(“DAHDI/31-2”, “VMCONTEXT=default”) in new stack
– Executing [[email protected]:2] GotoIf(“DAHDI/31-2”, “0?200:300”) in new stack
– Goto (macro-get-vmcontext,s,300)
– Executing [[email protected]:300] NoOp(“DAHDI/31-2”, “”) in new stack
– Executing [[email protected]:8] AGI(“DAHDI/31-2”, “checksound.agi,/var/spool/asterisk/voicemail/default/252/temp”) in new stack
– Launched AGI Script /var/lib/asterisk/agi-bin/checksound.agi
checksound.agi,/var/spool/asterisk/voicemail/default/252/temp: VmX requires: /var/spool/asterisk/voicemail/default/252/temp.wav or .WAV exist in order to function
– <DAHDI/31-2>AGI Script checksound.agi completed, returning 0
– Executing [[email protected]:9] GotoIf(“DAHDI/31-2”, “0?tmpgreet”) in new stack
– Executing [[email protected]:10] AGI(“DAHDI/31-2”, “checksound.agi,/var/spool/asterisk/voicemail/default/252/unavail”) in new stack
– Launched AGI Script /var/lib/asterisk/agi-bin/checksound.agi
– <DAHDI/31-2>AGI Script checksound.agi completed, returning 0
– Executing [[email protected]:11] GotoIf(“DAHDI/31-2”, “0?nofile”) in new stack
– Executing [[email protected]:12] Set(“DAHDI/31-2”, “LOOPCOUNT=0”) in new stack
– Executing [[email protected]:13] GotoIf(“DAHDI/31-2”, “1?vmxtime”) in new stack
– Goto (macro-vm,vmx,15)
– Executing [[email protected]:15] GotoIf(“DAHDI/31-2”, “1?vmxloops”) in new stack
– Goto (macro-vm,vmx,17)
– Executing [[email protected]:17] GotoIf(“DAHDI/31-2”, “1?vmxanswer”) in new stack
– Goto (macro-vm,vmx,19)
– Executing [[email protected]:19] Answer(“DAHDI/31-2”, “”) in new stack
– Executing [[email protected]:20] Read(“DAHDI/31-2”, “ACTION,/var/spool/asterisk/voicemail/default/252/unavail,1,skip,1,2”) in new stack
– Accepting a maximum of 1 digits.
– <DAHDI/31-2> Playing ‘/var/spool/asterisk/voicemail/default/252/unavail.slin’ (language ‘en’)
– Hungup ‘DAHDI/2-1’
– User entered nothing.
– Executing [[email protected]:21] GotoIf(“DAHDI/2-1”, “0?checkopt”) in new stack
– Executing [[email protected]:22] NoOp(“DAHDI/2-1”, “Timeout: going to timeout dest”) in new stack
– Executing [[email protected]:23] Set(“DAHDI/2-1”, “VMX_OPTS=”) in new stack
– Executing [[email protected]:24] GotoIf(“DAHDI/2-1”, “1?chktime”) in new stack
– Goto (macro-vm,vmx,26)
– Executing [[email protected]:26] GotoIf(“DAHDI/2-1”, “1?dotime”) in new stack
– Goto (macro-vm,vmx,32)
– Executing [[email protected]:32] Goto(“DAHDI/2-1”, “,dovm,1”) in new stack
– Goto (macro-vm,dovm,1)
– Executing [[email protected]:1] NoOp(“DAHDI/2-1”, “VMX Timeout - go to voicemail”) in new stack
– Executing [[email protected]:2] VoiceMail(“DAHDI/2-1”, “[email protected],”"") in new stack
app_voicemail.c: No entry in voicemail config file for ‘12’
– Executing [[email protected]:3] Goto(“DAHDI/2-1”, “exit-FAILED,1”) in new stack
– Goto (macro-vm,exit-FAILED,1)
– Executing [[email protected]:1] Playback(“DAHDI/2-1”, “im-sorry&an-error-has-occured”) in new stack
– <DAHDI/2-1> Playing ‘im-sorry.slin’ (language ‘en’)
– <DAHDI/2-1> Playing ‘an-error-has-occured.slin’ (language ‘en’)

Has a solution been found for this? I’m having exactly the same problem.

Asterisk 1.4.25.2
FreePBX 2.5.1.5
Voicemail Module 2.5.1.6

Version 2.6.0.RC2.0 works correctly.

Is there a fix for this that doesn’t require upgrading from 2.5 to 2.6? I’m using elastix which hasn’t updated to 2.6 yet, and I’ve read about people having problems upgrading to 2.6 and then having a “yum update” put them back at 2.5.

Version 2.5 is no longer supported (other than any security issues that come along).

Have you checked with the Elastix team to see what their plan is to move forward? It’s been about 6 months since 2.6 was final and there are many bug fixes in 2.6 (and even more in 2.7) that were never put into 2.5.

Thanks for the quick response Philippe.

Are you suggesting this has always been an issue in 2.5? If so, I’m surprised it took me this long to discover it.

Regarding Elastix, I’ve posted this same issue on their forums, and mentioned that my reason for staying back at 2.5 was to avoid problems with Elastix. I know there are updates coming from them (both an update to the current 1.x branch as well as a major revision to 2.0). Not sure about the 1.x branch, but it appears they’re using 2.6 in the 2.0 release and may even be working to update to 2.7. I’ve asked about the 1.x branch on the Elastix forums. Hopefully an update is coming soon!

as far as the bug, I have no idea as I really did not look at the details, just your question of 2.5 being broken and the assumption that it is fixed in 2.6+

I am not aware of any such issue in 2.5 and suspect that it should work fine in 2.5 or it would have surfaced. If you have a look at the dialplan above, it appears to me the problem is with your voicemail config for that extension:

app_voicemail.c: No entry in voicemail config file for '12'

that would indicate it cold not find an entry.

I submitted a bug report on it (#3609: Transfer to Voice Mail Error). The problem occurred when the caller hung up. This caused a couple of global variables to change and macro-vm didn’t like that.

ejacobsh,

thanks for pointing that out. The fix for this would be r8221.

cards1007,

I just tried merging those changes form 2.6 to 2.5 to see if it was a clean merge. If it was, I would have back ported the fix to 2.5. Unfortunately the merge is not clean as there are many conflicts when trying to apply it. Given this, we will not back port this to 2.5 as it is too high of a risk of breaking something.

So unfortunately upgrading to 2.6 or above is going to be the solution for this one unless you want to merge those changes yourself onto your install. The plus side is that moving to 2.6 (or even better 2.7) brings a lot of benefit with it in addition to this fix and hundreds of other tickets representing fixes as well as new features.

Thanks to both of you for looking into this and doing what you can. Sounds like the real solution is to get an updated version of FreePBX running with my elastix install, so that’s where I’ll focus my efforts.