Recently Google introduces Hangout Dialer which you can make free long distance call to most phone numbers in North America. Making phone calls to other countries are not free but the rate is very cheap (for example, 1 cent per minute to China) .
For iPhone, you only need to install Google Hangouts, it already includes the dialer.
Can you also use Hangout to receive calls? The answer is yes. Go to Google Voice to apply a US phone number and then choose Ring Hangouts for incoming phone calls made to your Google Voice number in Hangout。
Note that you need a real US phone number to get a Google Voice phone number to pass the verification.