VOIP- und Unified-Communications-Hosting auf dedizierten Servern

Einblicke in VOIP- und Unified-Communications-Hosting auf dedizierten Servern

Die monatlichen Gebühren pro Arbeitsplatz für UCaaS-Plattformen summieren sich schnell. Ein Unternehmen mit 50 Mitarbeitern, das 30 bis 50 Dollar pro Arbeitsplatz für einen Geschäftstelefoniedienst zahlt, gibt jährlich 18.000 bis 30.000 Dollar für Kommunikationsinfrastruktur aus – eine selbst gehostete Asterisk/FreePBX-Lösung auf einem dedizierten Server ersetzt diese jedoch zu einem Bruchteil der Kosten. Der Nachteil dabei ist die Komplexität der Konfiguration und die Verantwortung, das System am Laufen zu halten. Für…

Warum dedizierte Hardware statt Cloud für VoIP?

Die VoIP-Qualität reagiert empfindlicher auf Netzwerk-Jitter und Latenz als Webanwendungen. Eine Schwankung von 50 ms bei einer Webanfrage verlängert die Ladezeit der Seite um 50 ms – das ist zwar spürbar, aber nicht katastrophal. Eine Schwankung von 50 ms während eines aktiven Telefonats ist als Klicken oder Aussetzer zu hören. Eine Schwankung von 200 ms führt dazu, dass Wörter komplett ausfallen.

Cloud-Instanzen bringen zwei Ursachen für Jitter mit sich, die bei dedizierten Servern nicht auftreten: Schwankungen bei der Hypervisor-Planung (die VM wartet auf CPU-Zeit, wenn der physische Host ausgelastet ist) und Netzwerküberlastung durch „Noisy Neighbors“. Gerade wegen dieser Faktoren empfiehlt die Asterisk-Dokumentation dedizierte Hardware für Produktionsumgebungen.

Ein dedizierter Server mit einer auf 10 Gbit/s erweiterbaren Verbindung, wie er im Angebot an dedizierten ServernInMotion Hosting enthalten ist, bietet die für eine hohe Gesprächsqualität erforderliche Netzwerkumgebung mit geringem Jitter und niedriger Latenz. Die „Essential“-Variante (64 GB RAM, Intel-basierter Prozessor) bewältigt problemlos mehr als 500 gleichzeitige SIP-Anrufe; die „Extreme“-Variante mit AMD EPYC bewältigt mehrere Tausend.

Asterisk und FreePBX: Der Stack im Überblick

Asterisk ist die Open-Source-Telefonie-Engine. Sie übernimmt die Anrufweiterleitung, die SIP-Signalisierung, die Medienverarbeitung und die Integration mit externen Anbietern. Die Konfiguration erfolgt über Textdateien und erfordert umfangreiches technisches Wissen, um das System von Grund auf neu einzurichten.

FreePBX ist eine webbasierte Verwaltungsoberfläche, die auf Asterisk aufbaut. Sie bietet eine grafische Benutzeroberfläche zur Konfiguration von Nebenstellen, IVR-Menüs, Anrufwarteschlangen, Voicemail und SIP-Trunk-Verbindungen, ohne dass die Asterisk-Konfigurationsdateien direkt bearbeitet werden müssen. Die meisten selbst gehosteten VoIP-Installationen nutzen FreePBX als Verwaltungsschicht über Asterisk.

Distributionen, die beides enthalten:

  • FreePBX-Distribution (basiert auf CentOS, gepflegt von Sangoma)
  • PBX im Handumdrehen
  • Die von VoIP.ms empfohlene Infrastruktur

Für eine Neuinstallation auf den dedizierten Servern von InMotion ist die FreePBX-Distro-ISO der schnellste Weg zu einem funktionsfähigen System – sie installiert Asterisk, FreePBX und alle Abhängigkeiten in einem einzigen Vorgang.

Anforderungen an die Server-Hardware

Die Hardwareanforderungen von FreePBX richten sich nach dem Volumen der gleichzeitigen Anrufe und der Wahl der Codecs:

