[asterisk-users] Voicemail Configuration

John Marvin jm-asterisk at themarvins.org
Mon May 16 16:30:32 CDT 2011


Thanks, that's given me some ideas. I don't think I can totally roll my 
own, since I also make use of the MWI features of voicemail. Another 
thread pointed out the existence of minivm, which I hadn't realized was 
available. I just need to find the time to play around with some of the 
proposed options.

John

On 5/14/2011 10:46 PM, virendra bhati wrote:
> this will help you..
>
> ;-------- DIY VOICEMAIL --------------------
> *[ck987_vm_record]*
>
>
> ;"start recording after the beep.  Press # when done."
> exten =>  1,1,Playback(/home/ck987/asterisk_sounds/vm-record-start)
>
>
> ;build this call's recorded message file name<uniqueID>_<phone number>
> ;every call is assigned a unique id.
>
>
> exten =>  1,n,Set(record_file=${UNIQUEID}_${CALLERID(num)})
> ; records into my vm_msg folder.
>
>
> ;Ends if # is hit, silence for 2 secs, or recording lasts for 60 seconds
> exten =>  1,n,Record(/home/ck987/asterisk_sounds/vm_msg/${record_file}.wav,2,60)
>
>
> ; 2 to review message, 3 to re record, or hang up
> exten =>  1,n,Background(/home/ck987/asterisk_sounds/vm-record-end)
>
>
> exten =>  1,n,WaitExten(5)
> exten =>  1,n,Playback(/home/ck987/asterisk_sounds/bye)
>
>
> exten =>  1,n,Hangup()
>
> exten =>  2,1,Playback(/home/ck987/asterisk_sounds/vm_msg/${record_file})
>
>
> ; press 1 to re-record, or hangup if satisfied
> exten =>  2,n,Background(/home/ck987/asterisk_sounds/vm-record-again)
>
>
> exten =>  2,n,WaitExten(5)
> ;no response, hang up on person.
>
>
> exten =>  2,n,Playback(/home/ck987/asterisk_sounds/bye)
> exten =>  2,n,Hangup()
>
>
>
> ;go back to the record option
> exten =>  3,1,Goto(ck987_vm_record,1,1)
>
>
>
> ;----------DIY VOICEMAIL ADMIN----------------------
>
>
>
> *[ck987_vm_admin]*
> ; pass is 9988, jump to n+101 if authentication fails, expect 4 digits
>
>
> exten =>  1,1,Authenticate(9988,j,4)
> ; get number of voicemail messages
>
>
> ; SHELL function returns the output from a system command
> ;"ls -1"  lists visible files in a list."wc -l"  will count how many lines there are.  1 line per file!
>
>
> exten =>  1,n,Set(num_messages=${SHELL(ls -1 /home/ck987/asterisk_sounds/vm_msg/ | wc -l)})
> ;you have...
>
>
> exten =>  1,n,Playback(/home/ck987/asterisk_sounds/you-have)
> exten =>  1,n,SayDigits(${num_messages})
>
>
> ;...messages!
> exten =>  1,n,Playback(/home/ck987/asterisk_sounds/messages)
>
>
> ;get file names."sed"  command trims off any .wav exten."tr"  command trims off whitespace and line feeds.
>
>
> exten =>  1,n,Set(file_names=${SHELL(ls -m /home/ck987/asterisk_sounds/vm_msg/ | sed's/.wav//g'  | tr -d'  \n')})
>
>
> ;start message counter
> exten =>  1,n,Set(msg_counter=1)
>
>
> ; 1 to repeat message, 3 to go to the next message, 7 to go to the previous message
> exten =>  1,n,Playback(/home/ck987/asterisk_sounds/msg-options)
>
>
> exten =>  1,n,Goto(ck987_vm_play_message,1,1) ; playback loop
> ;try again if password is wrong
>
>
> exten =>  1,102,Goto(ck987_vm_admin,1,1)
>
>
>
>
> *[ck987_vm_play_message]*
> exten =>  1,1,Background(beep)
>
>
> exten =>  1,n,Set(current_message=${CUT(file_names,\,,${msg_counter})})
> exten =>  1,n,NoOp(${file_names} ${current_message} ${msg_counter})
>
>
> exten =>  1,n,Background(/home/ck987/asterisk_sounds/vm_msg/${current_message})
> exten =>  1,n,Goto(3,1)
>
>
>
> ; next message: add 1 and go back to the top of the loop
>
> exten =>  3,1,Set(msg_counter=$[${msg_counter} + 1])
> exten =>  3,n,Set(msg_counter=${IF($[${msg_counter}>  ${num_messages}]?${num_messages}:${msg_counter})})
>
>
> exten =>  3,n,Goto(1,1)
>
> ; previous message: subtract 1 and go back to the top of the loop
>
>
> exten =>  7,1,Set(msg_counter=$[${msg_counter} - 1])
> ;make sure number never goes below 1
>
>
> exten =>  7,n,Set(msg_counter=${IF($[${msg_counter}<  1]?1:${msg_counter})})
> exten =>  7,n,Playback(/home/ck987/asterisk_sounds/previous_message)
>
>
> exten =>  7,n,Goto(1,1)
>
> ;delete message
>
>
> exten =>  *,1,System(rm /home/ck987/asterisk_sounds/vm_msg/${current_message})
> ;number of files has changed.  reload number of files and file names
>
>
> ;"ls -1"  lists visible files in a list."wc -l"  will count how many lines there are.  1 line per file!
>
>
> exten =>  *,n,Set(num_messages=${SHELL(ls -1 /home/ck987/asterisk_sounds/vm_msg/ | wc -l)})
> ;get file names."sed"  command trims off any .wav exten."tr"  command trims off whitespace and line feeds.
>
>
> exten =>  *,n,Set(file_names=${SHELL(ls -m /home/ck987/asterisk_sounds/vm_msg/ | sed's/.wav//g'  | tr -d'  \n')})
>
>
> exten =>  *,n,Goto(1,1)
>
> it's the actual voicemail example which is use by asterisk it self
>
>
>
> On Tue, May 10, 2011 at 2:53 AM, John Marvin <jm-asterisk at themarvins.org
> <mailto:jm-asterisk at themarvins.org>> wrote:
>
>     On 5/9/2011 3:08 PM, Roger Burton West wrote:
>
>         You could use Monitor to record the whole call, then use an AGI
>         to do
>         something with it on hangup if the other conditions haven't been
>         satisfied...?
>
>
>     I understand how to do the first part, and I at least understand
>     that I could do something fancy with the AGI capability. But what I
>     don't know is how I can take the recording and insert it into a
>     voicemail box such that it can be retrieved through the normal
>     "VoiceMailMain" mechanism.
>
>     Would the asterisk voicemail app dynamically notice something new
>     being dropped into the voicemail mbox directory? Would it only be
>     noticed once Asterisk is restarted? Most importantly, would it send
>     out the notifies to the "phone" associated with that voicemail box?
>     I can probably fake the last part if necessary, but making the
>     voicemail retrievable through the normal voicemail mechanism is what
>     I really need to achieve.
>
>     Thanks,
>
>     John
>
>
>
>     --
>     _____________________________________________________________________
>     -- Bandwidth and Colocation Provided by http://www.api-digital.com --
>     New to Asterisk? Join us for a live introductory webinar every Thurs:
>     http://www.asterisk.org/hello
>
>     asterisk-users mailing list
>     To UNSUBSCRIBE or update options visit:
>     http://lists.digium.com/mailman/listinfo/asterisk-users
>
>
>
>
> --
>
>
>
> -----
> Thanks and regards
>
>   Virendra Bhati
> +91-9172341457
> Asterisk Engineer
>
>
>
> --
> _____________________________________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
> New to Asterisk? Join us for a live introductory webinar every Thurs:
>                 http://www.asterisk.org/hello
>
> asterisk-users mailing list
> To UNSUBSCRIBE or update options visit:
>     http://lists.digium.com/mailman/listinfo/asterisk-users





More information about the asterisk-users mailing list