Heim-Server auf Raspberry Pi mit Asterisk, fhem, LDAP und davical

Vorgeschichte

Als ich vor ein paar Jahren meine jetzige Wohnung bezog, hatte ich eigentlich vor, ISDN als Amtsanschluss zu buchen und mir eine kleine HiPath-Telefonanlage zu installieren.
Es stellte sich heraus, dass ADSL-mäßig in der Wohngegend aber wohl alles ziemlich dicht ist, dafür ist aber VDSL verfügbar. Damit fiel ISDN als Option weg, da mir schnelles und stabiles Internet wichtig ist.

Ich habe dann zunächst zwei DECT-Mobilteile an die bereits vorhandene Fritzbox angemeldet um das Thema „Telefonie“ in Ruhe neu bewerten zu können.
Eine konventionelle Telefonanlage bietet zwar viele Funktionen was Rufverteilung, Berechtigungen, etc. angeht, aber es ist schwierig, die Außenwelt anzubinden, z. B. mit selbst geschriebener Software.
Meist sind dazu zusätzliche (auf Windows basierende) Server und (teure) Lizenzen notwendig, was ich weder aus Kostengründen noch aus Energiegründen für sinnvoll hielt.
Die sonstigen Funktionen werden auch nicht benötigt, denn in der Regel wird eine Telefonnummer genutzt, bei der alle (aktuell vier) Telefone klingeln.

Dazu kommt, dass man bei den HiPath-Anlagen zur Wartung immer die Windows-Software Manager C bzw. Manager E benötigt, selbst, um Telefonbucheinträge zu verwalten. Das ist ungünstig in einem Haushalt, in dem keine Windows-PCs vorhanden sind.

Ein möglichst einfach zu administrierendes Anlagentelefonbuch war mir wichtig. Die HiPath kann zwar LDAP, aber nur als Namensauflösung für eingehende Rufe.

Bei Asterisk, das wusste ich aus vorhergehenden Projekten, kann man sehr einfach diverse Dinge steuern.

Eine konventionelle TK-Anlage schied also aus, auch die Fritzbox erwies sich alsbald als ungenügend für meine Ansprüche. Die Details führe ich hier mal nicht aus, bei Interesse kann ich dazu mal noch einen eigenen Artikel spendieren.
Ich nahm also einen Raspberry Pi (ursprünglich Model B, heute Version 3) und Raspbian als Basis.
Der Raspberry Pi regelt die Telefonie, Zusatzdienste zur Telefonie, Telefonbuch, Kalender und auch Heimautomation.
Wenn jemand an zusätzlichen Details interessiert ist: einfach melden!

Folgende Dienste sind im Einzelnen realisiert:

Asterisk

In der Installation sollen folgende Endgeräte unterstützt werden:

  • SIP-Tischtelefone
  • DECT-Mobilteile
  • Fax (für alle Fälle)
  • POTS

Die Fritzbox wird dazu als Gateway missbraucht: Fax und ein analoges Wandtelefon sind an die a/b-Ports angeschlossen und in der Fritzbox sind „Internet-Rufnummern“ eingerichtet, die sich am lokalen Asterisk registrieren. Die SIP-Tischtelefone (bei mir z. B. Snom 370 und 720) registrieren sich direkt am Asterisk.
Da alle Telefone auf der „einen Seite“ der Wohnung sind, hört man sie schlecht, wenn man sich in einem der anderen Räume aufhält, daher gibts das Siemens Miniset 325 im Flur.
Auch die DECT-Mobilteile sind (zur Zeit noch) an der Fritzbox angemeldet. Ich habe mich für Gigaset SL3 professional entschieden. Diese Geräte bieten einen guten Kompromiss, da sie an verschiedenen HiPath-Telefonanlagen als Systemmobilteil funktionieren, gleichzeitig aber auch an der Fritzbox ein Anlagenmenü bekommen.
Demnächst (Gigaset N510 IP Pro), damit soll das alles besser funktionieren, man hat dann auch nicht die 3 Gedenksekunden als Wahlende-Erkennung.

Mit dem Umstieg auf den Raspberry Pi 3 habe ich das System komplett neu und damit auch auf aktuellsten Versionen aufgesetzt. Bei Asterisk entschied ich mich für die aktuelle LTS-Version, also Version 13. Bei Asterisk ist derzeit die Migration vom aktuellen SIP-Channeldriver chan_sip zu PJSIP im Gange. Ich entschied mich dafür, gleich für die Zukunft gerüstet zu sein und den neuen Stack zu verwenden. Da ich im Internet keine Einrichtungsbeispiele für mein Setup finden konnte, habe ich die Konfiguration meines Asterisk in einem separaten Beitrag dokumentiert.

LDAP

Alle Telefone sollen auf dasselbe, einfach zu administrierende Telefonbuch zugreifen können. Auf dem Raspberry Pi läuft daher ein handelsüblicher OpenLDAP-Server. Für die Administration des Telefonbuchs nutze ich den Teil eines Skripts, das ich im IP-Phone-Forum gefunden habe. Dieses Skript stellt ein Telefonbuch für Cisco-Telefone zur Verfügung und nutzt dafür eine Möglichkeit, das Telefonbuch der Fritzbox als XML zu laden. Das mache ich mir zunutze: ich lade das Telefonbuch per Cronjob runter, konvertiere es per XSLT in LDIF und beschicke damit den LDAP-Server. So haben alle das gleiche Telefonbuch und ich kann es bequem mit dem Webinterface der Fritzbox administrieren.

FHEM