Bis zu 504GB2+ KerneG.711 (keine Transkodierung)
50–2008GB4+ KerneG.711 oder G.729
200–50016GB8+ KerneJeder Codec
500–1.00032GB12+ KerneJeder Codec
1,000+64 GB+16+ KerneJeder Codec mit Transkodierung

Die Wahl des Codecs hat erheblichen Einfluss auf die CPU-Auslastung. G.711 (ulaw/alaw) überträgt Audio ohne Transkodierung – es handelt sich um rohes PCM-Audio mit 64 kbit/s pro Kanal. G.729 ist die komprimierte Alternative mit 8 kbit/s, die bei jedem Anruf eine CPU-Transkodierung erfordert. Bei 100 gleichzeitigen G.729-Anrufen beansprucht allein die Transkodierung auf einem modernen Prozessor 2 bis 4 CPU-Kerne.

Für die meisten KMU-Anwendungen (unter 200 gleichzeitige Anrufe) bietet der Essential-Server von InMotion (99,99 $/Monat) reichlich Leistungsreserven. Die 64 GB RAM übertreffen die VoIP-Anforderungen bei weitem; der Intel-Prozessor bewältigt die Transcodierungslast problemlos und hat noch Rechenleistung für andere Dienste übrig.

FreePBX-Installation unter AlmaLinux

AlmaLinux 8 ist ab 2025 das empfohlene Betriebssystem für FreePBX-Produktionsumgebungen, nachdem CentOS 8 nicht mehr unterstützt wird.

# Update base system

dnf update -y

# Install dependencies

dnf install -y wget git

# Download and run FreePBX install script

wget https://github.com/FreePBX/sng_freepbx_debian_install/releases/download/latest/sangoma_freepbx_install.sh

# Review the script before executing

bash sangoma_freepbx_install.sh

# The script installs Asterisk, FreePBX, and web UI

# Access FreePBX admin at http://your-server-ip/admin

Nach der Installation übernimmt die FreePBX-Admin-Oberfläche die restliche Konfiguration: das Festlegen des Admin-Passworts, das Einrichten von SIP-Trunks, das Anlegen von Nebenstellen und das Einrichten des IVR.

Konfiguration des SIP-Trunks

Ein SIP-Trunk verbindet deinen Asterisk-Server mit dem PSTN (Public Switched Telephone Network) – dem öffentlichen Telefonnetz. Kommerzielle SIP-Trunk-Anbieter berechnen die Kosten pro Minute oder bieten Flatrate-Tarife an.

Empfohlene SIP-Trunk-Anbieter für dedizierte Server-Bereitstellungen:

  • Twilio Elastic SIP Trunking – minutengenaue Abrechnung, keine monatlichen Mindestumsätze, hervorragende Dokumentation
  • VoIP.ms – Kanadischer Anbieter mit US-Anlandung, Flatrate- und Minutenpreismodellen
  • Telnyx – günstige Preise und eine gute Entwicklerdokumentation

In FreePBX werden Trunks unter „Connectivity > Trunks“ konfiguriert. Eine typische SIP-Trunk-Konfiguration:

Trunk Name: Primary_SIP_Trunk

Outbound CallerID: Your DID number

PEER Details:

host=sip.provider.com

type=peer

qualify=yes

nat=force_rport,comedia

dtmfmode=rfc2833

context=from-trunk

Netzwerk- und Firewall-Konfiguration für VoIP

VOIP erfordert eine spezielle Firewall-Konfiguration. Die SIP-Signalisierung nutzt den UDP/TCP-Port 5060; für die Medienübertragung (RTP-Audio) wird ein Bereich von UDP-Ports verwendet:

# SIP signaling

nft add rule inet filter input udp dport 5060 accept

nft add rule inet filter input tcp dport 5060 accept

# RTP media ports (FreePBX default range)

nft add rule inet filter input udp dport 10000-20000 accept

# FreePBX web interface (restrict to admin IPs)

nft add rule inet filter input ip saddr 203.0.113.0/32 tcp dport 80 accept

nft add rule inet filter input ip saddr 203.0.113.0/32 tcp dport 443 accept

