In Part 1 of my Small Business PBX setup I decided on using an open source Linux based PBX. The biggest player in this market is Asterisk but "out of the box" it isn't a turnkey solution. To fill this role there are several distributions which take Asterisk and package it along with various other features.
The biggest three I could find were AsteriskNOW, Elastix, and trixbox. AsteriskNOW is from Digium, the makers of Asterisk, Elastix is from PaloSanto Solutions who sell support and turnkey appliances, and trixbox is from Fonality who primarily push a pay version of trixbox called trixbox PRO.
I decided on Elastix for a number of reasons including:
In the future I may decide to try AsteriskNOW but for now Elastix looks like a good fit.
Download Elastix and Linux Integration Services. I used Elastix 2.3.0 Stable. Because we will be running Elastix as a Hyper-V virtual machine we require Integration Services. This enables support for synthetic network devices, time sync, integrated shutdown, and symmetric multi-processing support. For CentOS 5 we need to download Integration Services v2.1
Update: As of Sept 11, 2012 a newer version of Integration Services has been released (3.4). At this point I cannot confirm whether or not it works with Elastix but I plan on trying it in the near future.
Create the virtual machine. Elastix barely needs any resources, I gave it 1 Virtual processor and 1000 MB of RAM. The only trick here is that we will delete the Network Adapter and replace it with a Legacy Network Adapter.
Mount the ISO and install Elastix. It should detect the Legacy network card.
Attach the Integration Services ISO to the virtual machine and mount it using
mount /dev/cdrom /media. Install Development tools using
yum groupinstall 'Development Tools'. Copy Integration Services onto your virtual machine and compile it using the following commands (this is why we needed Development Tools).
cp –R /media/* /opt/linux_ic_v21_rtm
Now you can shutdown and replace the Legacy network adapter with a normal Network adapter. Your Elastix virtual machine should now be ready to go. You can test that Integration Services works correctly by pressing the Shut down button in Hyper-V Manager and watching that it performs a clean shut down.