Beiträge von fantasticn

    Hi Monster_Inc,

    erstmal vielen Dank für Deinen support!

    Meine Media-PCs haben seit jeher feste IP-Adressen, unter denen ich sie anspreche. Mit den in FritzBox eingetragenen Namen arbeite ich nicht. Ich habe deshalb Dein Script wie folgt umgesetzt:


    set TITLE
    set TEXT
    set TIMEOUT
    set ID
    set UID

    send_request() {
    REQUEST="..."
    HOSTS="192.168.20.100 192.168.20.101 192.168.20.102 192.168.20.103 192.168.20.104"

    for h in $HOSTS
    do
    curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d "$REQUEST" http://%24h/jsonrpc
    done
    }

    # Eingehender Anruf
    incoming() {
    TITLE="Eingehender Anruf"
    TEXT="$SOURCE_NAME ($SOURCE)"
    TIMEOUT=20
    UID="$SOURCE"

    send_request
    }

    # Ausgehender Anruf
    outgoing() {
    TITLE="Ausgehender Anruf"
    TEXT="$DEST_NAME ($DEST)"
    TIMEOUT=20
    UID="$DEST"

    send_request
    }

    # Verbindung hergestellt
    connect_in() {
    TITLE="Verbunden"
    TEXT="$SOURCE_NAME ($SOURCE)"
    TIMEOUT=5
    UID="$SOURCE"

    send_request
    }

    connect_out() {
    TITLE="Verbunden"
    TEXT="$DEST_NAME ($DEST)"
    TIMEOUT=5
    UID="$DEST"

    send_request
    }

    # Verbindung getrennt
    disconnected() {
    TITLE="Anruf beendet"
    TEXT="Anrufdauer: $(f_duration $DURATION)"
    TIMEOUT=10

    send_request
    }
    # Eingehender Anruf abgebrochen (aufgelegt?)
    incoming_canceled() {
    TITLE="Anrufer hat aufgelegt"
    TEXT="$SOURCE_NAME ($SOURCE)"
    TIMEOUT=20
    UID="$SOURCE"

    send_request
    }

    # Ausgehender Anruf abgebrochen (aufgelegt?)
    outgoing_canceled() {
    TITLE="Anruf abgebrochen"
    TEXT="$DEST_NAME ($DEST)"
    TIMEOUT=5
    UID="$DEST"

    send_request
    }


    Ich habe es im Windows-Editor geschrieben. Danach habe ich in der Telnet-Verbindung das alte Script gelöscht und dann ein neues mit vi erstellt. Dort habe ich copy&paste der Zeilen aus dem Word-Editor vorgenommen.. Das scheint prinzipiell zu klappen, da es die Fehlermeldungen bzgl. "linx xyz not found" oder ähnliches nicht mehr gibt. Trotzdem werden mir keine Anrufe auf den Media-PCs signalisiert. Wenn ich den testanruf unter Freetz ausführe, bekomme ich folgende Meldung:

    including /usr/lib/callmonitor/actions.d/config.sh
    including /usr/lib/callmonitor/actions.d/dboxlcd.sh
    including /usr/lib/callmonitor/actions.d/dial.sh
    including /usr/lib/callmonitor/actions.d/mail.sh
    including /usr/lib/callmonitor/actions.d/messages.sh
    including /usr/lib/callmonitor/actions.d/musicpal.sh
    including /usr/lib/callmonitor/actions.d/rc.sh
    including /usr/lib/callmonitor/actions.d/roku.sh
    including /usr/lib/callmonitor/actions.d/samsung.sh
    including /var/tmp/flash/callmonitor/actions.local.d/xbmccalls.sh
    /usr/sbin/callmonitor-test: /mod/pkg/callmonitor/usr/lib/callmonitor/actions.local.d/xbmccalls.sh: line 1: et: not found
    >>> in:request ID=1 TIMESTAMP=04.03.13 08:23 SOURCE=123456 DEST=902733 EXT=4 DURATION=16 PROVIDER=
    [0] event detected:
    EVENT=in:request
    SOURCE='123456'
    DEST='902733'
    [0+] detailed event data:
    SOURCE_DISP='123456'
    SOURCE_ENTRY=''
    SOURCE_NAME=''
    SOURCE_ADDRESS=''
    DEST_DISP='902733'
    DEST_ENTRY=''
    DEST_NAME=''
    DEST_ADDRESS=''
    ID=1
    EXT=4
    DURATION=16
    TIMESTAMP='04.03.13 08:23'
    PROVIDER=
    [0:2] processing rule 'in:request' '^' '^' 'incoming'
    [0:2] event 'in:request' matches pattern 'in:request'
    [0:2] parameter SOURCE='123456' matches pattern '^'
    [0:2] parameter DEST='902733' matches pattern '^'
    [0:2] SUCCEEDED
    [0:2] ACTION: 'incoming'
    /usr/sbin/callmonitor-test: eval: line 1: curl: not found
    /usr/sbin/callmonitor-test: eval: line 1: curl: not found
    /usr/sbin/callmonitor-test: eval: line 1: curl: not found
    /usr/sbin/callmonitor-test: eval: line 1: curl: not found
    /usr/sbin/callmonitor-test: eval: line 1: curl: not found
    [0:2] listener failed with an exit status of 127
    [0:3] processing rule 'out:request' '^' '^' 'outgoing'
    [0:3] event 'in:request' does NOT match pattern 'out:request'
    [0:3] FAILED
    [0:0] processing rule 'in:request' '^...11.....9$' '^' 'ether-wake -b 00:26:18:7E:8D:1C'
    [0:0] event 'in:request' matches pattern 'in:request'
    [0:1] processing rule 'in:request' '^...11.....9$' '^' 'ether-wake -b 00:01:2E:2B:23:C4'
    [0:1] event 'in:request' matches pattern 'in:request'
    [0:5] processing rule 'out:connect' '^' '^' 'connect_out'
    [0:5] event 'in:request' does NOT match pattern 'out:connect'
    [0:5] FAILED
    [0:6] processing rule 'in:cancel' '^' '^' 'incoming_canceled'
    [0:6] event 'in:request' does NOT match pattern 'in:cancel'
    [0:6] FAILED
    [0:7] processing rule 'out:cancel' '^' '^' 'outgoing_canceled'
    [0:7] event 'in:request' does NOT match pattern 'out:cancel'
    [0:7] FAILED
    [0:8] processing rule '*:disconnect' '^' '^' 'disconnected'
    [0:8] event 'in:request' does NOT match pattern '*:disconnect'
    [0:8] FAILED
    [0:4] processing rule 'in:connect' '^' '^' 'connect_in'
    [0:4] event 'in:request' does NOT match pattern 'in:connect'
    [0:4] FAILED


    Irgendeine Idee, was ich Ändern sollte?

    Viele Grüße!

    FantasticN

    Hi Monster_inc,

    erstmal vielen Dank für diese Anleitung hier: [HowTo] HOWTO: Freetz Callmonitor-Benachrichtigungen ans XBMC schicken

    Ich bin nun überhaupt kein Experte in Sachen Linux, Freetz und auch JSON. Glücklicherweise hat mir vor einigen Jahren mal jemand eine step-by-step Anleitung geschrieben, wie ich mit Hilfe von Freetz-Linux ein Freetz-Image selbst erstelle. Mit Hilfe dieser Anleitung habe ich mir denn auch nochmal ein neues Image gebastelt, weil bei einem alten noch kein Curl aktiviert war (und man das für Deine Lösung ja wohl braucht). Nunja, Image ist erstellt und auch auf der Box (da ich eine 7170 habe und diese sehr wenig Speicher implementiert hat, musste ich einen Teil des Freetz-Images auf den angeschlossenen USB-Stick auslagern - aber auch das habe ich hinbekommen dank meiner alten Anleitung). However, jetzt hänge ich an dem sh-script zur Steuerung der JSON-Aufrufe. Zum einen habe ich mir - um nicht mit dem dämlichen vi-Editor alles eintippen zu müssen - die Sache etwas leichter gemacht und das Script (bei mir mit dem schönen Namen "xbmccalls.sh") mit dem Windows-Editor erstellt und es danach in Freetz über "System / Rudishell" hochgeladen. Danach habe ich modsave in der Telnet-Verbindung ausgeführt und nach einem Neustart mit "vi" getestet, ob das script noch vorhanden ist und den korrekten Inhalt besitzt. Dies war der Fall. Zum zweiten habe ich vorher den Inhalt des Scripts leicht angepasst: Ich habe zuhause insgesamt vier XBMC-PCs und habe deshalb versucht, dies zu implementieren. Ob es mir gelungen ist, kann ich nicht sagen. Jedenfalls klappt es nicht (Anrufe werden nicht angezeigt) und bei "testanruf" werden mir im Callmonitor zwei Fehler angezeigt:
    including /var/tmp/flash/callmonitor/actions.local.d/xbmccalls.sh
    /usr/sbin/callmonitor-test: /mod/pkg/callmonitor/usr/lib/callmonitor/actions.local.d/xbmccalls.sh: line 6:
    : not found
    /usr/sbin/callmonitor-test: /mod/pkg/callmonitor/usr/lib/callmonitor/actions.local.d/xbmccalls.sh: line 108: syntax error: unexpected end of file (expecting "}")

    Nachstehend findest Du das von mir modifizierte Script. Vielleicht kannst Du mir helfen, es auf die Reihe zu bekommen?


    set TITLE
    set TEXT
    set TIMEOUT
    set ID
    set UID

    send_request100() { REQUEST="{\"id\":\"$UID\",\"jsonrpc\":\"2.0\",\"method\":\"GUI.ShowNotification\",\"params\":{\"title\":\"${TITLE}\",\"message\":\"${TEXT}\",\"displaytime\":20000}}"
    curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d "$REQUEST" http://192.168.20.100:80/jsonrpc
    }
    send_request101() { REQUEST="{\"id\":\"$UID\",\"jsonrpc\":\"2.0\",\"method\":\"GUI.ShowNotification\",\"params\":{\"title\":\"${TITLE}\",\"message\":\"${TEXT}\",\"displaytime\":20000}}"
    curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d "$REQUEST" http://192.168.20.101:80/jsonrpc
    }
    send_request102() { REQUEST="{\"id\":\"$UID\",\"jsonrpc\":\"2.0\",\"method\":\"GUI.ShowNotification\",\"params\":{\"title\":\"${TITLE}\",\"message\":\"${TEXT}\",\"displaytime\":20000}}"
    curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d "$REQUEST" http://192.168.20.102:80/jsonrpc
    }
    send_request103() { REQUEST="{\"id\":\"$UID\",\"jsonrpc\":\"2.0\",\"method\":\"GUI.ShowNotification\",\"params\":{\"title\":\"${TITLE}\",\"message\":\"${TEXT}\",\"displaytime\":20000}}"
    curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d "$REQUEST" http://192.168.20.103:80/jsonrpc
    }
    send_request104() { REQUEST="{\"id\":\"$UID\",\"jsonrpc\":\"2.0\",\"method\":\"GUI.ShowNotification\",\"params\":{\"title\":\"${TITLE}\",\"message\":\"${TEXT}\",\"displaytime\":20000}}"
    curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d "$REQUEST" http://192.168.20.104:80/jsonrpc
    }

    # Eingehender Anruf
    incoming() {
    TITLE="Eingehender Anruf"
    TEXT="$SOURCE_NAME ($SOURCE)"
    TIMEOUT=20
    UID="$SOURCE"

    send_request100
    send_request101
    send_request102
    send_request103
    send_request104
    }

    # Ausgehender Anruf
    outgoing() {
    TITLE="Ausgehender Anruf"
    TEXT="$DEST_NAME ($DEST)"
    TIMEOUT=20
    UID="$DEST"

    send_request
    }

    # Verbindung hergestellt
    connect_in() {
    TITLE="Verbunden"
    TEXT="$SOURCE_NAME ($SOURCE)"
    TIMEOUT=5
    UID="$SOURCE"

    send_request100
    send_request101
    send_request102
    send_request103
    send_request104
    }

    connect_out() {
    TITLE="Verbunden"
    TEXT="$DEST_NAME ($DEST)"
    TIMEOUT=5
    UID="$DEST"

    send_request100
    send_request101
    send_request102
    send_request103
    send_request104
    }

    # Verbindung getrennt
    disconnected() {
    TITLE="Anruf beendet"
    TEXT="Anrufdauer: $(f_duration $DURATION)"
    TIMEOUT=10

    send_request
    }
    # Eingehender Anruf abgebrochen (aufgelegt?)
    incoming_canceled() {
    TITLE="Anrufer hat aufgelegt"
    TEXT="$SOURCE_NAME ($SOURCE)"
    TIMEOUT=20
    UID="$SOURCE"

    send_request100
    send_request101
    send_request102
    send_request103
    send_request104
    }

    # Ausgehender Anruf abgebrochen (aufgelegt?)
    outgoing_canceled() {
    TITLE="Anruf abgebrochen"
    TEXT="$DEST_NAME ($DEST)"
    TIMEOUT=5
    UID="$DEST"

    send_request100
    send_request101
    send_request102
    send_request103
    send_request104
    }

    Hi don,

    danke für die Zusammenfassung. Die Variante mit einem separatem Smartphone (Android oder - in meinem Fall - iPhone), das die Anrufsignale von der FritzBox erhält und dann die Signalisierung auf dem/den XBMC-Rechner(n) auslöst, ist m.E. vom Konzept und Betrieb her etwas aufwendig. Mein iPhone-Akku saugt jedenfalls gut Strom bei einer dauerhaften WLan-Verbindung zur FritzBox, weshalb ich das Geräte auch zuhause nicht als Ersatz für meine normalen Telefone verwende. Zudem möchte meine Frau auch dann noch Anrufe auf Fernseher signalisiert bekommen, wenn ich und mein Smartphone mal nicht zuhause sind. Trotzdem: Sehr origineller Ansatz.

    Die Sache mit Freetz-Image und dem FritzBox-Callmonitor ist schon wesentlich interessanter. Tatsächliche habe ich Freetz auch auf einer FritzBox laufen wegen des Callmonitors. Und ich hatte das Ganze auch bereits in Betrieb in Zusammenhang mit meinen XBMC-PCs. Allerdings habe ich dann auf Frodo umgestellt und dann ging es nicht mehr, weil die hhtp-Signalisierung weggefallen ist. Wie man im Callmonitor JASON nutzt, wusste ich nicht. Meine Frage deshalb auch dazu: Deine Beispiele zeigen, wie man den PC während eines Anrufes pausieren lässt. Wie würde die Befehlszeile im Callmonitor aussehen, um den PC nur die ein- bzw. ausgehende Rufnummer anzeigen zu lassen?

    Ansonsten: Freetz ist natürlich eine aufwendige Sache. Nicht alle (vermutlich sogar nur die wenisgten) Nutzer einer FritzBox werden das aufspielen können oder wollen. Insofern wäre ein konventionelles Plugin für XBMC natürlich die beste Lösung. Noch immer baue ich darauf, dass die bestehenden Kinderkrankheiten aus der vorliegenden Version entfernt werden können, oder jemand vielleicht nochmal einen komplett neuen Ansatz dazu verfolgt.

    Hi don,

    Pause ist zwar für mich keine Notwendigkeit. Ich würde mich dennoch freuen, wenn es mit der Entwicklung des Plugins ein wenig weiter ginge. FritzBox ist schließlich DER Router der letzten Jahre (dürften wohl einige Leute zuhause nutzen) und das Einblenden von aus- und vor allem eingehenden Anrufen auf dem Fernseher ist eine prima Sache. Es wundert mich, dass es bislang nur dieses eine Plugin dafür gegeben hat, wo doch ansonsten tausende von Zusatztools und Plugins für alle möglichen exotischen Anwendungsfälle für XBMC entwickelt werden. Naja...


    Das mit der CPU-Last ist mir noch nicht aufgefallen. Vielleicht hängt daran auch irgendwie mein Problem mit dem ständigen Absturz des Plugins.


    Viele Grüße!

    FantasticN

    Naja, vielleicht hab ich ja merkwürdigerweise auch nur das Problem (habe noch keine anderen Postings dazu gefunden). Vielleicht findet auch noch jemand die Ursache für das Stabilitätsproblem und fixt es. Vielleicht kann man aeinfach nur den Dienst wieder "restarten" oder ähnliches.

    Wie auch immer. Ansonsten ist das Plugin (also solange es läuft) jedenfalls prima. Ach ja: Die letzte Version ist übrigens "nur" 2 Monate alt, denn 343max hat an dem ursprünglichen Plugin noch ein paar Kleinigkeiten gefixt, siehe Post 85.

    Gruß

    FantasticN

    Also ich habe nach wie vor das Problem, dass auf allen meinen vier OpenElec-PCs das Plugin nach einer Weile abschmiert. D.h. es läuft einige Tage prima und dann irgendwann signalisiert es plötzlich keine Anrufe mehr. Warum weiß ich nicht. Ich muss es dann immer komplett deinstallieren und dann aus dem ZIP-Package wieder neu installieren.

    Hallo,

    Ich hatte mit dem Plugin Stabilitätsprobleme (manchmal lief es, dann fiel es plötzlich aus und man musste es komplett deinstallieren, per SSH das Package löschen und dann neu installieren - danach lief es wieder für eine Weile). Zudem hatte ich auch die beschriebenen Probleme mit dem nicht mehr funktionsfähigen Runterfahren. Deshalb bin ich dann umgestiegen und habe auf meiner FritzBox zusätzlich Freetz mit dem Callmonitor-Plugin installiert. So konnte ich eingehende Anrufe also per HTMl über den in XBMC implementierten Webserver signalisieren lassen. Nun bin ich umgestiegen auf XBMC 12 Frodo (OpenElec 3.0). Leider unterstützt der Webserver Frodo nun keine HTML-Befehle mehr. Die Lösung klappt also nicht mehr. Ich überlege deshalb, ob es vielleicht doch noch mit dem vorliegenden Plugin zum Laufen zu bringen ist.

    Meine Fragen deshalb:
    Unter Deinem o.g. Link sind mehrer Versionen runterzuladen. Welche ist die von Dir gefixte?
    Läuft diese auch unter Frodo?

    Besten Dank vorab!

    Fantasticn

    Edit:
    Ich hab inzwischen herausgefunden, wie es funktioniert. Ich bin jetzt einfach mal davon ausgegangen, dass das Verzeichnis mit der Kennzeichnung "343max" und dem Hinweis auf die Erledigung des shutdown-Problems die von Dir aktualisierte Version ist, und die anderen gezippten Files nur alte Vorversionen enthalten. Ich habe dann auch herausgefunden, dass man den gesamten Inhalt des Depots als ZIP runterladen kann. Ich habe es sodann auf meiner lokalen Festplatte extrahiert und anschließend das darin enthaltene, vorgenannte Verzeichnis wiederum gezippt. Dieses ZIP-Package konnte ich dann unter XBMC/OpenElec installieren. Etwas umständlich, aber es ging.

    Meine Ergebnisse: Unmittelbar nach der Installation ging der Neustart/Shutdown des Systems erstmal wieder nicht, sondern blieb hängen (wie man es von der alten Version des plugins auch kannte). Das war aber hoffentlich nur ein einmaligen Phenomen, denn inzwischen klappt es wieder, trotz installiertem plugin. Das gute ist zudem: ES LÄUFT AUCH UNTER FRODO!!! Jetzt ruht meine Hoffnung darauf, dass es diesmal auch stabil bleibt und nicht in einigen Tagen plötzlich nicht mehr funktioniert (wie es leider bei den alten Versionen des plugins immer war).

    Besten Dank für die Entwicklung und vor allem auch Fortentwicklung des plugins. Es würde mich sehr freuen, wenn es damit weiterginge. Die Anzeige eingehender Anrufe auf dem Fernsehen sollte prinzipiell ein interessantes Feature sein für jeden, der XBMC nutzt, und FritzBoxen sind immerhin mit die meist genutzten Telefonanlagen am Markt. Bedarf sollte also eigentlich bestehen. Vielleicht muss man die Leute nur mehr auf die Existenz und den Nutzwert dieses plugins aufmerksam machen.

    Netter workaround, aber ziemlich aufwendig. Zudem kostet die permanente Verbindung des iPhones als Telefon viel Akkuleistung. Und die Signalisierung würde jeweils nur auf dem XBMC-Rechner erfolgen, auf den ich gerade die Remot-App eingestellt habe. Mir wäre eine direkte Lösung lieber. Immerhin habe ich schon Freetz und XBMC am Laufen, also zwei "Bastlersysteme". Da sollte doch eigentlich etwas machbar sein.

    Hallo, ich habe bereits seit längerem Freetz auf meiner Fritzbox laufen und vor einer Zeit den Callmonitor so konfiguriert, dass er ein- und ausgehende Anrufe auf meinen XBMC-Rechnern (alle OpenElec) signalisiert. Das hat soweit prima geklappt. Nun bin ich vor einigen Wochen umgestiegen auf OpenElec 3.0 (basiert auf XBMC 12.0 Frodo). Anrufe werden plötzlich nicht mehr signalisiert. Auch manuelle tests vom Webbrowser aus verliefen ergebnislos. Der Webserver auf den XBMC-PCs ist aber aktiviert. Wie ich nun herausgefunden habe, ist wohl die Möglichkeit der Steuerung des Webservers per HTML-Befehl bei XBMC 12.0 Frodo entfernt worden. Es geht jetzt nur noch über "JSON" (was immer das sein soll).

    Frage deshalb: Kann mir einer kurz sagen, wie ich den Callmonitor konfigurieren muss, damit er künftig wieder ein- und ausgehende Anrufe auf meinen XBMC-Rechnern signalisiert? Oder ist das jetzt nicht mehr möglich?

    Vielen Dank vorab!

    FantasticN

    Hallo Leute,

    ich nutze das Plugin unter OpenElec (XBMC) und bin prinzipiell begeistert. Das Signalisieren von Anrufen auf meiner FritzBox 7170 funktioniert eigentlich sehr gut. Ich habe nur zwei "kleine" Probleme:

    1. Ich habe von der folgenden Webseite die aktuelle Version 0.9.5.4 geladen: http://code.google.com/p/xbmc-fritzbox/
    Wenn ich sie unter XBMC installiere, erhalte ich aber beim nächsten Klick auf das Addon die Meldung, dass ich Version 0.9.3.1 installiert hätte und dass eine neuere Version 0.9.4 verfügbar sei. Danach wird diese installiert.

    2. Das Plugin scheint gelegentlich "abzuschmieren". Es werden dann keine Anrufe mehr signalisiert. Neustart hilft nichts. Es läuft ab dann einfach gar nicht mehr. Auch habe ich teilweise Probleme beim Runterfahren/Neustarten des Rechners (geht dann nur mir Ausschalter/Resetknopf), nicht jedoch mit Standby-Mode. Ich konnte die Probleme dann bislang nur dadurch lösen, dass ich das PlugIn deinstalliert habe und dann auch noch mit WinSCP eine SSH-Verbindung aufgebaut habe, um im Verzeichnis "\Addons\Packages\" die Pakete "service.xbmc-fritzbox_V0.9.5.4.zip" und "service.fritzbox-0.9.4.zip" zu löschen. Danach Neustart, Neuinstallation des Plugins (siehe dazu aber Punkt 1) und dann nochmals Neustart. Danach läuft es wieder - zumindest für eine Weile.

    Ich setze das PlugIn insgesamt auf vier PCs mit OpenElec bei mir im Haus ein.

    Meine Fragen also:
    Ist die 0.9.4 nun die neueste Version oder doch die 0.9.5.4? Wie installiere ich ggf. letztere, so dass sie auch beibehalten wird? Und beinhaltet diese vielleicht bereits eine Lösung für die beschriebenen Stabilitätsprobleme oder gibt es dafür einen anderen workaround?

    Besten Dank vorab und viele Grüße!

    FantasticN