- Mitglied seit
- 11 Aug 2005
- Beiträge
- 135
- Punkte für Reaktionen
- 0
- Punkte
- 0
Hallo Zusammen,
ich habe auf eine Webseite ein Wähl-Skript für Linux gefunden.
Mit dessen hilfe werden Telefonnummern an die Fritzbox weitergegeben und es klingelt am gweünschten standart Telefon.
Das Skript ist für eine Fritz!box 7170 ausgelegt, auf der eine etwas ältere Firmware lief.
Da ich von der Skripterstellung keine Ahnung habe die Frage an Euch, was in dem Skript geändert werden muss, damit es mit einer Fritz!box 7270 mit neuester Firmware läuft.
Vielleicht kann man daraus ggf. auch ein Addon für den FireFox machen, da Fritz!Dial ja nicht mehr geht.
Freue mich auf eine Antwort gecks
Holger
PS: Wenn es funktioniert, oder funktionieren kann, hat vielleicht noch jemand eine Idee wie es in ein Kontextmenü verfrachtet werden kann.
ich habe auf eine Webseite ein Wähl-Skript für Linux gefunden.
Mit dessen hilfe werden Telefonnummern an die Fritzbox weitergegeben und es klingelt am gweünschten standart Telefon.
Das Skript ist für eine Fritz!box 7170 ausgelegt, auf der eine etwas ältere Firmware lief.
Da ich von der Skripterstellung keine Ahnung habe die Frage an Euch, was in dem Skript geändert werden muss, damit es mit einer Fritz!box 7270 mit neuester Firmware läuft.
Vielleicht kann man daraus ggf. auch ein Addon für den FireFox machen, da Fritz!Dial ja nicht mehr geht.
Freue mich auf eine Antwort gecks
Holger
Code:
#!/bin/bash
# Martin
# VERSION=1.2.3
# Erfordert folgende Pakete (Debian-Paketnamen)
# - libwww-perl für das Kommando "lwp-request"
# - html2text zur Formatierung der HTML-Ausgaben der Fritz-Box
# - mpg123 oder ogg123, wenn ein Signalton ausgegeben werden soll
# - xclip zur Verwendung der Option "-c" (Wählen der Nummer aus Clipboard)
#
#
# Uebergebene Nummer:
ARG=${1:-"-h"}
##################################################
# Konfiguration
##################################################
#
# Konfigurationspasswort der FritzBox
password="123456"
# Standard-Nebenstelle, die verwendet wird, wenn nicht beim Aufruf übergeben
dialport=${2:-"Büro"}
# Anzeigedauer der Infobox in Sekunden
DIALOG_TIMEOUT=0
# Ausgaben werden zur Fehlerdiagnose in diese Datei geschrieben:
LOGFILE=/tmp/$(basename "$0" .sh).log
# Klang abspielen, wenn der Hörer abgenommen werden muss; ("y" für Yes)
PLAY_SOUND=y
SOUND_FILE="/home/roger/.bin/KDE-Im-Sms.ogg"
# Bei Übergabe von "-c" die Nummer aus der Zwischenablage lesen:
USE_CLIP=1
##################################################
# Usage-Hinweis
##################################################
if [ "$ARG" = "-h" -o "$ARG" = "-?" -o "$ARG" = "--help" ]; then
echo "Usage: $(basename ${0}) [ -c | <Nummer> ] [<Anschluss-Id>]"
exit 0
else
# Ungeeignete Zeichen aus der Nummer entfernen:
dialnumber=$(echo ${1} | sed -e '
s/+/00/
s/[^0-9]//g
')
fi
##################################################
# Nummernbereinigung
##################################################
clean_number() {
# Ungeeignete Zeichen aus der übergebenen Nummer entfernen:
#echo "clean_number: $@" >&2
CLEANNUM=$(echo $@ | sed -e '
s/+/00/
s/[^0-9]//g
')
echo ${CLEANNUM}
#echo "clean_number: ${CLEANNUM}" >&2
}
##################################################
# Klang-Abspiel-Funktion
##################################################
play_sound() {
if ! test -r "$SOUND_FILE"; then
echo "Klangdatei $SOUND_FILE nicht lesbar!" >&2
return 1
fi
SUFFIX=${SOUND_FILE: -3:3}
case $SUFFIX in
mp3|MP3) PLAYER=mpg123;;
ogg|OGG) PLAYER=ogg123;;
*) echo "Das Format ($SUFFIX) kann ich nicht!" >&2;
return 2;;
esac
which $PLAYER 1>/dev/null || echo "Das Programm \"$PLAYER\" fehlt. Klang kann nicht abgespielt werden." >&2
echo "Klang abspielen: $PLAYER $SOUND_FILE"
$PLAYER "$SOUND_FILE"
}
##################################################
# Test der erforderlichen Programme
##################################################
which Xdialog 1>/dev/null || {
echo "Das Programm \"Xdialog\" fehlt. Installieren Sie das Paket \"xdialog\"." >&2
exit 1
}
which lwp-request 1>/dev/null || {
echo "Das Programm \"lwp-request\" fehlt. Installieren Sie das Paket \"libwww-perl\"." >&2
exit 1
}
which html2text 1>/dev/null || {
echo "Das Programm \"html2text\" fehlt. Installieren Sie das Paket \"html2text\"." >&2
exit 1
}
which xclip 1>/dev/null || {
echo "Das Programm \"xclip\" fehlt, keine Verarbeitung der Zwischenablage. Installieren Sie das Paket \"xclip\"." >&2
USE_CLIP=0
}
##################################################
# Rufnummer festlegen/ermitteln
##################################################
if test "$ARG" = "-c" -a "$USE_CLIP" -eq 1 ; then
NUM=$(xclip -o)
else
NUM=${ARG}
fi
#echo "Rufnummer (ungesäubert): $NUM"
dialnumber=$(clean_number ${NUM})
#echo "Rufnummer (gesäubert): $dialnumber"
#exit
##################################################
# Konfiguration der Kommandos
##################################################
#
# lwp-request wird auf folgende Weise verwendet:
cmd_lwp="lwp-request -s -m POST http://fritz.box/cgi-bin/webcm"
# folgende Angaben soll lwp-request zum Anmelden bei der Fritzbox verarbeiten;
# die Zeichenfolge funktioniert nicht, wenn nicht ein Einstellungsparameter
# (hier "telcfg:settings/UseClickToDial ..." folgt. Warum, weiß ich nicht.
cmd_login="getpage=../html/de/menus/menu2.html\
&var:lang=de\
&login:command/password=${password}\
&telcfg:settings/UseClickToDial=1\
"
# folgende Angaben soll lwp-request für die Telefonwahl verwenden:
cmd_telcfg="getpage=../html/de/menus/menu2.html\
&var:lang=de\
&telcfg:settings/UseClickToDial=1\
&telcfg:command/Dial=${dialnumber}\
&telcfg:settings/DialPort=${dialport}"
##################################################
# Verarbeitung
##################################################
echo "Aufruf-Parameter: $@" > $LOGFILE
#echo -e "$cmd_login" | $cmd_lwp | html2text - >> $LOGFILE
#echo -e "$cmd_telcfg" | $cmd_lwp | html2text - >> $LOGFILE
#exit
{
FEHLER=0
echo "XXX Anmelden an FritzBox ... XXX"
echo "Anmelden ... " >> $LOGFILE
echo -e "$cmd_login" | $cmd_lwp | html2text - >> $LOGFILE || FEHLER=1
if [ $FEHLER -eq 0 ]; then
echo "XXX Wähle ${dialnumber} ... XXX"
echo "Wählen ... " >> $LOGFILE
echo -e "$cmd_telcfg" | $cmd_lwp | html2text - >> $LOGFILE || FEHLER=2
fi
if [ $FEHLER -ne 0 ]; then
echo "XXX Fehler $FEHLER aufgetreten.\\nSiehe $LOGFILE. XXX"
sleep 5
else
test ${PLAY_SOUND:-n} = "y" && play_sound 1>/dev/null
echo "XXX Bitte Hörer abnehmen von Nebenstelle ${dialport}. XXX"
sleep $DIALOG_TIMEOUT
echo "XXXX"
fi
} | Xdialog --title "Wählen über FritzBox" --cancel-label "Schließen" --infobox "Anwahl ${dialnumber} für Nst. \"${dialport}\" ..." 6 50 0
PS: Wenn es funktioniert, oder funktionieren kann, hat vielleicht noch jemand eine Idee wie es in ein Kontextmenü verfrachtet werden kann.