There seems to be much talk these days of tunneling and Voice-Over-IP(VOIP) most of it for the singular purpose of keeping the communications secure or hidden from the nasty overlords of the Internet. There seems to be two camps in this and two main technologies.
Session Bandwidth Optimization and OpenVPN. Both do similar things, but it really comes down to which technology works better? Let me start with some basic Information.
Most VOIP traffic is already compressed so if you’re using g729a or G723.1, compression isn’t going to get you much. This article is written to dispel the fact that you can compress an already compressed data stream even more. In some cases, you can depending on the compression algorithms used, but claiming an additional 80% difference over an already compressed g729a stream is utterly ridiculous. It doesn’t happen unless you’re compressing silence. Then I’d be able to claim 100%. I just wouldn’t send a packet. It’s silence.
So let’s talk about it in a bit of detail. SBO is nothing more than Encryption + packet prioritization. It’s basically the same thing to traffic shaping and sending it down an encrypted tunnel. Don’t get me wrong, it’s tuned a bit better for a specific application (in this case, VOIP).
OpenVPN is simply an encrypted tunnel, but one of the advantages of OpenVPN is it allows you to compress the stream if it’s compressable even more prior to going through the tunnel using something called adaptive compression. Couple this with a traffic shaper and you have the same thing as SBO; in some cases even better.
So let’s talk about the solutions in full:
SBO: Requires a separate server to do the optimization prior to sending it down the tunnel and of course the other end would decrypt it (usually another SBO box or in some cases, Asterisk). One problem with this solution. Why would you want to add additional CPU utilization on your Asterisk box already?
OpenVPN: Add a traffic shaper and you’re effectively doing the same thing. You have your choice of Encryption protocols and you still perform the same features. The only difference? It’s lighter weight.
So why reinvent the wheel? Add yet another solution to the slew of solutions that are already out there. There is no magic bullet, although, I can say that by properly tuning your Gateways and Asterisk boxes, you will gain the same throughput on both solutions.
1. Introduce silence detection. This is a huge bandwidth saver.
2. Prioritize Voice Packets and sessions.
3. Use VOIP algorithms that are extremely efficient. (g729, ilbc, g723.1) and you have your solution.
4. You need to see if the overhead of the encryption is worth it comparatively with all the other encryption ciphers. Remember, each cypher will give you different overhead. In some cases, turning off encryption of the stream actually improves performance as long as you have traffic prioritization set up properly.
It’s not rocket science people, but compression is a very special niche in IT and anyone selling you 80% additional compression over an already incredibly compressed g729 stream is selling you snake-oil.
You can do it yourself in a much easier way. It works the same and accomplishes the same goal. It’s just knowing what you’re doing.