Thursday, April 28, 2011

Making free internet-based call using your Android phone

It's not a secret that you can make free calls using your Android phone and Google Voice, even without a SIM card in your phone. This is NOT a step-by-step guide, but instead a general description of how it works. Warning: setting this up is not a trivial process. You will need to fill in all the details for yourself. Google (Yahoo/Bing/your search engine of choice) will be your best friend.

DISCLAIMER: The information provided below comes with no guarentee of any sorts. Absolutely nothing. I do not encourage, endorse, or recommend the actions suggested below. Do them at your own risk, and don't blame me even if your phone stops working, your house burned, you lose your boyfriend/girlfriend, your candidate of choise loses the election, or the doomsday comes.

What you need



Let's first go over what you need:
  • Google Voice Callback app
  • A Google Voice account
  • Internet connection for setup as well as every time you make a call
  • A VOIP account that works with the SIP protocol
  • A real phone number (DID) that can transfer call to your SIP account
  • A SIP app for Android

In details:
Google Voice Callback
Duh! Get it now on Android Market. If you like it, be sure to buy the donate version, beer and coffee money is always welcome :)
Google Voice account
Duh, again! Sign up for one at www.google.com/voice . Google Voice is currently US/Canada only, so you will need a valid US/Canada number to sign up and verify a new Google Voice account. However, once the account is set up, you can make free VOIP calls anywhere in the world.
Internet Connection
Yes, this is aboslutely necessary. Wifi is probably best, but many people have success story with 3G connection. 2G is likely too slow for making voice call. If you phone can't check the latest news or the current weather forecast, it can't make an internet call either.
WARNING: Using data plan to make voice call might violate the term of service of your cellular service provider. Check with your cellular provider before doing anything. Of course, making internet call using wifi should not get you into trouble.
SIP account
VOIP stands for voice-over-IP, and SIP is one popular protocol that allows VOIP calls. You will want a SIP account that comes with free incoming calls. It does not matter how much your SIP provider charges for outgoing calls. Some of the popular providers are Sipgate, Nimbuzz, CallCentric, etc.
For your SIP provider, you will need to know your username, password, server name, and your SIP address (in the form of xxxxxxxx@some-sip-provider.com). Do your homework to find out those information if you don't know them already.
DID number
Your SIP account (see above) will give you a SIP address, which is almost like a phone number. But for our purpose, you need a real phone number (DID) such that when you call that number, it will redirect your call to your SIP address. IPKall gives out DID number for free; Sipgate also gives you one for free when you sign-up for your SIP account; and you can always buy a DID number from your SIP provider. If your DID number does not come from your SIP provider, make sure that it is set up to connect to your SIP account. For example, your SIP address is 123456@sip-account.com, but you can't really call that number from your phone. Instead, you need to a DID number, let's say, 123-456-7890. When someone calls 123-456-7890, your DID number provider will "call" 123456@sip-account.com and transfer the call to your SIP account.
SIP app
If your phone runs Android 2.3 (aka Gingerbread) or above, you don't even need this. A SIP client is included in Android 2.3 or above; you can set it up in Settings -> Call Settings. If you don't have Android 2.3 or above, there are many options, among them CSipSimple, Fring, and Sipdroid.

What you need to do


Once you have the above ingredients ready, you need to do a few things.
  • Set up the SIP app with your SIP account. You gotta figure this one out yourself. At the end, make sure that you test whether you can receive an incoming call to your SIP account.
  • Add your DID number to your Google Voice. Nothing complicated there, although the last step of this involves answering an automatic call from Google with your DID number, which means you need to be able to answer a call with your SIP account.
  • Set up Google Voice Callback. Should be fairly straightforward, just make sure that you pick your DID number as the callback number.
  • That's all! Start up your SIP app, and as long as Google Voice Callback is not disabled, just make a call the usual way with the Dialer app. You will be connected for a free call once you pick up the incoming call from your Google Voice number with your SIP app.

