HOWTO: Freetz Callmonitor-Benachrichtigungen ans XBMC schicken

  • Also.. wir wollen den Callmonitor aus freetz verwenden, um Telefoniebenachrichtigungen der Fritz!Box ans XBMC zu schicken.

    [infobox]Voraussetzungen:
    funktionierende Freetz-Firmware auf der Fritzbox, die den Callmonitor und curl enthält. Der Callmonitor sollte laufen und bereits grundlegend konfiguriert sein (Rückwärtssuche etc.).
    Grundlegende Kenntnisse im Umgang mit einem Terminal
    Ich werde im Folgenden nur den Editor vi verwenden. Es wird sehr helfen, sich vorher mit den grundlegenden Befehlen vertraut zu machen.
    Die freetz-Konfigurationsoberfläche befindet sich auf http://fritz.box:81 [/infobox]
    Schritt 1: Telnet auf der Fritzbox aktivieren
    Telefoncode: #96*7*
    oder
    Freetz-Webinterface -> Status -> Dienste -> telnetd -> start

    Schritt 2: Konsole auf der Fritzbox öffnen
    Auf Unixartigen Betriebssystemen im Terminal
    telnet root@fritz.box

    Auf Windows kann z.B. Putty verwendet werden. Host Name: fritz.box; Connection type: telnet; Open

    Beim ersten Login empfiehlt es sich das root-Passwort (default: freetz) zu ändern. passwd verwenden.

    Schritt 3: Ins Callmonitor-Arbeitsverzeichnis wechseln
    cd /var/tmp/flash/callmonitor/

    Hier muss ein Verzeichnis "actions.local.d" angelegt werden, um shell-Skripte als Aktionen bei Anrufen verwenden zu können:
    mkdir actions.local.d
    und in das Verzeichnis wechseln
    cd actions.local.d

    Schritt 4: Das Callmonitor-Script anlegen
    vi <beliebiger name>.sh
    wobei <beliebiger name> alles mögliche sein kann. Bei mir heißt das Ganze notifications.sh

    Hier kommen jetzt die ganzen Aktionen rein, die ausgeführt werden können.
    Es gibt verschiedene Methoden, die den anzuzeigenden Text und die Anzeigedauer anhand von Callmonitor-Aktionen festlegen. Danach wird send_request aufgerufen, um das Paket ans XBMC (und/oder andere Geräte) zu schicken. in REQUEST steht am Ende die JSON-RPC-Anweisung, die am Ende mit curl abgeschickt wird. (hier kann man natürlich alles mögliche ans XBMC schicken.. http://wiki.xbmc.org/index.php?title=JSON-RPC_API/v6)

    [expander]

    [/expander]
    Welche Variablen verwendet werden können und was die genau enthalten ist in der Callmonitor-Dokumentation auffindbar.
    Die Adresse eures XBMC im Netzwerk und ggf. auch der Port muss vermutlich angepasst werden. Bei mir ist das http://openelec.fritz.box. Es geht aber genauso eine feste IP (http://xxx.xxx.xxx)Port kann über :<Portnummer> hinter der Adresse angegeben werden, also bspw. http://openelec.fritz.box:1234 für Port 1234; http://xxx.xxx.xxx:1234)

    Das ganze speichern und vi schließen (":x")
    [warnbox]Achtung! Wenn die Konfiguration einen Neustart der Fritzbox überleben soll, muss modsave aufgerufen werden, um die Änderungen aus dem Arbeitsspeicher in den Flash zu schreiben. Auch nach jeder weiteren Änderung, die bestehen bleiben soll, ist modsave erforderlich.[/warnbox]
    Schritt 5: Callmonitor Regeln (Listeners) konfigurieren, die angelegten Aktionen zu verwenden.
    Freetz-Webinterface öffnen -> Callmonitor -> Regeln
    Damit für ein- und ausgehende Anrufe die oben angelegten Funktionen verwendet werden, könnte das z.B. so aussehen:

    Code
    in:request    ^    ^    incoming 
    out:request	^	^	outgoing
    in:connect	^	^	connect_in
    out:connect	^	^	connect_out
    in:cancel	^	^	incoming_canceled
    out:cancel	^	^	outgoing_canceled
    *:disconnect	^	^	disconnected


    Letztlich könnt ihr das frei konfigurieren. Das schöne mit dem Benachrichtigungsscript im Hintergrund ist, dass man pro Aktion nicht auf eine Zeile festgelegt ist. und wiederkehrenden Code schön kapseln kann.
    Klick auf Übernehmen nicht vergessen ;)

    Schritt 6: Testen
    Ein Testanruf ist recht praktisch, um zu sehen, ob die Einstellungen erfolgreich gewesen sind. Das geht zwar auch mit einem normalen Telefonanruf, doch bekommt man beim Testanruf auch Fehlermeldungen und Statusberichte angezeigt.
    Freetz-Webinterface -> Callmonitor -> Testanruf
    Hier könnt ihr jetzt für beliebige Ereignisse und beliebige Nummern Testen.
    Für in:request würde eine erfolgreiche Konfiguration z.B. diese Ausgabe generieren (und im XBMC eine Benachrichtigung anzeigen):
    [expander]

    Wie man sieht gab es ein OK zurück :) Winderbar.Die vielen FAILEDs werden nur angezeigt, weil die entsprechenden Regeln nicht erfüllt werden, das ist also normal.[/expander]
    Wenn noch Fragen offen sind, einfach melden! :)

    4 Mal editiert, zuletzt von Monster_Inc (24. Februar 2013 um 13:38) aus folgendem Grund: Zeilenumbrüche repariert

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!