tellows Anruferschutz: Automatische Aktualisierung der Scorelisten in der Fritzbox – Bash-Skript


Heute stellen wir euch eine Lösung zum automatischen Download der Fritzbox-Listen und Integration in euren Router vor. Damit entfällt das regelmäßige Einloggen in den tellows Shop sowie das manuelle Importieren der Listen in eure Fritzbox.

Ein besonderer Dank geht an einen unserer tellows Scorelisten-Nutzer, der uns seine Lösung inklusive Script zur Verfügung gestellt hat. Für den Download der Listen nutzt er einen Direktlink mit seinen Shopdaten. Mithilfe des Scripts ist eine automatische Integration in die Fritzbox möglich. Achtung: Dies ist eine Experten-Lösung und erfordert Programmierkenntnisse!

Vorab noch ein paar Anmerkungen vom Nutzer:

  • Die Telefonbuch IDs fangen in der Fritzbox bei 0 an – das „Standard“ Telefonbuch ist die ID 0, von da hochzählend geht es dann weiter
  • Die Anmeldung funktioniert entweder nur mit Passwort oder mit Benutzername/Passwort – gesteuert über USERPASSLOGIN (getestet mit dem Passwort-Login, nicht mit Benutzer/Passwort)
  • Es wurden 2 Telefonbücher für Score 7 und 8-9 angelegt und diese dann als Rufsperren eingerichtet (Anleitung für den Import der Scorelisten und Einrichtung der Rufsperre) – in diesem Fall sind das die IDs 2 und 3
  • Das Script basiert auf einem alten Script das ich vor Jahren mal irgendwo gefunden und angepasst hatte, eine genaue Quelle kann ich leider nicht mehr liefern
  • Es handelt sich, wie zu sehen, um ein Linux Shell Script – falls ich mich da noch mal dransetzen sollte, könnte ich dann auch den Autoit Quellcode zur Verfügung stellen (damit das Programm kompiliert werden kann und nicht ein fertiges Binary genommen werden muss)

Skript für die Einbindung

#!/bin/bash
URL=http://fritz.box
USERPASSLOGIN=0
USERE=fritzuser
PASSE=fritzpass
PASS=fritzpass
TELEFONBUCH7=2
FILE7="@/tmp/tellows_7.xml"
TELEFONBUCH89=3
FILE89="@/tmp/tellows_8-9.xml"
 
wget -q -O /tmp/tellows_7.xml "tellows Download LINK"
wget -q -O /tmp/tellows_8-9.xml "tellows Download LINK"
 
if [ $USERPASSLOGIN == 1 ] ; then
CURLUSERPASSSTRING="--user ${USER}:${PASSE}"
else
CURLUSERPASSSTRING="--user :${PASS}"
PASSE=$PASS
fi
 
_CHALLENGE=`curl -s -k \
                ${CURLUSERPASSSTRING} \
                "${URL}/login_sid.lua" | \
                grep Challenge | sed -e 's/.*<Challenge>//' | sed -e 's/<\/Challenge>.*//'`
 
if [ -z "${_CHALLENGE}" ] ; then
        echo "Error getting challenge using ${URL}" >&2
else
 
        # echo "Received Challenge \"${_CHALLENGE}\"" >&2
        # build md5 from challenge key and password
        _MD5=`echo -n ${_CHALLENGE}"-"${PASSE} | \
                iconv -f ISO8859-1 -t UTF-16LE   | \
                md5sum -b | awk '{print substr($0,1,32)}'`
 
        # assemble challenge key and md5
        _RESPONSE=${_CHALLENGE}"-"${_MD5}
 
        # get sid for later use
        _SID=`curl -i -s -k \
                ${CURLUSERPASSSTRING} \
                -d 'response='${_RESPONSE} \
                -d 'page=' \
                -d 'username='${USER} \
                ${URL}/login_sid.lua | \
                grep SID | sed -e 's/.*<SID>//' | sed -e 's/<\/SID>.*//'`
 
        if ! curl -s -k \
                ${CURLUSERPASSSTRING} \
                --form 'sid='${_SID} \
                --form 'PhonebookId='${TELEFONBUCH7} \
                --form 'PhonebookImportFile='${FILE7} \
                ${URL}/cgi-bin/firmwarecfg >TMP1 ; then
                echo "Error 7" >&2
        fi
 
        sleep 10
 
        if ! curl -s -k \
                ${CURLUSERPASSSTRING} \
                --form 'sid='${_SID} \
                --form 'PhonebookId='${TELEFONBUCH89} \
                --form 'PhonebookImportFile='${FILE89} \
                ${URL}/cgi-bin/firmwarecfg >TMP1 ; then
                echo "Error 89" >&2
        fi
