Android 2.3 Internet Calling

Several months ago I wrote about how I enabled Internet calling on my Nexus One, following Doug Simmon’s instructions for configuring the CSipSimple Android app to work with the Sipgate Voice over IP (VoIP) service. Android 2.3 has built-in support for Internet calling and one of the first things that I did was configure it to work with Sipgate. Android’s Internet calling works with Sipgate, but I am finding that the quality is not as good as CSipSimple.

Calls that I have made with Android’s Internet calling on my Nexus S have not been very clear and frequently drop, while calls with CSipSimple are clear and strong. One possible reason for the difference might be that CSipSimple supports Simple Traversal of UDP through NATs (STUN), while Android Internet calling does not. STUN is a protocol for assisting devices behind a Network Address Translation (NAT) firewall with packet routing, and most Home network routers, like the Linksys one that I have, use NAT.

I have configured my Nexus S to use Sipgate by adding a second VoIP phone to my Sipgate account. To configure Internet calling on an Android 2.3 phone, tap Menu, Settings, Call Settings, and scroll down until you see what is shown in the screenshot. Tap Accounts to add a VoIP account, and enter the credentials for your account. If you are using Sipgate you can find the credentials for the VoIP phone by mousing over the graphic of the phone on the Settings page and clicking SIP Credentials.

There are a couple of different options for using Internet calling with Android 2.3. First, you can configure the phone to send and receive calls using the VoIP account, or only send calls on VoIP. If you configure Internet calling to receive calls you might see a decrease in battery life because the phone will maintain a connection to the SIP server when it is connected to WiFi networks.

Another option is to specify when to use Internet calling. It can be set to be used for all calls, only Internet calls, or to ask for each call. I have found that if you use Google Voice for outbound calls, it does not work with Internet calls, so I have configured my phone to ask how I want to make a call. If you specify only Internet calls that means the phone will only use Internet calling when you select a SIP address of a contact, which basically means you are making a call from one VoIP app to another VoIP app, similar to how one uses Skype to call another Skype user.

I think it is interesting that Google added Internet calling to Android 2.3, even if it isn’t as high quality as I would like. Hopefully the inclusion means that Google will be adding pure VoIP calling to Google Voice some time down the road. If you are interested, you can test out Sipgate’s VoIP service for free as it provides free inbound calls.