Caveats


  • Internet call quality depends on 4 things. 1) Your internet speed. 2G will give you horrible call quality, guarenteed. 2) Your SIP provider. 3) Your SIP app and the codecs it supports. 4) Google Voice itself. Note!! Google Voice Callback has no control over call quality. I've experienced excellent, crystal clear, and no-delay call quality, as well as shitty, you-can't-hear-anything call quality. Your mileage will vary.

  • SIP protocol usually uses a specific port, so if you are using public internet connection, or your cell phone's data plan, the port used by SIP may be blocked intentionally. In that case, it's likely that you are out of luck and you can't enjoy free internet calls while using such internet connection.

24 comments:

Avery said...

This musing was simply precise, thoughtful, and divinely sent. You may want to contact me about debug logs, grammer edits and general interests...
~L;~P

ps. Curiously honored to be the first to comment on this glorious gift. halleluia!

Richard said...

This recently stopped working for me. The message I get is that this call is not available for callback. I recently integrated my Sprint Number with Google Voice -- and I think that is the cause. Any ideas?

Anonymous said...

I'm running 2.3 and just as there are options to start sipdroid and csipsimple, it would be great if "receive incoming calls" in Call Settings' Accounts page could automatically be checked, then unchecked once the call ends. I leave it unchecked for battery life. Thanks!

x said...

@Richard: yes, integration with Sprint is what caused the problem. I do not know how to solve it as I don't use Sprint. It's probably too late to tell you that integration with Sprint will cause GVCB to stop working since you no longer have 2 separate numbers (if I understand how Spring+GV works correctly).

@Anonymouse: unfortunately that is not allowed by Android's API. You might want to ask Google for it in a feature request.

Steve said...

I am using Sipgate, CSipSimple, and GV Callback for VoIP. It was working fine until yesterday. I went into my account, no recent outbound calls, but all my free minutes are gone (they were only for outgoing calls). Whenever I try to make a call now, the call rings in but then it doesn't connect. The phone just vibrates. I think Sipgate may have discontinued free inbound calling. I have sent them an eMail about it, if they haven't discontinued free inbound then I don't know what the problem is.

x said...

@Steve: As far as I know, Sipgate is working just fine.

Anonymous said...

Thanks for the app and tips. Here are my notes with more details.

