Der Auftrag: Ein
Feldtelefon Baujahr 1954 an der Fritzbox betreiben
Warum? Weil es cool ist. Und ich meine beiden Ackerschnacker (
Feldfernsprecher FF OB/ZB) aktuell eh nicht anderweitig benutze. Und ich jetzt eine Fritzbox habe und die Telefonanlage bespielt werden will.
Und wegen dem coolen analogen Klingeln!
Hardware
Die Hardwareseite ist eigentlich ganz einfach: TAE-Kabel in die Fritzbox stecken, am anderen Ende abschneiden und die beiden Drähte passend auf a/b am Ackerschnacker anschließen. (Erst hatte ich mir mühsam einen RJ11-Stecker organisiert und das probiert, das wollte aber aus mir unbekannten Gründen nicht klappen. Egal ;-)
Unerwartetes Detail: Trotz Betriebsmodus ZB müssen im Ackerschnacker Batterien eingelegt sein, sonst funktioniert das Mikrofon nicht :-/ Die Fritzbox liefert wohl nicht genug Strom. Man könnte da wohl eine kleine Telefonanlage zwischenschalten, aber nicht gleich übertreiben, ich telefoniere ja eh nicht den ganzen Tag. (Falls man nichts hört bzw. nur dann, wenn man die Sprechtaste drückt, sind die a/b-Leitungen einfach nur vertauscht. Fix: andersherum anschließen. Für den Lautsprecher reicht der Fritzbox-Strom wohl aus.)
Merker 1: Zum Sprechen Sprechtaste drücken.
Merker 2: Nicht am Kurbelinduktor drehen, sonst braucht man eine neue Fritzbox! (Da käme dann die zwischengeschaltete Billig-Telefonanlage eventuell doch besser, die kann sich opfern.)
Merker 3: Es gibt keine Wählscheibe und keine Tasten. Man könnte einen passenden Wählzusatz (
rechts im Bild) kaufen, aber der macht Impulswahl. Ob die Fritzbox damit umgehen kann, weiß ich nicht (das flog wohl mal aus der Firmware raus, könnte aber wieder drin sein. Unklar und unerforscht.). Und einen Umwandler
IWV auf
MFV wollte ich erst recht nicht kaufen. Also was tun? Damit leite ich zum Folgekapitel über:
Software
Die Idee, überhaupt was mit dem Feldtelefon und der Fritzbox zu machen, kam mir, als ich von der Funktion "Wählhilfe" der Fritzbox gehört habe: Man kann der Box sagen, dass sie eine Nummer wählen soll und wenn die externe Verbindung hergestellt ist, klingelt der interne Apparat und man muss nur noch abnehmen. Gedacht ist das, um z.B. aus einer Email heraus eine Telefonnummer direkt durch Anklicken wählen zu können. Da mein Server-Terminal sowieso direkt neben dem Telefon steht, bietet es sich als Wählapparat geradezu an.
Es scheint Firefox-Plugins für sowas zu geben und voll ausgewacheene grafische Programme - und natürlich auch die Fritzbox-App fürs Smartphone. Eine kurze Suche brachte aber nichts für die Kommandozeile. Also mal weiter informiert, wie das so funktioniert und die anderen das so machen, kann man ja nachbauen.
Ergebnis: Die Fernsteuerung erfolgt nach
TR-064-Standard. Komischerweise gibt es dafür keine Perl-Library (
Java,
C++ und
Python und
node.js habe ich inzwischen gefunden). Ich mache nun aber mal Perl. Also: selberbauen! Programmieren macht ja Spaß und dann tue ich mal wieder was sinnvolles.
Ein paar Wochenenden später war dann
fritz soweit fertig: Eine TR-064-Library in Perl. Letztendlich ruft das Ding nur ein paar XML-Dateien zu den Servicebeschreibungen ab (nett, weil man so nicht jeden Befehl hart kodieren muss. Die Box sagt, was sie kann und wenn man ein anderes Modell erwischt, hat das automatisch "sein" Featureset am Start) und macht dann einen SOAP-Aufruf, um irgendetwas auszulesen oder auszuführen. Am aufregendsten war noch die User-Authentifizierung an der Fritzbox, der Rest war fast langweilig (gut, ich musste mich nebenbei noch in ein
OO-Framework einarbeiten, komplett von Hand wollte ich die Klassen nicht schreiben, da tippt man sich in Perl den Wolf). AVM stellt übrigens auch
Schnittstellenbeschreibungen bereit, das hat geholfen. (Womit ich mich nicht genauer beschäftigt habe: TR-064 scheint wohl auch nah mit UPnP verwandt zu sein – AVM erwähnt, dass die Fritzbox entgegen den UPnP-Vorgaben absichtlich nicht auf Broadcasts reagiert oder welche sendet, um nicht von Windows als ansteuerbares Gerät angezeigt zu werden oder so.)
Jetzt war fast alles zusammen, nun mussten die Befehle "Wählen" und "Auflegen" noch hübsch verpackt werden. Das ist ganz einfach und fix mit
fritzdial passiert, einer Mini-Telefonanwendung für die Konsole, die inzwischen auch ein kleines Telefonbuch unterstützt, die Anrufliste der Fritzbox auslesen kann und neuerdings auch Tab-Completion hat… Unnützer Schnickschnack, Sie wissenschon. Sinnvoller wäre es, die
fritz-Library mal zu dokumentieren, zu paketieren und auf CPAN zu werfen (aktuell offenster Punkt: sinnvolle Benamsung, CPAN will bestimmt keinen neuen Namensraum Fritz:: aufmachen).
Alles in allem war das eine sehr schöne und spaßige Beschäftigung für die eine oder andere Programmiernacht. Hardwaremäßig war ja nicht so viel zu tun, hauptsächlich passende Stecker jagen und Kabel abisolieren. Mit Rückblick auf mein anderes aktuelles Bastelprojekt (die selbstgebaute USB-Tastatur, an der ich verteilt über zwei Jahre gebastelt habe und wo definitiv noch der Blogartikel fällig ist…) ging das hier jetzt ultraschnell:
Feine Sache das, und telefonieren kann man damit tatsächlich auch!
Folgeauftrag: Meine Angetraute hat sich bereits gemeldet, dass ich doch dann bitte auch unseren
FeTaP 611-2 irgendwie sinnvoll hacken sollte. Da fällt mir nur überhaupt nichts ein. (Vielleicht eine per Impulswahl programmierbare Eieruhr. Über TAE-Anschluss an jedem Telefon verwendbar. Klingt lustig, ist aber nicht so wirklich sinnvoll. Mal sehen. Andere Vorschläge nehme ich gerne entgegen!)
Netz - Rettung - Recht am : Wellenreiten 07+08/2015
Mitch’s Manga Blog am : Mein erstes Perl-Modul ♥
Mitch’s Manga Blog am : FRITZ!Box, Telekom VoIP und mehrere Anschlüsse
Tobias Wagner am : Tobias Wagner via Twitter
Daniel Bednors am : Daniel Bednors via Twitter