Since Google has recently enabled Google Voice to forward your US phone number assigned to your canadian phone numbers, it has opened up an easier way to allow you get unlimited north america calling.
There are a few caveats to get this running if you are living in Canada like myself. For one thing, you are not able to just signup for a google voice account simply by pointing your web browser to http://www.google.com/voice
There are also a few roadblocks to get google voice working perfectly as it would if you lived in the US. Here are a few work around that may help you get at least some functionality out of it. I will outline a few things that it can do and how to do it.
To get a Google Voice account setup if you live in Canada, you will need to either travel to the US and visit google.com/voice or you can connect to a US based VPN. If you already have access to one, great connect and hit the Google Voice site. If not you can either signup with a VPN provider or use one of the free services that provide VPN access. Hotspotshield.com comes to mind. I am sure there are many more. If you are a real techy, you can have some fun with setting up your own VPN.
Once your account is setup, and you have obtained a US phone number from Google Voice, you may have tried to add a forwarding number only to find that there is no way to get your canadian number verified. The only was thus far I have been able to accomplish this is by installing Google Voice onto an Android phone and verifying your number through the app. Make sure you remove the unverified number from the Google Voice settings menu. If you have trouble with any of these steps, try logging into your Gmail account and under Settings –> Chat, make sure you set the country to United States.
Once this has been completed, your friends in the States can now call your US number which is then forwarded to your cell phone. Look ma, no long distance charges!
Now, to make free outgoing calls to anyone in US/Canada, you can use the Google Voice app on your Android or iPhone. The way this has been working for me here in Vancouver, BC is by dialling a US/Canadian number, the app will then dial out to a local 778 number which then connects my call. If you get an error saying “Call Failed. Try without Google Voice?”, go into the settings menu in google voice and turn off Click2Call. I believe the Click2Call function, which calls you and then connects you to the party you are calling and is only available in the US. This would be great for people with unlimited incoming calling.
Hopefully soon we will actually be able to port our number to Google Voice so we can jump to whichever provider we would like and always keep a single phone number. There are voip providers that you can currently port to however, I have yet to find a satisfactory provider that also handles text/sms messages.