Using Google Voice in Canada
Fortunately I had a magicJack device registered with a US phone number. MagicJack supports call forwarding to Canadian numbers at no extra cost.
So here's how I set it up
1. magicJack with US phone number is forwarded to my Canadian mobile phone number
2. Google Voice forwards to magicJack (as well as my US mobile phone number)
MagicJack is a small USB device with a phone jack on the end. You plug it into a USB port on your computer, and plug a phone into the device. The device costs $39.95 and comes with 1 year of free incoming and outgoing calls to the US and Canada.
For magicJack to foward calls to your Canadian phone number, the device doesn't need to be plugged into your computer. Just throw magicJack in a drawer. Setting up call forwarding in magicJack involves going to my.magicjack.com, selecting the My Subscriptions tab. Click "Change Setting" under Call Forwarding and enter your Canadian phone number.
If you want to forward to both your mobile number and your home or office number in Canada, you would need to buy two magicJack devices. But if, like me, you only have one Canadian number you want to forward too, along with various other US phones, then you just need one magicJack.
Although the voice quality is very good, I have occasionally experienced lag in the conversation. Not enough to make it unusable. Also, be aware that magicJack does not handle text messages. So calls are forwarded, but text messages are not. If you use the Google Voice app with notifications on your iPhone or Android, then this isn't an issue.
The only other setup challenge I had was needing to disable voicemail on my Canadian mobile phone. This wasn't related to magicJack. It was just that voicemail from my mobile provider (Rogers) was picking up too quickly for Google Voice, and there was no feature to increase the number of rings.
I now travel with 2 GSM SIM cards: a US T-Mobile prepaid SIM, and a Canadian Rogers SIM. Google Voice forwards to both. I swap SIMs as I fly back and forth. Much more cost effective than a North American cell phone plan. Google Voice with magicJack lets me have one phone number that reaches me in the US and Canada.