How to tunnel voip traffic in blocked networks

Andranik picture Andranik · Jun 27, 2014 · Viewed 8.9k times · Source

I have an Android VOIP application. As some networks block VOIP traffic I wold like to find some way to bypass the block. I think that VPN can do this, but there is no any VPN solution that can be implemented easily. With the VPN API that Android provides you need to implement almost everything yourself (e.g. there is no any protocol implementation there).

So are there any other ways to achieve what I need? May be SSH tunneling or any other type of tunneling?

Any kind of advice will help, because I don't know where to start from.

Answer

Istvan picture Istvan · May 12, 2015

Many countries have implemented a very strict VoIP blocking in the last years. For example in Iran all streams with VoIP characteristics (around 3-60 kbits, same upload and download) is blocked now. In other countries VoIP is not completely blocked but the quality is lowered (dropping a few packets, changing the delay of others). This is because usually the companies who owns the internet network also owns the telecom infrastructure, this way trying to keep customers away from VoIP. Traditional VPN’s are easily filtered nowadays with recent improvements in various deep packet inspection software and devices. Encryption is usually not enough, you also have to obfuscate the VoIP traffic. Even so, the VoIP servers can easily found and their traffic lowered.

If you need to overcome all these, I can recommend the followings:

  • multiplex the signaling (SIP) with the media (RTP) and/or use multiple streams for media
  • use a strong encryption
  • use different upstream and downstream
  • at some locations UDP is blocked so you have to implement RTP over TCP or HTTP
  • use some kind of distributed network to avoid IP/domain detection and blockage

I recommend to check the followings:

I made a research recently in the same subject. Unfortunately I found only commercial solutions to cover these issues. Tor looks promising, but at this moment it is not usable for quality VoIP after my tests. If a more simple solution might fulfill your needs, then I still recommend to use a specialized software for VoIP such as SIPTunnel and not a general purpose VPN.