Home   Artikel   Archiv   Forum   Impressum  
Artikel vom 20.2.2001
Autor: Ronny Ziegler
Languages: en
Artikel bewerten:

Printer Druckversion
Helfen Sie mit!
 

Anrufbeantworter - Fernabfrage

Remote Access Ihr Server spinnt mal wieder rum, ist im Internet nicht erreichbar, oder soll einfach nur ausgestellt werden? Sie sind aber momentan ganz woanders und alles ist natürlich ganz dringend?
Dann rufen Sie ihren Server doch einfach mit dem Telefon an !

Mit dem PC telefonieren

Auf den ersten Blick klingt das sehr ungewöhnlich, aber es ist durchaus möglich. Sie können Ihren PC ohne größere Probleme anrufen und per Telefon fernsteuern.
Was hauptsächlich zur Fernabfrage eines Vbox-Anrufbeantworters gedacht ist, kann durchaus auch zum Ausführen von Befehlen zur Fernsteuerung eines Servers benutzt werden.

Sie benötigen hierfür eine bereits installierte ISDN-Karte und einen funktionsfähigen vbox-Anrufbeantworter (zur Installation von vbox siehe auch ISDN-Anrufbeantworter).
Von diesen Komponenten ausgehend erklären wir in diesem Artikel, wie eine Fernsteuerung ihres PCs zu installieren ist.

Software installieren

Da Ihr PC später auch mit Ihnen übers Telefon sprechen soll, um etwaige Statusnachrichten zu übermitteln, benötigen Sie eine Software zur Sprachsynthese. Für diese Zwecke eignet sich unter Linux das Programm rsynth, welches normalerweise bei den Distributionen nicht beigelegt ist (bei Debian findet man es in der Rubrik non-free).
Da die Linux-Version der Software auch im Internet sehr schwer zu finden ist, haben wir die Software auf unsere Seiten kopiert:
download rsynth_2.0.orig.tar.gz

Dieses Paket muß zunächst entpackt und installiert werden:

  >> tar zxvf rsynth_2.0.orig.tar.gz -C /tmp
  >> cd /tmp/rsynth-2.0.orig
  >> ./configure linux
  >> make
  
Sollte alles funktioniert haben, können Sie das Verzeichnis (als root) nach /usr/local/ kopieren:
  >> cp -a /tmp/rsynth-2.0.orig /usr/local
  
und das Programm say nach /usr/local/bin kopieren
  >> cp /tmp/rsynth-2.0.orig/say /usr/local/bin
  
Wenn Sie das Programm testen möchten, wird es wahrscheinlich nicht funktionieren, da es versucht das Device /dev/sbdsp anszusprechen, welches aber bei neueren Distributionen nicht mehr existiert. Das hindert aber nichts an einem Einsatz als intelligenter Anrufbeantworter, da hierfür keine Soundausgabe (nicht einmal eine Soundkarte im Rechner) benötigt wird.
Wenn Sie trotzdem das Sprachsynthese-Programm auf Ihrem Rechner ausführen wollen, genügt es, einen Link auf das dsp-Device zu setzen
  >> ln -s /dev/dsp /des/sbdsp
  

Im nächsten Schritt muß das Programm zum Auslesen der Wähltöne installiert werden. Dies geschieht recht einfach, nachdem man die neueste Version von raccess4vbox vom Server kopiert hat,
ftp://ftp.innominate.org/pub/pape/isdn4linux/vbox/
kann man mit der Installation beginnen:

  >> tar zxvf raccess4vbox-X.tar.gz -C /tmp/
  
Die Software besteht hauptsächlich nur aus einem TCL-Skript und einer Konfigurationsdatei. Beide müssen in das vbox-Spool-Verzeichnis (/var/spool/vbox/<user>/) des jeweiligen Users kopiert werden:
  >> cd /var/spool/vbox/<user>/
  >> cp /tmp/raccess4vbox-1.2b4/raccess.conf ./
  >> cp /tmp/raccess4vbox-1.2b4/raccess4vbox-1.2b4.tcl ./
  
das sonst benutzte Skript standard.tcl muß nun nur noch durch das neue Skript ersetzt werden,
  >> mv standard.tcl standard.tcl_orig
  >> ln -s raccess4vbox-1.2b4.tcl standard.tcl
  
und schon ist der neue Anrufbeantworter mit Fernabfrage prinzipiell einsatzbereit. Das größte Problem steht aber noch aus:

Die Konfigurationsdatei

Bisher verlief die Installation doch sehr einfach, warum soll's jetzt aufeinmal problematisch werden?
Die Antwort liegt in der Komplexität der Konfigurationsdatei.
Mit raccess4vbox läßt sich so gut wie alles Anstellen, von einer Info-Ansage, Anrufbeantworter mit Fernabfrage, Fernsteuerung des PCs und sogar ein Telefonspiel, bei dem sich der Hörer durch verschiedene Ebenen hindurcharbeiten muß.
Entsprechend umfangreich läßt sich darum auch die Konfiguration des Programms ändern.
Am ehesten erhält man aber einen Eindruck von der Funktionsweise der Konfigurationsdatei, wenn man sie sich einfach mal anschaut.

/var/spool/vbox/>user</raccess.conf
  ; ConfigFile for raccess4vbox-1.2b4 - should be placed in vboxspooldir/<user>/
  ; This Line is a Comment 
  ; Thu, 27 Apr 2000 17:06:06 +0200  <pape@innominate.de>
  
  [tuning]
  	logging         2       ; Logging Level (2 = DEBUG, 1 = INFO, 0=OFF)
  	log_file        raccess.log   ; placed in vbox-spooldir/<user>/
  	say_path        /usr/local/bin/say
  	say_flag        "-a -o - -q -x 2000 -f 8"
  				; that is, what I prefer. try out..
  	say_breath      ",,"
  	say_append      ",,,,"
  	temp_file       /tmp/vbox20-[pid].tmp
  	touch_path      /usr/bin/touch
  
  [start]
  	mode	answeringmachine
  ;	mode	"run_mode level1"
  
  [text]
  	repeat_rec	"staring new record"
  	err_getty_play	"an error occured while playing a message"
  	err_getty_rec	"an error accored while recording a message"
  	err_getty_wait	"an error occured while waiting"
  	err_no_act	"no action found for this sequenz"
  	err_run_extern	"extern program did not exit clean"
  	err_input_no_text	"no greeting text for input mode defined"
  
  [answeringmachine_action]
  	*1910#	raccess   "starting remote access mode" 
  ;	*321#	"run_mode level1" "now starting level 1"
  	*0#	skip		"skip"
  	*8#	repeat		"|/bin/ls /"
  ;	*123#	"run_extern /bin/ls /" "just a demo"
  ;       *79813946# "run_extern /usr/bin/sudo /sbin/reboot" "rebooting,,, better you hangup now"
  
  ;[answeringmachine_text]
  ;        <Event>                 <Text to be spoken>
  
  [raccess]
  	mode	"new"
  	messagedir	"messages"
  ;	callhandler     /usr/local/bin/scroll.on
  
  [raccess_action]  ; Actions while remote access mode
  	*1#	raccess_togglenew	"toggling flag"
  	*2#	run_mode_exit		"exit remote access mode"
  	*3#	"run_mode rcontrol"	"entering remote control mode"
  	*4#	raccess_first		"first message"
  	*5#	raccess_new-old		"changing mode"
  	*6#	raccess_last		"last message"
  	*7#	raccess_rewind		"rewaind"
  	*9#	raccess_forwind		"forwaind"
          *0#     skip            "skip"
          *8#     repeat          "repeat"
  
  [raccess_text]
  	no_msg	"quitting remote access mode"
  	last_msg	"repeating last"
  	noothermsg  	"0 $oth messages"
  	howmanymsg	"$no $mode messages"
  	err_togglenew	"toggling new flag failed"
  	err_toggleold	"toggling old flag failed"
  	msgmarked	"message marked $oth"
          messageheader   "$date, $hor Uhr, $min, $cid, $who"
  
  ;[level1]
  ;	greeting	"this is level 1, hello you"
  ;	wait	10
  
  ;[level1_action]
  ;	*5#	"return NOOP"	"You pressed the 5"
  ;	*1#	"run_mode level2"	"entering level 2"
  ;	TIMEOUT	"repeat"	"you did nothing, try again"
  ;	*2#	run_mode_exit	"exiting level 1"
  
  ;[level2]
  ;	greeting	"this is level 2, have you been in level 1?"
  ;	wait	4
  
  ;[level2_text]
  ;        input_greeting  "please type a number, starting with a star an ending with #"
  ;        input_wait      10
  
  ;[level2_action]
  ;	*3#	"return NOOP"	"You tipped on the 3"
  ;	*0#	"run_mode_exit"	"exiting level 2"
  ;	*000#	"input_run_extern /tmp/tester" "getting an input"
  
  ;[input_run_extern_action]
  ;	*2#	"run_mode_exit"		"exiting input run extern"
  ;	*8#	"repeat"		"repeating"
  ;	TIMEOUT	"repeat"		"you did nothing, try again"
  
  [rcontrol]
  	greeting	"remote control mode,,,, exit with 2"
  	wait	8
  
  [rcontrol_action]  ; Actions while remote control mode
  	*1#	rcontrol_recnewstdmsg	"rec new message"
  	*2#	raccess_exit		"exit"
  	*3#	"run_extern /usr/bin/vboxctrl -cp" "cre ating vbox stop"
  	*33#	"run_extern /usr/bin/vboxctrl -rp" "removing vbox stop"
  


