VmX Setup

Upgraded to 2.3b Friday Night, Upgrade went well. I began to test the new features, but cannot seem to get the VmX feature to work. I’m sure I’m missing something, but here’s what I have.

I) VmX enable shows up on Extension setup page. It is Enabled.
II) Follow Me is set up for that extension.
III) Inbound Routes points to extension
IV) Everything seems OK on ARI page.
A) Follow Me Block (unchecked)
B) 0,1,2 Destinations
1) 0 set to ring 2001
2) Set for Follow Me (Default)
3) Set for Mailbox

V) When I dial the inbound DID, after 4 rings it goes to VM, I press 1 or 2 and nothing happens. I press “0” and am forwarded to default “Operator” extension.

VI) Does not appear to be a DTMF decoding issue. Can access 0,1,2 in a regular IVR from the same phone.

Any help would be appreciated…

Thanks
Bill

OK…default and device are linked, drilling down either path produces the same files.

It shows as a link in the ls -l command. Just to be sure i created a test file in each and it showed up in the other.

Finally, replacing WAV or wav with [Ww][Aa][Vv] seems to work.

Bill

yup, you are right. (I never really liked the way I check for the file … maybe there is a better way).

What version of asterisk are you running? And as asked, do you have both a unavail.wav and unavail.WAV?

Also, take a look at the line in macro-vm that does the System(ls …) command. Can you change ‘ls’ to the full path ‘/bin/ls’ ?

The system command jumps to line 101 on error (either from the ls failing or from the system command failing, and that is clearly what it is doing in your case.)

Thanks for trying out a few of those and getting back to me so we can figure out what the exact issue is.

GOT IT!!!

Change the “.wav” to “.WAV”!!!
I don’t understand the significance of the “.wav” file, but I’ve noticed before it’s not a “WAV” file. I was curious as to what it was, so I had downloaded it snd tried to play it. You’ll notice the size of the “wav” is only about 10% the size of the “WAV”.

One other thing…I did change the ls to /bin/ls. That didn’t work, so then changed to .WAV. the /bin/ls is still there.

Your notes in the code were the giveaway:
[color=blue]TODO: figure out which is proper file (.wav or .WAV) and maybe find a better way".[/color]
By the way:
I’m running Asterisk 1.2.19 and trixbox 2.2.2.

Bill

question is - when you record your greeting, does it make a .wav or a .WAV? Had you specifically removed the .wav? I would like to understand whay it was not there?

My understanding is that Asterisk always makes both formats, it chooses the one closest to what it will be transcoding to. But if it did not make both formats for you, then I need to address that. If it did and you deleted one, or you had recorded this from elsewhere and downloaded only that format, that would explain it.

thanks for letting me know.

(Note - if yo used the system as normal, creating your vm greeting from within vm, and this happened, then please file a bug)

It creates both a wav and a WAV. Both are there, but wav is not a WAV file. I don’t know what it is, but you can’t play it in a WAV player.
In one of my earlier posts, I sent along an ls -l of the VM directory.

It was created normally.

I really don’t know what the wav is.

Oh…I think you misunderstood. I changed the .wav to .WAV in the extensions.conf file, not in the vm directory.

Bill

wav is just a different format

hmm,

you showed me a listing of device/2995, not of default/2995. They should be linked but something may be going on there. The fact of the matter is that all it is doing is checking for the existance of the file, it lets asterisk choose which to play.

so for starters, can you check that. Next, can you test the following:

instead of the “.wav” which you replaced with “.WAV”, can you now try replacing it with:

“.[wW][aA][vV]” and tell me if that fixes it?

thanks!

philippe

Take a look at this:

In the lines you quoted back to me, it clearly doesn’t believe the file exists, but go down a little and you see that it plays the file!

