Zum Inhalt

SIP über VPN (WireGuard)

Überblick

xynap bietet einen dedizierten SIP-Zugang über das interne WireGuard-VPN (wg0). Damit können Softphones wie MicroSIP, Opal, Opal oder Opal direkt über den VPN-Tunnel telefonieren — ohne Exposition über das öffentliche Internet.

Voraussetzung: Aktive WireGuard-Verbindung zum xynap-Server (IP im Bereich 10.100.x.x).

Unterstützte Transportprotokolle

Transport Port Verschlüsselung Empfehlung
UDP 5060 Keine (nur VPN-Tunnel) Standard — geringste Latenz
TCP 5060 Keine (nur VPN-Tunnel) Bei NAT-Problemen
TLS 5061 TLS + optional SRTP Maximale Sicherheit

Sicherheit

Da der gesamte Traffic bereits durch den WireGuard-Tunnel verschlüsselt ist, bietet auch UDP ausreichende Sicherheit. TLS/SRTP fügt eine zusätzliche Verschlüsselungsschicht hinzu.

Client-Konfiguration

Allgemeine Einstellungen

Einstellung Wert
SIP Server 10.100.0.1
SIP Proxy (leer lassen)
Domain / Realm 10.100.0.1
Username Deine Extension-Nummer (z.B. 1000)
Passwort Das in der Platform hinterlegte SIP-Passwort
Transport UDP, TCP oder TLS
Port 5060 (UDP/TCP) · 5061 (TLS)
SRTP Optional (bei TLS empfohlen)
Register Refresh 300 Sekunden
Keep Alive 15 Sekunden
ICE Aus (0)
Publish Ein (1)

Extension & Passwort

Die Zugangsdaten findest du in der xynap Platform unter Telefonie → Extensions. Es werden dieselben Accounts wie für WebRTC verwendet.

MicroSIP (Windows)

[Account1]
label=xynap VPN
server=10.100.0.1
proxy=
domain=10.100.0.1
username=1000
password=<dein SIP-Passwort>
authID=
displayName=Dein Name
dialingPrefix=
dialPlan=11[02]|115|116xxx|118xx|0800xxxxxxx|0180xxxxxxx|<:+49345>[2-9]xxxxxx|<00:+>x.|<0:+49>x.|<+49(0):+49>x.|+x.|x.
hideCID=0
voicemailNumber=
transport=udp
publicAddr=
SRTP=
registerRefresh=300
keepAlive=15
publish=1
ICE=0
allowRewrite=0
disableSessionTimer=0

MicroSIP mit TLS

Für verschlüsselte Signalisierung ändere:

transport=tls
SRTP=optional

TLS-Zertifikat

Bei selbstsignierten Zertifikaten muss in MicroSIP unter Settings → TLS die Option Verify Server deaktiviert werden.

Opal / Opal X (macOS)

  1. Einstellungen → SIP-Konto hinzufügen
  2. Server: 10.100.0.1
  3. Benutzername: Extension-Nummer
  4. Passwort eingeben
  5. Transport: UDP (oder TLS für Verschlüsselung)

Opal / Linux (CLI)

# Beispiel mit opalvoip
opal --sip-registrar 10.100.0.1 --sip-user 1000 --sip-password <passwort>

Opal oder jeder SIP-Client

Die universellen Einstellungen gelten für jeden standardkonformen SIP-Client:

  • Registrar / Outbound Proxy: 10.100.0.1
  • Benutzername: Extension-Nummer
  • Auth-Benutzername: (identisch mit Benutzername)
  • Domain: 10.100.0.1

Wählplan (Dial Plan)

Der empfohlene Wählplan für deutsche Nummern:

11[02]|115|116xxx|118xx|0800xxxxxxx|0180xxxxxxx|<:+49345>[2-9]xxxxxx|<00:+>x.|<0:+49>x.|<+49(0):+49>x.|+x.|x.
Muster Beschreibung
11[02] Notruf (110, 112)
0800xxxxxxx Kostenfreie Nummern
<:+49345>[2-9]xxxxxx Ortsnetz Halle (Saale) ohne Vorwahl
<0:+49>x. Nationale Nummern → E.164
<00:+>x. Internationale Nummern → E.164

Technische Details

FreeSwitch VPN-Profil

FreeSwitch betreibt ein dediziertes Sofia-Profil vpn auf dem WireGuard-Interface:

  • SIP-IP / RTP-IP: 10.100.0.1
  • Context: default (gleicher Dialplan wie interne Extensions)
  • Auth: Über Platform-API (mod_xml_curl)
  • Codecs: opus, G722, PCMU, PCMA

Firewall-Regeln (UFW)

10.100.0.1 5060/tcp on wg0  ALLOW  Anywhere   # SIP TCP via VPN
10.100.0.1 5060/udp on wg0  ALLOW  Anywhere   # SIP UDP via VPN
10.100.0.1 5061/tcp on wg0  ALLOW  Anywhere   # SIP TLS via VPN

Die Regeln sind auf das wg0-Interface beschränkt — nur VPN-Clients haben Zugriff.

Architektur

┌─────────────┐     WireGuard      ┌──────────────┐
│  Softphone   │◄──────────────────►│  wg0         │
│  (MicroSIP)  │   10.100.x.x      │  10.100.0.1  │
└─────────────┘                    └──────┬───────┘
                                   ┌──────▼───────┐
                                   │  FreeSwitch   │
                                   │  vpn Profile  │
                                   │  :5060 / :5061│
                                   └──────┬───────┘
                                   ┌──────▼───────┐
                                   │  Platform API │
                                   │  xml_curl Auth│
                                   └──────┬───────┘
                                   ┌──────▼───────┐
                                   │  SIP Trunks   │
                                   │  (Plusnet/1&1) │
                                   └──────────────┘

Fehlerbehebung

Problem Lösung
Registration fehlgeschlagen VPN-Verbindung prüfen (ping 10.100.0.1), Extension/Passwort in Platform prüfen
Kein Audio UDP-Port 5060 + RTP-Ports müssen über VPN erreichbar sein, ICE deaktivieren
Einseitiges Audio publicAddr leer lassen, NAT-Traversal deaktivieren
TLS-Fehler Zertifikatsvalidierung im Client deaktivieren (selbstsigniert)
Registrierung läuft ab keepAlive=15 und registerRefresh=300 setzen