Voice Mail Control

Right now I have my VM dial plan like this:

[macro-vm]
exten => s,1,Macro(user-callerid)
exten => s,2,Goto(s-${ARG2},1)
exten => s-BUSY,1,Macro(get-vmcontext,${ARG1})
exten => s-BUSY,2,Voicemail(b${ARG1}@${VMCONTEXT})   ; Voicemail Busy message
exten => s-BUSY,3,Hangup()
exten => _s-.,1,Macro(get-vmcontext,${ARG1})
exten => _s-.,2,Voicemail(u${ARG1}@${VMCONTEXT})     ; Voicemail Unavailable message
exten => _s-.,3,Hangup()
exten => o,1,Background(one-moment-please)      ; 0 during vm message will hangup
;exten => o,2,GotoIf($["foo${FROM_DID}" = "foo"]?from-pstn,s,1:from-pstn,${FROM_DID},1)
exten => o,2,Goto(ext-group,500,1)
exten => a,1,Macro(get-vmcontext,${ARG1})
exten => a,2,VoiceMailMain(${ARG1}@${VMCONTEXT})
exten => a,3,Hangup

thus if you press ‘0’ it transfers you to the live operator at ring group 500. Can I also make it that you you hit any number (1-9) it transfers you to the IVR (ivr-3 in my case)?

I wanted to do the same thing, and after looking into it for a little bit, I found that it’s not a dial-plan configuration sort of thing. You’ll actually have to modify the source-code for the VoiceMail application.

I’m not particularly skilled with C. I did take come C++ courses in college, but I haven’t used it since.

I also need to modify VoiceMailMain so that when someone is checking their voicemail, they can have an option to make a telephone call with out hanging up first (and yes I know that this is a security vulnerability. I’ve explained that to the bosses. They want it anyway).