Teledat Projekt > Entwicklung

Protokollanalyse

Überblick

Im folgenden geht es um die Analyse des Kommunikationsprotokolls, mit dem man die externen AVM-Anlagen steuern kann. Zunächst beschäftigen wir uns vornehmlich mit dem seriellen Protokoll, später auch mit dem USB-Protokoll. Interessante Anlagen sind: Teledat USB 2a/b, 1&1 NetXXL, Teledat X120, AVM Fritz!X PC (v2 und v3), AVM Fritz!X USB (v1 und v2), AVM Fritz!Card USB (v1, v2, v2.1), BlueFritz! AP-X mit USB-Direktverbindung (kein Bluetooth!) und bei Interesse auch AVM Fritz!X PC v1 und Eumex 302 PC. Weitere Informationen zur Hardware finden sich in hardware.txt

Durch die erarbeitete Protokollspezifikation ist es möglich, Konfigurationsprogramme und Kerneltreiber für den Internetzugang zu schreiben. Daher sind die folgenden Informationen auch nur für Entwickler (oder solche, die es werden wollen) interessant, es existieren hier noch keine Tools für Endanwender!

 

English speaking developers

All following information is available in German only because the "AVM smart devices" are sold solely in German speaking countries. If you're an English speaking developer who wants to help with the protocol analysis please contact me (scfe AT cs DOT tu-berlin DOT de or via e-mail form). If there is enough interest I'll publish more information in English. Please note that all program code targeted for production use will have English comments so you'll be able to read it even if you don't speak German. You'll find no tools suitable for normal users here.

 

Neuigkeiten

30.09.2003 AVM hat eine neue Einsteigeranlage namens "Fritz!X ISDN" vorgestellt, die vermutlich eine verkleinerte Version der Fritz!X USB ist, nur mit zwei analogen Telefonports. AVMs Linux-Treiber sollen lt. Pressemeldung auch mit der neuen Anlage funktionieren.
01.09.2003 Laut einer Nachricht von Marcel Holtmann laufen sämtliche AVM Bluetooth-Produkte jetzt auch mit dem Linux-Kernel (ab Version 2.4.22). Näheres in der hardware.txt.
23.07.2003 Dank eines Tools von AVM glaube ich, innerhalb kurzer Zeit nahezu alle relevanten Pakete für den ISDN-Verbindungsaufbau identifiziert zu haben. Da diese Pakete weitgehend gemäß Q.931 aufgebaut sind, ist auch das Parsen nicht besonders schwer. Im Prinzip könnte man meiner Meinung nach jetzt damit anfangen, einen ersten, sehr primitiven Kerneltreiber zu schreiben. Den ausführlichen Statusbericht könnt ihr auf der Entwickler-Mailingliste finden. Alle Interessierten sind eingeladen, bei der Entwicklung mitzuhelfen :-)
20.07.2003 Bisher habe ich das alte v3-Protokoll der Fritz!X PC v1 immer "v1" genannt. Eigentlich ist dies jedoch falsch, "v1" ist der Vorläufer des heutigen "v3", daher ab jetzt eine Versionierung der Protokolle: "v1" nennt sich jetzt "v3.0", das neue v3 ist jetzt "v3.1". Ebenso mit dem v2-Protokoll. Ich habe daher alle Dokumente entsprechend geändert, wenn nicht klar war, welche Protokollversion gerade gemeint war.
19.07.2003 Ich habe die Sektion 'mitmachen' um einige Tipps zum leichteren Einstieg ergänzt. Außerdem hat Frank Gockel das Fritz-Konfigurationsprogramm unter Wine zum Laufen gebracht. Näheres hoffentlich in Kürze auf dieser Webseite.
11.05.2003 Jörg Friedrich hat mich darauf aufmerksam gemacht, dass das Format der Firmware scheinbar "Intel Hex-32" zu sein scheint. Im Web findet sich sogar eine Spezifikation dazu.

 

Warum?

AVM stellt zwar Treiber für Linux bereit, jedoch gibt es hier ein paar Nachteile:

Gerade wegen des letzten Grundes bin ich dabei, das Protokoll zu analysieren, um letzlich nutzbare Software wie ein Konfigurationsprogramm oder einen Linuxtreiber zu schreiben - wohl unnötig zu sagen, dass AVM es ablehnte, irgendwelche Spezifikationen zu veröffentlichen (lapidarer Hinweis: "Bitte haben Sie Verständnis dafür, dass es sich hierbei um ein proprietäres Protokoll handelt und wir keine Informationen darüber heraus geben können."). Mehr und ausführlichere Erklärungen über Motivation und Status in entwicklung.txt.

 

Teilprojekte/Status

Beschreibung Status
Analyse des seriellen Protokolls  
Dokumentation des v2.1-Protokolls  (10%)
Konfigurationsprotokoll (v3.1)  (70%)
Protokoll für den Internet-Zugang  (50%)
Firmware-Upload  (90%)
CTI-Basisfunktionen (Anrufermeldung, Wählen über den Computer)  (20%)
erweiterte CTI-Funktionen (Telefonieren über den Computer, Anrufbeantworter) (nicht geplant)
Faxübertragung und -empfang (nicht geplant)
Dateitransfer (Eurofile, IDTrans)  (10%)
Analyse des USB-Protokolls  (10%)
Analyse des alten Konfigurationsprotokolls (v2.0/v3.0)  (20%)
Konfigurationsprogramm (Planung)
Linux Kernel-Treiber (nicht vor 2004 fertig, eher später)