– Executing System(“SIP/2001-[color=red]0a4d2228”, “ls /var/spool/asterisk/voicemail/default/2995/unavail.wav”) in new stack
– Executing NoOp(“SIP/2001-0a4d2228”, “File for mode: unavail does not exist| going to normal voicemail”) in new stack
– Executing Goto(“SIP/2001-0a4d2228”, “s-NOANSWER|1”) in new stack[/color] – Goto (macro-vm,s-NOANSWER,1)
– Executing Macro(“SIP/2001-0a4d2228”, “get-vmcontext|2995”) in new stack
– Executing Set(“SIP/2001-0a4d2228”, “VMCONTEXT=default”) in new stack
– Executing GotoIf(“SIP/2001-0a4d2228”, “0?200:300”) in new stack
– Goto (macro-get-vmcontext,s,300)
– Executing NoOp(“SIP/2001-0a4d2228”, “”) in new stack
– Executing VoiceMail(“SIP/2001-0a4d2228”, “[email protected]|u”) in new stack
[color=green] – Playing ‘/var/spool/asterisk/voicemail/default/2995/unavail’ (language ‘en’)[/color] == Spawn extension (macro-vm, s-NOANSWER, 2) exited non-zero on ‘SIP/2001-0a4d2228’ in macro ‘vm’
== Spawn extension (macro-vm, s-NOANSWER, 2) exited non-zero on ‘SIP/2001-0a4d2228’ in macro ‘exten-vm’
== Spawn extension (macro-vm, s-NOANSWER, 2) exited non-zero on ‘SIP/2001-0a4d2228’

Unavailable Greeting is there, and I get it when I call the phone.

/var/lib/asterisk/voicemail/device/2995

-rwxrwxrwx 1 asterisk asterisk 137644 Mar 15 1634 busy.wav
-rwxrwxrwx 1 asterisk asterisk 14036 Mar 15 1634 busy.WAV
-rwxrwxrwx 1 asterisk asterisk 22764 Mar 15 1635 greet.wav
-rwxrwxrwx 1 asterisk asterisk 2400 Mar 15 1635 greet.WAV
drwxrwxrwx 2 asterisk asterisk 4096 Jul 1 0936 INBOX
drwxrwxrwx 2 asterisk asterisk 4096 Jun 30 0546 Old
drwxrwxrwx 2 asterisk asterisk 4096 Jun 30 0546 temp
drwxrwxrwx 2 asterisk asterisk 4096 Jul 1 0936 tmp
drwxrwxrwx 2 asterisk asterisk 4096 Jul 1 1843 unavail
-rwxrwxrwx 1 asterisk asterisk 134124 Jul 1 1843 unavail.wav
-rwxrwxrwx 1 asterisk asterisk 13646 Jul 1 1843 unavail.WAV

Bill

I have a bunch of VmX entries in the extensions.conf, so it looks OK.
If you want, I’ll email you a copy or post it to one of my sites so you can download it.

Bill

did you make an unavailable greeting:

[code:1] – Executing System(“Zap/1-1”, “ls /var/spool/asterisk/voicemail/default/2995/unavail.wav”) in new stack
Extension Changed 2995 new state Idle for Notify User 1008
Extension Changed 2995 new state Idle for Notify User 4552
Extension Changed 2995 new state Idle for Notify User 4569
Extension Changed 2995 new state Idle for Notify User 2530
Extension Changed 2995 new state Idle for Notify User 4568
– Executing NoOp(“Zap/1-1”, “File for mode: unavail does not exist| going to normal voicemail”) in new stack [/code:1]If so, do an ‘ls’ of your voicemail directory, there should be a .wav and .WAV version of your unavail greeting. Without a greeting, it will default to normal voicemail.

Same effect when calling from internal phone to internal number.

