Voip isn't 100% free, but you can do without your local telco.
https://www.boradvoice.com https://www.viatalk.com https://connect.voicepulse.com All of these companies will sell you DIDs (phone numbers) and outgoing service, and are compatible with Asterisk.
The first two sell 'lines'- for around $20/mo, you get an incoming DID with unlimited outgoing. This has two limitations-
1. you can only usually use 2-3 channels at a time (to allow 3way calls), try to send 4 or 5 calls at once through and you will get error messages.
2. You can't set your outbound caller id, it is locked to your DID#. You can block it though *67 style.
VPConnect is a wholesale provider. They sell you VoIP service and nothing else, no frills. You are expected to provide your own features and possibly resell the result to others. You can get DIDs (incoming) for $11/mo/DID, and outgoing minutes are .5c-2c/min depending on where you call (international is extra). For this you get 4 incoming + 4 outgoing channels per account (NOT per DID), but you can add more for an extra fee. This does *NOT* include services like voicemail, network down number (send calls to cell when asterisk box dies), etc.
However you do get the interesting ability to set your outbound caller ID. You can only set it to things that make sense, IE not 911. Must be a 10 digit phone #. This can be useful though so all calls have the CID of your company's main number for example.
All of the above services are portable- I have heard of numbers being ported into and out of all 3.
Hope that helps!