SIP Softphones über OpenVPN mit der Agfeo Telefonanlage
SIP VoIP mit der Agfeo-Telefonanlage über OpenVPN
Das Home-Office wird immer beliebter. So tauchte die Frage auf, ob man die Agfeo-Telefonanlage auch über OpenVPN nutzen kann. Soviel zuerst: Es geht, aber es gilt einige Dinge zu beachten.
Netzwerk-Diagramm, Übersicht
Es liegt das im folgenden beschriebene Netzwerk zugrunde. OpenVPN läuft nicht auf dem Router, sondern auf dem separaten Univention-Corporate-Server, der auch Fileserver via Samba ist. Der Port 1194 wurde durch die Fritz-Box weitergeleitet. Dieses Setup wurde schon länger ohne Probleme so genutzt und soll nicht umgestellt werden. Im Home-Office wird Windows 10 mit dem OpenVPN-Client genutzt.
Agfeo Telefonanlage
Mit dem Beschreiben der Konfiguration fange ich zuerst bei der Telefonanlage an
- Das Gateway der Telefonanlage ist nicht die Fritz-Box, sondern der Univention Corporate Server mit der IP 10.11.1.10. Dieser routet dann weiter ins Internet oder zurück ins VPN.
- Es wurden neben den ASIP-Intern-Konten für die Agfeo SIP Telefone SIP-Intern-Konten für die Softphones eingerichtet
OpenVPN Server V-SRV-02
Diese Config wurde weitestgehend von Univention via OpenVPN4UCS so erstellt. Es wurden nur einige Kleinigkeiten zum Tuning von Hand geändert, die aber für die Grundfunktion keine Rolle spielen.
- OpenVPN4UCS Konfiguration
- OpenVPN server.conf mit Details
cipher AES-256-CBC
### Constant values
# beginn tuning for win clients
sndbuf 393216
rcvbuf 393216
push "sndbuf 393216"
push "rcvbuf 393216"
tun-mtu 1400
mssfix 1360
# end tuning for win clients
dh /etc/openvpn/dh2048.pem
ca /etc/univention/ssl/ucsCA/CAcert.pem
cert /etc/univention/ssl/v-srv-02/cert.pem
key /etc/univention/ssl/v-srv-02/private.key
crl-verify /etc/openvpn/crl.pem
ifconfig-pool-persist ipp.txt
route 10.11.1.0 255.255.255.0
push "route 10.11.1.0 255.255.255.0"
push "dhcp-option DNS 10.11.1.10"
push "dhcp-option DOMAIN v.intranet"
keepalive 10 120
comp-lzo
persist-key
persist-tun
verb 1
mute 5
status /var/log/openvpn/openvpn-status.log
management /var/run/management-udp unix
dev tun
topology subnet
### Values which can be changed through UDM
port 1194
server 10.8.0.0 255.255.255.0
# no IPv6 wanted by me
#server-ipv6 fdda:354e:65b6:b242::/64
proto udp
duplicate-cn
plugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so /etc/pam.d/vpncheckpass
- Routing und NAT auf V-SRV-02 wegen OpenVPN - auch hier Standard
root@v-srv-02:~# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.11.1.1 0.0.0.0 UG 0 0 0 ens192
10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
10.11.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens192
root@v-srv-02:~# iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DOCKER all -- anywhere anywhere ADDRTYPE match dst-type LOCAL
[...]
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 10.8.0.0/24 anywhere
[...]
OpenVPN auf dem Client
- Es wird eine Konfiguration basierend auf den OpenVPN4UCS-Ready-Paketen verwendet. Auch das hier ist erstmal völlig unspannend. Es müssen nur die Routen kontrolliert werden.
SIP mit Softphone auf dem Client
- Jetzt wird es schon interessanter. Welches Softphone funktioniert?
Interessanterweise gibt es nur wenige Spoftphones für Windows, die völlig ohne Ballast installierbar sind. Dazu gehört Microsip und Zoiper Classic. Leider funktioniert Microsip nicht via OpenVPN, in eine Richtung hört man dann nichts, der RTP-Stream verschwindet im nichts. So bleibt im Moment nur Zoiper_Free_2.43_Installer.exe Hier hätte ich gerne eine andere Lösung - vor allem würde mich interessieren, warum Microsip nicht via VPN geht. Dazu muss ich aber noch weiterforschen.
- Einstellungen von Zoiper Classic am Client
Alles auf “Standard”, kein STUN oder anderes Gedöns! Kontrollieren!
SIP Traceroute via OpenVPN
- Jetzt wirds Super-Spannend: ein kompletter Traceroute auf V-SRV-02 mit allem, was fürs Telefonieren benötigt wird.
Man sieht, dass Pakete in beide Richtungen fließen. Hoffe, das hilft jemanden bei der Fehlersuche, wenn das nicht funktioniert. Wenn man zum Beispiel auf einer Seite nichts hört, fehlt die Rückroute für den RTP-Stream. Oder es liegt an etwas anderem, dass ich noch nicht weiß, in meinem Fall hat es nie mit MicroSIP funktioniert.
root@x-srv-02:~# tcpdump -i tun0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
[...]
10:56:55.711092 IP 10.8.0.2.sip > 10.11.1.121.sip: SIP: REGISTER sip:10.11.1.121;transport=UDP SIP/2.0
10:56:55.760945 IP 10.11.1.121.sip > 10.8.0.2.sip: SIP: SIP/2.0 200 OK
10:56:55.945353 IP 10.8.0.2.sip > 10.11.1.121.sip: SIP
10:57:02.826141 IP 10.8.0.2.sip > 10.11.1.121.sip: SIP: INVITE sip:0812345670@10.11.1.121;transport=UDP SIP/2.0
10:57:02.840540 IP 10.11.1.121.sip > 10.8.0.2.sip: SIP: SIP/2.0 401 Unauthorized
10:57:02.933158 IP 10.8.0.2.sip > 10.11.1.121.sip: SIP: ACK sip:0812345670@10.11.1.121;transport=UDP SIP/2.0
10:57:02.939086 IP 10.8.0.2.sip > 10.11.1.121.sip: SIP: INVITE sip:0812345670@10.11.1.121;transport=UDP SIP/2.0
10:57:03.057548 IP 10.11.1.121.sip > 10.8.0.2.sip: SIP: SIP/2.0 100 Trying
10:57:03.283576 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:57:03.304165 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:57:03.323792 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:57:03.344494 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:57:03.364244 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
[...]
10:57:05.303770 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:57:05.323594 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:57:05.339414 IP 10.11.1.121.sip > 10.8.0.2.sip: SIP: SIP/2.0 183 Session Progress
10:57:05.344238 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:57:05.358864 IP 10.11.1.121.sip > 10.8.0.2.sip: SIP: SIP/2.0 180 Ringing
10:57:05.364037 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:57:05.383614 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
[...]
11:05:57.746005 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
11:05:57.759635 IP 10.8.0.2.8000 > 10.11.1.121.5004: UDP, length 172
11:05:57.761359 IP 10.11.1.121.sip > 10.8.0.2.sip: SIP: SIP/2.0 200 OK
11:05:57.780796 IP 10.8.0.2.8000 > 10.11.1.121.5004: UDP, length 172
11:05:57.789665 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
11:05:57.790033 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
11:05:57.800301 IP 10.8.0.2.8000 > 10.11.1.121.5004: UDP, length 172
11:05:57.805616 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
11:05:57.818361 IP 10.8.0.2.sip > 10.11.1.121.sip: SIP: ACK sip:0812345670@10.11.1.121:5060 SIP/2.0
11:05:57.819898 IP 10.8.0.2.8000 > 10.11.1.121.5004: UDP, length 172
11:05:57.826189 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
11:05:57.836674 IP 10.8.0.2.8000 > 10.11.1.121.5004: UDP, length 172
[...]
10:58:40.545712 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:58:40.549017 IP 10.8.0.2.8000 > 10.11.1.121.5004: UDP, length 172
10:58:40.566182 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:58:40.568724 IP 10.8.0.2.8000 > 10.11.1.121.5004: UDP, length 172
10:58:40.585688 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:58:40.587899 IP 10.8.0.2.8000 > 10.11.1.121.5004: UDP, length 172
10:58:40.606275 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:58:40.606959 IP 10.8.0.2.8000 > 10.11.1.121.5004: UDP, length 172
10:58:40.623715 IP 10.8.0.2.8000 > 10.11.1.121.5004: UDP, length 172
10:58:40.625712 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:58:40.645563 IP 10.8.0.2.8000 > 10.11.1.121.5004: UDP, length 172
10:58:40.646229 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:58:40.658573 IP 10.8.0.2.8000 > 10.11.1.121.5004: UDP, length 172
10:58:40.665684 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:58:40.686278 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
[...]
10:59:20.207325 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:59:20.226896 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:59:20.247324 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:59:20.257422 IP 10.8.0.2.8001 > 10.11.1.121.5005: UDP, length 68
10:59:20.266873 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:59:20.269467 IP 10.8.0.2.sip > 10.11.1.121.sip: SIP: BYE sip:0812345670@10.11.1.121:5060 SIP/2.0
10:59:20.287391 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:59:20.307114 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:59:20.326527 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:59:20.347161 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:59:20.360115 IP 10.11.1.121.sip > 10.8.0.2.sip: SIP: SIP/2.0 200 OK
10:59:20.366391 IP 10.11.1.121.5004 > 10.8.0.2.8000: UDP, length 172
10:59:25.783643 IP 10.8.0.2.sip > 10.11.1.121.sip: SIP
Links
- Microsip
https://www.microsip.org/downloads
- Zoiper Classic
https://www.zoiper.com/en/voip-softphone/download/classic
Artikel erstellt am: 12 December 2020 , aktualisiert am 13 December 2020