Third option. I have a VOIP phone using the Lingo service (http://www.lingo.com), which is quite cheap.
It does have the downside of Not Working when the power is out for too long, though my battery backup keeps it going for a short time.
(Edit: This template is profoundly arointed. It insists on wrapping anything inside an anchor with LJ spamwrap. It needs to stop doing that; if I give an absolute address then it absolutely isn't LJ-relative. And when I put it in plaintext and it gets an actual working http wrapper, it doesn't let me open it in a separate tab/window. Idiot design.)