on android if you have data, all you would need is google voice, and then something like grooveip. Ive heard mixed reviews about making calls over anything but wifi or 4g though. Im not sure about ios, but im guessing there is something like grooveip that you can use with google voice on your ios device.
Remember that you will not get mms with google voice though. This isnt a big deal to some people, but it is the main reason i really dont use my GV number anymore.
If someone sends you an mms, you have absolutely no idea that you got one - which sometimes leads to problems with some people. At the very least, even if they wont forward it to your email, then at least send me a notification that says "so and so attemptmed to send you an mms".
If you have friends with iphones who like to send group messages, forget about ever seeing any of them.