Anrufanzeige von Fritzbox auf Display

  • Hallo Zusammen,

    erst mal Danke, ich konnte schon einige Male durch mitlesen meine Probleme lösen, leider komme ich aber aktuell nicht mehr weiter.

    Zu meinem Aufbau, ich habe zwei Raspberry mit jeweils einem DHT22 Temp/Feuchte Sensor am laufen.
    Einer ist im Garten an dem jetzt noch ein Chirp bodenfeuchte Sensor kommen soll, wenn er endlich eintrifft.
    Der andere ist im Wohnzimmer mit einem Display (HD44780 20x4), das ganze lass ich noch über Emoncms auf einer Weboberfläche darstellen.
    Meine Programmierkenntnisse beschränken sich auf Python.

    Jetzt wollte ich die Informationen am Display erweitern und zwar hätte ich gerne bei einem Anruf die Ausgabe wer mich gerade anruft angezeigt.
    Ich besitze eine Fritz.Box 7390 und habe mich auch schon eingelesen, leider habe ich aber nichts gefunden was mir weiter hilft.
    Es gab wohl früher die Möglichkeit über Telnet, was aber scheinbar aus Sicherheitsgründen nicht so ratsam ist und mittlerweile durch
    die Aktuelle Software auch gar nicht mehr möglich. Eine weitere Möglichkeit wäre wohl Linphone, hier weis ich aber nicht wo ich
    ansetzen soll und ob das Ganze nicht übertrieben für meine Anwendung ist.

    Es wäre schön wenn ihr mir helfen könntet, schon mal danke in Voraus.

  • [font="Courier New"]Das geht relativ einfach mit folgendem php Script, du mußt nur dein Passwort anpassen. Klappt bei mit mit der 7390 und der 7490 mit relativ aktuller Firmware. Ältere Lösungen funktionieren nicht mehr, da AVM das Zugriffsverfahren geändert hat. Das Script habe ich ergoogelt (Dank dem unbekannten Autor) und alles für mich unnötige rausgeschmissen.[/font]



    [font="Courier New"]<?php
    [/font]
    [font="Courier New"]//****************************************************[/font]
    [font="Courier New"]//** Fritzbox steuern und auslesen (Ab Fritz OS 5.5 !)[/font]
    [font="Courier New"]//****************************************************[/font]



    [font="Courier New"] $FritzBox['Host'] ='fritz.box';[/font]
    [font="Courier New"] $FritzBox['Passwort'] ='password';[/font]
    [font="Courier New"] $FritzBox['webcm'] ='/cgi-bin/webcm';[/font]


    [font="Courier New"]//An der Fritrz Box anmelden, liefert eine Session ID oder false[/font]
    [font="Courier New"]function FritzLogin()[/font]
    [font="Courier New"]{[/font]
    [font="Courier New"] global $FritzBox;[/font]
    [font="Courier New"] $fritzpage ='http://'.$FritzBox['Host'].'/login_sid.lua';[/font]
    [font="Courier New"] $xml = new SimpleXMLElement(file_get_contents($fritzpage));[/font]
    [font="Courier New"] $challange = $xml->Challenge; //Wert von Challenge abrufen[/font]
    [font="Courier New"] $response = file_get_contents($fritzpage.'?username=&response='.$challange . '-' . md5( iconv('ISO8859-1', 'UTF-16LE', $challange . '-' . $FritzBox['Passwort']) )); //Login[/font]
    [font="Courier New"] $xml = new SimpleXMLElement($response);[/font]
    [font="Courier New"] $sid = $xml->SID; //SID abrufen die für alle weiteren Aktionen gebraucht wird[/font]
    [font="Courier New"] if ($sid=='0000000000000000')[/font]
    [font="Courier New"] {[/font]
    [font="Courier New"] echo 'Keine gültige SSID - sind die Login (Passwort:"'.$FritzBox['Passwort'].'") und Hostdaten ("'.$FritzBox['Host'].'") richtig?';[/font]
    [font="Courier New"] return false;[/font]
    [font="Courier New"] }[/font]
    [font="Courier New"] unset($xml);[/font]
    [font="Courier New"] return $sid;[/font]
    [font="Courier New"]}[/font]


    [font="Courier New"]//***************************************[/font]
    [font="Courier New"]//FB anmelden SID holen[/font]
    [font="Courier New"] $sid=FritzLogin(); //Bei der Fritzbox anmelden und die Sessionid holen[/font]


    [font="Courier New"] if ($sid==false)[/font]
    [font="Courier New"] {[/font]
    [font="Courier New"] echo "Fehler beim login";[/font]
    [font="Courier New"] exit;[/font]
    [font="Courier New"] }[/font]
    [font="Courier New"] $datei = fopen("anrufer.tmp","w");[/font]
    [font="Courier New"] //Anruferliste auslesen und als Tabelle darstellen[/font]
    [font="Courier New"] $csv = file_get_contents('http://' . $FritzBox['Host'] .'/fon_num/foncalls_list.lua?sid='.$sid.'&csv='); //Anrufliste abrufen[/font]
    [font="Courier New"] fwrite($datei,$csv);[/font]
    [font="Courier New"] fclose($datei);[/font]
    [font="Courier New"]?>[/font]

  • fred0815, Janrufmonitor kenne ich noch nicht, muss ich mir mal genauer anschauen.
    Der Link schaut schon mal sehr interessant aus.


    Tastenknecht , verstehe ich das Script richtig, es werden alle Anrufe in eine anrufer.tmp gespeichert,
    wenn ich jetzt in meiner Python-Script diese auslese, sollte das ja laufen?!
    Werde ich später gleich mal testen wenn ich zuhause bin.


    Schon mal danke, ich werde ein wenig testen müssen aber das bringt mich schon mal weiter!

  • Schau doch mal im FHEM Wiki und Forum. Da gibt es ein super Modul für die Fritte.



    Grüße Jörg


    Gesendet von iPhone mit Tapatalk

  • Hallo zusammen,


    bin nach langer Suche auf diesen (und ähnliche) Beitrag gestoßen.
    Dabei kamen immer wieder diese webcm-PHP Scripte zum Einsatz.


    Kann mir jemand erklären, WO ich diese PHP-Scripte hinlegen muss?
    Habe es auf meinem Webserver versucht (was vmtl. wenig Sinn macht) und natürlich ohne Erfolg.


    Ich würde gern einige Stati meier Fritzbox protokollieren, die nicht im FB Log auftauchen (zeitweise "keine Rufnummern" zugewiesen) und diese Ereignisse mit einem Zeitstempel in eine Datenbank schreiben.
    Oder gibt es eine Doku zu den PHP-Lösungen (ich bin PHP-Entwickler).


    Vielen Dank und viele Grüße
    Jan


    PS: Ich weiß, meine Frage hat nichts mit Rapsberry zu tun, hoffe mir kann aber dennoch jemand helfen :-)

  • Es gibt auf GitHUB einen FritzBox-PHP-API, um mittels PHP so einige Daten aus der F!B auszulesen.


    Die Scripte liegen auf dem System, das über die TR-069, TR-064 oder SOPA-Schnittstelle/Funktion über das Netz auf die FritzBox zugreift.
    Auf die FritzBoxen mit aktueller Firmware kann man keine Programme mehr ablegen.


    ---
    Zum Thread-Anfang noch etwas:
    Wenn man den aktuellen Anrufer haben will, nutzt man den FrotzBox-Callmonitor (Port 1012, extra mit Tastencode freischalten)

    Selber denken,
    wie kann man nur?

  • Ich danke Euch.
    Also lese ich das richtig, dass PHP lokal auf meinem windows-Rechner ausgeführt wird?


    Ich werde mich mit den Links/Thematiken mal auseinandersetzen :-)


    Viele Grüße
    Jan