Penguin
Blame: LinuxAnsweringMachine
EditPageHistoryDiffInfoLikePages
Annotated edit history of LinuxAnsweringMachine version 5, including all changes. View license author blame.
Rev Author # Line
2 JohnMcPherson 1 ! Introduction
1 JohnMcPherson 2 These notes briefly describe what I did to get my old pentium machine running [Debian] to answer my phone and record messages.
3
4 apt-get install mgetty mgetty-voice mgetty-pvftools
2 JohnMcPherson 5
6 I believe RedHat uses the name vgetty instead of mgetty-voice.
1 JohnMcPherson 7
3 JohnMcPherson 8 mgetty(8) means "modem getty(8)", and the pvftools allow you to play/record/convert audio into the specific modem audio formats.
1 JohnMcPherson 9
10 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".
2 JohnMcPherson 11
12 ! Audio Formats
4 WikiAdmin 13 A bit of background on the audio file formats. __.pvf__ is an [WLUG:Acronym] for __P__ortable __V__oice __F__ormat. It is an intermediate format used by mgetty-voice. You can convert (mono) __.wav__ (MS Wave) audio files using wavtopvf. You can then use pvftormd to convert from .pvf to the modem specific __.rmd__ format files. One caveat is that (at least for me) the audio needs to be mono and at 8000 Hz. So, I recorded a wave file of my answerphone message, and then converted it as follows:
2 JohnMcPherson 14
15 # convert to mono (one channel), 8000Hz
16 sox recording.wav -c 1 -r 8000 greeting.wav
17 # convert to pvf (32 bits per sample is default)
18 wavtopvf -16 greeting.wav > greeting.pvf
19 # convert to modem-specific rmd file
20 pvftormd US_Robotics 1 < greeting.pvf > greeting.rmd
21
22 You can use pvfspeed to change the sample rate if you don't have sox:
23 pvfspeed -s 8000 greeting.pvf | pvftormd US_Robotics 1 > greeting.rmd
24
25
26 ! Running Vgetty
27 The standard way to run vgetty is from init(1). Add to/modify /etc/inittab to have a line such as:
28 T0:23:respawn:/usr/sbin/vgetty ttyS0
29 for a modem on the first serial port, or
30 T1:23:respawn:/usr/sbin/vgetty ttyS1
31 for the second serial port.
32
33 ! Configuring Vgetty
34 The main configuration file in debian is /etc/mgetty/voice.conf
35 The file has lots of comments telling you what all the settings mean and do. The settings I found most useful:
36
37 program vgetty
38 # Default number of rings to wait before picking up the phone.
39 rings 7
40
41 # This means you can get vgetty to see if an incoming call is
42 # a telephone, and if not you can pass it to a fax program and/or
43 # modem program (such as mgetty :)
44 answer_mode voice:fax:data
45
46 # use my custom script instead of just the default, which is to
47 # play the greeting message, beep, and record
48 call_program custom_answer_script
49
50 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...
1 JohnMcPherson 51
52 To Be Continued....
5 SmittyJohn 53
54 ! Re: The LUGs automated google message (which is sweet)
55
56 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.
The following authors of this page have not agreed to the WlugWikiLicense. As such copyright to all content on this page is retained by the original authors.
  • SmittyJohn
The following authors of this page have agreed to the WlugWikiLicense.

PHP Warning

lib/plugin/WlugLicense.php (In template 'html'):99: Warning: Invalid argument supplied for foreach()

lib/plugin/WlugLicense.php (In template 'html'):111: Warning: in_array() [<a href='function.in-array'>function.in-array</a>]: Wrong datatype for second argument

lib/plugin/WlugLicense.php (In template 'html'):111: Warning: in_array() [<a href='function.in-array'>function.in-array</a>]: Wrong datatype for second argument