OpenVPN to Asterisk using a Microtik router

Microtik RB750GL

Microtik RB750GL

For a while now SysAdminMan has been offering FreePBX/A2Billing hosting with OpenVPN server already installed on the server. What I really want to find is the perfect client/router that’s simple to configure and easy to deploy. We’ve been recommending OpenWRT for a while now but it can be a pain to flash the firmware and get OpenVPN configured.

I’ve also used Microtik routers for a while and they are very powerful routers in such a small, reasonably priced, package. This test was done using a Microtik RB750GL

I wasn’t sure how it would work though as Microtik routers only support OpenVPN over TCP, not UDP. This means all the VOIP traffic will be running over a TCP connection which, in theory, is not ideal.

This performance testing was done using –

  • Virgin Media Broadband with 60mb down and 3mb up. The upload limit on your broadband connection will nearly always be the limiting factor for call quantity/quality
  • Asterisk is running on a SysAdminMan VPS and is placing the incoming calls to music-on-hold
  • sipp was used ¬†at the remote site to generate test calls
  • Linksys SPA941 was used at the remote site to test call quality
  • G711/aLaw was used for all calls
  • No other traffic was happening on the broadband connection

We start off with 10 concurrent calls, then 20 and finally 40.

10 CONCURRENT CALLS

Here you see we have sipp generating 9 G711 calls with audio

sipp 9 calls

sipp 9 calls

and the traffic flowing through my Virgin Media broadband connection. Over the OpenVPN TCP link each G711 call is using around 110kb/s

9 concurrent calls

9 concurrent calls

and here is the audio from a call placed from the Linksys physical phone

 

20 CONCURRENT CALLS

Here you see we have sipp generating 19 G711 calls with audio

19 concurrent calls

19 concurrent calls

and the traffic flowing through my Virgin Media broadband connection

19 concurrent calls

19 concurrent calls

and here is the audio from a call placed from the Linksys physical phone

 

40 CONCURRENT CALLS

Here you see we have sipp generating 39 G711 calls with audio

39 concurrent calls

39 concurrent calls

The upload link on my broadband connection is being overwhelmed and sipp is starting to report call errors.

My broadband link is reporting traffic throughput wildly up and down as it struggles to limit the flow of traffic being sent to it

39 concurrent calls

39 concurrent calls

and the audio from the call on the physical phone is breaking up and would likely be unintelligible. This is the audio that is being downloaded over the broadband link, the uploaded audio is likely much worse

 

CONCLUSION

Even though I found the limits of my broadband link and ended up with a poor quality call the results of running VOIP over a TCP OpenVPN tunnel were actually much better than I thought they would be. Twenty concurrent calls ran with no problems, and I think this would be much higher using a different codec.

There are a few things to consider though –

  • Many routers will automatically prioritise UDP traffic. This is not going to be the case for OpenVPN traffic running over TCP. It’s likely that other traffic on the link (file downloads, web browsing …) would affect the audio calls. If you are going to be using the link for other traffic you will probably want to prioritise the OpenVPN traffic on the broadband router if possible
  • These tests were done a a fast, stable broadband link. I’m unsure what the results would be on a slower link, or a link with poor jitter or packet loss.

In another post I’ll detail the steps involved in getting OpenVPN set up on a Microtik router