phone1*CLI> database show AMPUSER/2995/vmx
/AMPUSER/2995/vmx/busy/0/context from-internal
/AMPUSER/2995/vmx/busy/0/ext 2001
/AMPUSER/2995/vmx/busy/0/pri 1
/AMPUSER/2995/vmx/busy/1/context ext-findmefollow
/AMPUSER/2995/vmx/busy/1/ext FM2995
/AMPUSER/2995/vmx/busy/1/pri 1
/AMPUSER/2995/vmx/busy/2/context from-internal
/AMPUSER/2995/vmx/busy/2/ext 6677
/AMPUSER/2995/vmx/busy/2/pri 1
/AMPUSER/2995/vmx/busy/loops 1
/AMPUSER/2995/vmx/busy/repeat 1
/AMPUSER/2995/vmx/busy/state disabled
/AMPUSER/2995/vmx/busy/timeout 2
/AMPUSER/2995/vmx/busy/vmxopts/timeout
/AMPUSER/2995/vmx/unavail/0/context from-internal
/AMPUSER/2995/vmx/unavail/0/ext 2001
/AMPUSER/2995/vmx/unavail/0/pri 1
/AMPUSER/2995/vmx/unavail/1/context ext-findmefollow
/AMPUSER/2995/vmx/unavail/1/ext FM2995
/AMPUSER/2995/vmx/unavail/1/pri 1
/AMPUSER/2995/vmx/unavail/2/context from-internal
/AMPUSER/2995/vmx/unavail/2/ext 6677
/AMPUSER/2995/vmx/unavail/2/pri 1
/AMPUSER/2995/vmx/unavail/loops 1
/AMPUSER/2995/vmx/unavail/repeat 1
/AMPUSER/2995/vmx/unavail/state enabled
/AMPUSER/2995/vmx/unavail/timeout 2
/AMPUSER/2995/vmx/unavail/vmxopts/timeout

Here’s the CLI