In den nächsten Monaten werde ich mich hauptsächlich auf folgende Themen konzentrieren (in dieser Reihenfolge):

In den anderen Bereichen wird es wohl kaum Fortschritte geben, es sei denn durch Zufall. Wenn du spezielle Funktionalitäten schneller haben willst, musst du schon selbst tätig werden... (siehe nächsten Abschnitt)

 

mitmachen!

Klar, mehr Entwickler kann jedes Open-Source-Projekt brauchen, so natürlich auch hier... Wenn du an der Analyse des AVM-Protokolls mitarbeiten oder bei der Programmierung von eines Treibers bzw. anderer Software mitwirken willst, solltest du wie folgt vorgehen:

Einrichtung der benötigten Tools:

Sniffen über USB ist zwar prinzipiell mit SnoopyPro möglich, jedoch müssten dort noch entspr. Skripte zur leichteren Analyse geschrieben und ein gepatchtes SnoopyPro verwendet werden (Bug im Export-Modul). Daher wird hier zunächst nur das Mitloggen des seriellen Protokolls unter Windows erklärt - z.Zt. ist dies die effektivste Methode ist, neue Informationen zu bekommen.

offene Tasks:

Im Prinzip kannst du überall sinnvoll mithelfen, den Status der einzelnen Teilprojekte kannst du ja weiter oben sehen. Zwei grundsätzliche Bereiche lassen sich aber unterscheiden:

Weitere Fragen oder Hinweise am besten per Mail an mich (scfe AT cs DOT tu-berlin DOT de oder per E-Mail Formular von Sourceforge). Mehr Informationen sind auch auf der Entwickler-Mailingliste zu finden (Web-Archiv).

 

Dokumentation

Beschreibung Autor Download
Hier gibt es einen Überblick über die verschiedenen Hardware-Versionen der AVM-Anlagen und die der Reseller sowie die Unterschiede in Bezug auf die Firmware. Felix Schwarz hardware.txt
letzte Änderung: 01.09.2003
Einige Worte zu meinen ersten Plänen für die Entwicklung eines Konfigurations-Tools (und später vielleicht sogar eines echten Linux-Treibers). Felix Schwarz entwicklung.txt
letzte Änderung: 23.07.2003
Eine kleine Liste mit offenen Punkten. Wer also einfach mal mitmachen will oder an der weiteren Entwicklung interessiert ist, sollte sich hier mal umsehen. Felix Schwarz todo.txt
letzte Änderung: 20.07.2003
Allgemeine Informationen und Aufbau des v2-Protokolls. Felix Schwarz protokoll_v21.txt
letzte Änderung: 20.07.2003
das gleiche für das v3-Protokoll Felix Schwarz protokoll_v31.txt
letzte Änderung: 20.07.2003
Hier sind die bisher entschlüsselten Befehlssequenzen beschrieben (im v3.1-Protokoll). Felix Schwarz request_v31.txt
letzte Änderung: 20.07.2003
Unsere derzeit noch sehr bescheidenen Erkenntnisse zum USB-Protokoll. Eigentlich mehr ein Platzhalter, da an diesem Protokoll nicht geforscht wird. Felix Schwarz protokoll_usb.txt
letzte Änderung: 20.07.2003
Die Dokumentation des Firmware-Uploads. Felix Schwarz firmware_upload.txt
letzte Änderung: 20.07.2003
erste Untersuchungen des Protokolls der Fritz!X v1 Felix Schwarz protokoll_v30.txt
letzte Änderung: 20.07.2003
einige erste Anmerkungen und Request zu CTI (Telefon-Funktionen über die integrierte ISDN-Karte) - Baustelle und sehr unsortiert Felix Schwarz cti.txt
letzte Änderung: 20.07.2003
Trace einer 1&1 NetXXL Anlage an ttyS1 (COM 2). Die Anlage hatte keine Verbindung zum NTBA.
Aktionen:
  • Aufruf der Konfigurations-Software
Felix Schwarz trace01.log
letzte Änderung: 12.10.2002
Trace einer 1&1 NetXXL Anlage an ttyS1 (COM 2). Die Anlage hatte keine Verbindung zum NTBA.
Aktionen:
  • Die Anlage wurde angeschaltet (Stecker in die Steckdose gesteckt), der Windows 2000 Treiber nahm sofort die Kommunikation auf, nachdem er schon sofort nach dem Start ständig 0x01 an die serielle Schnittstelle gesandt hatte.
Felix Schwarz trace02.log
letzte Änderung: 13.10.2002
Trace einer 1&1 NetXXL Anlage an ttyS1 (COM 2). Die Anlage hatte keine Verbindung zum NTBA.
Aktionen:
  • Starten des Konfigurationsprogramms
  • Konfigurationsdialog - Nebenstellen
  • 1. Nebenstelle, zweite MSN ausgetragen und Einstellungen zur Anlage übertragen
Felix Schwarz trace03.log
letzte Änderung: 15.11.2002