DTMF-Box: Fernwartung per Telefon
Hallo,
ich habe mir eine nette Anwendung für die DTMF-Box gebastelt.
Per Telefon, kann man auf der Fritz!Box verschiedenen Funktionen auslösen, wie den eigenen PC zuhause hochfahren, DSL-Verbindung auf- und abbauen, die Fritz!Box neu booten. Theoretisch wären auch noch andere Dinge realsierbar, die man über die Fritz!Box per Telefonanruf tätigen kann.
Vorraussetzungen für das folgende Projekt:
- Kenntnisse in der Shellprogrammierung
- sicherer Umgang mit dem "vi" bzw. "nvi"
- Kenntnisse um die debug.cfg der Fritz!box
- Softwarepaket der DTMF-Box von "bodega"
- Fritz!Box 7170 mit Firmware 29.04.29 (die läuft bei mir)
Nun zur Funktionsbeschreibung:
Ich verwende für mein Projekt die DTMF-Box von "bodega" und eine MSN meines ISDN-Anschlusses, die speziell für die DTMF-Box verwendet wird.
Man kann die DTMF-Box von einer beliebigen Rufnummer aus anwählen.
Nachdem von der Box eine kurze Begrüßung ausgegeben wird, fordert sie anschließend zu PIN-Eingabe auf.
Für die Eingabe der richtigen PIN hat man ca. eine halbe Minute Zeit, bevor die Verbindung durch die DTMF-Box wieder getrennt wird. Hat man eine falsche PIN eingegeben, wird man von der Box darauf hingewiesen, dass die PIN falsch ist.
Wird jedoch die richtige Box-Betreiber-PIN eingegeben, wird von der Box ein Menütext gesprochen, so dass man nun weis mit welchen Tastenkombinationen (Zifferncode) man welche Funktionen auf der Box auslösen kann.
Bei einer falschen Tastenkombination wird man wieder von der Box darauf hingewiesen, dass dieser Funktionscode nicht unterstützt wird.
Bei richtigem Funktionscode (Bestätigung mit #) wird nun durch die DTMF-Box die gewünschte Funktion ausgelöst.
Das ganze Paket habe ich auf einem USB-Stick, der an der Fritz!Box betrieben wird, abgelegt.
Und zwar im Ordner "fritz!box", wo sich generell meine Softwareerweiterungen befinden und dort in Unterordner "dtmfbox".
Gestartet wird die DTMF-Box durch ein paar Zeilen, die der "debug.cfg" hinzugefügt werden oder über einen eigenen Bootscript, der sich ebenfalls auf dem USB-Stick befindet.
Ich habe im ShellScript (dtmfboxscript) viele Kommentare eingebaut, die die Funktionalität nochmals näher erläutern.
Hier ein Beispiel mit den betreffende Zeilen, die die DTMF-Box starten.
Code:
#
#
# Die Dateien fuer die Softwareerweiterungen befinden sich auf dem
# USB-Stick im Ordner "fritz!box".
# Die Dateien der DTMF-Box befindet sich im Unterordner "$USBSTICK/dtmfbox".
# XXX muss je nach USB-Stick angepasst werden.
# Bitte aendern!
USBSTICK="/var/media/ftp/XXX/fritz!box"
# dtmfbox starten
# YYYYYYYY ist die MSN, die fuer die DTMF-Box verwendet wird (ohne Vorwahl).
# Bitte aendern!
$USBSTICK/dtmfbox/dtmfbox 1 YYYYYYYY -listen script -daemonize -workdir "$USBSTICK/dtmfbox" -script "$USBSTICK/dtmfbox/dtmfboxscript" -delimiter "#"
#
#
Über den nachfolgenden Schellscript "dtmfboxscript" wird die Fernwartung realisiert.
Code:
#!/bin/sh
#####################################################################################################################
###
### ./dtmfboxscript
###
### Die DTMF-Box laueft hier auf der Fritz!Box 7170 (zur Zeit unter Firmware 29.04.29).
### Es wird ein ISDN-Anschluss verwendet. Fuer die DTMF-Box wurde eine eigene MSN bereitgestellt.
### Ich weis nicht, ob dieses Script bzw. die DTMF-Box unter anderen Fritz!Box-Versionen zufriedenstellend laeuft.
### Fuer Analoganschluesse muesste das Script modifiziert werden.
###
### Debug-Option:
### Debug-Ausgaben (DEBUG=TRUE) nur bei manuellem Start der DTMF-Box (ueber eigenen Script: start_dtmfbox)
### setzen, sonst wuerde das Script nicht mehr funktionieren.
### Die Debug-Ausgaben erfolgen auf der Terminal-Session, von wo aus die DTMF-Box gestartet wurde.
###
######################################################################################################################
### diverse Variablen setzen
DEBUG=FALSE
# MAC-Adressen der zu weckenden PC im Format XX:XX:XX:XX:XX:XX (XX = 2 Bytes im hex. Format)
# Nachfolgend sind statt XX die eigenen MAC-Adressen einzutragen
#
MAC_PC1=XX:XX:XX:XX:XX:XX
MAC_PC2=XX:XX:XX:XX:XX:XX
# SMN, die fuer die DTMF-Box verwendet wird (ohne Vorwahl, nur die Rufnummer)
# Nachfolgend ist statt YYYYYYYY die eigene MSN einzutragen
#
MSN=YYYYYYYY
# Das momentane Arbeitsverzeichnis (Pfad) dieses Scriptes
# auf dem USB-Stick, wird in die Variable $USBSTICK abgelegt.
# Z.B "/var/media/ftp/XXX/dtmfbox". XXX ist je nach USB-Stick-Typ unterschiedlich.
# Die naechsten paar Zeilen ermitteln diesen Pfad.
# Wenn der Script ueber den vollstaendigen Pfad aufgerufen wird
# dann wuerde auch genuegen
# USBSTICK=${0%/*}
#
USBSTICK=`cd ${0%/*} 2>/dev/null && pwd || echo ${0%/*}`
#
cd $USBSTICK
# Status-Variable fuer PIN setzen. Die Datei "pin" enthaelt den Status.
#
PIN=`cat $USBSTICK/pin`
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-Start: Ereignis: $1 | Anrufer: $2 | auf MSN: $3 | PIN: $PIN | USBSTICK: $USBSTICK"; fi
case "$1" in
CONNECT)
# --------------------------------------------------------------------
#
# Eingehender Anruf. DTMF-Box ruft dieses Script auf und uebergibt 3
# Parameter ($1 = CONNECT | $2 = Anrufer | $3 = MSN)
#
# --------------------------------------------------------------------
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT: CONNECT! Anruf von $2 an $3"; fi
if [ "$3" = "$MSN" ]; then
#Flag fuer PIN auf FALSE setzen, da PIN noch nicht eingegeben wurde
echo "FALSE" > $USBSTICK/pin
# Abheben und
# ===>>> Ansage Begruessung und Aufforderung zur PIN-Eingabe
$USBSTICK/dtmfbox -hook up -play "$USBSTICK/greeting.711"
# Script fuer Zeitbegrenzung der PIN-Eingabe generieren und
# anschliessend im Hintergrund starten.
echo "#!/bin/sh" > $USBSTICK/dtmfboxtimer
echo "" >> $USBSTICK/dtmfboxtimer
echo "#" >> $USBSTICK/dtmfboxtimer
echo "# ./dtmfboxtimer" >> $USBSTICK/dtmfboxtimer
echo "#" >> $USBSTICK/dtmfboxtimer
echo "" >> $USBSTICK/dtmfboxtimer
echo "USBSTICK=`cd ${0%/*} 2>/dev/null && pwd || echo ${0%/*}`" >> $USBSTICK/dtmfboxtimer
echo "" >> $USBSTICK/dtmfboxtimer
echo "#Prozess-ID von "dtmfboxtimer" in die Variable "dtmfboxtimer.pid" schreiben" >> $USBSTICK/dtmfboxtimer
echo "echo \$\$ > /var/run/dtmfboxtimer.pid" >> $USBSTICK/dtmfboxtimer
echo "" >> $USBSTICK/dtmfboxtimer
echo "# Nachfolgende wird ca. eine halbe Minute gewartet, bis Verbindung beendet wird," >> $USBSTICK/dtmfboxtimer
echo "# wenn das Script nicht durch Eingabe einer richtigen PIN gestoppt wird." >> $USBSTICK/dtmfboxtimer
echo "sleep 30" >> $USBSTICK/dtmfboxtimer
echo "" >> $USBSTICK/dtmfboxtimer
echo "### ===>>> Ansage, dass die Zeit abgelaufen ist" >> $USBSTICK/dtmfboxtimer
echo "\$USBSTICK/dtmfbox -play \"\$USBSTICK/timeout.711\"" >> $USBSTICK/dtmfboxtimer
echo "" >> $USBSTICK/dtmfboxtimer
echo "sleep 6" >> $USBSTICK/dtmfboxtimer
echo "" >> $USBSTICK/dtmfboxtimer
echo "# DTMF-Box beendet die Telefon-Verbindung" >> $USBSTICK/dtmfboxtimer
echo "\$USBSTICK/dtmfbox -hook down" >> $USBSTICK/dtmfboxtimer
echo "" >> $USBSTICK/dtmfboxtimer
echo "sleep 1" >> $USBSTICK/dtmfboxtimer
echo "" >> $USBSTICK/dtmfboxtimer
echo "rm -f /var/run/dtmfboxtimer.pid" >> $USBSTICK/dtmfboxtimer
# nachdem das Timer-Script erzeugt wurde, wird es nun gestartet
$USBSTICK/dtmfboxtimer&
fi
;;
DISCONNECT)
# --------------------------------------------------------------------
#
# Anruf beendet/aufgelegt
#
# --------------------------------------------------------------------
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT: DISCONNECT!"; fi
#Flag fuer PIN auf FALSE zurücksetzen, da Verbindung beendet wurde.
echo "FALSE" > $USBSTICK/pin
# dtmfboxtimer beenden, falls er noch laeuft.
if [ -f /var/run/dtmfboxtimer.pid ]; then
DTMFBOXTIMER_PID=`cat /var/run/dtmfboxtimer.pid`
kill $DTMFBOXTIMER_PID
# PID-Datei loeschen
rm -f /var/run/dtmfboxtimer.pid
fi
;;
5678 | 8765)
# --------------------------------------------------------------------
#
# DTMF: - PIN (5678 = PIN , 8765 = 2. Vorfuehr-PIN)
#
# --------------------------------------------------------------------
if [ "$PIN" = "FALSE" ]; then
#Flag fuer PIN auf TRUE setzen, da PIN richtig eingegeben wurde.
PIN="TRUE"
echo $PIN > $USBSTICK/pin
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT: PIN wurde eingegeben... : = $PIN"; fi
# ===>>> Ansage fuer Menue ausgeben
$USBSTICK/dtmfbox -play "$USBSTICK/menu.711"
# dtmfboxtimer beenden, falls er noch laeuft.
if [ -f /var/run/dtmfboxtimer.pid ]; then
DTMFBOXTIMER_PID=`cat /var/run/dtmfboxtimer.pid`
kill $DTMFBOXTIMER_PID
# PID-Datei loeschen
rm -f /var/run/dtmfboxtimer.pid
fi
# Nachfolgend "exit 0" zum Beenden des dtmfboxscript.
# Da PIN=TRUE gesetzt ist, wuerde sonst im folgenden case-Konstrukt der "*"-Case durchlaufen.
exit 0
else
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT: Auswahl wird nicht unterstuetzt..."; fi
# ===>>> Ansage das falsche Option gewaehlt wurde
$USBSTICK/dtmfbox -play "$USBSTICK/wrongoption.711"
fi
;;
*)
# ---------------------------------------------------------------------
#
# DTMF: * - Falsche PIN (restlicher Zifferncodes)
#
# ---------------------------------------------------------------------
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-**1: $1 PIN = $PIN"; fi
if [ "$PIN" = "FALSE" ]; then
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-**: Falsche PIN eingegeben..."; fi
# ===>>> Ansage das falsche PIN gewaehlt wurde
$USBSTICK/dtmfbox -play "$USBSTICK/wrongpin.711"
fi
;;
esac
##########################################################################################
### Folgende Optionen stehen nur zur Verfuegung, wenn die richtige Pin eingegeben wurde. #
##########################################################################################
if [ "$PIN" = "TRUE" ]; then
case "$1" in
##########################################################################
### Nur fuer die Entwicklungsphase gedacht, zum Aufnehmen der Ansagen #
##########################################################################
11)
# --------------------------------------------------------------------
#
# DTMF: 11 - Aufnahme starten (record.711)
#
# --------------------------------------------------------------------
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-11: $1 PIN = $PIN"; fi
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-11: Record to file (record.711)..."; fi
$USBSTICK/dtmfbox -record "$USBSTICK/record.711"
;;
12)
# --------------------------------------------------------------------
#
# DTMF: 12 - Aufname abspielen
#
# --------------------------------------------------------------------
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-12: $1 PIN = $PIN"; fi
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-12: Aufnahme abspielen (record.711)..."; fi
$USBSTICK/dtmfbox -play "$USBSTICK/record.711"
;;
13)
# --------------------------------------------------------------------
#
# DTMF: 13 - Aufnahme loeschen
#
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-13: $1 PIN = $PIN"; fi
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-13: Aufnahme (record.711) wird geloescht..."; fi
if [ -f "$USBSTICK"/record.711 ]; then
rm -f $USBSTICK/record.711
fi
$USBSTICK/dtmfbox -play "$USBSTICK/delrecord.711"
;;
##########################################################################
### Nur fuer die Entwicklungsphase gedacht, fuer Experimente #
##########################################################################
51)
# --------------------------------------------------------------------
#
# DTMF: 51 - Experimente
#
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-51: $1 PIN = $PIN"; fi
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-51: Experiment 1..."; fi
#
#
;;
##########################################################################
### Hier beginnen die eigentlichen Auswahloptionen der DTMF-Box #
##########################################################################
21)
# --------------------------------------------------------------------
#
# DTMF: 21 - Rechner 1 WOL
#
# --------------------------------------------------------------------
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-21: $1 PIN = $PIN"; fi
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-21: Rechner 1 WOL..."; fi
# DSL-Verbindung aufbauen
/sbin/dsld -i -n
# Rechner ueber WOL wecken
# Variante 1: bei aelterer Firmware als 29.04.29 wird "ether-wake" einer externen,
# vom Befehlssatz her, umfangreicheren Busybox verwendet.
# Die Befehle der Busybox die sich auf dem USB-Stick befindet, sind hier nach /var/tmp verlinkt.
#/var/tmp/ether-wake -i eth0 $MAC_PC1
# Variante 2: "ether-wake" ist bei Firmware 29.04.29 im Busybox-binary der Fritz!Box enthalten
ether-wake -i eth0 $MAC_PC1
# ===>>> Ansage, dass PC1 hochgefahren wurde
$USBSTICK/dtmfbox -play "$USBSTICK/startpc1.711"
;;
22)
# --------------------------------------------------------------------
#
# DTMF: 22 - Rechner 2 WOL
#
# --------------------------------------------------------------------
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-22: $1 PIN = $PIN"; fi
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-22: Rechner 2 WOL..."; fi
# DSL-Verbindung aufbauen
/sbin/dsld -i -n
# Rechner ueber WOL wecken
# Variante 1: bei aelterer Firmware als 29.04.29 wird "ether-wake" einer externen,
# vom Befehlssatz her, umfangreicheren Busybox verwendet.
# Die Befehle der Busybox die sich auf dem USB-Stick befindet, sind hier nach /var/tmp verlinkt.
#/var/tmp/ether-wake -i eth0 $MAC_PC2
# Variante 2: "ether-wake" ist bei Firmware 29.04.29 im Busybox-binary der Fritz!Box enthalten
ether-wake -i eth0 $MAC_PC2
# ===>>> Ansage, dass der PC2 hochgefahren wurde
$USBSTICK/dtmfbox -play "$USBSTICK/startpc2.711"
;;
31)
# --------------------------------------------------------------------
#
# DTMF: 31 - DSL-Verbindung aufbauen
#
# --------------------------------------------------------------------
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-31: $1 PIN = $PIN"; fi
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-31: DSL-Verbindung wird aufgebaut..."; fi
/sbin/dsld -i -n
# ===>>> Ansage, dass die DSL-Verbindung aufgebaut wurde
$USBSTICK/dtmfbox -play "$USBSTICK/dslstart.711"
;;
32)
# --------------------------------------------------------------------
#
# DTMF: 32 - DSL-Verbindung trennen
#
# --------------------------------------------------------------------
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-32: $1 PIN = $PIN"; fi
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-32: DSL-Verbindung wird getrennt..."; fi
/sbin/dsld -s
# ===>>> Ansage, dass die DSL-Verbindung abgebaut wurde
$USBSTICK/dtmfbox -play "$USBSTICK/dslstop.711"
;;
77)
# --------------------------------------------------------------------
#
# DTMF: 77 - Status abfragen (noch nicht implementiert!)
#
# --------------------------------------------------------------------
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-77: $1 PIN = $PIN"; fi
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-77: Status wird abgefragt..."; fi
#
# ===>>> Ansage das Status-Ausgabe der Fritz!Box noch nicht implementiert ist
# ...
# ...
# ...
$USBSTICK/dtmfbox -play "$USBSTICK/status.711"
#
;;
99)
# --------------------------------------------------------------------
#
# DTMF: 99 - Fritz!Box reboot
#
# --------------------------------------------------------------------
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-99: $1 PIN = $PIN"; fi
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-99: FritzBox! wird neu gebootet..."; fi
# Vor dem Reboot muss die "pin" noch auf "FALSE" gesetzt werden !
echo "FALSE" > $USBSTICK/pin
# ===>>> Ansage, dass die Fritz!Box gebootet wird
$USBSTICK/dtmfbox -play "$USBSTICK/reboot.711"
# Umweg ueber externen Bootscript, dass im Hintergrund aufgerufen wird,
# da der Sleep-Befehl an dieser Stelle nicht funktioniert.
# Eine Pause ist hier noetig, da sonst vor dem Booten die Ansage nicht mehr ausgegeben wird.
echo "#!/bin/sh" > $USBSTICK/reboot
echo "" >> $USBSTICK/reboot
echo "#" >> $USBSTICK/reboot
echo "# ./reboot" >> $USBSTICK/reboot
echo "#" >> $USBSTICK/reboot
echo "" >> $USBSTICK/reboot
echo "sleep 10" >> $USBSTICK/reboot
echo "reboot" >> $USBSTICK/reboot
# Nach dem das Script "reboot" erzeugt wurde, wird es nun gestartet
$USBSTICK/reboot&
;;
*)
# ---------------------------------------------------------------------
#
# DTMF: * - Auswahl wird nicht unterstuetzt (restliche Zifferncodes)
#
# ---------------------------------------------------------------------
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-*: $1 PIN = $PIN"; fi
if [ "$DEBUG" = "TRUE" ]; then echo "DTMFBOXSCRIPT-*: Auswahl wird nicht unterstuetzt..."; fi
# ===>>> Ansage, dass die falsche Option gewaehlt wurde
$USBSTICK/dtmfbox -play "$USBSTICK/wrongoption.711"
;;
esac
fi
sleep 1
3 geheime Menüpunkte (11# = Aufnahme, 12# = Ausgabe, 13# = löschen) ermöglichen eine Sprachaufnahme über Telefon.
Zum Beispiel für die Gestaltung des Menütextes bzw. der Ansagen, die die Box dann später ausgeben soll.
So sind später leicht Anpassungen des ausgegebenen Ansagetextes möglich.
Die Datei des aufgenommene Textes kann dann einfach umbenannt werden, so dass er vom "dtmfboxscript" verwendet werden kann.
Da am Anfang noch die Dateien mit den Ansagen fehlen, kann die mit der DTMF-Box-Software von "bodega" mitgelieferte beep.711 verwendet werden.
Bis man selber die Ansagetexte aufgenommen hat, kann man vorerst die "beep.711" zum Abspielen im Script verwenden.
Einfach vorher umbenennen.
Hier die Sound-Dateien die DTMF-Box verwendet.
Sie sind im Alaw-Format.
- greeting.711 : --> Begrüßungstext + Aufforderung zur PIN-Eingabe
- wrongpin.711: --> Ansage, dass die PIN falsch ist
- timeout.711: --> Ansage, dass die Zeit fuer die PIN-Eingabe um ist
- menu.711: --> Ansage des Funktionsmenüs
- wrongoption.711: --> Ansage, dass diese Option (Ziffernkombination) nicht unterstützt wird
- startpc1.711: --> Ansage, dass PC 1 gestartet wurde
- startpc2.711: --> Ansage, dass PC 2 gestartet wurde
- dslstart.711: --> Ansage, dass die DsL-verbindung aufgebaut wurde
- dslstop.711: --> Ansage, dass die DSL-verbindung abgebaut wurde
- reboot.711: --> Ansage, dass die Fritz!Box gebootet wird
- delrecord.711: --> Ansage, dass der aufgenommene text gelöscht wurde
- status.711: --> Ansage, dass hier künftig der Box-Satus ausgegeben wird
- beep.711: --> Datei mit Beep-Ton für den Anfang
- record.711: --> Eigene Aufnahme
Noch wichtige Sicherheits-Tips !!!
Eine Modifikation der Firmware kann die FRITZ!Box lahm legen und muss jeder selber verantworten !!!
Wie es um die Gewährleitungsansprüche steht, kann man sich denken.
Die Mod läuft auf meiner FRITZ!Box 7170 mit Firmware 29.04.29.
Ob die Mod mit anderen Boxen und anderer Firmware läuft, weis ich nicht.
Ein sicherer Umgang mit dem "vi" bzw. "nvi" und Grundkenntnisse von Linux sind Voraussetzung für die Modifikationen.
Zum Editieren der "debug.cfg" mit dem "nvi" sollte man eine 2. Telnet-Session oder ssh-Session öffnen.
Die 1. Session benützt die Fritz!Box für die Standardausgabe von Meldungen, diese würden dann beim Editieren stören.
Zum Thema "telnet", "ssh" und "debug.cfg" gibt es bereits andere Forenbeiträge.
Vorsicht beim Editieren der betreffenden Dateien !
Grunsätzlich habe auch ich die Dateien auf dem USB-Stick mit vi oder nvi bearbeiten. Wegen unterschiedlicher Zeichensätze,
habe ich die Dateien auf dem USB-Stick nicht mit einem Windows-Editor bearbeitet.
Nur als Hinweis, falls jemand auf die Idee käme, den USB-Stick zu ziehen und an einem Windows-PC anzustecken.
Sicher kann der aufgeführte Script noch verbessert werden, da ich kein Profi bin, was Shell-Scripte anbelangt.
Auf weitere Fragen zu meinem Beitrag kann ich leider nicht immer gleich antworten.
Bitte um Nachsicht und viel Spaß beim Moding !
---
Die Ansagen habe ich aus verständlichen Gründen nicht mitgeliefert. Die müsst ihr selber kreieren.
Nochmals schönen Dank an "bodega" ohne seien DTMF-Box wäre dieses interessante Projekt für die Fritz!Box nicht möglich gewesen.
Schöne Grüße
Joe3