[v0.4.1 - 30.09.2009] FritzBoxNET - .NET Bibliothek für Fritz!Box

prodigy7

Mitglied
Mitglied seit
28 Mai 2005
Beiträge
739
Punkte für Reaktionen
2
Punkte
18
Hallo zusammen,

mit dem Ehrgeiz, den USB Remote Anschluss der Fritz!Box auch unter Linux zum laufen zu bekommen, habe ich mir mal angesehen, was so von bzw. zur Fritz!Box von den verschiedenen AVM Programmen geschickt wird.
Dabei habe ich festgestellt, dass die "Steuerung" über verschiedene SOAP-Aktionen durchgeführt wird und das nicht nur für den Fernanschluss gilt sondern auch für dass Editieren des Telefonbuches, Abrufen verschiedener Informationen, steuern des Fritz!Mini, Freigeben von Ports usw.
Deswegen habe ich mir gedacht, ich fange mal an, eine Bibliothek zu bauen, die möglichst portabel für verschiedene Plattformen ist und hilft, Leuten auf einfache Art und Weise mit der Fritz!Box zu arbeiten. Rausgekommen dabei ist FritzBoxNET.

Changelog schrieb:
0.1
  • First release - more an "how it works" study
0.2
  • Expand functions to all known UPnP functions
  • New: Sample application, seeing how the library works. Called: FritzGUI (1)
0.3
  • Fix error in FritzMini functions
  • GUI now with FritzMini Browser
  • GUI now with AURA Browser
  • Many small bug fixes
  • Use now the WebRequest Class for handling SOAP requests
0.4
  • Several Fritz!Box Informations can now read out
  • GUI: It's now selectable, which informations are read out
  • Fix code in Mini parsing (took wrong function for geeting user count)
  • GUI: Address of Fritz!Box is now set to fritz.box
0.4.1
  • Change license from GPLv2 to LGPLv2.1
(1) FritzGUI arbeitet momentan nicht mit Mono unter Linux - das liegt aber wohl an den XML-Funktionen, die ich nutze und nicht an der eigentlichen Funktionalität. Für mich steht es primär erst mal im Vordergrund, die Funktionalität voll abbilden zu können (und die ist unabhängig vom OS)

Funktionalitäten der Fritz!Box und deren Unterstützung - ab welcher Version und Fertigstellungsgrad

Fritz!Box Konfiguration
  • Auslesen, welche Services die Box anbietet bzw. Basisinformationen / ab 0.4 - 100%
  • Auslesen der Firmware Version und Box Modell / ab 0.4 - 100%
Foncontrol
  • Auslesen der Benutzer- bzw. Geräteliste / ab 0.2 - 100%
  • Auslesen der Anruflisten je nach Benutzer bzw. Gerät / ab 0.2 - 100%
USB Fernanschluss (AURA)
  • Version auslesen / ab 0.1 - 100%
  • Geräte Information anhand der Index Nummer auslesen / ab 0.1 - 100%
  • Geräte Information anhand der Handle Nummer auslesen / ab 0.1 - 100%
  • USB Gerät Remote verbinden / ab 0.1 - 20% (Funktioniert, ist aber noch etwas Arbeit zu erledigen)
  • USB Gerät Remote disconnecten / ab 0.1 - 20% (Funktioniert, ist aber noch etwas Arbeit zu erledigen)
  • ... Liste muss noch vervollständigt werden ...
Fritz!Mini
  • Version auslesen / ab 0.1 - 100%
  • Mini anhand Index Nummer ermitteln / ab 0.2 - 100%
  • Mini anhand User ID ermitteln / ab 0.2 - 100%
  • ... Liste muss noch vervollständigt werden ...
Telefonbuch
  • Port zur Kommunikation mit dem Telefonbuch ermitteln bzw. öffnen / ab 0.2 - 100%
  • Anzahl an Telefonbucheinträgen für Haupttelefonbuch oder Gerät bzw. Benutzer ermitteln / ab 0.2 - 100%
  • Telefonbucheintrag aus Haupttelefonbuch oder Gerät bzw. Benutzer auslesen / ab 0.2 - 100%

