These notes briefly describe what I did to get my old pentium machine running Debian to answer my phone and record messages.
apt-get install mgetty mgetty-voice mgetty-pvftools
I believe RedHat uses the name vgetty instead of mgetty-voice.
mgetty(8) means "modem getty(8)", and the pvftools allow you to play/record/convert audio into the specific modem audio formats.
I tried and failed to get it to work with a USRobotics Sportster 33 and a Dynalink modem, but got it working with a USRobotics "56k Voice Faxmodem".
sox recording.wav -c 1 -r 8000 greeting.wav
wavtopvf -16 greeting.wav > greeting.pvf
pvftormd US_Robotics 1 < greeting.pvf > greeting.rmd
for a modem on the first serial port, or
T1:23:respawn:/usr/sbin/vgetty ttyS1
for the second serial port.
The main configuration file in debian is /etc/mgetty/voice.conf
program vgetty
rings 7
answer_mode voice:fax:data
call_program custom_answer_script
The custom_answer_script is basically written in sh (script). Mine allows you to press a number based on who you want to leave a message for. And also allows you to press a button to stop the answerphone script, if it answers at the same time as you picking up the phone! The only thing I haven't worked out is how to stop the script if the caller hangs up... I end up with a short recording of the busy signal...
To Be Continued....
Although I have not installed anything yet, I wanted to add a post pointing others in the same direction I am moving in. I am attempting to find a telephone solution similar to Ovolabs Phlink http://www.ovolab.com/phlink/. Phlink is a very friendly, scriptable, telephone answering system. Unfortunently Phlink is Mac OS X only. However http://www.vocpsystem.com/ appears very similar, and will run on just about any *nix. I like the wiki, greetings from Tacoma, Washington and http://taclug.org.
One page links to LinuxAnsweringMachine:
lib/plugin/WlugLicense.php:99: Warning: Invalid argument supplied for foreach()
lib/plugin/WlugLicense.php:111: Warning: in_array() [<a href='function.in-array'>function.in-array</a>]: Wrong datatype for second argument