Linphone over 3G
When it works
You can use Linphone on your Android mobile phone or iPhone over the 3G network to run calls through your favorite VoIP provider. Usually this works well as long as the 3G signal is sufficiently good. Otherwise you will experiment packet losses and then the quality degrades.
On EDGE networks this can work too especially if you can call using gsm or speex narrowband codec. These codecs have quite low bitrates and can fit into less than 40 kbit/s of IP bandwidth. However the problem with EDGE is that you can't be sure of the available bandwidth, it depends on how many users next to you are using the GSM service. Bandwidth can be as low as a tenth of kbit/s... The other drawback of EDGE is latency: very often more than 250 ms... which renders the conversation unnatural.
When it fails
Unfortunately there are non technical reasons for Linphone to unsuccessfully make 3G/EDGE calls. Indeed as VoIP from mobile phones can take market shares of already established operators that earn money with GSM communications, some of them don't see with a good eye that their subscribers prefer to use VoIP applications rather than the conventional GSM dialer of their phones.
To prevent that, mobile operators can:
- forbid their subscriber to use VoIP on their network, by explicit terms in their contract.
- restrict ports such a way that UDP packets are discarded (and VoIP needs UDP, at least to transport the media streams). They can even restrict to just smtp, http and https ports. What they call internet is in fact just web and mail.
- restrict UDP traffic, by trashing UDP packets when they exceed a certain bandwidth (for example 3kbit/s), which allows basically SIP requests to go through, but the media streams go through with 80% of packet losses, and so the conversation is impossible... Which more or less is a way to tell subscribers: you see, you can do VoIP but it doesn't work very well...
This is why many of you are posting complaints on the comments page of our Linphone Android Market or Appstore pages about that it does not work on 3G.
The France 3G picture
The situation in France is quite a nightmare. From our experience and the feedback we have from users, SFR and Bouygues forbid and block VoIP by restricting to a few TCP ports. But the most strange thing is about Orange. At the early times it was working (very well) but forbidden in the contracts. Then in April 2010 they decided to allow VoIP for most of their contracts, at the exception of the cheapest one, but proposing to purchase a "VoIP option" to finally allow it. Great ! But finally at the end of november 2010, they restricted the UDP traffic to a few kbit/s , which renders VoIP mostly impossible... This is very surprising and at this time we did found any reason for that. Is this a technical problem ? Is it because their network becomes saturated ? Apparently not as from what we can measure the TCP bandwidth is always very high and all other application can work very well. Any explanations or information will be highly appreciated !
What can we do ?
We can first hope that competency with new comers in the GSM/3G business will make things to go in the good way.
Belledonne Communications, the company who is doing Linphone, has developed a VoIP anti blocking system which consists in tunneling the SIP and RTP traffic into a single https connection up to a detunnelizer server. And this works. But this has a cost: you need to deploy tunnel servers on multiple x86 servers to be able to handle all the traffic, this is the reason why we cannot offer this option to all our linphone users. We (the linphone team) are studying the opportunity to offer the VoIP anti blocking system as a paid service integrated into the iPhone and Android applications... Next to come.