Was fehlt noch ?
Generell fehlt noch alles, was irgendwie schreibend in Richtung Fritz!Box geht. Desweiteren wird die Implementierung des Fernanschlusses etwas komplexer - sofern sich hier jemand rumtreibt, der sich mit der Kernelprogrammierung auskennt, bitte melden!

Was ist noch geplant?
Ich möchte gerne noch die Funktion für den CallMonitor integrieren. Zudem möchte ich schaun, ob man eventuell auch irgendwie an die Inhalte (Nachrichten) des Anrufbeantworters dran kommen kann.

Feedbacks...
sind willkommen! Immer her mit!
 

Anhänge

  • FritzBoxNET-0.1.zip
    130.3 KB · Aufrufe: 84
  • FritzBoxNET-0.2.zip
    156.1 KB · Aufrufe: 51
  • FritzGUI-0.2.zip
    219.3 KB · Aufrufe: 54
  • FritzBoxNET-0.3.zip
    152.4 KB · Aufrufe: 45
  • FritzGUI-0.3.zip
    263.6 KB · Aufrufe: 47
  • FritzBoxNET-0.4.zip
    158.8 KB · Aufrufe: 153
  • FritzGUI-0.4.zip
    281.3 KB · Aufrufe: 542
  • FritzBoxNET-0.4.1.zip
    161.3 KB · Aufrufe: 703
Zuletzt bearbeitet:
Version 0.2 ist Online - lädt zum Spielen mit der Fritz!Box ein ;-)
 
Finde ich wirklich Super, was Du da machst.

Zu dem USB Fernanschluss habe ich noch einen Frage: Implementierst Du auch die Möglichkeit diesen Ein und Aus zu schalten?

Bei Deiner GUI ist mir noch folgendes aufgefallen:

Du kannst in dem Feld "IP" auch voreingestellt den Wert "Fritz.Box" eintragen. Dann muss nur noch das PW eingegeben werden.

Bei der Anrufliste wird unter "Ausgehenden Anrufen" wird unter der ID 0 ( FritzBox ) nichts angezeigt. Die Werte von Dauer dürften auch nicht richtig sein. Ich vermute einmal, dass es sich um die komplette Dauer handelt und nicht die von dem entsprechendem Tag.

Aber wie gesagt, dass was Du machst ist wirklich Super.

Gruß
Lars
 
Finde ich wirklich Super, was Du da machst.
Danke ;-)
Zu dem USB Fernanschluss habe ich noch einen Frage: Implementierst Du auch die Möglichkeit diesen Ein und Aus zu schalten?
In der nächsten GUI Version kannst du auswählen, was du willst und was nicht
Du kannst in dem Feld "IP" auch voreingestellt den Wert "Fritz.Box" eintragen. Dann muss nur noch das PW eingegeben werden.
Werde ich machen!
Bei der Anrufliste wird unter "Ausgehenden Anrufen" wird unter der ID 0 ( FritzBox ) nichts angezeigt. Die Werte von Dauer dürften auch nicht richtig sein. Ich vermute einmal, dass es sich um die komplette Dauer handelt und nicht die von dem entsprechendem Tag.
Naja - im Prinzip hat die "Fritz!Box" keine ausgehenden Anrufe sondern immer das jeweilige Gerät, das angemeldet ist - in sofern dürfte das eigentlich richtig sein.

Ich sehe, dass du eine etwas ältere FW im Einsatz hast - funktioniert soweit im Prinzip alles?
 
Da freue ich mich ja schon auf die nächste Version. Ich habe aktuell nämlich das Problem, dass ich meinen Drucker ( Canon MP630 ) an der Fritz Box angeschlossen habe. Leider funktioniert der Scanner nur, wenn man bei dem USB Fernanschluss alles markiert hat. Mit diesen Einstellungen kann dann aber immer nur eine Person auch drucken. Mit Deiner DLL Datei kann ich mir dann aber ein Programm schreiben, womit ich nur zum scannen den USB Fernanschluss aktiviere und ansonsten den Drucker als LAN Drucker nutzen kann.

Wegen meiner Sig. Ähm..... Ich muss gestehen, dass ich diese vergessen habe anzupassen. Ich habe sie jetzt aber erst einmal angepasst. Ich hoffe nur, dass ich es bei dem nächsten Update nicht wieder vergesse.
 
