Making Free VoIP calls from your Android Phone

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.

VoIP.ms 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 xxxxxxxxxx@b3n.org 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.









Apple’s Stock Hitachi Vs. Kingston SSDNow V+

This is why your next computer upgrade should be a SSD.

I ran the following tests on Apple’s stock Hitachi 5400RPM 320GB:

1. Cold boot
2. Logos passage guide on 1 Kings 8.
3. Open IE from Windows 7 in Parallels “cold” boot.
4. StarCraft II load 4v4 map with 7 AIs.

I then replaced the hard drive with the Kingston SSDNow V+ 128GB, used Apple’s migration assistant to copy the data over to the SSD and repeated the tests.

All tests were performed on the 2011 13″ Macbook Pro Core i5 2.3GHz 4GB memory.

Note that Mac OSX does not yet have TRIM support.  If you do buy a SSD for your Mac you should get one with an onboard garbage collection controller (such as the one I bought). If you have Windows 7 you should be fine with just about anything.

We Are Now a Droid Family

Ben: HTC Incredible         Kris: LG Optimus V
Eli uses his parents droids for now.

Usability Failure of Baby Clothing

Should be color coded snaps.
Duh!

Brilliant Super Bowl Commercial from Motorola

Motorola’s genius marketing department hit Apple with a Super Bowl commercial. I think a lot of people wouldn’t understand what Motorola is inferring about Apple, so I’ll explain it.

For reference, here’s some great commercials from Apple:

Apple’s 1984 commercial…

And Apple’s 1985 Super Bowl commercial…

And Apple’s tribute to the crazy ones, the misfits, the rebels, the troublemakers, the round pegs in the square holes… the ones who see things differently…

Since those commercials Apple has started locking down users into doing things one way in iOS.  Apple’s way.  Apple didn’t allow certain applications from their competitors (such as Google), won’t allow applications that give shell access, and recently blocked users from purchasing books from Sony.  The misfits, rebels, the troublemakers are no longer welcome. Apple is becoming the very thing they were against in 1984…

Motorola takes advantage of Apple’s current practices with subtle references back to Apple’s 1984 and Lemmings commercial in their Super Bowl ad…  

Android, Affordable

My dream cell phone plan comes true.  The mobile provider targeted towards trendy-youth of all places has the best plan designed for mostly data usage.  $25/monthly for 300 minutes, unlimited texts and unlimited data.  A few days ago Virgin Mobile launched a new Android phone, the LG Optimus V (Optimus One).  LG’s strategy with this phone is to sell a lot of them for a low enough price that people can afford them.  Sure, Verizon Wireless has a slightly better network (Virgin Mobile uses Sprint’s network), and offers better phones but it’s hard to ignore an $1170 price difference after 2 years.  Not to mention the value of not being locked into a contract.

Going Paperless

Ben’s old Filing System, papers piled in boxes
For my entire life my filing system has been to throw papers in a “Need to file” box.  My thinking is that someday I will organize and file everything away.  That day has not come.  So I add more boxes.  Finding a specific paper isn’t efficient.  I dump one box at a time on the floor and throw things back in until I find what I’m looking for.  Last week I decided it’s time to try going paperless…
My four step plan to getting paper out of my life:
  1. Use a ScanSnap scanner to scan and OCR every piece of paper.
  2. Upload everything to Evernote, tagging files.
  3. Keep and file important papers like vehicle title, birth/marriage certificates, etc.
  4. Shred everything else.

