Professionelle Enterprise-Grade VoIP Telefonie mit Home-Office und Mobiltelefon Support (Kostenlos, Open Source)

Die Telefonie hat sich seit meinem Start mit der Umstellung auf Voice over IP (VoIP) in den 90er Jahren noch weiter verändert. VoIP Telefonanlagen haben ältere ISDN und Analog Telefonie mittlerweile mehr oder weniger komplett abgelöst. Asterisk, ein Open Source VoIP Server ist dabei klar als Nummer 1 zu nennen. Asterisk hat Standards gesetzt und und wird als Telefonanlage, VoIP Gateway und Konferenzserver von KMU’s, Enterprises, Call Center, Carrier und Regierungen weltweit verwendet.

Bereits seit 1999 werden von meiner CTS GMBH (https://cts-solutions.at) für Kunden jeder Größe VoIP Telefonanlagen eingerichtet. Viele auch Länder  und Kontinent übergreifend, mit mehrfacher Verschlüsselung um die Telefonie gegen jegliches Abhören abzusichern. Gleichzeitig sind dadurch alle Konzerninternen Gespräche über Internet kostenlos und Least-Cost Routing kann einfach eingerichtet werden.

Gerade durch die Corona Pandemie wurden Kunden gezwungen zusätzliche innovative Anforderungen einzurichten und damit die volle Handlungsfähigkeit während der Pandemie zu erhalten. Wir haben bereits 2019 die letzte Asterisk Installation, welche seit 2006 über 13 Jahre hinweg immer sauber upgedatet wurde, durch ein neues Setup mit der FreePBX Lösung erneuert. Dadurch konnten wir alle notwendigen Features ohne Umstellung einrichten.

Zu den Anforderungen gehören:

  • Sichere, verschlüsselte Telefonie im Home Office ohne den VoIP Server direkt mit dem Internet zu verbinden
  • Sichere, verschlüsselte Telefonie auf mobilen Endgeräte (Smartphones, Tablets, Laptops) ohne den VoIP Server direkt mit dem Internet zu verbinden
  • Multi Device fähigkeit von Nebenstellen, d.h. ein Mitarbeiter kann Bürotelefon, Laptop und Smartphone gleichzeitig Online haben und diese verwenden. Damit entfallen alle schwerer wartbaren Follow-Me und Ring Group Lösungen
  • Volle Absicherung des VoIP Servers durch VPN; damit auch gleichzeitig volle Verschlüsselung der Telefonie. Alle Konzerninternen Gespräche weltweit sind damit nicht mehr abhörbar und sicher vor Dritten
  • Einfache Wechsel des Telefonproviders um Kosteneinsparungen bei der Telefonie einfach und ohne Änderung der internen Infrastruktur nutzen zu können.

Der Aufbau der vollkommen Lizenzfreien Open Source Lösung besteht aus folgenden Komponenten:

PfSense Firewalls (Bare Install oder Virtualisiert mit Proxmox (FOSS) oder VMWare).

Die PfSense Firewall deckt alle Bedürfnisse von KMU und Enterprise im Bereich Firewall, VPN, sowie auch ausfallsicheren (HA) Setups mit mehreren PfSensen ab. Die PfSense Lösung hat mit der OpenVPN Lösung eine von Millionen verwendete, extrem sichere, VPN Lösung integriert. Alle Einstellungen sind einfach über das Webinterface durchzuführen. Es werden Net-to-Net Verbindungen genauso unterstützt, wie Linux Mac, Windows, Android und IOS basierte Endgeräte. Damit es es möglich die volle Funktionalität durch Zertifikate und Passwörter abzusichern, ohne interne Server, bzw. gefährliche Ports (Einfallstüren am Server) mit dem Internet direkt zu verbinden.

Asterisk / FreePBX Setup.

Wir verwenden in unserem Setup die FreePBX Lösung, welche als ISO einfach downloadbar ist. Das Setup ist erdenklich einfach und kann direkt auf Hardware, oder auch virtualisiert durchgeführt werden. FreePBX/Asterisk unterstützen extrem viele Features, welche über das Web Interface eingerichtet werden können. Der Server sollte hinter eine Firewall installiert werden. Dadurch ergeben sich, z.B. gegenüber Cloud.Telefonanlagen, massive Vorteile in der Kommunikation, Sicherheit und reduzierten Bandbreite. Bei Ausfall des Telefonproviders funktioniert immer noch die komplette Konzerninterne Telefonie und ein Wechsel des Telefonproviders, meist bei Kosteneinsparungen, ist extrem einfach durchführbar.

Als Endgeräte werden mehr und mehr Softphones eingerichtet um flexibler agieren zu können. Trotzdem muss am Arbeitsplatz ein Telefon mit Features, welche von einem Softphone nicht immer perfekt unterstützt werden, installiert sein. Großflächige LED Anzeigen für Vermittlungen und ähnliches sind nicht unbedingt die Prioritäten von Softphones. Wir verwenden in unseren Setups Telefon Hardware verschiedener Hersteller und als Softphone bevorzugt das Open Source Telefon LinPhone, welches alle Endgeräte unter Windows, Linux. MaC, IOS und Android sauberst abdeckt.

Als erstes wird die PfSense Firewall installiert und jeglicher Zugang zum LAN von außen komplett verboten. Danach wird ein FreePBX Asterisk Server eingerichtet und mit dem Telefonprovider über einen SIP Trunk verbunden. Dazu sind, um den Asterisk VoIP Server dementsprechend zu schützen, in der Firewall Regeln notwendig, welche den Datenverkehr auf die IP des Telefonproviders einschränken müssen. Auf die Einrichtung von Ring Groups, Queus und Nebenstellen im Asterisk gehe ich hier nicht tiefer ein, eventuell wird das einmal ein eigener Blog Eintrag.

PROFITIPP Multi Device: Ganz wichtig ist es, den PJSIP Treiber zu aktivieren und den CHAN_SIP Treiber bei Neuinstallationen am besten zu deaktivieren. Der PJSIP Treiber kann, pro Extension, ein Max-Connections Setting, welches die maximale Anzahl an Geräte, welche sich auf diese Nebenstellen anmelden, angibt.

Auf den Endgeräten installiert man LinPhone aus den jeweiligen Quellen. Die Einstellungen sind selbsterklärend und es können auch verschiedene Ausgabegeräte für Sprache und Klingelton gesetzt werden. Da wir keine Freunde von Videotelefonie sind, wird darauf hier nicht eingegangen, es sei aber festgehalten, dass die Kombination LinPhone und Asterisk auch das unterstützt.

PC’s und Endgeräte im LAN können den Asterisk VoIP Server damit sofort erreichen und die Telefonie funktioniert sofort.

PROFITIPP Terminal Server Info: Softphones benötigen Headsets (meist USB), Klingelton über Lautsprecher und durchaus intensive Real-Time UDP, TCP und TLS Protokolle für die Sprache. Es ist nicht empfehlenswert Softphones auf Windows und Linux Terminal Servern zu betreiben. Abgesehen davon, dass der Klingelton am meist virtuellem Server im Systemraum erfolgen würde, ist das Durchschleifen von vielen USB Endgeräte im Normalfall nicht unbedingt stabil. Zusätzlich kann es aufgrund der Time-Slice, welche von einem Terminalserver den Usern reihum zugeordnet wird, zu abgehackten Gesprächen kommen. Hier empfiehlt es sich einen PC als Basis für den RDP Connect zu verwenden und das Softphone auf diesem PC einzurichten.

Zur Absicherung der mobilen Endgeräte wird auf der PfSense ein OpenVPN Server eingerichtet. Dieser sollte mit Zertifikaten, TLS Key und User plus Passwort abgesichert sein. Die Endgeräte können sich dadurch dauerhaft mit dem VPN Verbinden und dann verschlüsselt wie im Büro auch, telefonieren. OpenVPN kann dauerhaft im Hintergrund am mobilen Endgerät laufen, damit ist die Verbindung immer aktiv und Anrufe können eingehen.

PROFITIPP VPN: Auf der PfSense sollten am OpenVPN Interface Regeln eingestellt werden, welche den VPN Clients NUR den Zugriff zum Asterisk VoIP Server und dort zu den SIP und RTP Ports 5060, sowie 10000-20000 erlauben. Damit kann, sollte das Endgerät mit Malware behaftet sein, im restlichen Netz nichts passieren.

PROFITIPP VPN (2): Auf der PfSense und am Endgerät sollte keinesfalls das VPN als „Default Gateway” verwendet werden. Das Routing in das VPN sollte zwar die notwendigen Netze enthalten, jedoch sollte das „Default Gateway” am Endgerät unverändert bleiben. Wenn der OpenVPN Client eine Einschränkung der Verwndung auf App’s, welche das VPN verwenden, zulässt, dann die Verwendung auf das Softphone einschränken.

So ist es möglich, ohne sich darum zu kümmern, welches Endgerät man gerade in Reichweite hat, immer erreichbar zu sein und auch alle Gespräche, anstatt der Übermittlung der Mobiltelefonnummer, mit der Telefonnummer am Asterisk Voip Server zu führen. Ich habe aktuell 3 Geräte auf meiner Nebenstellen und alle Anforderungen sind perfekt abgedeckt. Eingehend läuten alle, ausgehend kann von mehreren auch gleichzeitig telefoniert werden.

Extra Profi Setup für IT Spezialisten (Easer Example)

Normale Anwender können hier jetzt zu den Links am Ende scrollen. Für IT Profis kommt hier jetzt aber das Sahnehäubchen des Setups, welches nur mit einem entsprechenden Basiswissen verstanden wird.

Es wurde ja im Blog schon ein über 3 Jahre entwickeltes Setup für sichere, die Privatphäre respektierende Smartphones und Tablets vorgestellt (https://kmj.at/Am%20Android%20Tablet%20oder%20Smartphone%20mit%20LineageOS%20f%C3%BCr%20Sicherheit%20und%20Privatsph%C3%A4re%20sorgen%20%28Teil%206%29/).

Ohne hier weiter darauf einzugehen, sei aber festgehalten, dass es bei diesem Setup für OpenVPN rein mit dem Custom Script möglich ist, den Asterisk VoIP zu erreichen und keine Extra Berechtigungen für ein- oder ausgehenden Internetverkehr gesetzt werden müssen.

Es muss aber die Extra Steuerung für das VPN in der AFwall+ aktiviert werden und danach muss LinPhone Zugriff auf das VPN erlaubt werden. (Häkchen nur beim VPN!)

IT Spezialisten bewegen sich in vielfältigen Netzwerken und eines der Dinge, welche einen am meisten aufregen, sind Routinetätigkeiten, welche automatisierbar wären. Passend dazu wurde Easer gefunden, welcher ein Open Source Automatisierungstool für Android ist. Die Installation kann, wie immer bevorzugt, über F-Droid erfolgen.

Easer hat sogar für langjährige Spezialisten eine Lernkurve, aber danach ist das Tool mehr als perfekt.

Hier ein Beispiel, für eine der Anforderungen dieses Projekts:

Automatisches Umschalten des OpenVPN basierend auf dem, verbundenen Netzwerk

Annahme: Der IT Spezialist bewegt sich in einem LAN, welches den VoIP Server direkt erreicht und in anderen Netzen, welche das VPN für den Zugang benötigen. Hauptproblem dieser Routinetätigkeit, das Aktivieren und Deaktivieren des VPN wird natürlich oft vergessen und damit gehen Anrufe verloren.

Aufgrund der Internationalität sind die Details in Englisch (Die Sprache kann auch im Easer auf Englisch umgestellt werden):

Open settings

– enable ‚Use root features’

– Check ‚Activated skills’, where the minimum is: Wi-Fi, Connectivity Type, Wi-Fi Connection

Open Data

– Create Condition -> Choose a Condition – > WiFi Connection

Condition Title: At-Home

Match SSID: Your Home SSID

– Create Event -> Choose an Event -> Connection Type

Event Title: HaveConnection

Selected Types: Wi-Fi and Mobile

—————————————

READ UPDATES!

Create Profile:
From plus(+) icon select ‚Launch App’

Profile Title: OpenVPN Connect
APP: de.blinkt.openvpn
Class Name: de.blinkt.openvpn.api.ConnectVPN
Extras:
Key: de.blinkt.openvpn.api.profileName
Value: (e.g. Pihole)

UPDATE

There was problems with the above one. So we changed to

From plus(+) icon select ‚Run Command’

Profile Title: OpenVPN Connect
command:
am start -a android.intent.action.MAIN -n de.blinkt.openvpn/.LaunchVPN -e de.blinkt.openvpn.shortcutProfileName PROFILENAME


– Create Profile -> + -> Launch App

Profile Title: OpenVPN Stop

APP: de.blinkt.openvpn

Class Name: de.blinkt.openvpn.api.DisconnectVPN

Am besten mit „Trigger this Profile” testen.

UPDATE

There was problems with the above one. So we changed to

From plus(+) icon select ‚Run Command’

Profile Title: OpenVPN Stop
command: am start –user 0 -n de.blinkt.openvpn/.api.DisconnectVPN


– Create Pivot

Script Title: Online

Profile:

Event: HaveConnection

– Online->Add child

Script title: Home WLAN

Profile: OpenVPN Stop

Condition: At-Home

Reverse Scenario: disabled

– Online->Add child

Script title: Insecure Network

Profile: OpenVPN Start

Condition: At-Home

Reverse Scenario: enabled

– Finally

Start Rules

Wenn alles richtig gemacht wurde dann startet sich OpenVPN automatisch, sobald das Home WLAN nicht mehr verfügbar ist und deaktiviert sich bei der Rückkehr. LinPhone meldet sich sofort nach dem Wechsel neu an und somit ist die Funktionalität, ohne jeden manuellen Eingriff immer gegeben. Eine wirklich coole Lösung!

Enterprise Support and Setup:

Einträge auf CPV.Agency

Post in Deutsch:

Post in English: