Ein Anrufbeantworter
Ein paar Voraussetzungen gibt es allerdings:
ftp.franken.de/pub/isdn4linux/contributions/vbox-1.1.tgzMan setzt sich das ins Verzeichnis /usr/src und entpackt sie per "tar zxfv vbox-1.1.tgz". Im Verzeichnis
/usr/src/vboxsind jetzt die benötigten Dateien. Die darin enthaltene Dokumentation (auf Deutsch, mit einem WWW-Browser anschaubar!) ist empfehlenswert! Nach der Compilation ist auch ein TeX-Dokument lesbar.
Ebenfalls angepaßt werden muß die Datei src/settings.h:
src/settings.h (Ausschnitt) ... #define DEFAULT_RINGS 24 /* hebt ca. nach dem 4. Klingeln ab */ ... #define DEFAULT_RECORD_TIME 120 /* maximal 2 min Aufnahme zulassen */ ... #define VOICE_COMPRESSION_MODE 6 /* <--- Hier MUSS "6" stehen!!! */ ... #define VBOXPLAYCMD "/usr/local/sbin/vboxplay" ...Zum VOICE_COMPRESSION_MODE: 2, 3 und 4 (ADPCM-2, ADPCM-3 und ADPCM-4) sind komprimierte Modi, zum Abspielen werden die pvftools von mgetty-0.99 benötigt. 5 entspricht einer Aufzeichnung im aLAW-Format, 6 einer im uLAW-Format. Trotz gegenteiliger Angabe in der Anleitung kann man "aLAW"-Dateien nicht mit den mitgelieferten Tools (rmd*) abspielen - nur uLAW kann verarbeitet werden!
Sollte man ein anderes Format angegeben haben, kann man sich über einen kleinen Trick die Nachrichten trotzdem abspielen: vboxgetty kennt nämlich alle Formate. Man kopiere die abzuspielende Datei um in das message-Verzeichnis (siehe unten) unter dem Namen standard.msg. Die wird dann als Ansage abgespielt, wenn man sich selbst anruft (vielleicht nicht ganz billig, aber ein schneller Weg... :-)In meinem Falle mußte auch noch ein kleiner Patch angewendet werden, damit die Darstellung unter X brauchbar wurde (ohne Patch waren im vbox-Terminal nur wirre Zeichen zu sehen). Für den Hinweis, wo der Patch zu setzen ist, danke ich Roland Rosenfeld <roland@spinnaker.rhein.de>.Die pvftools sind im Paket mgetty von Gert Doering enthalten. Siehe dazu die Fax-Seiten in dieser Anleitungssammlung.
/usr/src/vbox/vbox.c.patch --- vbox.c Sat Sep 28 11:57:58 1996 +++ vbox.c.orig Sat Sep 28 11:57:46 1996 @@ -1953,9 +1953,9 @@ static chtype Color(int Pair) { - if (!Mono) return(COLOR_PAIR(Pair) | A_ALTCHARSET); + if (!Mono) return(COLOR_PAIR(Pair)); - return(COLOR_PAIR(0) | A_ALTCHARSET); + return(COLOR_PAIR(0)); } /*************************************************************************Diesen Patch fügt man ein mit
root:# patch -p0 src/vbox.c <vbox.c.patch root:# _Nun kann es ans Compilieren gehen. Man lasse sich zeigen, was getan werden muß:
root:# make (eine lange Liste erscheint) root:# _Im Ganzen ist das folgende zu tun:
root:# make vbox ... root:# make vbox-install ... root:# make vbox-spooldir ... root:# _Sind die Programme nun installiert, geht es daran, das Spool-Verzeichnis aufzubereiten. Es ist wichtig zu wissen, daß für jeden User, der später vbox aufrufen will, ein separates Unterverzeichnis angelegt werden muß:
root:# mkdir /var/spool/vbox/user root:# mkdir /var/spool/vbox/user/messages root:# mkdir /var/spool/vbox/user/incoming root:# _Jetzt werden einige Scripte und Tools an ihren Platz kopiert und etwas Feinschliff daran vorgenommen:
root:# mkdir /usr/local/lib/vbox root:# cp /usr/src/vbox/scripts/vbox* /usr/local/sbin root:# cp /usr/src/vbox/bin/rmd* /usr/local/bin root:# chown root.root -R /usr/local/sbin/vbox* root:# chmod 755 /usr/local/sbin/vbox* root:# chown root.root -R /usr/local/bin/rmd* root:# chmod 755 /usr/local/bin/rmd* root:# _Falls sich die Verzeichnisse /usr/local/bin und /usr/local/sbin nicht im Pfad befinden, muß man /etc/profile editieren und diese Pfade in die PATH-Variable nachtragen.
Schließlich muß jeder User in seinem Heimatverzeichnis die Datei ~/.vboxrc installiert haben. Man kopiert sich am besten die mitgelieferte Beispieldatei an Ort und Stelle:
root:# cp /usr/src/vbox/samples/sample-vboxrc /home/<user>/.vboxrc root:# chown <user>.users /home/<user>/.vboxrc root:# _Diese Datei muß man noch editieren und den Inhalt an seine Bedürfnisse anpassen. Rufnummern mit Vorwahl ohne führende Null. Beispiel:
/home/<user>/.vboxrc [CALLERID] 81785005 - K. Gentner 817890031 - Familie Hailer 817890032 - Bernhard Hailer * - *** Unbekannt *** [DEBUG] FATAL + ERRORS + WARNINGS + INFOS + DEBUG + JUNK [RINGS] 0-8 MO,DI,MI,DO,FR,SA,SO 5 * * 30 [STANDARD] * * standard.msg 120Für den Anfang werden die mitgelieferten Ansagetexte in unser messages-Verzeichnis kopiert:
root:# cp samples/messages/* /var/spool/vbox/user/messages root:# _Nun können wir vboxgetty starten (unter EAZ die EAZ/MSN eintragen, unter der Anrufe entgegengenommen werden sollen):
root:# /usr/local/sbin/vboxgetty -d /dev/ttyI1 -i "ATZ&EEAZ" -u user root:# _
Dabei kann man gleich seinen neuen Ansagetext aufsprechen (wer will schon die Telefonnummer des Autors von vbox in Würzburg in der Ansage behalten :-). Wenn's geklappt hat, müßte sich in /var/spool/vbox/incoming eine neue Datei finden. Mit
root:# cat /var/spool/vbox/incoming/Zeit-Rufnummer > /dev/audio root:# _sollte man die sich dann schon relativ gut anhören können (falls VOICE_COMPRESSION_MODE nicht auf 6 gestellt wurde, ist natürlich nichts zu verstehen, zum Abspielen werden dann die pvftools im mgetty-0.99-Paket vom Juni benötigt).
Als erstes rufen wir vbox auf - das ist der "eigentliche" Anrufbeantworter:
root:# vbox -u user [Der vbox-Screen kommt im "View Mode"]Die Angabe -u user ist nur unter root nötig/möglich - User user kann direkt
user:# vbox [Der vbox-Screen erscheint]eingeben. Dann müßte unser Testanruf angezeigt werden.
Wer kein "auplay" auf seinem System hat, legt sich einfach ein Script an, um nicht mehr den cat direkt verwenden zu müssen (auplay wird von vboxplay aufgerufen).
/usr/local/bin/auplay #!/bin/sh cat $1 > /dev/audioNachdem man mit chmod 755 /usr/local/bin/auplay das Script ausführbar gemacht hat, klappt das Abspielen auch so:
root:# auplay /var/spool/vbox/incoming/Zeit-Rufnummer root:# _Wenn das klappt, kann man es auch in vbox versuchen: dazu auf dem aufgelisteten Anruf einfach RETURN drücken - und schon sollte die Nachricht zu hören sein.
Wenn man zufrieden ist, kann man die Aufnahme zum Standard-Ansagetext machen:
root:# cp /var/spool/vbox/incoming/Zeit-Rufnummer /var/spool/vbox/messages/standard.msg root:# _Und alles ist in Butter...
/etc/inittab ... # getty-programs for the normal runlevels ... I1:23:respawn:/usr/local/sbin/vboxgetty -d /dev/ttyI1 -i "ATZ&EEAZ" -u user ...Zu beachten ist, daß die Runlevel korrekt sein müssen (in der Regel "23"). Nach einem Systemrestart läuft unsere Voicebox!
Ein paar Zeichen am Beginn einer Sounddatei sagen etwas über ihre Verpackung aus. Mit vbox kommt ein Programm, mit dem man einen solchen Header herstellen kann. Dieses Programm benutzen wir nun, um einen solchen Header herzustellen (uLAW-Kompression):
root:# rmdcatheader -u >/etc/ulaw.header root:# _Ein Miniscript macht uns aus au-Dateien uLAW-Dateien:
/usr/local/sbin/au2ulaw #!/bin/sh cat /etc/ulaw.header $1.au > $1.msgDamit ist das Aufnehmen des Ansagetextes ganz einfach:
root:# cd /var/spool/vbox/user/messages root:# cat </dev/audio >standard.au (Nun Ansagetext aufnehmen, danach Strg-C drücken) root:# au2ulaw standard root:# _Fertig! Entsprechend kann man noch eine individuelle beep.msg herstellen, in der der "Piep!" nach dem Ansagetext gespeichert ist. Ferner gibt es noch die Datei timeout.msg", in der das Ende der Aufzeichnungszeit verkündet wird, und die Datei panic.msg", in der bekanntgegeben wird, daß der Plattenplatz knapp wird.
vboxnotify schickt eine simple Email als Nachricht, wenn ein Anruf hereinkommt, vboxmime schickt gleich die ganze Voicedatei selbst base64-kodiert weiter.
Wer's unter X mag, der kann noch mit mam und xvboxled experimentieren.
mam (Motif Answering Machine) von Chris Benndorf benötigt zum Übersetzen allerdings Motif, so daß man sich das nicht so ohne weiteres basteln kann. Es gibt allerdings unter ftp.franken.de/pub/isdn4linux/contributions/ eine statisch gelinkte Version zum Downloaden. Sie ist optisch ansprechender als das vt100-vbox-Programm, stürzt aber gern mal ab, wenn es irgend etwas nicht findet. Apropos: die statisch gelinkte Version erwartet die vboxgetty-Dateien in den Originalverzeichnissen. Ich habe diese für die Anleitung etwas verändert, um die logische Linux-Verzeichnisstruktur besser zu unterstützen. Eventuell sind ein paar Softlinks von den erwarteten in die tatsächlichen Verzeichnisse zu legen.
Auch xvboxled von Jan Schoenepauck und Joachim Gassen, ein Programm, das ähnlich wie xbiff die Ankunft neuer Anrufe anzeigt und vbox starten kann, muß man sich erst noch übersetzen. Dazu begibt man sich ins Verzeichnis /usr/src/vbox/xvboxled, kopiert example-config.h in config.h und editiert letzteres. Darin ist nur ein Pfad anzupassen:
/usr/src/vbox/tools/xvboxled (Ausschnitt) #define INCOMING_DIR "/var/spool/vbox/user/incoming"Das Makefile ist in der Regel bereits so wie es ist brauchbar (vielleicht will man die Installationspfade verändern). Das Programm wird nun übersetzt und installiert:
root:# make ... root:# make install ... root:# _Programm nun aufrufen und benutzen! Bei mir hat es seinen Platz neben xbiff und isdnmon in einem "Schaltkasten" eingenommen. Kommt echt schön!