Saturday, May 10, 2014

Free Google Voice Calls After 5/15

On 5/15, Google will discontinue XMPP support in Google Talk, which will cause VoIP applications like Talkatone and GrooVeIP to no longer work with Google Voice...directly. Currently these apps allow you to make calls using Google Voice over Wi-Fi and mobile data instead of burning cellular minutes. Many alternative services are now available to replace this functionality, but they all require you to spend a little money to use them. These new services make things very easy to setup, so this may be a good option for many. However, you can still make data calls with Google Voice for free if you are willing to jump through some hoops, as follows.

iPhone users: apparently Google Hangouts will let you do this without much hassle. I don't have one to confirm, nor do I understand why Google is adding features to its competitor's software first.

Android users:
  1. Setup a Callcentric account with a free DID (New York area code phone number). When setting up the phone number, say No to "Are you using our services from within the US or Canada?". Otherwise you have to pay the E-911 fee, but you won't be using E-911.
  2. Register an account with
    1. Go to Extensions -> Add Extension -> SIP.
    2. Extension Number: enter 1 or another number.
    3. Put whatever you like for Display Name and Password.
    4. Submit.
    5. Go to Trunks -> Add SIP Trunk.
    6. Put whatever you like for Trunk Name.
    7. Username: put your callcentric SIP number (1777xxxxxxx).
    8. Password: put your callcentric password.
    9. SIP server or proxy: ""
    10. Submit.
    11. Go to Inbound Routing, Add Incoming Route
    12. Click the two bubbles that start with "Extension:".
    13. Submit.
    14. Click the red bar to apply all changes.
  3. Install SipDroid
    1. Settings -> SIP Account
    2. Username: "username-1" (username that you use with, 1 is the extension number you chose)
    3. Password: the password that you chose for the extension
    4. Server or Proxy:
    5. Port: Consider coming back and changing to 5061 if you can't connect
    6. Protocol: I use UDP, but you can try TCP. TCP should save battery but I had issues where incoming calls wouldn't ring if the phone had been idle on Wi-Fi for awhile.
    7. Check whichever network types you want to connect on; I chose WLAN, 3G, and EDGE.
    8. Go back to Main Menu, then Audio/Video: Change Microphone Gain to "Low (no echo)" to reduce echo for the other party.
    9. Main Menu, then Audio Codecs: set speex to Always try, set everything else to Never. Speex is a good balance of quality and tolerance for suboptimal network connections, as well as being low bandwidth, but it has higher latency as a result.
    10. Main Menu, then PBXes features: check "Improve Audio". This in theory double transmits packets when it detects packet loss with the speex codec.
  4. Your Callcentric New York number should now ring your phone. Go on and set up the New York number with Google Voice.
  5. Install the Amazon App Store
  6. From the Amazon App Store, install Google Voice Callback (Xinlu)
  7. Launch the app on the phone. Setup the account however you like; choose the Callcentric New York number as the callback number. For "When to use callback?", I like "Always (when possible)".
  8. Make calls with the native dialer. While on Wi-Fi or mobile data, SipDroid will ring. Answer the call and it will start connecting you to the other end. Calls made when not on a data network will work like a normal cell call.

Note: we use instead of connecting directly to Callcentric since supports Speex and iLBC (if using cSipSimple) codecs while Callcentric only supports PCMA and PCMU. It also supports TCP SIP, though I'm not currently using that feature.