Der erste Abschnitt [tuning] stellt einige Grundeinstellungen der Sprachausgabe und des Loggings ein.
Unter [start] wird eingestellt, mit welcher Funktion der Anrufbeantworter startet. Standardmäßig funktioniert raccess bei unserer Einstellung als Anrufbeantworter und erfüllt somit den selben Zweck, wie der zuvor installierte Anrufbeantworter.
Neu ist nun allerdings, daß man die Aufnahme einer Nachricht einfach unterbrechen kann, indem man den unter

  [answeringmachine_action]
  	*1910#	raccess   "starting remote access mode" 
  
angegebenen Zahlencode (zusammen mit dem Stern und der Raute) drücken kann, und der Anrufbeantworter in die Fernabfrage überwechselt.
Man hört daraufhin die von rsynth erzeugte Sprachausgabe und bekommt alle Nachrichten vorgelesen.
Die Steuerung der Fernabfrage erfolgt über die Tasten
          *1#	raccess_togglenew	"toggling flag"
  	*2#	run_mode_exit		"exit remote access mode"
  	*3#	"run_mode rcontrol"	"entering remote control mode"
  	*4#	raccess_first		"first message"
  	*5#	raccess_new-old		"changing mode"
  	*6#	raccess_last		"last message"
  	*7#	raccess_rewind		"rewaind"
  	*9#	raccess_forwind		"forwaind"
          *0#     skip            "skip"
          *8#     repeat          "repeat"
  
wobei man beim Drücken von Einzeltasten die Stern- und Rautetaste nicht zu drücken hat.

Will man zusätzlich noch mittels Telefon Befehle auf dem Rechner ausführen, so kann man unter [answeringmachine_action] noch eine weitere Zeile einfügen:

     *555#	"run_mode level1" "now starting level 1"
  
Drückt man nun während der Ansage die Tasten Stern-5-5-5-Raute kommt man automatisch in den level1, einer weiteren Unterrubrik an Funktionen, bei der nun eine erneute Funktionenbelegung der Tasten erfolgen kann.
Dafür kann man z.B. folgenden Eintrag in der Konfigurationsdatei benutzen
  [level1]
          greeting        "this is control level, hello you ,,,,, to redail press 1 ,,,,, \
                           to reboot press 2 ,,,,, to listen to messages press 6 6 6"
          wait    10
  
  [level1_action]
          *2#     "run_extern /usr/bin/sudo /sbin/reboot" "system reboots now you should hangup now"
          *1#     "run_extern /usr/bin/sudo /sbin/isdnctrl dial ippp0"  "system dials now"
          *666#   run_mode_exit   "exit remote access mode"
          TIMEOUT "repeat"        "you did nothing, try again"
  
  
Um eine verständliche Aussprache der einzelnen Wörter hinzubekommen, benötigt es schon etwas Geschick. Die korrekte englische Schreibweise garantiert nicht unbedingt korrekte Aussprache. Mit einem deutschen Text sollte man es erst gar nicht versuchen, da dieser vollkommen unverständlich bleibt.

Der Level1 ist nun folgendermaßen aufgebaut:
Mit der Taste 1 wird die Internetverbindung aufgebaut, mit der Taste 2 wird das System rebootet, mit der Tastenkombination Stern-6-6-6-Raute kommt man zurück zum Anrufbeantworter.
Sollte man zu lange warten, wird die Grußansage regelmäßig wiederholt.

Da einem beliebig viele Zahlenkombinationen und auch Level in der Konfigurationsdatei zur Verfügung stehen, sollten so gut wie alle Wünsche erfüllbar sein.
Was anscheinend jedoch nicht funktioniert, ist das ferngesteuerte Löschen von abgehörten Nachrichten.


Homepage:


Anmerkungen zu diesem Artikel


Bisher keine Kommentare


Eigene Anmerkung eintragen