#!/bin/bash
# Diese Wählskript-Version umgeht das Problem, dass die Anmeldung häufig erst beim
# zweiten Anwahlversuch funktionierte, indem sie die Anmeldung (nicht die Anwahl)
# vorab separat durchführt.
#
# Martin Schniewind, Juli 2006, http://www.schniewindnetz.de
#
##################################################
# Vorgaben
##################################################
#
# Konfigurationspasswort der FritzBox
password="KENNWORT"
#
# Standard-Nebenstelle, die verwendet wird, wenn nicht beim Aufruf übergeben
dialport=${2:-"FON 1"}
##################################################
# Usage-Hinweis
##################################################
if [ "${1}" = "" ]; then
dialnumber=$nummer
exit 0
else
# Ungeeignete Zeichen aus der Nummer entfernen:
dialnumber=$(echo ${1} | sed -e '
s/+/00/
s/[^0-9]//g
')
fi
dialnumber=$nummer
##################################################
# 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}"
cmd_hangup="getpage=../html/de/menus/menu2.html
&var:lang=de
&telcfg:settings/UseClickToDial=1
&telcfg:command/Hangup=${dialnumber}
&telcfg:settings/DialPort=${dialport}"
##################################################
# Verarbeitung
##################################################
# zuerst nur Anmeldevorgang ausführen:
echo "Anmelden an Fritzbox:"
echo -e "$cmd_login" | $cmd_lwp 2>&1 | html2text -
# nun Anmeldung und Anwahl aufrufen:
echo "Wählen (${dialnumber}):"
echo -e "$cmd_telcfg" | $cmd_lwp 2>&1 | html2text -
sleep 10
echo -e "$cmd_hangup" | $cmd_lwp 2>&1 | echo "-"
echo "Bitte Hörer abnehmen von Nebenstelle ${dialport}"
} #| grep -v "^$" | \
if [ "${1}" != "" ]; then exit; fi