Use a voice modem as an answering machine?

Strange question: Is anyone using their FreeBSD machine as an answering machine, using a voice modem?

Here's why I'm asking. Our traditional landline phone connection at home has been a little unreliable (long story), including the phone company turning voice mail on and off. Which is really annoying, because we have a perfectly fine answering machine that we rely on. So I decided that for a few weeks, I should try to keep track of all incoming phone calls, just to make sure they actually get here. I remembered that I have an old USB modem sitting around, a Conexant model CX93010, completely generic. Plug it in, connect it to the phone, search the web on how to enable caller ID (it's trivial): Now I can see ring signals coming in, and I can see the caller ID. With half hour of programming, I can write a script that records this data, and then I can check whether phone calls are making it. Great.

But when reading about the modem, I discovered that it can do voice (and faxes too). In theory, it should be able to be programmed to output voice, and listen and record voice, so it could become an answering machine! Then I remembered that in the mid 90s, I tried that with an ancient Hayes modem (when Hayes was still a real brand, not a command set for modems), on a Linux machine, and it was too difficult then. A little bit of reading shows that in theory this should work: There is a package called "mgetty+sendfax", which should includes something called vgetty, which in theory should be configurable to become an answering machine. But all the documentation I found was at least 10 years old.

Does all this still work? Anyone use it? Do generic cheap USB modems have good enough analog interfaces to make this feasible? Are there any packages that automate tasks like storing voice mails in files, sending them out by mail (packaged into a convenient .mp3 or .wav file), retrieving then, blinking a red light when there is mail waiting? Or did all this get forgotten with other technology from the last century, such as card punches and correction tape for typewriters?


Why do you not use Asterisk instead? I think you would just need to buy a "FXO Adapter" which should not cost that much.

At least Asterisk have a lot of documentation and users around. :)
Interesting idea. I read about it, and FXO adapters can be bought new for about $50, and used ones must be all over. The nice advantage is that they have a sensible interface (ethernet), so I don't need to run USB cables right to the server. And as you said, Asterisk is heavily used, there are guides and examples around, while vgetty seems to be mostly an orphan.

What I've accomplished so far: Discovered that the cheap Conexant modem does not reliable get caller ID information. Found a super-cheap US-Robotics USB modem on Ebay, hooked it up. Wrote a little script that records all the incoming rings and caller ID, so if I get no phone calls in a day, or all phone calls end right after four rings, I know to suspect that the phone company has screwed up again. That is already accomplishing my main goal. If I have an hour tonight to play with scripts, I'll add some sanity checking, like sending e-mails when someone leaves a message on our answering machine, issuing a warning if there are no incoming calls within a long period, and checking for dial tone every 8 hours. That will verify that the hardware I have right now works, and is good enough to make sure our local phone company isn't screwing up.