Phone = HTC Droid Eris (Verizon)
SIP account = sip2sip.info (VOIP # in email format)
DID account = ipkall.com (phone # that redirects to SIP "email")
SIP client = Fring - Android app
"the glue" = Google Voice Callback - Android app

Goal = Use phone overseas to get calls without friends in USA having to pay international rates, and be able to call USA numbers free, while using WIFI connection with phone in airplane mode (no service and/or exorbitant rates via Verizon overseas)

Google Voice = Won't allow you to dial out if phone is in airplane mode!
It appears the Google Voice app is not needed on the phone for this VOIP process to work. Currently have GV app setup to "never use" for outgoing calls, also worked set to "ask every time". It appears the only reason to have the GV app on your phone is for the visual voicemail; or to buy minutes and use it to make international calls - but Fring rates appear cheaper.

After installing Fring, I could easily accept calls to DID on phone (from either land line or Google Voice). To make a call from Fring, you have to either have a FringOut credit (which appears to be the cheaper than Nimbuzz, Skype, GV, etc.) or have a SIP account that allows outgoing calls; or for the truly geeky you could call others free using their SIP "email" assuming they have a SIP account setup and Fring or another app on their phone or computer. The free SIP accounts don't allow outgoing calls (even inside US), only incoming. The workaround is the Google Voice Callback app. With this installed and pointing to the DID as the callback number and set to "always" use; next you dial from the normal Android phone dialer (NOT from Fring). It will do a "callback" and you accept that from Google, then it connects you to the number you dialed. This sounds confusing, but is really the same if you don't have long distance on a land line and use the Google Voice website to call you on the land line then connect you for free to whatever number you're calling. By registering your DID in Google Voice, it also allows people to call your (USA) GV number and be routed to your Android phone with a WIFI connection overseas (hopefully, haven't actually done that part yet); so they don't pay international phone rates to call you.

Findings:
- Different SIP accounts work better/worse with different apps. Couldn't get sipdroid app to work with my sip2sip.info account, probably could get it to work, but Fring was easy and worked the first time.
- Blink app for Mac/Win/Linux doesn't appear to have keypad, so can't use computer to setup Google Voice number (to receive SIP call to verify number).
- It appears only calls to the US or Canada can be made free, regardless of where you are. If you want to call Thailand from Thailand, it's going to cost you because the call is technically coming from the USA. Regardless of who you use, you have to buy $10 or more credit. Fring per minute rates appear cheaper than anyone else right now, including Google Voice, Skype, and Nimbuzz.

Sol said...

I have to say that this system is utterly brilliant and the developer deserves the nobel prize!!!

However, I've had 1 issue...
Under the section "Google Voice Account", you say that once everything is set up, you can make VoIP calls to anywhere in the world. I tried calling a friend in the US and it went through, but when calling a friend outside the US/Canada area the call just disconnected.
I'm using CSipSimple with IPComms (as my SIP provider) and GV callback.
I've also seen on your FAQ page that you say that it won't work outside the US/Canada. So is it just a typo that appears on this page or did I misunderstand it? I would greatly appreciate some clarification on this matter.

Anonymous said...

Any chance of supporting honeycomb?

Daniel said...

sipgate is the bestfor this...

Nola Mike said...

@ Steve: I had this issue as well. I believe that the problem is if call forwarding is set up. You should have the call routing set up to your GV number, but not call forwarding--forwarding to another number isn't free. HTH.

Anonymous said...

I'm pretty sure about this, but I wanted to double check: You can't receive calls for free, right?
Even if you gave people the DID number to call you?

Also, for just outgoing calls, will your Google Voice number be the # recognized by other phones when you call them? Like, it won't show your phone's number, or the SIP number, or the DID #, right?

LeRoy said...

I'm pretty sure about this, but I wanted to double check: You can't receive calls for free, right?
Even if you gave people the DID number to call you?

Also, for just outgoing calls, will your Google Voice number be the # recognized by other phones when you call them? Like, it won't show your phone's number, or the SIP number, or the DID #, right?

mkb87 said...

I followed the steps as instructed but I am not receiving a callback.I set up a callcentric sip and connected it to a DID from IPKall. I'm using the CsipSimple app but when i make a call using the dialler I get a message say that the call cannot be made and i never receive a callback. Is there something i set up wrong? I do have the google voice app as well could that be the problem?

mkb87 said...

I am using Callcentric, CsipSimple, and google voice callback app but it is not working. I followed the instructions for the setup but when i make a call from the Csip dialler i get a Callcentric message say that the call cannot be made and i never receive a callback. Is there something that I setup wrong? Could that regular google voice app be causing the problem? I appreciate any suggestions thanks.

drif said...

still don't understand how to set up with NimBuzz, since Sipgate is out of phone numbers for signing up.

x said...

@Sol: you probably don't have money on your GV account. International call still costs money through Google Voice.

@Anon on May 18: maybe...

@LeRoy: You can receive calls for free IF you receive it through your SIP service. The caller ID for outgoing call will be your GV number.

@mkb87: Are you sure that your Callcentric account is working? Make sure that you can receive an incoming call with it.

Phoney6 said...

I'm getting a callback and can hear the other end just fine, however the other end can't hear me ... any thoughts?

Using IPComms, CSipSimple, and GV Callback.

guri said...

Plshelp m

simplecall said...

I am looking for a reliable connection for International calling which offers crystal-clear Call quality without any dropped calls or poor connections. Can anyone suggest me something?

shamsudheen parambil said...

free calling software download, you can call anywhere in the world, check this site click here

InLineCom said...

I really appreciate your professional approach. These are pieces of very useful information that will be of great use for me in future. Thanks for it.

voip phone system Toronto

Aeldra Robinson said...

Smartgroschen is the best app to make cheap calls and SIP calls. Here are some features of smartgroschen listed below

Features:

• International calls to other Telecall users using 3G or Wi-Fi;
• credits to call anywhere in the world;
• Low cost international calls from your mobile to any mobile and landlines.
• Callthrough: Call even without internet;
• Callback;
• Conference Call;
• Voice Mail;
• Call Transfer;
• Call forwarding;
• Call recording;
• Quick dial screen to save your 12 most called contacts;
• Integrated with your existing contact list;
• Display balance;
• Top up your account directly on your phone;
• Keep your current SIM card and number;
And many more

ankit shastri said...

Internet free calls not working on my phone. Using android 4.1 . Please Help