Connected to Asterisk 1.2.19 currently running on phone1 (pid = 2603)
Verbosity is at least 5
– Accepting call from ‘6016361728’ to ‘6016312995’ on channel 0/1, span 1
– Executing NoOp(“Zap/1-1”, "CALLERID “Ford William A " <6016361728>”) in new stack
– Executing Wait(“Zap/1-1”, “.25”) in new stack
– Executing NoOp(“Zap/1-1”, "CALLERID “Ford William A " <6016361728>”) in new stack
– Executing Goto(“Zap/1-1”, “from-pstn|6016312995|1”) in new stack
– Goto (from-pstn,6016312995,1)
– Executing Set(“Zap/1-1”, “__FROM_DID=6016312995”) in new stack
– Executing Gosub(“Zap/1-1”, “app-blacklist-check|s|1”) in new stack
– Executing LookupBlacklist(“Zap/1-1”, “”) in new stack
– Executing GotoIf(“Zap/1-1”, “0?blacklisted”) in new stack
– Executing Return(“Zap/1-1”, “”) in new stack
– Executing Gosub(“Zap/1-1”, “cidlookup|cidlookup_2|1”) in new stack
– Executing LookupCIDName(“Zap/1-1”, “”) in new stack
– Executing Return(“Zap/1-1”, “”) in new stack
– Executing GotoIf(“Zap/1-1”, “1 ?cidok”) in new stack
– Goto (from-pstn,6016312995,6)
– Executing NoOp(“Zap/1-1”, "CallerID is “Ford William A " <6016361728>”) in new stack
– Executing Set(“Zap/1-1”, “FAX_RX=disabled”) in new stack
– Executing Macro(“Zap/1-1”, “privacy-mgr|”) in new stack
– Executing Set(“Zap/1-1”, “KEEPCID=6016361728”) in new stack
– Executing GotoIf(“Zap/1-1”, “0?CIDTEST2CIDTEST1”) in new stack
– Goto (macro-privacy-mgr,s,3)
– Executing Set(“Zap/1-1”, “TESTCID=6016361729.000000”) in new stack
– Executing Goto(“Zap/1-1”, “TESTRESULT”) in new stack
– Goto (macro-privacy-mgr,s,6)
– Executing GotoIf(“Zap/1-1”, “0?CLEARCIDPRIVMGR”) in new stack
– Goto (macro-privacy-mgr,s,8)
– Executing PrivacyManager(“Zap/1-1”, “”) in new stack
– CallerID Present Skipping
– Executing SetCallerPres(“Zap/1-1”, “allowed_passed_screen”) in new stack
– Executing Set(“Zap/1-1”, “__ALERT_INFO=1”) in new stack
– Executing Goto(“Zap/1-1”, “from-did-direct|2995|1”) in new stack
– Goto (from-did-direct,2995,1)
– Executing GotoIf(“Zap/1-1”, “1?ext-local|2995|1”) in new stack
– Goto (ext-local,2995,1)
– Executing Macro(“Zap/1-1”, “exten-vm|2995|2995”) in new stack
– Executing Macro(“Zap/1-1”, “user-callerid”) in new stack
– Executing NoOp(“Zap/1-1”, “user-callerid Ford William A 6016361728”) in new stack
– Executing Set(“Zap/1-1”, “AMPUSER=6016361728”) in new stack
– Executing GotoIf(“Zap/1-1”, “0?report”) in new stack
– Executing GotoIf(“Zap/1-1”, “0?start”) in new stack
– Executing Set(“Zap/1-1”, “REALCALLERIDNUM=6016361728”) in new stack
– Executing NoOp(“Zap/1-1”, “REALCALLERIDNUM is 6016361728”) in new stack
– Executing Set(“Zap/1-1”, “AMPUSER=”) in new stack
– Executing Set(“Zap/1-1”, “AMPUSERCIDNAME=”) in new stack
– Executing GotoIf(“Zap/1-1”, “1?report”) in new stack
– Goto (macro-user-callerid,s,13)
– Executing NoOp(“Zap/1-1”, “TTL ARG1 2995”) in new stack
– Executing GotoIf(“Zap/1-1”, “0?continue”) in new stack
– Executing Set(“Zap/1-1”, “__TTL=64”) in new stack
– Executing GotoIf(“Zap/1-1”, “1?continue”) in new stack
– Goto (macro-user-callerid,s,23)
– Executing NoOp(“Zap/1-1”, "Using CallerID “Ford William A " <6016361728>”) in new stack
– Executing Set(“Zap/1-1”, “FROMCONTEXT=exten-vm”) in new stack
– Executing Set(“Zap/1-1”, “VMBOX=2995”) in new stack
– Executing Set(“Zap/1-1”, “EXTTOCALL=2995”) in new stack
– Executing Set(“Zap/1-1”, “CFUEXT=”) in new stack
– Executing Set(“Zap/1-1”, “CFBEXT=”) in new stack
– Executing Set(“Zap/1-1”, “RT=20”) in new stack
– Executing Macro(“Zap/1-1”, “record-enable|2995|IN”) in new stack
– Executing GotoIf(“Zap/1-1”, “0?24”) in new stack
– Goto (macro-record-enable,s,4)
– Executing DeadAGI(“Zap/1-1”, “recordingcheck|20070701-134344|1183315424.204”) in new stack
– Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
recordingcheck|20070701-134344|1183315424.204 Inbound recording not enabled
– AGI Script recordingcheck completed, returning 0
– Executing NoOp(“Zap/1-1”, “No recording needed”) in new stack
– Executing Macro(“Zap/1-1”, “dial|20|rtWw|2995”) in new stack
– Executing AGI(“Zap/1-1”, “dialparties.agi”) in new stack
– Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi
dialparties.agi Starting New Dialparties.agi
== Parsing ‘/etc/asterisk/manager.conf’ Found
== Parsing ‘/etc/asterisk/manager_custom.conf’ Found
== Manager ‘admin’ logged on from 127.0.0.1
dialparties.agi priority is 1
dialparties.agi Caller ID name is ‘Ford William A’ number is ‘6016361728’
> dialparties.agi USE_CONFIRMATION ‘FALSE’
> dialparties.agi RINGGROUP_INDEX ''
dialparties.agi Methodology of ring is ‘none’
– dialparties.agi Added extension 2995 to extension map
– dialparties.agi Extension 2995 cf is disabled
– dialparties.agi Extension 2995 do not disturb is disabled
> dialparties.agi extnum 2995
> dialparties.agi exthascw 0
> dialparties.agi exthascfb 0
> dialparties.agi extcfb
> dialparties.agi exthascfu 0
> dialparties.agi extcfu
> dialparties.agi ExtensionState 0
dialparties.agi Extension 2995 has ExtensionState 0
– dialparties.agi Checking CW and CFB status for extension 2995
– dialparties.agi dbset CALLTRACE/2995 to 6016361728
== Manager ‘admin’ logged off from 127.0.0.1
– AGI Script dialparties.agi completed, returning 0
– Executing Dial(“Zap/1-1”, “SIP/2995|20|rtWw”) in new stack
– Called 2995
– SIP/2995-0a4719c8 is ringing
Extension Changed 2995 new state Ringing for Notify User 1008
Extension Changed 2995 new state Ringing for Notify User 4552
Extension Changed 2995 new state Ringing for Notify User 4569
Extension Changed 2995 new state Ringing for Notify User 2530
Extension Changed 2995 new state Ringing for Notify User 4568
– Registered SIP ‘2015’ at 10.100.10.15 port 5060 expires 120
– Saved useragent “Aastra 9133i/1.4.0.1048 Brcm Callctrl/1.5.1.0 MxSF/v3.2.6.26” for peer 2015
– Nobody picked up in 20000 ms
– Executing Set(“Zap/1-1”, “DIALSTATUS=NOANSWER”) in new stack
– Executing Set(“Zap/1-1”, “SV_DIALSTATUS=NOANSWER”) in new stack
– Executing GosubIf(“Zap/1-1”, “0?docfu|1”) in new stack
– Executing GosubIf(“Zap/1-1”, “0?docfb|1”) in new stack
– Executing Set(“Zap/1-1”, “DIALSTATUS=NOANSWER”) in new stack
– Executing NoOp(“Zap/1-1”, “Voicemail is 2995”) in new stack
– Executing GotoIf(“Zap/1-1”, “0?s-NOANSWER|1”) in new stack
– Executing NoOp(“Zap/1-1”, “Sending to Voicemail box 2995”) in new stack
– Executing Macro(“Zap/1-1”, “vm|2995|NOANSWER”) in new stack
– Executing Macro(“Zap/1-1”, “user-callerid|SKIPTTL”) in new stack
– Executing NoOp(“Zap/1-1”, “user-callerid Ford William A 6016361728”) in new stack
– Executing Set(“Zap/1-1”, “AMPUSER=6016361728”) in new stack
– Executing GotoIf(“Zap/1-1”, “0?report”) in new stack
– Executing GotoIf(“Zap/1-1”, “1?start”) in new stack
– Goto (macro-user-callerid,s,6)
– Executing NoOp(“Zap/1-1”, “REALCALLERIDNUM is 6016361728”) in new stack
– Executing Set(“Zap/1-1”, “AMPUSER=”) in new stack
– Executing Set(“Zap/1-1”, “AMPUSERCIDNAME=”) in new stack
– Executing GotoIf(“Zap/1-1”, “1?report”) in new stack
– Goto (macro-user-callerid,s,13)
– Executing NoOp(“Zap/1-1”, “TTL 64 ARG1 SKIPTTL”) in new stack
– Executing GotoIf(“Zap/1-1”, “1?continue”) in new stack
– Goto (macro-user-callerid,s,23)
– Executing NoOp(“Zap/1-1”, "Using CallerID “Ford William A " <6016361728>”) in new stack
– Executing Set(“Zap/1-1”, “VMGAIN=”) in new stack
– Executing GotoIf(“Zap/1-1”, “1?vmx|1”) in new stack
– Goto (macro-vm,vmx,1)
– Executing Set(“Zap/1-1”, “MODE=unavail”) in new stack
– Executing GotoIf(“Zap/1-1”, “1?notdirect”) in new stack
– Goto (macro-vm,vmx,4)
– Executing NoOp(“Zap/1-1”, “Checking if ext 2995 is enabled enabled”) in new stack
– Executing GotoIf(“Zap/1-1”, “0?s-NOANSWER|1”) in new stack
– Executing Macro(“Zap/1-1”, “get-vmcontext|2995”) in new stack
– Executing Set(“Zap/1-1”, “VMCONTEXT=default”) in new stack
– Executing GotoIf(“Zap/1-1”, “0?200300”) in new stack
– Goto (macro-get-vmcontext,s,300)
– Executing NoOp(“Zap/1-1”, “”) in new stack
– Executing System(“Zap/1-1”, “ls /var/spool/asterisk/voicemail/default/2995/unavail.wav”) in new stack
Extension Changed 2995 new state Idle for Notify User 1008
Extension Changed 2995 new state Idle for Notify User 4552
Extension Changed 2995 new state Idle for Notify User 4569
Extension Changed 2995 new state Idle for Notify User 2530
Extension Changed 2995 new state Idle for Notify User 4568
– Executing NoOp(“Zap/1-1”, “File for mode unavail does not exist| going to normal voicemail”) in new stack
– Executing Goto(“Zap/1-1”, “s-NOANSWER|1”) in new stack
– Goto (macro-vm,s-NOANSWER,1)
– Executing Macro(“Zap/1-1”, “get-vmcontext|2995”) in new stack
– Executing Set(“Zap/1-1”, “VMCONTEXT=default”) in new stack
– Executing GotoIf(“Zap/1-1”, “0?200300”) in new stack
– Goto (macro-get-vmcontext,s,300)
– Executing NoOp(“Zap/1-1”, “”) in new stack
– Executing VoiceMail(“Zap/1-1”, “[email protected]|u”) in new stack
– Playing ‘/var/spool/asterisk/voicemail/default/2995/unavail’ (language ‘en’)
– Playing ‘transfer’ (language ‘en’)
– Executing BackGround(“Zap/1-1”, “one-moment-please”) in new stack
– Playing ‘one-moment-please’ (language ‘en’)
– Executing GotoIf(“Zap/1-1”, “0?doopdef”) in new stack
– Executing Set(“Zap/1-1”, “VMX_OPDEST_EXT=2001”) in new stack
– Executing GotoIf(“Zap/1-1”, “1?opcontext”) in new stack
– Goto (macro-vm,o,6)
– Executing Set(“Zap/1-1”, “VMX_OPDEST_CONTEXT=from-internal”) in new stack
– Executing GotoIf(“Zap/1-1”, “1?oppri”) in new stack
– Goto (macro-vm,o,9)
– Executing Set(“Zap/1-1”, “VMX_OPDEST_PRI=1”) in new stack
– Executing Goto(“Zap/1-1”, “from-internal|2001|”) in new stack
== Spawn extension (macro-vm, o, 10) exited non-zero on ‘Zap/1-1’ in macro ‘vm’
== Spawn extension (macro-vm, o, 10) exited non-zero on ‘Zap/1-1’ in macro ‘exten-vm’
== Spawn extension (macro-vm, o, 10) exited non-zero on ‘Zap/1-1’
– Hungup ‘Zap/1-1’

