[asterisk-users] Define custom vm-login sound file per VM context?

Matthew Jordan mjordan at digium.com
Tue Feb 21 11:47:32 CST 2012


> From: "Todd Routhier" <fonemasta at gmail.com>
> To: "Asterisk Users Mailing List - Non-Commercial Discussion"
> <asterisk-users at lists.digium.com>
> Sent: Tuesday, February 21, 2012 11:30:34 AM
> Subject: Re: [asterisk-users] Define custom vm-login sound file per
> VM context?

> Danny,

> This seems to be a solution for sending people to leave a voicemail,
> I need a solution for VoiceMailMain() when people call in to get
> their messages, change greeting etc.

> If I use the s option with VoiceMailMain it just skips checking the
> passcode according to the docs.

> Thanks for your help though, any similar ideas for VoiceMailMain?

> I am playing the sound file I need before sending them to
> VoiceMailMain but then Comedian Mail! plays right after of course.

> --Todd

The sound files referenced by voicemail.conf are global for all
mailboxes defined in the configuration file, regardless of whether or
not those mailboxes are defined in separate contexts.  Hence, whatever
is defined for the 'vm-login' sound will be played for all users.

For this one sound file (and this one sound file only), there is a
mechanism you can use to bypass playing this sound file back.  You
can tell VoiceMailMain to skip authentication of the user using the
's' flag, and use VMAuthenticate to authenticate the user yourself.
Note that internally, VoiceMailMain uses VMAuthenticate, so you're
using the exact same mechanism, just from the dialplan. If you pass the
's' flag to VMAuthenticate, it will not play the vm-login sound,
allowing you, if you want, to play a different soundfile.

In general, it would look something like this (please don't expect this
to work verbatim, but it gives you an idea):

exten => 1,1,NoOp()
same => n,Background("Your-sound-file")
same => n,VMAuthenticate(1 at default,s)
same => n,GotoIf($[${AUTH_MAILBOX}=1] & $[${AUTH_CONTEXT}=default]?auth:failed)
same => n(auth),VoiceMailMain(s)
same => n,Hangup()
same => n(fail),Hangup()

Matthew Jordan
Digium, Inc. | Software Developer
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
Check us out at: http://digium.com & http://asterisk.org



More information about the asterisk-users mailing list