Unsere Waschmaschine steht in einem Gemeinschafts-Waschkeller. Der Strom wird über die einzelnen Haushalte über einen sogenannten Haushaltsumschalter geschaltet, das heißt, es kann immer nur ein Haushalt gleichzeitig waschen. Das führt dazu, dass die Möglichkeit zur Nutzung der Waschmaschine immer nur zeitweise gegeben ist. Dazu kommt, dass die Waschmaschine zwar eine Restzeitanzeige besitzt, die aber eher ein Schätzeisen ist. Was sie besonders gut kann: 7 Minuten als Restzeit anzeigen, die dann über 30 Minuten dauern. Somit besteht großes Interesse, genau dann mitzubekommen, wenn die Waschmaschine fertig ist.
Ich habe hier eine elegante und minimalinvasive Lösung auf der Basis von Homematic-Komponenten und dem freien Heimautomationsserver fhem gefunden.
Dazu wird eine Funksteckdose Homematic 130248 eingesetzt, die eine eingebaute Leistungsmessung hat. Der Regelkreis ist einfach: wird über 50W verbraucht, wird eine Zustandsvariable auf „ON“ gesetzt. Wird länger als 5 Minuten weniger als 5W verbraucht, wird der Zustand auf „OFF“ gesetzt und eine Push-Nachricht aufs Handy geschickt, über das offene Framework „Pushover“.
Ich habe das dann erweitert und lasse auf einem Snom-Telefon ein Bild anzeigen und eine Taste fängt an zu blinken.

Davical

Schließlich entstand auch die Notwendigkeit gemeinsamer Kalender. Diese sollten „cloudlos“ umgesetzt werden. Somit wurde ein einfacher davical-Server installiert. Wann immer ein Gerät im heimischen WLAN eingebucht ist, erfolgt eine Synchronisierung.

Für Blaulichtverbot auf Autobahnen

Heute war es wieder einmal soweit. Auf meinem morgendlichen Weg zur Uni staute es sich auf der Autobahn. Es ging nur im Schneckentempo voran. Irgendwie hatte ich im Gefühl, was der Grund dafür sein mag – und ich sollte leider nicht enttäuscht werden: nach ca. 1 km Autobahnschleichen konnte ich auf der anderen Fahrbahnseite einen Kleintransporter, einen PKW und dahinter ein Polizeifahrzeug auf dem Standstreifen stehen sehen. Erlaubterweise war am Polizeifahrzeug das Blaulicht angeschaltet – möglicherweise auch deswegen, weil die beiden Fahrzeuge aus dem fahrenden Verkehr angehalten worden sind.
Ich hatte viel Zeit, mir das „Spektakel“ anzuschauen und mir meine Gedanken dazu zu machen, denn immerhin ging es ja auch weiterhin im Schneckentempo voran – und zwar exakt bis zu dem Punkt, an dem ich diese Fahrzeuge passiert hatte – dann floss der Verkehr wieder ganz normal weiter. Abgesehen natürlich von der Gegen-Fahrtrichtung, hier konnte man dann noch den kilometerlangen Stau sehen.
Leute, mal ganz ehrlich: wie #!@Z/|##! muss man eigentlich sein, dass ein Fahrzeug mit Blaulicht auf der Gegenfahrbahn ausreicht, um seine eigene Geschwindigkeit drastisch zu verringern, damit sich und Andere zu gefährden und den Vehrkehrsfluss zu behindern, nur um glotzen zu können?

Warum eigentlich…

… baut man eine Ölbohrinsel und verschwendet offenbar keinen Gedanken daran, was passiert, wenn die Verbindung zwischen Plattform und Bohrloch abreißt?
Die viel zitierte Abdichtglocke hätte doch schon längst irgendwo stationiert sein können.

Die Kommunen fangen auch nicht erst an, Löschfahrzeuge herzustellen, wenn es brennt…

Bye bye, Netscape Navigator

Es begab sich etwa im Jahr 1998. Windows war noch toll, Videos im Internet selten und ISDN die schnellste Möglichkeit, Daten per DFÜ zu übertragen.
Ich fing an, die Weiten des Internets zu erkunden. Schon bald fiel die Entscheidung gegen Outlook und den Internet Explorer, hin zu Netscape Naviagor und damit später zum Netscape Communicator. Der Rest ist Geschichte: bishin zum Netscape Navigator 4.75 ging es, dann kam auch irgendwann Linux. Irgendwann kam dann der Umstieg zu Mozilla, sowas um die Gegend 0.8 oder so. Im Jahr 2003 kam dann auch der Umstieg auf MacOS. Irgendwann kam dann auch die Aufsplittung des Mozilla-Projekts in einzelne Programme. Viel hat sich seitdem getan, was sich nicht geändert hat ist mein Mailarchiv. Seitdem ich andauernd das Mozilla-Mail-Produkt nutze, haben meine über die Jahre gesammelten Mails auch immer wieder Umzüge mitgemacht.
Nun hält GTD in mein Leben Einzug. Meine derzeit favorisierte Software dafür ist Things. Ähnlich wie ein Konkurrenzprodukt, OmniFocus, bietet auch Things die Möglichkeit, E-Mails als Notiz an ein Todo anzuhängen; diese Integration setzt aber zwingend Apple Mail voraus.
Nun, geliebäugelt habe ich damit immer mal wieder; neben verschiedenen UI-Elementen, die mir bei Mail besser gefallen als bei Thunderbird, überzeugt mich bei Mail auch die Arbeitsgeschwindigkeit.
Sodenn, mach’s gut, Thunderbird, die Zeit mit dir war schön!