Rainy day, time to finish up this blog post.
|Raindrops coming down…
So Eli and I did a little exploring of VoIP solutions and found four to enable free or low cost calling on phones with unlimited data plans (or over wifi). I tested using the LG Optimus V from VM and the Droid Charge from VZW.
The first two methods use SIP and the third uses Google Voice and Google Chat. The fourth uses Microsoft Skype. Of the four I decided Google Chat was the best if you just want to skip to solution 3.
Quick note on Android SIP clients
|CSipSimple’s Dialer Intercept
I tested two Android SIP clients, Sipdroid and CSipSimple I found the latter more reliable on receiving calls while the phone was on standby so I used it for all testing. I think SipDroid is designed to work against PBXes but I didn’t want to introduce extra network latency by adding in another layer. I initially had trouble with CSipSimple draining the battery but I downloaded one of the nightly builds instead of using the stable release and that solved the problem –Update: CSipSimple just released the battery drain fix on the Android Market- and I also doubled the registration timing so it wasn’t polling the network as often.
1 – CSipSimple using SipGate & Google Voice & Google Voice Callback (Free incoming and outgoing calls)
Pros: Completely Free.
Cons: Free service so who knows about how reliable this will be, higher voice latency than other solutions I tested, only allows you to connect two devices. Received a few spam calls on my SipGate number so they might be recycling numbers too quickly.
1. Setup an account on Sipgate.com, Sipgate allows for unlimited free incoming calls and gives you a free number.
2. Setup Google Voice, forward Google Voice to your Sipgate number.
3. CSipSimple. For incoming calls once logged into Sipgate you can call your Google Voice number and it rings CSipSimple,
4. To make outgoing calls download a free Android app: Google Voice Callback.
Google Voice Callback installs an intercept into the dialer, so when you dial a number it intercepts the call, initiates the call through Google voice which then calls your SipGate number (because incoming calls are free) then once you pick up with CSipSimple it calls the 3rd party number you were dialing.
This method is completely free for incoming and outgoing calls with regular phones. I did notice high latency using this method. But free is free.
2 – VoIP.MS ($0.99/month + $0.01/minute incoming & $0.0125/minute outgoing)
Pros: Very Good call quality.
Cons: More expensive, can’t call other SIP numbers easily (but you could signup for a callcentric account for sip to sip calls), I get about 2 to 3 spam calls a week on my voip.ms number so I wonder if they recycle numbers too quickly.
is my favorite SIP provider because of the PBX functionality.
1. Setup an account with voip.ms
2. Setup subaccounts for all the SIP devices that will connect (Macbook, Ben’s Android, Kris’ Android, iPhone).
3. Setup call groups (e.g. group “Ben” calls all of my devices, “Kris” calls all of Kris’ devices, etc).
4. Purchase incoming phone number at $.99/month.
5. Setup IVR (digital receptionist), you can program it in many awesome ways, including nested menus. Instead of explaining it here’s a screenshot:
This is a full blown IVR, you could run a business off of it.
Anyway, on the client side you just want to setup CSipSimple to integrate with the Android dialer, then when you punch a number you can select whether you want to use your cell provider or voip.ms (or any other providers) to make the call.
Each device also gets it’s own internal extension, so Kris can dial 101 to ring my Android, 102 to ring the Mac, etc.
Optionally you could forward your Google voice number to your VoIP.ms number.
SIP Appendix A: Setup your own domain on SIP
This was harder to find but easy to setup. I had to look at RFC 2782
, basically the SIP servers or clients are supposed to lookup an SRV record the same way mail servers do an MX record lookup to see where to direct mail.
The end result is you want service sip on port 5060 udp pointing to your sip provider (in my case sip.voip.ms).
Here’s what it looks like on a GoDaddy control panel:
Once that’s setup, any calls to email@example.com resolve to whatever sip.voip.ms resolves.
3 – Google Voice & Google Talk & GrooVe IP ($3.99). *Ben’s Pick*
Pros: Completely free except for a one time app purchase, unlimited calling in the U.S.
Cons: Does not work consistently with Google Apps accounts (Google Gmail accounts are fine, I migrated my Google Voice account to a normal Gmail account and that solved the issues for me), not an official Google client so it could break in the future.
Steve Baehr pointed out to me that Google Voice and Google Chat do pretty much everything I mentioned above, except it’s much simpler and free… the only problem is Google doesn’t have an Android client. But someone wrote one: GrooVe IP ($3.99 in the Android Market) lets you make and receive calls through Google Chat.
1. Setup your Google Voice account to forward calls to Google Chat.
2. You must be logged out of Gmail, otherwise your incoming calls will forward to your computer (I would suggest setting up a new Gmail account just for this to avoid this problem).
3. Install and configure GrooVe IP
|Groove IP’s native dialer intercept
Incoming calls to your Google Voice number will forward to Google Chat which will forward to GrooVe IP on the Android. Outgoing calls go through Google Chat to Google Voice to their destination. GrooVe IP can also be set to intercept calls from the native dialer.
4 – Microsoft Skype ($10.49/month)
Pros: Can make calls using a normal cell network (not over IP) if on Verizon. Most popular VoIP service for free Skype to Skype calls.
Cons: Most expensive. Only Skype to Skype calls are free. Otherwise you’re paying Skype rates, which are not too bad: currently $4.49/month for unlimited calling in the U.S., plus $18/month/3 ($18 every 3 months) for a Skype number if you want to receive calls from land-lines.
Verizon Wireless has a custom Skype application that allows you to make and receive calls using the VZW voice network, which is very useful if voice quality is our primary concern.
If you don’t have Verizon phone you have to make calls over Wifi and in my test calls with Kris the latency was pretty high. Also if you’re a VM customer it’s only an extra $15 for their 1200 minute plan so the cost savings are not high enough to make it worthwhile.
How robust is VoIP on Android?
While I like the GrooVe IP solution I won’t be relying on it exclusively. I called Meredith today and he said the audio quality was worse than on Verizon and we did notice a little latency so after awhile we switched over to Verizon. On my end I could hear Meredith better on GrooVe IP than I could on Verizon, I think this is because Verizon suppresses the audio or some of the audio frequencies. While we were talking on Verizon the call dropped so we can’t exactly say cell phones are that robust yet either.