Here at the Hollow in what can euphemistically be called a "cabin", there is no cell service, and I have not signed up for long distance, as all the phone is normally used for is to call a local dialup internet number.
It would be nice to be able to occasionally make outgoing long distance calls in this situation though. With some difficulty, Google voice can be used in this situation.
The difficulty is because my google voice number is itself a long distance call from here, so I can't just call it up and use it as intended. And google voice's web interface was not designed with dialup in mind; it assumes you have a phone line that's not carrying your internet connection.
verifying the phone
This is the tricky part. Google voice wants to call you back on your phone and have you verify a number. To start this process, you need to use the internet. It's impossible to hang up from the net before they call back.
Since it's a one-off, I didn't try to automate this, and just had someone do the internet side of the verification, call me with the number, and then trigger google voice to call me back.
(Google voice's forums are full of similar stories.)
making outgoing long distance calls
Here's the fun part. You'll need a shell account somewhere else, where you can download and install pygooglevoice.
Then create a ~/.gvoice file, filling in your login info and your phone number.
[auth]
email=
password=
[gvoice]
forwardingNumber=
phoneType=1
Now to make a call, you can just run something like this on the shell account:
sleep 2m; ./gvoice --batch call XXX-XXX-XXXX
The sleep gives you time to free up the phone line. Google voice then calls you and connects you with the number you requested.