Fail2Ban ist für VoIP-Server unverzichtbar. Der SIP-Port 5060 wird ständig von automatisierten Tools gescannt, die versuchen, Nebenstellen zu registrieren und auf deine Kosten Anrufe zu tätigen. Fail2Ban sperrt in Verbindung mit dem Asterisk-Jail IP-Adressen nach fehlgeschlagenen Registrierungsversuchen:

# /etc/fail2ban/jail.local

[asterisk]

enabled = true

port = 5060

filter = asterisk

logpath = /var/log/asterisk/security

maxretry = 3

bantime = 3600

Ohne Fail2Ban führen kompromittierte Anmeldedaten innerhalb weniger Stunden zu betrügerischen Auslandsgesprächen im Wert von Tausenden von Dollar. Das ist keine hypothetische Annahme – SIP-Gebührenbetrug ist einer der häufigsten und kostspieligsten Vorfälle bei unzureichend gesicherten VoIP-Installationen.

Optimierung der Gesprächsqualität

QoS-Kennzeichnung (Quality of Service): Kennzeichne VoIP-Pakete mit DSCP EF (Expedited Forwarding), damit Netzwerkgeräte ihnen Vorrang vor dem normalen Datenverkehr einräumen:

# Mark outbound RTP packets with DSCP EF (46)

nft add rule inet mangle output ip protocol udp udp dport 10000-20000 ip dscp set ef

nft add rule inet mangle output ip protocol udp udp dport 5060 ip dscp set ef

Auflösung des Kernel-Timers: Die VOIP-Zeitsteuerung reagiert empfindlich auf Verzögerungen bei der Kernel-Scheduling-Verarbeitung. Stelle auf stark ausgelasteten Servern in der Kernel-Konfiguration CONFIG_HZ=1000 ein, um die Scheduling-Latenz zu verringern. Bei den meisten Konfigurationen von dedizierten Servern ist die Standardeinstellung bereits angemessen; überprüfe dies mit dem Befehl `grep CONFIG_HZ /boot/config-$(uname -r)`.

Deaktiviere den Swap für RTP-Puffer. Das Auslagern von Speicher während der aktiven Anrufverarbeitung führt zu Latenzspitzen. Bei einem InMotion Essential-Server mit 64 GB RAM, auf dem eine überschaubare VoIP-Umgebung läuft, sollte der Swap niemals genutzt werden. Überprüfe dies mit `free -m` und setze als vorbeugende Maßnahme `vm.swappiness=1` in `/etc/sysctl.conf`.

Überwachung der Gesprächsqualität

Asterisk protokolliert Anrufdatensätze (CDRs), die Qualitätskennzahlen nach dem Anruf liefern. Die Variable RTPAUDIOQOS im CDR erfasst Jitter, Paketverlust und Round-Trip-Zeit pro Anruf. Achte auf:

  • Jitter über 30 ms: Hörbare Verschlechterung der Audioqualität
  • Paketverlust über 1 %: Ausgefallene Wörter, abgehackter Ton
  • Round-Trip-Zeit über 150 ms: Spürbare Verzögerung im Gespräch

Die Asterisk-Dokumentation zu Echtzeit-CDR behandelt die Speicherung von CDR-Daten in MySQL zu Analysezwecken. Bei Produktivumgebungen ermöglicht die Speicherung von CDR-Daten eine Trendanalyse, mit deren Hilfe festgestellt werden kann, ob Probleme bei der Gesprächsqualität mit der Tageszeit (Serverauslastung), bestimmten SIP-Trunks oder bestimmten geografischen Routen zusammenhängen.

Der „Premier Care“-Service von InMotion umfasst Support rund um die Uhr. Bei VoIP-Implementierungen, bei denen Probleme mit der Anrufqualität den Geschäftsbetrieb beeinträchtigen könnten, lohnt sich der zusätzliche Aufwand für den Zugang zu fachkundigem Support bei Problemen auf Serverebene – wie Netzwerkproblemen, Ressourcenkonflikten oder Hardwarefehlern.

Weiterführende Literatur: Bewährte Verfahren zur Server-Absicherung | Optimierung der Netzwerklatenz für dedizierte Server

Diesen Artikel teilen

Eine Antwort hinterlassen

Deine E-Mail Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert