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:
- 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.
- Register an account with pbxes.org
- Go to Extensions -> Add Extension -> SIP.
- Extension Number: enter 1 or another number.
- Put whatever you like for Display Name and Password.
- Submit.
- Go to Trunks -> Add SIP Trunk.
- Put whatever you like for Trunk Name.
- Username: put your callcentric SIP number (1777xxxxxxx).
- Password: put your callcentric password.
- SIP server or proxy: "callcentric.com"
- Submit.
- Go to Inbound Routing, Add Incoming Route
- Click the two bubbles that start with "Extension:".
- Submit.
- Click the red bar to apply all changes.
- Install SipDroid
- Settings -> SIP Account
- Username: "username-1" (username that you use with pbxes.org, 1 is the extension number you chose)
- Password: the password that you chose for the extension
- Server or Proxy: pbxes.org
- Port: Consider coming back and changing to 5061 if you can't connect
- 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.
- Check whichever network types you want to connect on; I chose WLAN, 3G, and EDGE.
- Go back to Main Menu, then Audio/Video: Change Microphone Gain to "Low (no echo)" to reduce echo for the other party.
- 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.
- Main Menu, then PBXes features: check "Improve Audio". This in theory double transmits packets when it detects packet loss with the speex codec.
- Settings -> SIP Account
- Your Callcentric New York number should now ring your phone. Go on and set up the New York number with Google Voice.
- Install the Amazon App Store
- From the Amazon App Store, install Google Voice Callback (Xinlu)
- 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)".
- 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 pbxes.org instead of connecting directly to Callcentric since pbxes.org 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.
References:
- http://forum.voxilla.com/threads/how-to-setup-pbxes-step-by-step.26454/
- http://forum.xda-developers.com/nexus-4/general/guide-free-voip-calls-ilbc-codec-t2057887
- https://code.google.com/p/sipdroid/issues/detail?id=108