Aktuelle Version ist Online - deinen Vorschlag mit fritz.box habe ich aufgegriffen und es ist jetzt auswählbar, was ausgelesen wird. Beim rumprobieren habe ich dann auch noch einen Weg gefunden, die Konfig von der FB auszulesen, welche Service Aktiv sind bzw. nicht ;-)

Bzgl. "Ein-/Ausschalten" - meintest du damit, ein Device zu Connected bzw. Disconnecten?
 
Muss ich mir doch gleich einmal anschauen. Die Änderungen gehen aber wirklich sehr schnell. Hut ab.

Bezüglich dem Fernanschluss meine ich die Option "USB Fernanschluss aktivieren". Im Anhang ist ein Screenshot von der 7270.

Edit: Die Seite mit den Informationen finde ich sehr gut. Was man da alles an Informationen bekommt. Es gibt sogar einen Punkt mit "isWebSrv" der auf "1" steht. Ob das wohl bedeutet, dass ein Webserver aktiv ist bzw. dass man auf der FitzBox einen einrichten kann?
 

Anhänge

  • USBFernanschluss.jpeg
    USBFernanschluss.jpeg
    182.5 KB · Aufrufe: 237
Zuletzt bearbeitet:
Bezüglich dem Fernanschluss meine ich die Option "USB Fernanschluss aktivieren". Im Anhang ist ein Screenshot von der 7270.
Also um den Fernanschluss zu aktivieren bzw. deaktivieren müsste ich mich über die Benutzeroberfläche "bewegen" - das Problem ist: Wenn AVM nur irgend eine Kleinigkeit ändert, muss auch jedes mal der Code angepasst werden (Aktuelle Beispiel könnte sein: Das Sessionmanagment in den neuen Labor-Firmwares). Ich halte mich erst mal an die Sachen, die über "offizielle" Schnittstellen angeboten werden.
Es gibt sogar einen Punkt mit "isWebSrv" der auf "1" steht. Ob das wohl bedeutet, dass ein Webserver aktiv ist bzw. dass man auf der FitzBox einen einrichten kann?
Ich nehme an, das bezieht sich einfach nur auf den Webserver, den man nutzt, wenn man fritz.box aufruft.
 
Schade, dass das mit dem USB Fernanschluss nicht funktioniert. Das wäre wirklich perfekt gewesen. Ich kann aber verstehen, dass Du da nicht Dein Hauptaugenmerk drauf setzt, da es nicht über die "normale" Schnittstelle läuft.

Mit welchem Programm hast Du eigentlich nachgeschaut, was die AVM Programme zu der FritzBox senden?

Edit: Was mir gerade noch aufgefallen ist: Wenn die FritzBox ein PW hat, dieses in der GUI auf der ersten Seite nicht eingetragen ist und man versucht das Telefonbuch auszulesen, erscheint eine Fehlermeldung.
 
Zuletzt bearbeitet:
Vielleicht kann man die Funktionalität irgendwann noch nachrüsten - nur momentan wäre das eine Baustelle zu viel.

Den Traffic habe ich mit Wireshark mir angesehen. Ich hab in einer virtuellen Maschine meine Entwicklungsumgebung inkl. AVM Programm am laufen und hab dann alles mitgeschnitten. Anschließend habe ich mir angesehen, was da passiert und versucht, Systematiken zu erkennen.

Das mit dem PW ist momentan noch "richtig" - derzeit habe ich noch kein Fehlerhandling dafür eingebaut, dass ein falsches oder leeres Kennwort eingegeben wird.
 
Irgendwie gibts viele Downloader aber keine Feedbacks! Feedbacks, wo es funktioniert und wo nicht sind gerne willkommen! ;-)
 
Zuletzt bearbeitet:
Kompatibilität zur Sitzungskennung

Hallo,

in der neuen Firmware der 7170 wurde ein Feature eingebaut das nun wohl Probleme bereitet:

"System: Sicherheit der Benutzeroberfläche erhöht (Sitzungskennung, Abmelde-Funktion)"

Wird die API hier weiterentwickelt, wäre schön!
 
Hi,

