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.

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.

The OS

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:

As well as some SIP credentials:

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

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:

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:

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

And then receive an incoming call from Sipgate:

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:

Caveats

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. I live in the United States and call within the United States. Foreign calls are subject to Google Voice pricing.

Enjoy, and good luck!