Diskussionsthema zu freetz und das XBMC

  • edit von don:
    Diskussionsthema zu [HowTo] freetz auf der fritz box und das XBMC


    -------------------------------
    Ich bräuchte noch ein aktuelles Freetz-Image für meine 7270 v3.
    Leider finde ich seit der Umstellung auf Fritz OS keine fertigen Images mehr :(

    Das letzte das ich hatte war schon recht alt, und die aktuelleren hatten üble Bugs.

    Ich bin leider etwas im Stress derzeit und habe keine Zeit und Lust mich mit der Freetz-Thematik auseinanderzusetzen.
    Ich brauche nichts spezielles, also keine CAMDS usw. Hauptsache die neuen FritzOS Features sind dabei. :thumbup:

    XBMC 16.1 / ConfluenceMod 4.2 / UBUNTU / Asrock ION330 / Harmony ONE / FLIRC / CoolstreamNEO @ (NeutrinoHD) / YATSE xbmc-remote-app @ Galaxy Note4 @ (AND 5.1.1) @ Samsung Galaxy Tab 4 10.1@AND 5.0.1 @ xbmc16.2 beta Android

  • Ich bräuchte noch ein aktuelles Freetz-Image für meine 7270 v3.

    Leider finde ich seit der Umstellung auf Fritz OS keine fertigen Images mehr :(


    Fertige Images dürfen Lizenzrechtlich nicht verteilt werden. AVM geht dagegen auch vor. Nur selber Compilieren ist erlaubt. Ist in einer virtuellen Maschine aber nicht wirklich ein Problem. Quelltext auschecken, "make menuconfig && make" aufrufen, 5 Minuten warten, fertig. Ist auf freetz.org alles ausführlich beschrieben.

  • Auf keywelt ist halt verlass ;) ;(

    XBMC 16.1 / ConfluenceMod 4.2 / UBUNTU / Asrock ION330 / Harmony ONE / FLIRC / CoolstreamNEO @ (NeutrinoHD) / YATSE xbmc-remote-app @ Galaxy Note4 @ (AND 5.1.1) @ Samsung Galaxy Tab 4 10.1@AND 5.0.1 @ xbmc16.2 beta Android

  • Da stellen sich dem Informatiker die Nackenhaare hoch, vorkompilierte Images von Modifikationen bei Netzwerkinfrastruktur einzusetzen ^^ Ich hätte da nicht genug vertrauen :D

    Das Problem mit den fertigen Teilen ist, dass auf der fritz box nicht unbedingt viel Speicherplatz vorhanden ist. Daher ja der Ansatz sich modular genau das zusammenzubauen, was man haben möchte und wirklich braucht.

    Du kannst es aber einfach ausprobieren, indem Du, wenn Du per telnet auf der box bist curl eintippst. Wenn curl antwortet, ists drauf. Wenn not found zurückkommt, nicht. ;)

    Generell sollte immer die original Recovery.exe von AVM für das jeweilige Modell offline vorhanden sein (und ein Netzwerkkabel). Für den Fall, das was schief geht, lässt sich die Box so meist retten.

  • 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
    }

  • 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 "}")

    Puh.. was steht denn in Zeile 6 und 108? Spontan würde ich drauf tippen, dass ASH (die BusyBox Shell) mit den Ziffern im Funktionsnamen nichts anfangen kann. Oder bei der Zeichenkodierung etwas kaputt gegangen ist. Windows und Linux unterscheidet sich hier mindestens bei der Kodierung der Zeilenumbrüche, und ich bin mir nicht sicher, wie sensibel ASH da ist.

    Ich würde das aber generell schreibfauler realisieren. Einerseits machs Dir mit Deinen zig send_requests nicht unnötig kompliziert und unübersichtlich. Der Sinn von einer eingizen send_request ist ja eben nur einen einzigen Aufruf zu brauchen, um an alle möglichen Stellen zu Senden. Andererseits ist das Ganze einfach an nur einer Stelle änderbar, wenn sich nichts wiederholt.

    Code
    send_request() {
      REQUEST="..."
      curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d "$REQUEST" http://192.168.20.100/jsonrpc  
      curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d "$REQUEST" http://192.168.20.101/jsonrpc
      ...
    }

    Und nachdem das ja auch alles im Prinzip das Selbe ist, würde ich es in eine Schleife packen. Auch würde ich nicht die Hostnamen verwenden, sondern über die Rechnernamen. Sollte die Fritz Box einem Gerät mal eine andere IP zuweisen, funktioniert Dein Script dann immernoch. Die Namensübersicht verrät Dir die Box ja in der Heimnetzwerk-Ansicht.

    Code
    send_request() {
     REQUEST="..."
     HOSTS="xbmc1.fritz.box xbmc2.fritz.box xbmc3.fritz.box"
     
     for h in $HOSTS
       do
       curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d "$REQUEST" http://$h/jsonrpc
     done
    }

    Wenn Du mit vi überhaupt nicht klar kommst (wieso haben da eigentlich so viele so enorme Probleme mit?), bietet freetz auch nano als Editor an. Der soll angeblich Einsteigerfreundlicher sein..

  • 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

  • Da ist auch immernoch ein Syntaxfehler drin (nicht in dem, was Du hier gepostet hast, sondern in dem, was auf deiner Fritz Box ist). Achte mal auf die Fehlermeldung, die Dir ja angezeigt wird:

    /usr/sbin/callmonitor-test: /mod/pkg/callmonitor/usr/lib/callmonitor/actions.local.d/xbmccalls.sh: line 1: et: not found

    Wäre es möglich, dass in Zeile 1 ein S vor dem ET fehlt? Passiert typischer weise bei Copy&Paste, wenn Du in vi vorher nicht INS/EINFG gedrückt hast.

  • Hallo Monster_Inc,

    ich habe es kontrolliert und tatsächlich fehlte das "S". Ich hab es dann über vi ergänzt.

    Wegen der Fehlermeldung "Curl not found" habe ich zudem nochmals das Auslagerungs-Image für den USB-Stick (also den Teil von Freetz, der auf den USB-Stick ausgelagert wird, weil die 7170 nicht genug Platz hat) überprüft und anschließend erneut auf den USB-Stick laden lassen. Curl ist definitiv drauf. Aber Anrufe werden mir auf den Media-PCs immer noch nicht signalisiert. Wenn ich unter Freetz einen Testanruf initiiere, erhalte ich nun folgende Meldung (Anm.: Die Positionen 00:00 bis 00:01 betreffen nur einen WOL-Aufruf, der von einem "Anruf" meiner Haustürklingel ausgelöst wird; das hat mit unserem Thema nichts zu tun und soll Dich nicht irritieren):

    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
    >>> in:request ID=1 TIMESTAMP=05.03.13 16:15 SOURCE=12345 DEST=902733 EXT=4 DURATION=16 PROVIDER=
    [0] event detected:
    EVENT=in:request
    SOURCE='12345'
    DEST='902733'
    [0+] detailed event data:
    SOURCE_DISP='12345'
    SOURCE_ENTRY=''
    SOURCE_NAME=''
    SOURCE_ADDRESS=''
    DEST_DISP='902733'
    DEST_ENTRY=''
    DEST_NAME=''
    DEST_ADDRESS=''
    ID=1
    EXT=4
    DURATION=16
    TIMESTAMP='05.03.13 16:15'
    PROVIDER=
    [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:4] processing rule 'in:connect' '^' '^' 'connect_in'
    [0:4] event 'in:request' does NOT match pattern 'in:connect'
    [0:4] FAILED
    [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:2] processing rule 'in:request' '^' '^' 'incoming'
    [0:2] event 'in:request' matches pattern 'in:request'
    [0:2] parameter SOURCE='12345' 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:1] event 'in:request' matches pattern 'in:request'
    [0:8] processing rule '*:disconnect' '^' '^' 'disconnected'
    [0:8] event 'in:request' does NOT match pattern '*:disconnect'
    [0:8] FAILED
    [0:0] parameter SOURCE='12345' does NOT match pattern '^...11.....9$'
    [0:0] FAILED
    [0:1] parameter SOURCE='12345' does NOT match pattern '^...11.....9$'
    [0:1] FAILED

    Nochmals besten Dank für Deine Unterstützung!


    FantasticN

  • Was passiert denn, wenn Du curl im Terminal auf der Fritzbox eintippst?

    Ist Curl überhaupt vorhanden? Normalerweise befindet es sich sich hier: /usr/bin/curl
    Wenn nicht, ist es mit
    cd / && find -name "curl" -type f
    auffindbar?

  • Hi Monster_Inc,

    Eingabe: curl
    Antwort: -sh: curl: not found

    Eingabe: cd / && find -name "curl" -type f
    Antwort: ./var/media/ftp/uStore01/external/curl

    Curl befindet sich - wie gesagt - auf dem USB-Stick (also dem ausgelagerten Teil des Freetz-Images). Dort befindet sich z.B. auch der Callmonitor selbst, und der wird mir unter der Freetz-Oberfläche wunderbar angezeigt und funktioniert auch.

    Vielleicht muss man den Pfad zu Curl in so etwas ähnliches der "Path"-Variable unter DOS aufnehmen, damit Curl gefunden wird. Ich kenne mich nur in Linux nicht aus, wie das zu bewerkstelligen ist.

    Gruß

    FantasticN

  • Ja, Du liegst schon richtig. Dadurch, dass curl nicht im Standardverzeichnis ist (und dort offenbar auch nichts ist, was auf curl verweist), ist es für den Rest vom System und dessen Namensauflösung "unbekannt".
    Wenn Du in Deinem Script einen voll qualifizierten Aufruf von curl machst (also auch mit angibst, wo sich curl genau befindet), sollte es funktionieren.
    /var/media/ftp/uStore01/external/curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d "$REQUEST" http://%24h/jsonrpc
    Das Ganze kannst Du auch schonmal vorweg im Terminal ausprobieren, ein Neustart ist nicht nötig.

  • Thanks again für Deine Tipps. Bislang aber trotzdem kein popup der Rufnummer auf meinen Media-PCs. Die Meldung beim Testanruf lautet nun:

    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
    >>> in:request ID=1 TIMESTAMP=07.03.13 07:51 SOURCE=12345 DEST=902733 EXT=4 DURATION=16 PROVIDER=
    [0] event detected:
    EVENT=in:request
    SOURCE='12345'
    DEST='902733'
    [0+] detailed event data:
    SOURCE_DISP='12345'
    SOURCE_ENTRY=''
    SOURCE_NAME=''
    SOURCE_ADDRESS=''
    DEST_DISP='902733'
    DEST_ENTRY=''
    DEST_NAME=''
    DEST_ADDRESS=''
    ID=1
    EXT=4
    DURATION=16
    TIMESTAMP='07.03.13 07:51'
    PROVIDER=
    [0:2] processing rule 'in:request' '^' '^' 'incoming'
    [0:2] event 'in:request' matches pattern 'in:request'
    [0:2] parameter SOURCE='12345' matches pattern '^'
    [0:2] parameter DEST='902733' matches pattern '^'
    [0:2] SUCCEEDED
    [0:2] ACTION: 'incoming'
    /usr/sbin/callmonitor-test: eval: line 1: /var/media/ftp/uStore01/external/curl: not found
    [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: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
    /usr/sbin/callmonitor-test: eval: line 1: /var/media/ftp/uStore01/external/curl: not found
    /usr/sbin/callmonitor-test: eval: line 1: /var/media/ftp/uStore01/external/curl: not found
    [0:0] parameter SOURCE='12345' does NOT match pattern '^...11.....9$'
    [0:0] FAILED
    /usr/sbin/callmonitor-test: eval: line 1: /var/media/ftp/uStore01/external/curl: not found
    /usr/sbin/callmonitor-test: eval: line 1: /var/media/ftp/uStore01/external/curl: not found
    [0:2] listener failed with an exit status of 2
    [0:5] event 'in:request' does NOT match pattern 'out:connect'
    [0:5] FAILED
    [0:1] parameter SOURCE='12345' does NOT match pattern '^...11.....9$'
    [0:1] FAILED


    Gruß
    FantasticN

  • Tu mir mal einen Gefallen und bring erstmal curl zum Laufen, das wird nämlich immernoch nicht gefunden. Da hilft auch die Ausgabe vom Callmoitor-Testanruf nichts.
    /var/media/ftp/uStore01/external/curl: not found

    Probiere das erstmal im Terminalfenster direkt zum Laufen zu bringen:

    Code
    /var/media/ftp/uStore01/external/curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d "{\"id\":\"$UID\",\"jsonrpc\":\"2.0\",\"method\":\"GUI.ShowNotification\",\"params\":{\"title\":\"Testnachricht\",\"message\":\"Es funktioniert!\",\"displaytime\":20000}}" http://<XBMC-Adresse>/jsonrpc


    Wenn es funktioniert, wird in dem XBMC, dessen Adresse Du angegeben hast, ein kleines Testfenster angezeigt, im Temrinal steht anschließend in etwa sowas:


    In Zeile 13 ist die Antwort vom XBMC: OK

    Wenn Du dann Dein curl gefunden hast, und es im Terminal funktioniert, kannst Du den Befehl im Script entsprechend ändern.

    BTW: Was hast Du denn alles auf Deine Box gepackt, dass das unbedingt extern sein muss? Ich hab hier eine 7112, die hat wie Deine auch 8MB Flash und 32MB RAM, und da passt alles Locker ins Gerät selbst..

  • Hallo Monster_Inc,

    ich habe mir das bereits gedacht. Mit der Pfadangabe zu Curl auf dem USB-Stick scheint es nicht zu klappen. Ich muss Curl also wohl oder übel ins Hauptimage von Freetz für die FritzBox bekommen. Genau daran bastele ich jetzt schon ein Weile herum. Am liebsten wäre mir ja ein "Non-Stick"-Image, also ein Image, bei dem ich gar keine Auslagerung mehr auf den USB-Stick vornehmen müsste. Ich bekomme es aber irgendwie nicht hin. Ich habe die Packages für Callmonitor (mit allen Unterpunkten), Curl, AVM Firewall, Syslogd CGI und WoL angeklickt. Ich habe zudem bei den Patches die Removes für assistant, dtrace, help und printserver angehakt, um Platz einzusparen. Aber es reicht einfach nicht. Merkwürdig ist, dass ich im Netz einige "Non-Stick"-Images für die 7170 gesehen habe, auf denen viel mehr Packages angegeben waren (meist aber ohne Curl, so dass ich sie nicht verwenden konnte). Es müsste also doch irgendeinen Weg dafür geben. Any idea?

    Gruß

    FantasticN

  • Hi don,


    nach der Erstellung heißt es immer "Image to big" um ca 268 KB. Eine Einstellung der "Flashgröße" habe ich nicht gefunden bzw. nicht vorgenommen. Ich habe besagte Packages ausgewählt und Removes vorgenommen- that's it.
    Inzwischen habe ich deshalb meine Illusion von einem "Non-Stick"-Image aufgegeben und jetzt doch wieder bei "External" die Erstellung einer externen Zusatzdatei ausgewählt. Als auslagerungsfähige Module konnte ich dort aber jetzt merkwürdigerweise nur "Curl" auswählen, was ich dann aber natürlich - wegen des o.g. Problems - nicht getan habe. Ergebnis: Auch das so erstellte Image ist immer noch zu groß, diesmal um ca 138 KB.

    Any ideas?

    Gruß

    FantasticN

Jetzt mitmachen!

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