When you have Google Voice installed on your phone and tell the phone to call using Google Voice, what the phone actually does is to first dial a Google Voice access number and then dial the number you want to call. When you're in China, the phone can't dial that access number, so the call can't be placed. Well, theoretically, the Google Voice app could be written to connect to the access number internationally by putting +1 in front of the number, but it doesn't do that now. Of course, if you really, really want to do it this way, you can manually dial your own Google Voice number from China, then select the menu option to dial out, then enter the number you want to call. It'll work, but you'll be paying international voice rates, since you're calling back to the United States over the voice network.
So, as of now, the only way to use Google Voice the way you're wanting is via a third party app like GrooVe IP or Talkatone, both of which require some kind of data connection. And you're right, mobile data will cost a lot, which is why you only want to do this on wi-fi. However, if you have a decent connection, it should work quite well.
Sent from my SCH-I605 using Android Central Forums