an sich sollte dieses "Feature" keinen Einfluss auf die API haben. Da die Kommunikation via XML/HTTP läuft und da eine Basic-Authentication genutzt wird, sollte alles so sein wie früher.
Bis dato haben die ja immer nur ihr eigenes Süppchen gekocht bei der GUI - über diesen Weg gehe ich aber nicht - und wenn es sich vermeiden lässt, würde ich es auch zukünftig nicht tun, weil genau solche Änderungen sonst jedes mal für unnötig Arbeit sorgen würden.

Wenn ich die Tage Zeit habe, werde ich aber nochmal testen, ob alles klappt. Zeitlich bin derzeit stark eingespannt so das ich momentan nicht so wirklich weiter komme. Wenn du was beisteuern kannst und möchtest, bist du gerne Willkommen ;-)
 
Hab es mal ausprobiert: Wie erwartet funktionieren nach wie vor alle implementierten Funktionen auch mit der neuen Firmware.
 
Lizenz und Weiterentwicklung

Hallo prodigy7,

ich hab deine .NET Lib gerade entdeckt. Was mich daran stört ist die Lizenzierung unter GPL. Schon mal drüber nachgedacht, unter LGPL zu lizenzieren?

Gruß Tom
 
Hast recht! Hab mir eben extra nochmal die LGPL zu gemüte geführt und eigentlich ist dass die bessere Lizenz für die Lib.
 
livestream->7270->Repeater->UKW :rock:

Hallo Entwicklerteam, gibt es etwas neues hier?

Der USB Fernanschluss für Linux systeme ist ne gute Idee da ich selbst Ubuntu nutze,
aber könnte man damit nicht auch nen Livestream (i-Radio) direkt von einer 7270 oder 7240 anstatt zum MT-C zum Repeater schicken und via UKW verbreiten?

Schönes Wochenende und Wenig Schnee ....
 
Naja ... im Endeffekt müsste
a) der Repeater direkt was mit dem Stream anfangen können oder
b) du auf einem System X den Repeater via Fernanschluss als Audio-Device einbinden um dann den Stream rüber zu schicken.

Wenn a) gehen würde, könnten wir wahrscheinlich schon die Streams umleiten und für b) muss der Fernanschluss genutzt werden bzw. sofern noch nicht vorhanden, implementiert werden für das System.
 
neue Version?

Hi prodigy7,

Ich habe in diesem Forum die Bibliothek FritzBoxNET-0.4.1 gefunden und kann damit prima die Telefonbuch-Einträge lesen ... ich würde sie aber auch gerne schreiben.

Planst/hast Du ein neues Release mit Schreib-Unterstützung? Wenn nicht: wo hattest Du die Infos zum Lesen her ... ich könnte dann das Schreiben auch selbst implementieren.

Viele Grüße,
Sven
 
Hi Sven!

Momentan fehlt mir die Zeit, das Projekt weiter zu führen - von daher ist vorerst keine neue Version geplant, sofern nicht jemand anderes etwas dazu beisteuert.

Das Schreiben von Einträgen sollte im Prinzip nicht weiter schwer sein. Wenn ich das richtig in Erinnerung habe, schickt man einfach XML formatierte Daten an die Box und setzt damit die Einträge. Weshalb ich das nicht umgesetzt habe, war schlicht und einfach: Keine Zeit mehr gehabt, zu evaluieren, welche Feldgrößen es gibt, welche Zeichen zulässig sind und welchen nicht usw ... Ausgabe ist halt einfacher als Eingabe :)

Wie du an alle notwendigen Informationen kommst, ist sehr einfach: Installiere dir das Programm Wireshark und Fritz!Gini (hab ich in einer virtuellen Maschine gemacht). Danach Wireshark anschmeißen zum mitlesen des Datenverkehrs und dann mit Gini etwas rumspielen. Dann Wireshark stoppen und dann die Pakete der Reihe nach durchgehen.
An sich ist das ganze kein Hexenwerk aber eine ganz nette Fingerübung, um zu lernen wie man Protokolle debuggt.
Wenn man dann beim schreiben keine offensichtliche Information hat, wo wie was definiert hat, systematisch verschiedene Daten senden und dann die Systematik herauslesen.
Du hättest hier den Vorteil, das der Code zum auslesen schon vorliegt und du entsprechend einen "Anfangsverdacht" hast :)

Wenn du noch Hilfe brauchst, einfach melden!
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.