Virtualize Your VoIP Phone System? Yes You Can!
It’s summer and during summer, VMware Netherlands traditionally organizes the VMware Summerschool. I love to be there as you get to talk to people you normally wouldn’t meet. So, recently during the coffee break I found myself having a conversation I haven’t had for quite some time. A company still had a load of servers physically installed on the hardware and not virtualized. Both sysadmins were convinced that it was not possible to virtualize their Instant Messaging (Lync 2013) and Cisco VoIP phone system. Their communications partner advised against it and they claimed they’ve tried it in the past and it was horrible. Also, what about emergency calls to 112 (911 in the US) and what about when the network is down and so on. I was not able to convince them during the short coffee break but it made me think that there might be folks out there that still think those sensitive apps cannot run in a virtual environment.
As you can imagine, if the network is down, even if you have a physically installed Cisco call manager, you will still be down in terms of communication, so that does not really qualify as a viable point. For emergency numbers there are local breakouts or other options to facilitate that. Although you could also argue that everyone nowadays has a mobile phone on them anyway where 112/911 is quickly dialed. So that point is no showstopper either. But what about that performance?
Voice over IP or VoIP is the standard for enterprise communications nowadays. Who still has a large Ascend or Siemens Hicom PBX in the basement is really living behind the moon. But as you may or may not know, even Cisco is pushing out Call-managers on VMware vSphere. In 2008 with version 6 or 7 it was considered highly experimental and certainly not supported to virtualize your call manager. It was acceptable in lab environments but for production you had to turn to the physical appliance.
But ever since version 8, Cisco actually started supporting virtual infrastructures. In the early days special settings were required but when you look at Cisco’s Unified Call Manager’s requirements today, they are actually quite modest. When you plan to service about 1.000 users (with 1 device per user), it only requires 2 vCPU’s and 6 gigs of RAM. It would be considered a “light load”.
Now, the same goes for Microsoft Lync, or Skype for Business, as it is recently renamed. I remember we tried to do a demo with Office Communication Server combined with Microsoft’s Exchange back in 2010. We had some PBX routers on loan from Audiocodes with which you connected a standard analogue phone. Now, I do admit we lacked a bit of processing power back then and the system requirements Microsoft gave for OCS never had virtualization in mind. The effects were quite funny. When you listened to a voicemail on the phone, one moment it sounded like Minnie Mouse, the next it sounded like Shaggy in slow motion.
But Microsoft came a long way, not the least being motivated by it’s own hypervisor and the Azure cloud where they of course use virtualization as a basis for everything (for Office 365 too). With Lync 2013, installing it in a virtual machine is considered best practice and Microsoft even provides a howto guide for the correct sizing and configuration of it. What struck me though, is the difference in approach when you compare it to Cisco’s guide. Microsoft claims a lot more hardware and configuration. And even though Microsoft still notes the system requirements for Skype for Business in physical specifications, it is actually supported in a virtual environment. As you can see, the requirements are still pretty impressive. Note: Also, the Skype for Business client software is supported in a VDI scenario like with Horizon View.
Build Your Own VoIP System
Now, I wondered, what if you do not have a lot of users or you do not want to spend a whole lot of money, can you still go the VoIP way in a virtual environment? And as it turns out, you can! And no, it’s no rocket science with a highly complex Asterisk server on 1 or even several Linux servers with days of configuration, although that can be a route to. The route I picked was much easier.
3CX builds Voice over IP phone systems in software on a Windows platform for years. I’ve played with their VOIP client software a couple of years ago but I never used their full featured VOIP switchboard. In the mean time, 3CX have recently arrived at version 15 and I must say, the interface and performance is pretty impressive. The installation is very straight forward and besides a generic Windows server (I run it on Windows 2012R2) nothing else is needed. During the installation you can chose to either use the build in Webserver or use IIS for webservices and that is about it. After hitting Finish, you’re good to go. I configured my 3CX box on my home lab that runs on HP’s Microservers, as is described in the series of articles here. I configured the only VM with 2 vCPU’s and 4 gigs of RAM. The current system load is displayed here. Now, of course I’m no enterprise callcenter or highly phone dependent business, but I noticed no problems in the passed 4 weeks since I’ve been running 3CX on my Lab servers. The call quality has been perfect. Please do note that the HP lab servers run on Intel Celerons, so no extreme performance CPU’s.
What you do notice when you install something like a software phone system is how little you know about it. It talks about call routes, dial and number plans, SIP trunks and so on. It really is a different cup of tea and I have to compliment the telco admins here. We virtualization guys really don’t know jack about the specifics of your department. It is a good thing is that 3CX made it easy with wizards to configure what you want quickly. You will still need to learn the lingo a bit to correctly configure your SIP trunks and inbound and outbound rules or your calls will end up in nowhere-land. The major advantage of 3CX is that you can try it out for free. It’s limited to 2 simultaneous calls but that’s enough to prove it’s working or to run it at home. Check out their website and give it a go.
But the point of this article is not to promote 3CX as a product but to point out that you can run a time sensitive application like a call manager on your virtual infrastructure without any reservations. It doesn’t even stop there. It get’s better. If you do not feel like you want to run your own phone service, you can hire a service like Vonage to do it for you. And they don’t just serve small business. All you need is internet, they do the rest. Do you think a service like Vonage have a physical backend for every one of their customers? Guess again.
So, why stick to that old fashioned physical phone box? Virtualize your phone and IM system without fear. The big boys do it, so can you!