I hit a 1, 2, and then a “0”

Bill

first make sure you upgrade framework and core modules as there has been some churn that got resolved this morning.

Next - I’ll probably need a bit more, maybe a cli trace. And try it on a local extension also. Also - inclue from the CLI:

[code:1]database show AMPUSER/<extension_number>/vmx[/code:1]
To make sure all is set ok. And make sure that you really do have the proper extensions.conf and haven’t overridden anything on your system like macro-vm for example.

A quick check this morning indicated that it didn’t work at all…but I didn’t have a bunch of time. I’ll be out of town until munday, and trouble shoot it then…

Bill

hmm - a cli trace will be nice. If it didn’t work, I’m baffled because the script is simply doing a file_exists() php function and returning the result in a channel variable just like many other AGI scripts already do ???

[quote=“w5waf”]A quick check this morning indicated that it didn’t work at all…but I didn’t have a bunch of time. I’ll be out of town until munday, and trouble shoot it then…

Bill[/quote]
Well another unrelated bug, see:
http://www.freepbx.org/trac/ticket/2046#comment:6
It will now be fixed I verified the fix on another system that had your same problem (the only two systems I know of with this issue).

Asterisk 1.2.19

Thanks
Bill

Bill,
I published a core module update earlier this evening that should fix the VmX. Can you please test it and make sure it fixes your setup since your’s is one of the few systems I know that has this error. thanks.

Asterisk really annoys me at times! As you can see, there is no APPERROR being returned! This has happened on at least one other system, same behavior, it works for a while then stops and a reload gets it going again (at least with the old method of the jump to n+101).

What version of Asterisk did you say you were running? (sorry if I’ve asked this 6 other times already)

APPERROR:

so asterisk thinks that ‘ls’ is returning an error? Can you do the following:

  1. change to user asterisk (from root: su asterisk)
  2. do the exact same ls command as the dialplan is trying
  3. check the return code

so example:

[code:1]su asterisk
/bin/ls /var/spool/asterisk/voicemail/default/2995/unavail.[wW][aA][vV]
echo $?[/code:1]
and see what return code is echo-ed.