To be absolutely zero cost, you'll need three things for this:
- A phone line from which you can receive incoming calls for free
- A computer connected to the Internet
- A Grandcentral account
Second is an Internet connection you can access, which again isn't free. Although, I do have a free connection at work, and there are a number of open Wi-Fi access points around my apartment. Since you're not going to be browsing around the web or downloading anything, it shouldn't be too terrible to jump on someone else's connection for just a moment. Dial-up is right out, though, since you need that phone line to be open (unless you have two+ phone lines, in which case it's fine).
The most difficult of the three to get will be the Grandcentral account. Grandcentral is a fantastic service that is currently free (although they have stated that some features may become for-fee once it leaves beta, but now that Google owns them...).
So, if you don't already have a Grandcentral number (and why not?), head on over to grandcentral.com and reserve one. You'll have to spend some time on the waiting list, but you should get through eventually. Then come back here.
Got one? OK, the feature you're going to use is called Click2Call. From your call log, or messages tab, or address book, you'll be able to see CALL buttons next to the phone numbers of your contacts. Click that, and you'll get a prompt with your phone numbers on it.
Pick a phone number, Grandcentral will call you, and when you pick up it will call your contact.
Even if that is a non-local number.
On George's suggestion, I googled a restaurant in Toronto, Canada, and tried the same trick with them. I got through, no problem. So, technically, this is a way to make free international long distance calls too. However, when I tried a number in Japan, it didn't work, so you're limited to the US and Canada. Still, more than worth the price of admission ($zero).
Having had to recently make a brazillion calls this way, I found a much easier method. Previously, I was editing an account to point to the number I wanted to call, then calling it. But you have to edit the account again FOR EVERY NUMBER. When you must make many such calls, it quickly becomes a pain in the ass.
SO! Now I call myself.
I select my own address book entry, call my home phone, and input the number I want to call as the temporary number I'm calling from.
Now, if I were to try to do this when calling an actual person, it would be a bit strange. Their phone would ring, it would pick up, they'd hear my phone ring, then I'd pick up. But, since I'm calling automated systems, it's no problem. Although, I DO miss the first part of the menu sometimes.
OH! I just thought of a
Hello, clever people. So, pick two random phone numbers. Put one in your address book, and call it.... from the other (temporary number). These people are going to have no idea what's going on. Guy A picks up his phone, it then calls another person (Girl 1), who wants to know why Guy A is calling. Guy A is very confused; someone called HIM! Argument ensues. Give them a minute or so, then do it again. And then again. That's the mean part. Here's the EVIL part: Switch the numbers. Now Girl 1 is calling Guy A. Even GREATER confusion ensues. And now here's the drawback: Each person will be getting YOUR number on their caller ID, so you're not going to be too hard to track down. ^_^
Now that GrandCentral is Google Voice, they took this little trick and put it right on the front page, with a simple button to press. They even tell you about it in the FAQ. So much for trickery, eh? (There's also super-cheap international calling. 2 cents/minute to Japan? Really?*)
[*Update again, again: No, not really. Japan is up to 3 cents/minute, and Canada is no longer free it's now 1 cent/minute. Darn economy!]