It occurs to me, that you don't really have to pick up the phone, all you need is to have a caller-id and then use line splitter and have the arduino monitor the line. It wouldn't answer the phone, but it would know when it is being called. You could presumably program it to only do the switch for known numbers. I did a google search for 'caller id monitor arduino' and this is the first link that pops up: http://blog.makezine.com/2008/03/03/caller-id-decoder/
As they say in the comments section, using a modem with the AT+VCID=1 command string might be simpler. You can find USB modems fairly cheaply, though you might need a USB shield on the Arduino to interface with it (or possibly a USB to serial converter). If you search around, you can find the older serial modems and use a 9/25 pin breakout to isolate the RX/TX/etc. wires. If you've been on the network for awhile, you may even have one in your junk drawer, or check places like goodwill, etc. Alternatively, many laptops have a modem port, and you could use that and then send a signal to the arduino to open the door.
Obviously, you might not want the door opened anytime a random sales droid calls you to try and sell aluminum siding, but if you added a PIR sensor located by the garage door, you could open the door if the Arduino senses motion in the driveway within n seconds of the call.