I bought the ScanSnap S1300 model, which is portable so I can sit it in the living room and use it from a comfy arm-chair.  ScanSnap will scan the documents and use Abby FineReader to OCR, and then upload to Evernote to organize all the files.
Here’s how my workflow was looking like:
Scan 10-15 pages in seconds, wait 5 minutes for OCR to finish.
Scan 10-15 pages in seconds, wait 5 minutes for OCR to finish.
Scan 10-15 pages in seconds, wait 5 minutes for OCR to finish… this is going to take forever.
The problem is, ScanSnap won’t let you scan a new batch until Abby FineReader finishes OCRing the last batch.  On newer computers that’s not a problem, but on my computer it can take 20-30 seconds to OCR a page.
What’s the point of a fast scanner if my computer is old and slow and takes forever to OCR.  I debated not OCRing the documents on my computer and using Evernote to do this task, but Evernote only makes the documents searchable, it doesn’t allow you to copy and paste from OCRed documents, so I much prefer to have ScanSnap/Abby FineReader perform the OCR.
Fortunately with AppleScript there’s a way to run Abby FineReader in the background so that you can continue to scan uninterrupted while queuing up documents for OCR.  Tad Harrison wrote an AppleScript to automate the ScanSnap OCR process so that it could run in the background.  It works great, except that it prevented ScanSnap from automatically uploading to Evernote since it had to save scans to a folder where OSX’s folder actions would pick it up for OCR instead of sending it to Evernote.
Teaching Elijah to write code
Since I was up at 3:00am holding my son anyway, I modified the script to upload files to Evernote after they’re scanned.  If you want to do the same here’s the code changes to make to Tad’s AppleScript:


-- bwb001 >>>
-- code should be inserted in the ocrFile function after this line:
-- logEvent("OCR file generated.")
tell me to set bwbName to getSpotlightInfo for "kMDItemFSName" from posixFilePath
tell application "Evernote"
set note1 to create note title bwbName from file posixOcrFilePath
open note window with note1
end tell
-- bwb001 < <<

This works.  Saturday morning I scanned in documents non-stop for about 30 minutes, then I enjoyed the weather outside while my computer spent the next several hours OCRing all of the documents and uploading them to Evernote.

Evernote works well as a document management system.  It automatically OCRs any PDF or JPG file that's not been already (even OCRs handwriting in JPG files) so everything is searcheable.  I don't even bother using intelligent filenames or note titles, I simply search for content within the files.  For my filing system I use tags and try to just use the company name.  I did upgrade my account to premium ($45/year) because of the volume I scanned. Evernote allows uploading 60MB/month for free so If I had spread it out over a few months I could have done it for free, but I wanted to be done with this project.  I scanned, OCRed, and uploaded 749 pages (most double-sided), 374MB to Evernote.

Now all of our files are available from all our devices.  iPhone, Android, Mac, and Windows.

Evernote Security, Backup, and Versioning
At some point you have to trust cloud services with your data if you're going to embrace the future of computing.  My rule is that security doesn't have to be perfect, but that it should cost more for identity thieves or whoever else may hack into my accounts to obtain useful information than the information is worth.  One thing to keep in mind is data is not stored encrypted on Evernote so that it can index everything.  For sensitive documents and notes I encrypt them before uploading them on Evernote and make sure the note title contains a few key words.

I trust cloud backups for the most part.  Most cloud providers can provide better backups and redundancy than I can myself.  When they lose data it's big negative publicity.  Evernote handles about 90% of what you would want in a backup.  They of course have redundancy and maintain their own backups.  If Evernote goes dark I could still use the local cache on my computer, it automatically versions files so if I overwrite something important I can revert.  If my computer crashes everything is backed up in the cloud anyway.

Evernote backup weakness
When notes are deleted from Evernote the versioning also goes with them.  Once something is deleted from the trash and all of your devices have synchronized there is no way to get it back.  Could this happen?  Unlikely but yes.  A malicious script breaks into either your computer or Evernote account and deletes all your files, and empties the trash.  Or you, or someone using your computer selects all notes, deletes them, empties the trash, and ignores the warning that the notes will be gone forever.  So as one last step it's a good idea to backup the Evernote library data and database files (on Mac this is in ~/Library/Application Support/Evernote).

Any decent backup tool will create versioned backups that you can store offsite.  I use JungleDisk to backup to Amazon S3, so I just made sure the Evernote folder was in my daily backup list.  If for some reason you did something stupid you could always recover from your JungleDisk backup.... so long as Evernote is not the only place you store your S3 encryption keys. |:-)

Ben & Kris' new filing system: everything searchable in Evernote
Cost to go paperless
ScanSnap S1300: $246 at Amazon
Evernote Premium: $45
Shredding: ??

Now all that's left is shredding.  I have a great little shredder that Bob gave me, but it can only handle a handful of papers before it has to take a rest for a day so it will either take a long time to catch up or I may see if I can find a shredding service or see how much a heavy duty shredder costs.