Small Business PBX Part 2 - Elastix on Hyper-V

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.

Choosing Elastix

I decided on Elastix for a number of reasons including:

  • Google search results - I'm going to need to use Google to figure out how to set this system up.
    • AsteriskNOW - About 239,000 results
    • Elastix - About 2,260,000 results
    • trixbox - About 1,280,000 results
  • Lack of a paid version - I don't like the idea of companies selling a Pro version of an open source program. Good thing I didn't choose trixbox. Fonality has now discontinued the free version.
  • Documentation and reputation - I have heard of Elastix in the past and it has been around for a very long time. As a result it has a huge community and tons of documentation.

In the future I may decide to try AsteriskNOW but for now Elastix looks like a good fit.

Setting up Elastix as a Hyper-V virtual machine

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.

Install Linux Integration Services

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).

mkdir /opt/linux_ic_v21_rtm
cp –R /media/* /opt/linux_ic_v21_rtm
umount /media

cd /opt/linux_ic_v21_rtm/
make
make install

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.

References

http://www.howtoforge.com/installing-linux-integration-services-v2.1-hyper-v-r2-on-centos-5

Comments

Elastix 2.3.0 uses Centos 5.7 core. Why don't you use the relatied Linux Integrated Services version 3.4?
Are there issues with Elastix?

Hi Gabriele,

At the time I wrote this post Integration Services 3.4 had not yet been released. When I have some time I will attempt to update my PBX to Integration Services 3.4 but until then I cannot guarantee it would work.

Kevin

mount /dev/cdrom /media

on 2.3 is not cdrom, is dvd

Thanks Carlos!

Which version of Elastix is best with this configuration? Actually I have the older version of Elastix.
Fiber Optic Internet Montreal

Great. This is a very important information. Actually, I have been using the older version of Elastix, and it works well on my end. - The Balancing Act

Voip is where it is at saves money, all about cutting cost these days.

We have been running Elastix on a dedicated box for a long tim, and it is now time to move our Elastix to a VM.. Elastix V2.4.0 does not work with Hyper-V, as it appears to be missing a module to detect the Virtual Hardrive. As per your post it appears that I may need to go back a version to make it work. R2

So after the download, i get a boot failure error.. I mam using Hyper-V

Only 2.3.0 works.

When 2.5.0 comes out it will work as well.