27. September 2021 (Nachtrag vom 29. 9. 21)
Der kleine SIP-Server auf der Basis eines Raspberry Pi und Asterisk ist sogar in der Lage zusätzlich Video-Telefonate zu bewältigen. Dazu sind nur wenige Zeilen in der sip.conf hinzuzufügen. Ein Video-Telefonat belastet die CPU des Raspberry Pi 3 B+ mit etwa 5 bis 6%. Getestet habe ich die Konfiguration wieder auf Asterisk 16.2.1. Die Bildqualität ist je nach gewählter Bandbreite und Kamera hervorragend und übertrifft die der mir bekannten Messenger-Dienste. Abgesehen davon möchte ich nicht mehr von bestimmten externen Anbietern abhängig sein, von denen ich nicht weiß, wie sie meine Daten verwerten.
Die vollständige Beschreibung meines Asterisk-SIP-Servers befindet sich auf https://elektronikbasteln.pl7.de/eine-einfache-asterisk-konfiguration-fuer-einen-sip-server-als-telefonanlage.
Die Installation von Asterisk auf einem Raspberry Pi ist unter https://elektronikbasteln.pl7.de/asterisk-und-fail2ban-auf-dem-raspberry-pi beschrieben.
Sip.conf für Video-Telefonate ergänzen: Um auf Asterisk die Videotelefonie einzurichten, müssen wir nur in der sip.conf ein paar weitere Zeilen eintragen und mehr nicht. Voraussetzung ist, dass die normale Audio-Telefonie bereits einwandfrei klappt:
; Ausschnitt aus der sip.conf für Video-Support ; getestet auf Asterisk 16.2.1 am 24.9.21 ; um SIP auf auf Video "scharfzustellen" müssen wir die ; sip.conf um ein paar Einträge [general] ergänzen. ; Alles, was für Video-Telefonie hinzugefügt wurde, ; ist mit NEU kommentiert. ; [general] videosupport=yes ; NEU muss auf yes stehen ; NEU alle Telefon-Accounts können ; NEU Video-Telefonate durchführen, ; NEU falls die Endgeräte dies unterstützen. port=5064 bindport=5064 context=telefone bindaddr=0.0.0.0 allowguest=no ; ; Codecs disallow=all ; ; Audio-Codecs allow=alaw allow=ulaw allow=gsm allow=g722 ; ; Video-Codecs NEU Asterisk nimmt keine Transkodierung der Videoformate vor. ; NEU ähnlich wie bei den Audio-Codecs, müssen wir die Video-Codecs ; NEU eintragen, die verwendet werden dürfen. allow=h264 ; NEU zwingend erforderlich, da die meisten Softphones h264 unterstützen. allow=h261 ; NEU allow=h263 ; NEU allow=h263p ; NEU ; allow=vp8 ; NEU wenn man will ... https://en.wikipedia.org/wiki/VP8 ; ; ****** Type Of Service (TOS) Settings ****** ; empfehlenswert, aber nicht zwingend notwendig ; https://www.voip-info.org/asterisk-sip-tos/ ; http://qosasterisk.blogspot.com/2015/08/setting-tos-in-asterisk.html ; https://www.dialogic.com/webhelp/bordernet2020/2.0.0/webhelp/tossetting.htm tos_sip=cs3 ; Sets TOS for SIP packets. tos_audio=ef ; Sets TOS for RTP audio packets. tos_video=af41 ; Sets TOS for RTP video packets. ; NEU tos_text=af41 ; Sets TOS for RTP text packets. ; NEU, eventuell NEU ; ; und nachfolgend geht es weiter wie gehabt. ;
Die Konfiguration der sip.conf ist wirklich ein Klacks. Der Knackpunkt sind die meist kostenlosen Softphones, welche auch Video unterstützen. Sie müssen richtig konfiguriert werden, damit die Videotelefonie einwandfrei funktioniert
MicroSip: MicroSip ist ein kostenloses Softphone, das ich für die Video-Telefonate unter Windows 10 getestet habe. Es kommt mit einer einfachen und schlanken Oberfläche daher:
Für die Installation unter Windows gehen wir auf https://www.microsip.org/downloads und laden uns von ganz oben das Programm herunter. Wir wählen die linke Version aus, die für Video geeignet ist. Rechts gibt es noch die Lite-Version, die kein Video kann. Die nehmen wir nicht:
Bevor wir nach dem Herunterladen die Installations-Exe-Datei ausführen, müssen wir sicherstellen, dass eine Videokamera bereits erfolgreich installiert und konfiguriert wurde. Diese sollte auch bei der Installation eingesteckt sein, damit sie während der Installation erkannt wird. Bei meinem Notebook war das ganz einfach, da mein Notebook bereits eine korrekt funktionierende Video-Kamera besitzt.
Bei der Installation werden wir aufgefordert die Firewall von Windows verändern zu lassen. Das müssen wir zulassen. Andernfalls klappt der Verbindungsaufbau und die Datenübertragung nicht.
Im nächsten Schritt sind die Account-Daten unter “Konto hinzufügen…” einzutragen:
Fall 1, Rechner außerhalb des eigenen LANS: Befindet sich der Rechner mit dem MicroSip-Softphone außerhalb des LANS, in welchem sich der SIP-Server befindet, sind die geschwärzten Stellen durch die öffentliche IP oder die DynDNS-Adresse des SIP-Servers zu ersetzen. Da der SIP-Port bei meiner Konfiguration 5064 lautet, müssen wir diesen hinter einem Doppelpunkt ebenfalls eintragen. Angenommen die öffentliche IP (public IP) des Asterisk-Servers lautet rein fiktiv 94.288.26.123, dann müssen wir unter SIP-Server, SIP-Proxy und Domain 94.288.26.123:5064 eintragen. Der Rest ist dem Screenshot zu entnehmen. Den Anzeige- und Kontonamen passen wir natürlich individuell an. Unbedingt UDP und Auto auswählen. Ganz wichtig ist, dass “IP-Rückmeldung erlauben” und “ICE” angekreuzt sind. Andernfalls baut sich die Verbindung nicht auf oder es treten nach ein paar Sekunden Abbrüche auf.
Fall 2, Rechner innerhalb des eigenen LANs: In diesem Fall sind die geschwärzten Stellen durch die lokale IP des Asterisk-Servers zu ersetzen und dahinter kommt wieder mit Doppelpunkt eingeleitet der SIP-Port, also im Beispiel 5064. Die “IP-Rückmeldung” habe ich nicht aktiviert.
Video-Einstellungen: Unter Einstellungen lässt sich auf die Video-Übertragung konfigurieren. Nachfolgend der Bildausschnitt für die Video-Konfiguration:
Nach erfolgreicher Installation können wir mit einer videofähigen Gegenstelle ein Videotelefonat führen. Dazu tragen wir die Zielnummer ein und klicken auf dem kleinen Knopf mit dem Kamerasymbol:
Bei der Testverbindung war das Smartphone als Gegenstelle über VPN mit Deutschland verbunden und machte also für die Überbrückung von 60 cm Luftlinie einen Umweg von über 2000 km. Unter Win7 habe ich selbst mit den älteren Versionen von MicoSip die Videofunktion nicht zum laufen gebracht.
MicroSip lässt sich problemlos unter Win 10 installieren. Auf meinem Win 7 gelang es selbst mit älteren Versionen nicht. Ein anderer konnte MicroSip erfolgreich auf Win 7 installieren.
Linux: Für Linux gibt es Linphone, das ebenfalls Video unterstützt. Getestet habe ich es nicht unter Linux. Die Konfiguration soll schwierig sein. Ich kenne noch keinen, der auch die Video-Funktion zum Laufen gebracht hat.
Weitere Smartphones für Videotelefonate über Asterisk: Getestet habe ich bis jetzt Linphone und Sipnetic. Bei Sipnetic ist die Videofunktionalität leider nicht kostenlos.
Linphone: Das Android-Smartphone Linphone konnte ich im zweiten Anlauf erfolgreich testen. Die Oberfläche ist etwas gewöhnungsbedürftig. Dafür sind alle Dienste kostenlos und werbefrei. Man kann zwischen Front- und Rückseitenkamera umschalten. Als Registrar gibt man immer die öffentliche IP bzw. die URL ein. Wenn der SIP-Port von der 5060 abweicht, kommt direkt hinter der IP ein Doppelpunkt und er SIP-Port, z.B. 94.124.10.388:5060. Der Rest der Account-Konfiguration erklärt sich von selbst. Unter “Video” gibt es eine Einstellung (Accepting incoming video requests), die dafür sorgt, dass ausgehende Anrufe als Videotelefonate erkannt werden.
Linphone im eigenen Netzwerk: Linphone für Android zeigt einen interessanten Effekt. Hat man den Asterisk-Account mit der öffentlichen IP des Asterisk-Servers angemeldet, funktioniert normalerweise auch im denjenigen LAN, also in meinem lokalen Netzwerk, in welchem sich der Asterisk-Server befindet.
Doch eines Tages nach dem Rebooten des Routers konnte ich innerhalb meines LANs keine Nummer als Videogespräche anrufen. Auf der Asterisk-Konsole war keine Reaktion zu sehen. Wenn das Smartphone außerhalb des LANs war, funktionierten alle Telefonate einwandfrei. Die Lösung war ungewöhnlich. Linphone deinstallieren, sich über VPN oder auf eine andere Art und Weise außerhalb des eigenen LANs verbinden und dann Linphone ganz normal installieren und konfigurieren. Danach funktionerte alles innerhalb und außerhalb meines LANs einwanfrei.
Die Freude währte nicht lange und die Fehlerbehebung ist auch nicht reproduzierbar. Deshalb habe ich zwei Accounts für dieselbe Nummer angelegt. Der eine Account verwendet die lokale IP, der andere die öffentliche IP des Asterisk-Servers. Das Umschalten zwischen den Accounts ist bei Linphone umständlich. Deshalb habe ich noch Sipnetic auf meinem Smartphone. Doppelt genäht hält besser.
Linphone für Android als Babyphone oder Überwachungskamera: Linphone lässt sich unter “Einstellungen” entsprechend konfigurieren, dass es beim Anruf ein Videotelefonat automatisch annnimmt und die rückwärtige Kamera verwendet. Das Smartphone kann somit für die Videoüberwachung dienen. Damit keine Mobilfunkkosten anfallen, sollte man den Betrieb nur über Wlan erlauben (unter Settings -> Network -> “Use WiFi only” aktivieren).
Nachtrag zum Babyphone oder der Videoüberwachung: Unter https://elektronikbasteln.pl7.de/altes-smartphone-als-ueberwachungskamera-ueber-das-sip-protokoll ist eine noch bessere Einstellung mit dem Video-Codec VP8 beschrieben.
Sipnetic: Bei Sipnetic für Android-Smartphones kommt mir die Bedienung während der Eingewöhnungsphase logischer vor. Leider ist die Videounterstützung eine kostenpflichtige Zusatzfunktion, die etwa 5 Euro kostet und mit PayPal bezahlt werden kann. Die Videotelefonate laufen einwandfrei mit Sipnetic. Eine Möglichkeit zum Umschalten zwischen Front- und Rückseitenkamera habe ich nicht gefunden.
Hingegen läuft es sehr zuverlässsig. Bei Sipnetic ist es egal, ob das Smartphone innerhalb oder außerhalb desjeningen LANs betrieben wird, in dem sich der Asterisk-Server befindet.
Außerdem lassen sich viele Accounts verwalten, die alle gleichzeitig für eingehende Gespräche aktiv sind. Die Auswahl des Accounts für das ausgehende Gespräch ist einfach.
Asterisk-Telefonserver auf einem Raspberry Pi – Installation, Konfiguration, Programmierung, SIP, IAX2, AGI-Skripte, Sicherheit und Tipps zum praktischen Betrieb – 2.11.2022: Diese Seite richtet sich an jene, welche einen Asterisk-Telefon-Server auf einem Raspberry Pi betreiben möchten und später ein kleines Netzwerk aus Asterisk-Servern planen, um ein eigenständiges Telefonnetz aufzubauen. Los geht es mit der Installation von Raspbian und Asterisk auf einem Raspberry Pi und dann nach Lust und Laune immer tiefer in die Programmierung von Asterisk. Die Themen werden laufend erweitert.
Selbstverständlich muss es nicht unbedingt ein Raspberry Pi sein. Andere Linux-Rechner gehen auch. – weiter – |