Cisco Call Manager - FreePBX for Voicemail

I am looking at switching our voicemail system off of Cisco Unity and on to FreePBX. We are running Cisco Unified Communications Manager 6.1.5 as our main phone system. I have setup a sip trunk to FreePBX 2.9.0rc1.5 and created a Voicemail Pilot number on the Call Manager of ext 4201 which routes to the SIP trunk. On the FreePBX side I have setup 4201 to be the “My Voicemail” feature code. When I press the messages button on my Cisco 7945 phone(This basically dials 4201), I get to Comedian Mail successfully and that works. The problem is that when I call my extension from outside of FreePBX (basically forwards to 4201), it goes to Comedian Mail login prompt as well instead of my voicemail greeting.

I think some of the problem is that I don’t quite understand how the voicemail in Asterisk/FreePBX functions. I am sure I can play some tricks with extensions_custom to get this working but I just wanted to see if I was completely missing something and there is an easier way.


I fixed this by getting rid of externnotify for MWI and go it to work without any scripts. I had to set sip_custom.conf for each mailbox. Key points to note are the host must be the ip of the call manager server. The mailbox and vmexten must be set to the user’s extension.

user exten = 3333
Cisco Call Manager ip = x.x.x.x
callerid=John Smith

With this setup I am able to use Asterisk for voicemail with Cisco Call Manager as my PBX and IMAP integration into Exchange 2010 with MWI working. I have done this using a master IMAP account(authuser + authpassword) in a lab environment.

I am going to test the scalability of this solution from a security and performance point of view then consider putting it into production.


I was able to get Exchange 2010 working with FreePBX IMAP Voicemails to the extent that voicemails get sent directly to my Exchange 2010 inbox. I am having a problem however with using externnotify and pollmailboxes option. When I read or delete a Voicemail from my inbox, MWI does not change. It seems that when I use my email application to delete voicemails, the externnotify script is not called.

Do I have the wrong impression of what pollmailboxes should do? Is anyone using pollmailboxes and externnotify together succesfully?


I meant extensions_custom.conf not extensions_additional.conf as they would get overwritten.

The Voipinfo page below had a log of good information:

This is the script that I am using (mostly from the link above) to turn mwi on and off. Just add the script location to externnotify and MWI should work.



Turnoff=“Channel: SIP/[email protected]\nCallerid: $EXTEN\nMaxRetries: 0\nRetryTime: 5\nWaitTime: 5\nContext: $CONTEXT\nExtension: $EXTEN”

Turnon=“Channel: SIP/[email protected]\nCallerid: $EXTEN\nMaxRetries: 0\nRetryTime: 5\nWaitTime: 5\nContext: $CONTEXT\nExtension: $EXTEN”

if [[ $NUMVMS = “0” ]]; then
echo -e $Turnoff >> /var/spool/asterisk/outgoing/$
echo -e $Turnon >> /var/spool/asterisk/outgoing/$


The next step for me is to try to integrate the IMAP setting to work with Exchange 2010. I am not sure if this is possible or not but I am going to try.

You can’t make changes to extensions_additional.conf as per the message at the top of the file it will get overwritten.

Use extensions_cusom.conf

No tricks, you need to write a dialplan in extensions_custom that sends the user to the correct voicemail spot.

Take a look at the asterisk guide

Keep in mind that you must use the FreePBX contexts, the book will show default contexts.

You might want to consider engaging a consultant, the ROI is quite high on this project and some dollars spent supports the project and gets you up and running faster.

I agree that the savings offered for using Asterisk as Voicemail system over Cisco or others are well worth the cost of a consultant. That said, it wouldn’t be as fun!

I fixed my first problem by adding the context below in extensions_additional.conf. Make sure your trunk to Call Manager is using the same context and that you are passing RDNIS via a checkbox on the Call Manager trunk configuration.

exten => 4201,1,GotoIf(${MAILBOX_EXISTS(${CALLERID(num)}@default)} = “1”?400)
exten => 4201,2,Voicemail(${CALLERID(RDNIS)}@default,u)
exten => 4201,3,Playback(vm-goodbye)
exten => 4201,4,Hangup
exten => 4201,400,VoicemailMain(${CALLERID(num)}@default)

My next step is to get MWI on Cisco Phone (which is registered to Call Manager) activated by FreePBX voicemail as this is currently not working.