Original URL: https://www.theregister.co.uk/2014/03/31/voip_3cx/
3CX Phone System takes on the corporate mobiles
A bold move
It is hard to make phones sexy, never mind SIP phones and software. Yet increasingly my job requires me to be on the phone for hours every day to people all over the world.
The local telco wants roughly the GDP of Brunei to let me do this, making SIP providers look attractive. As a result, I have investigated a company called 3CX.
3CX offers a suite of software in the form of a SIP server, known as 3CX Phone System, as well as client applications for Windows, Mac, Android and iPhone.
3CX also offers mobile device management software, some add-ons to its phone system software and, of course, a cloud version of its phone system.
3CX is looking to be a unified communications player. It has plenty of cut-throat competition, with both Microsoft and Cisco willing to go to the mattresses to win this market.
Despite the challenges, 3CX seem dead serious, and that on its own intrigues me. 3CX has a fully presence-enabled system covering instant messaging, faxes, voicemail, voice calls and even the ability to integrate with your corporate CRM.
I will do a full teardown of 3CX Phone System in a future article, but it is the carrier-sanctioned wallet acopalyse that drives me so it is the mobile functionality that I will dive into first.
Bring on the Android
The 3CX Android client impresses me. This is quite hard to do because I have been futzing with SIP phone clients for the past six months and haven't found one that I really like yet.
Most of my previous attempts have been aimed at getting something that works acceptably with Asterisk, rather than a commercial system such as 3CX.
I have also spent a significant chunk of those six months inventing colourful new metaphors, which I have been asked not to repeat in polite company, for Skype, Lync, Trillian and several other "unified communications" solutions.
The 3CX Android client "just works", and in fact works surprisingly well. Installation and configuration are simple and the interface is intuitive.
The app runs smoothly on my Samsung Galaxy Note II, and thanks to the Tunnel functionality I have so far not found a network on which I can't make the thing work.
The Tunnel, I think, is the bit that really changes 3CX's position in relation to its competitors. Use any SIP application over LTE on your local "under no circumstances do we traffic shape, honest" mobile provider, and the experience is mediocre-to-frustrating.
Enable the 3CX Tunnel, however, and magically voice calls sound less like you are listening to a gargling competition in the village of the damned and more like there might be a human being on the other end of that data stream.
If I had the ability to dictate corporate policy so that everybody used Android and no other mobile device types were supported, then 3CX would get serious consideration for deployment.
When I woke up this morning, I didn't own an Apple mobile device. Normally when I want to review something that might require an iWhatsit, I wander down to the local coffee shop and make puppy dog eyes at the baristas until my pleading bears fruit.
Still, I do enough reviews of this stuff that it seemed about time to break down and get one just for testing. An iPad Mini Retina was purchased, taken out of the box, updated to the latest and 3CX installed. This makes the testing as out-of-the-box as you can get.
The results were at best mixed. Investigation revealed that while I turned up several issues, very few can really be laid at 3CX's door.
The prime bit of lunacy is that the 3CX phone app must be shipped as a separate application from the 3CX Tunnel app. If you want to make a call, you have to open the Tunnel app, manually connect the Tunnel, go back to the main screen and launch the phone app.
The phone app is isolated from the Tunnel app, and thus cannot call it whenever it starts up. Additionally, the Tunnel disconnects at random intervals, sometimes right in the middle of a call. Grand.
That the Tunnel app is functionally useless is unfortunate. The 3CX Tunnel serves two very important purposes. The first is that it helps communication reach 3CX servers that are configured behind some rather strict firewalls. The second, of course, is that it seems to help bypass traffic shaping.
None of this means that the app is unusable on Apple mobile devices. If your 3CX server has its own external IP address then the iOS app connects without a problem.
In this case you won't need the Tunnel. Assuming you aren't subject to vicious SIP traffic shaping then the 3CX app does what it is supposed to.
There are additional iOS caveats. When you first fire up the app and attempt to make a phone call, pay attention to the part where your microphone won't work until you authorise the application to use the microphone in iOS.
It is tempting to believe that the 3CX iOS app's target user base is anorexic vampires
The Apple mobile app also has some aesthetic differences from its Android counterpart. There are some maddeningly small touch targets, though the just released iOS7 update cleans it up quite a bit, making it far more useful than previous incarnations.
It is tempting to believe that the 3CX iOS app's target user base is anorexic vampires who have no flesh on the pads of their fingers and happen to have amazingly trustworthy mobile providers. The iOS app is workable but the Android app is better in every possible way.
Planning is key
There is more to that snark than simple fanboi baiting. The above issues are considerations if you are planning to support this application in the field as your primary means of corporate unified communications.
The way the 3CX iOS app looks and behaves is just different enough from its Android counterpart that your support staff will need both devices to hand to know exactly what the end-user is looking at.
Additionally, an analysis of the networks over which the data will be travelling will be a necessary part of any serious deployment.
This is something that anyone attempting to deploy a unified communications app to an Apple mobile device will face, so 3CX's competitors aren't off the hook here either.
If your Apple users are going to encounter traffic shaping, then making use of the OS-level VPN technology will be the way to go.
Playing with 3CX on both platforms has really driven home the rule that application developers have to deal with when trying to develop for the world's two dominant mobile platforms.
Android lets you get away with pretty much anything. By contrast, if you want to play in Apple's walled garden you must play by Apple's rules.
In this case I believe that Apple's rules have created a situation where a rather good application just works, and works better, on Android.
Can you hear me?
The biggest issue I noted when using 3CX was latency. Under certain circumstances and with certain configurations, the latency between speaking and having the person on the other end hear what you are saying could vary from barely noticeable to borderline unusable.
I attempted to measure the latency by having the person on the other end sit in the same room as me while we conversed.
Sadly, a depressing lack of video games in recent years has noticeably reduced my reaction times. All I can say is that when making a call from any untunnelled device – such as my Polycomm SIP phone, an installed Windows client or either of the mobile clients – to another untunnelled device, the latency is less than 300 milliseconds. I don't have the tools to measure below that threshold.
By contrast, my worst-case scenario is one in which I was using the iPad through the tunnel to the server, where the server was using Skpe Connect as the backhaul VoIP trunking provider to another and the call was routed to a separate Skype phone number on a Windows client. This produced nearly a second and a half of latency.
The more common configuration – in which a tunnelled Android mobile called a tunnelled iPad – resulted in acceptable call quality, with the worst instance reaching half a second of latency.
This is enough to notice it if the person is in the same room with you if you are attempting to test the software. If the person walks out of the room, your brain adjusts pretty quickly and it sounds like a normal phone conversation.
The lessons learned here are that using the Tunnel seems to add a bit of latency and that using Skype Connect as a backhaul VoIP trunking provider is an idiotic plan that nobody should ever engage in.
(An additional warning about Skype: no matter how you configure the thing, it seems to want to allow only one out of every three phone calls to go through.)
A lot of the latency simply goes away if you use a real SIP trunking provider. 3CX has an exhaustive list of supported providers in many countries around the world. None of the rest of the services are nearly so picky as voice about latency, so they will work just about anywhere.
If your corporate activities are confined to one of the many nations that have officially supported VoIP providers and you aren't trying to push your SIP voice through a wet string, 3CX is a realistic consideration as a unified communications provider.
If you have a lot of people who want to use iPhones from the middle of rural Anticompetitivestan, look elsewhere.
VoIP is the inescapable future. With it will come ubiquitous unified communications. I don't pretend to know which of the many companies fighting for dominance will win that battle, but for now at least 3CX seems like a viable competitor. ®