One thing I avoided working with for a long time is the Asterisk
voicemail code. One module in
Asterisk I've constantly been naming as one of the worst parts is
voicemail. One part of
Asterisk that I've been kind of avoiding during my trainings is
voicemail.
And there's where I've spent a lot of time recently... Life is strange.
Instead of fixing the current voicemail, I decided to restart. Break up large apps into small building blocks, allowing Asterisk admins to use the rich dialplan script language or AEL to build a voicemail solution that fits the organization.
I've named this minivoicemail, which for each addition becomes more of a bad choice of name for this project. Flexivoicemail could be better... :-)
I've removed functionality like ODBC and IMAP support, something that can be reapplied later. I've also not replaced the hooks into other channels for voicemail notification, but that can be done too. I haven't started replacing voicemailmain(), since I've focused on the need of larger systems where one only supports e-mail notifications of voicemail with audio attached.
What I currently have is:
Applications
- MinivmGreet: Play voicemail greetings (busy/unavailable/temporary)
- MinivmRecord: Record voicemail message
- MinivmNotify: Notify account owner of message (email, pager)
- MinivmDelete: Delete message
- MinivmAppMess: Record application-specific messages (busy/unavailable/temp/name)
- MINIVMACCOUNT() - Get properties of voicemail account
- MINIVMCOUNTER() - Manage voicemail-related counters
- minivm show settings
- minivm reload
- minivm show stats
- minivm list accounts
- minivm list templates
- E-mail and pager templates in various languages.
- All apps are usable without setting up a voicemail "account" for a user. Just run the app with an e-mail address as an argument.
I need testers, ideas for new applications and possibly coders that can help to complete this.
Here's how you start
- Checkout this branch, compile and install
- Check the minivm.conf.sample for instructions
- Read the top of the source code file [3] for a list of ideas, todo's and changes