2014-02-07

Cheap / free mobile calls over voip

short link http://j.mp/1f2Dsmz
Previously, I had used Talkatone to make free outgoing calls over Google Voice via xmpp. On May 15, 2014, Google is dropping support for third party xmpp access. After some research and experimentation, I found this workaround. Perhaps it's cumbersome, but it's a one time setup for ongoing free calls.
Google tells us they are incorporating voice calling into Hangouts. I hear the iphone version already supports this, but the android version is under development. As I only have an android, I am unable to test the iphone implementation. This howto can be adapted to iphone + Hangouts.

EDIT 2014-03-20-4 20:57-05: I managed to play with an iphone with Hangouts installed. Seems you can indeed originate a call using your GV number over data without using mobile minutes. If this is what Android users can expect when Google implements this in the Android version, then this howto becomes obsolete. I'm fine with that. Fewer apps to manage.

EDIT 2014-09-10-3 09:52-05: Android has an app GrooveIP that's all in one. Integrates with your native dialer and Google Voice prompts for inbound and outbound calls. No need for a bridge dialer. Instead of calls routing through GV, GrooveIP routes through another carrier ring.to. ring.to has partnered to offer free calls for GrooveIP users. Downside is not being able to set your codec. The chosen codec is a bit heavy on bandwidth. This shouldn't matter on a robust LTE or wifi network. Still, worth a look for its simplicity.

EDIT 2014-09-10-3 21:03-05: Google finally released Hangouts Dialer for making data calls using your GV number. The feature set isn't as robust, but it's the easiest to use among the options discussed here. Dialer doesn't integrate with dial-aware apps, so there's no click to dial from Maps, Contacts, etc. One needs to copy/paste the number into Dialer. Call history is not searchable nor can one obtain call duration. The history also doesn't integrate with GV's call history. Attempting to view the call detail on the GV app will crash, but viewing call detail on a full website works.

I use Tmobile's prepaid $30/month plan. It gets me 100 voice minutes and 5 GB data. I only use the voice minutes if I have a weak data signal. Calls are voip'ed as follows:
  1. Sign up with a voip carrier. I use callcentric.com . Skip the E911 setup or Callcentric will bill you monthly. If I need E911, I can use my native mobile number. Disable voicemail by "canceling" the service in your dashboard. Otherwise, when Google Voice fowards to your Callcentric, its vm could answer before GV's does.
  2. Setup Direct Inward Dial (DID). Callcentric offers free NY numbers and paid US/intl numbers, or use ipkall.com. ipkall has faster call setup times. With Callcentric's free NY DIDs, the caller hears several rings before my sip client even rings. ipkall rings right through. Downside to ipkall is, they delete inactive accounts after 30 days. The solution is to login to ipkall and/or receive at least one call per month.

    EDIT 2014-05-23-5 04:19-05: ipkall does not pass the caller ID, so I don't know who's calling. I also discovered Callcentric's DID long call setup times are because my SIP client de-registers. If I re-register, the DID rings through just fine. It also passes caller ID. So, I switched.
  3. Add this DID as a target number in Google Voice. Optionally disable forwarding to your mobile's native number. The downside is, if you're in a poor data area but still have voice service, your sip client won't receive inbound calls. I setup GV to ring both my DID and my mobile native number. Inbound calls will ring both and I choose which to answer.
  4. Install a sip client. I use CSipSimple. It has a setup wizard for Callcentric. ipkall only supports GSM, g711u, g711a. Use GSM if you want to save bandwidth (about 80 kbps bidirectional) or g711 for better quality (about 160 kbps). Even a moderate HSPA link can sustain 160 kbps. 80 kbps consumes 600 kB/min and 160 kbps consumes 1200 kB/min. 500 min of GSM is around 300 MB. 500 min of g711 is around 600 MB. This should fit nicely within data plans measured in GB. Most data networks can comfortably carry g711 traffic. Beware of latency!
  5. Install a callback app. I use Voice+. Search the Play Store for "google voice callback" since searching for "Voice+" doesn't find the app. Configure Voice+ to intercept outbound calls and route to your DID.
Outbound calls: Use your native dialer as usual. Voice+ will intercept the outbound call. GV will call your DID and CSipSimple will ring. Answer and GV will bridge the call to your actual target. From your DID's perspective, it's a free inbound call. Callcentric offers free inbound calls.

Inbound calls: Because your callers dial your GV number, GV will ring your native mobile number and/or your DID. Answer on whichever number you choose.

Only need to tell people your GV number. Your native mobile number and DID are for routing only. Change them at will and you need only update your GV forward targets. No need to inform all your callers of number changes.

Voila! Now all your calls consume data only and you can switch to a very low minute plan. I use Tmobile $30/mo for 5 GB and 100 min voice.

If you want to simplify this setup some, skip Voice+ and dial out from CSipSimple. This will require you to buy minutes on Callcentric because they are originating your calls. Still, US and CA calls are $0.0198/min. Other countries have decent rates. Callcentric will let you rewrite the outbound Caller ID. They have a toll free number you call. It rings without answering. Open a support ticket with date, time, your Caller ID and they will add this to your account. They replied to my support ticket within minutes. Now choose your GV number as your outbound Caller ID.

CSipSimple can optionally intercept outdials from your native dialer. Useful if you place calls from within apps (ie looking up a business in Google Maps and clicking to dial).

Beware, Callcentric bills $0.0088/min for outdials to US toll free calls. This is minimal, but if you want to avoid this and still originate calls via Callcentric, you can peer through a toll free server. Dial **275*1-8xx-xxx-xxxx . That's the beauty of voip networks. Many networks have peering arrangements with each other, so you can often call people on different voip networks for free.

No comments:

Post a Comment