Do-it-yourself voicemail - Mini-Voicemail

Submitted by oej on 11 March 2007 - 9:03am.

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)
Dialplani functions
  • MINIVMACCOUNT() - Get properties of voicemail account
  • MINIVMCOUNTER() - Manage voicemail-related counters
CLI commands
  • minivm show settings
  • minivm reload
  • minivm show stats
  • minivm list accounts
  • minivm list templates
New features:
  • 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.
The branch can easily be downloaded from svn.digium.com/svn/asterisk/team/oej/minivoicemail for Asterisk 1.2 and svn.digium.com/svn/asterisk/team/oej/minivoicemail-1.4 for Asterisk 1.4

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 for a list of ideas, todo's and changes