Data-only SIP calling on Android 2.3

I recently switched from a pay-as-you-go 10¢/minute SIM to a data-only plan through T-Mobile. Thanks to Android 2.3’s native SIP support, I can get calls over data without paying for voice service. Here’s a quick how-to.

2011-08-15 Update

I recommend using GrooveIP instead of this guide. It’s more reliable and sounds a lot better.

Read on, though, if you’re still interested in a do-it-yourself solution.

The Plan

T-Mobile doesn’t advertise it, but they offer a data-only no-contract “Even More Plus” plan for Android devices for much cheaper than bundle plans with voice, texting, and data. It’s unlimited data with a soft cap at 5GiB. Mine shows up on my bill as EMPlus Android & MSG VB if you want to ask for it by name.

Screenshot of My T-Mobile plan details.

Screenshot of my Android handset showing T-Mobile network identification.

The OS

Screenshot of my HTC Espresso About screen in Cyanogenmod 7.

My phone runs Android 2.3 (Gingerbread) via CyanogenMod, and I use its native SIP calling in this guide.

The same thing can be accomplished with any other flavor of Gingerbread or with Sipdroid on an older OS.

Google Voice

Get a Google Voice account. Voice is used for texting over data, for coordinating SIP calls, and so there’s only one phone number to give out. Mine is area code 573, as seen in these examples.

SIP service

Make a free sipgate one account at sipgate.com. It will give you another phone number, like mine from area code 650:

Screenshot of my sipgate account page.

As well as some SIP credentials:

Screenshot of my SIP credentials from sipgate.

That can be entered into your phone under Call Settings > Internet Call settings > Accounts:

Entering my SIP credentials in Android 2.3 Internet Calling preferences.

Set up your SIP number as a forwarding phone in Google Voice, and you should be able to receive a call and complete the number confirmation:

Google Voice forwarding calls to sipgate.

Callback

Incoming calls work, now. Let’s enable outbound. Get Google Voice Callback from the Market. Have it log in to your Google account and you should be able to select your SIP number for callback:

Google Voice Callback selecting my sipgate number for callback.

Now, make a test call. You should see this screen:

Google Voice Callback registering a callback to my number.

And then receive an incoming call from Sipgate:

Getting a callback from my sipgate number.

Unfortunately, the option to automatically answer the callback doesn’t seem to work in Gingerbread, but I can deal with it~

Explanation

You’re done! Give out your Google Voice number and enjoy cheap SIP service.

A quick explanation of what we’ve set up:

  • Text messages happen over data through the Voice app.
  • Incoming calls to your Voice number get forwarded to sipgate and ring on your phone.
  • Outgoing calls trigger GV Callback and have Voice call your sipgate number to initiate the call. Since incoming calls are free through sipgate (for now, until a lot of people start following guides like these!) you don’t have to pay.

Outgoing calls will show to the other party as a call from your Voice number:

Caller ID showing my Google Voice number when I call someone.

Caveats

  1. At times there can be a slight delay or echo when using SIP over the data network. Calls on my end usually always sound perfect, however, so your mileage may vary. I’ve been using this exact setup since the first CyanogenMod 7 builds appeared for my phone a month and a half ago, and it’s been reliable.

  2. I live in the United States and call within the United States. Foreign calls are subject to Google Voice pricing.

Enjoy, and good luck!