For phone services, I would suggest looking into an OBi100 or similar device. http://www.amazon.com/OBi100-T...
This is similar hardware to Magicjack, but it works with whatever VoIP provider you choose.
I'm with voip.ms, which is $.01/minute billed in 6-second increments for all calls (in and out). There's an extra $1/month, plus another $1/month for 911 service. If you want caller ID names, it's an extra $.01/call, but only if it's not in the contacts you set up on their web page. There is a fee for porting numbers.
Another option is Google Voice. All calls (US/Canada) are free, but there's no caller ID names, even from your Google Contacts. Also, Google only lets you port mobile numbers, not land-line numbers, but people have managed to do it by first porting their cell phone to a prepaid cell. (I have our outgoing calls set to a Google Voice number, which can be a bit confusing for people.)