fi

Das Skript steht euch hier auch als Download (.txt) zur Verfügung.

Die mit „tellows Download LINK“ markierten Felder müssen durch einen Link mit Zugangsdaten ersetzte werden. Wenn ihr Interesse an dieser Lösung habt, meldet euch bei uns und wir stellen euch einen eigenen Zugang zur Verfügung.

Wir sind gespannt, ob auch andere tellows Nutzer ihr Setup mit dieser Integration nutzen möchten und freuen uns auf euer Feedback. Bei weiteren Ideen zur Integration, könnt ihr gerne einen Kommentar hinterlassen oder uns eine Mail schicken.

Weiterhin viel Spaß mit tellows und eine spamfreie Zeit!

Euer tellows Team

, , , , , , , ,

  1. #1 von Thomas - 13. Januar 2018 zu 14:34

    Hallo,

    gute Idee, aber es währe ein kurze Anleitung mit den entsprechenden Links zum Download und der Installation auf der FritzBox ganz hilfreich

  2. #2 von tellows.de Team - 15. Januar 2018 zu 10:58

    Hallo Thomas, die Anleitungen zum Download und Import befinden sich in der Produktbeschreibung im Shop. Viele Grüße vom tellows Team

  3. #3 von Chris - 23. Februar 2018 zu 20:20

    Hallo,

    habe das Skript gerade implementiert und es funktioniert problemlos. Ich habe nur noch eine Anpassung vorgenommen, dass im Namen des Adressbuchs das Datum des letzten Downloads enthalten ist. So kann man in der Fritbox direkt sehen, ob der Updatemechanismus funktioniert.

    mv /tmp/tellows_7.xml /tmp/temp.xml
    sed „s/tellows Scorelisten/tellows Scorelisten $(date ‚+%Y%m%d‘)/g“ /tmp/temp.xml > /tmp/tellows_7.xml
    mv /tmp/tellows_8-9.xml /tmp/temp.xml
    sed „s/tellows Scorelisten/tellows Scorelisten $(date ‚+%Y%m%d‘)/g“ /tmp/temp.xml > /tmp/tellows_8-9.xml

    Gruß,
    Chris

  4. #4 von tellows.de Team - 28. Februar 2018 zu 14:18

    Hallo Chris, vielen Dank für deine Anmerkungen. Wir wünschen noch viel Spaß damit und eine spamfreie Zeit. Viele Grüße vom tellows Team

  5. #5 von Ein Fisch - 17. August 2018 zu 14:47

    Anmerkung das Skript lässt sich selbstverständlich nicht auf der FritzBox direkt Installieren. Ihre benötigt dazu einen Homeserver. Als kostengünstige alternative bietet sich da z.B. ein Raspberry Pi an.

    Jetzt zu meiner Frage. Wie finde ich die IDs der Telefonbücher heraus da ich schon mehrere angelegt habe?

  6. #6 von tellows.de Team - 20. August 2018 zu 08:12

    Hallo, die IDs werden in der Regel in der Reihenfolge vergeben, wie die Telefonbücher angelegt werden. D.h. das erste Telefonbuch hat die ID „0“. Wenn man sich in der Übersicht zum Wechseln des Telefonbuchs befindet, kann man auch über das Entwicklertool zum Untersuchen des Elements, die korrekte ID des jeweiligen Telefonbuchs einsehen.
    Viele Grüße vom tellows Team

  7. #7 von Andy - 10. September 2018 zu 20:32

    Hallo Chris,

    tolle Idee. Wie muss das Skript erweitert werden? Die Zeilen einfach unten anhängen?

    Grüße

  8. #8 von Thomas - 22. September 2018 zu 13:31

    Hallo, ich habe versucht das Script mit meiner FB 6590 unter FritzOS 7.0 zum laufen zu bekommen, das hat leider nicht funktioniert.

    Das Script läuft auf einem RasPi 3b, der Download der Score-Listen funktioniert einwandfrei, allerdings werden diese nicht in die FritzBox installiert.

    Ich habe es mit leeren Telefonbüchern, ohne Telefonbüchern, beiden Anmeldeprozeduren usw. probiert, aber es geht nicht und ich bekomme auch keine Fehler- oder Rückmeldung, was evtl. nicht funktioniert.

    Ich vermute das Problem im Zusammenhang mit FritzOS 7.0.

    Was kann ich noch probieren oder wie bekomme ich, raus, wo es hängt.

    Danke im Voraus und viele Grüße

(wird nicht veröffentlicht)

  1. Bisher keine Trackbacks.