VoIP Lexikon
Dies soll ein Nachschlagewerk mit kurzen Zusammenfassungen zu VoIP/SIP sein. Anleitungen zur Konfiguration von Endgeräten finden Sie hier.
VoIP / MoIP
VoIP steht für "Voice over IP" und beschreibt eine Möglichkeit, Sprache über ein Computernetzwerk zu übertragen. Es besteht auch die Möglichkeit, Videostreams und Nachrichten zu übertragen, dann spricht man von MoIP "Multimedia over IP".
VoIP beschreibt verschiedene Techniken der Übertragung, wir konzentrieren uns hier aber auf die Übertragung per SIP-Protokoll.
Netzwerkgrundlagen
Protokolle
IPv4 / IPv6
Das Internet-Protokoll in der Version 4 (IPv4) ist die Basis heutiger IP-Netze und des Internets. Es ist der OSI-Schickt 3 (vermittlungsschicht, Network Layer) zuzuordnen. Eine IPv4-Adresse umfasst 4 Byte, wird aber normalerweise mit 4 durch Punkte getrennte Dezimalzahlen mit Werten zwischen 0 und 255 dargestellt. Jede im öffentlichen Internet genutzte IP-Adresse muss weltweit eindeutig sein. Der 4-Byte-Adressraum bietet theoretisch über 4 Milliarden Adressen, effektiv nutzbar sind aber weniger.
Das Internet-Protokoll in der Version 6 (IPv6) wir immer häufiger anstelle von IPv4 eingesetzt. Es ist eine Weiterentwicklung von IPv4 bietet aber einige Vorteile, und der IP-Adressraum wurde massiv erweitert.
Da es momentan noch fast keine VoIP-Endgeräte gibt, welche IPv6 unterstützen, konzentrieren wir uns in diesem Dokument vor allem auf IPv4.
Adressen im Internet
Oft wird als Ziel im Internet nur eine IP-Adresse angegeben.
Beachten Sie aber, dass eine vollständige Adresse immer auch einen Port beinhaltet (z.B. 192.168.0.11:5060
)
Adressen im LAN
Die im LAN zu nutzenden IP-Adress-Bereiche wurden wie folgt definiert:
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
Diese sind zwingend zu nutzen, da es sonst zu Adresskonflikten mit Adressen im Internet kommen kann.
TCP
Transmission Control Protocol
TCP ist ein Transportprotokoll und sorgt für eine sichere Ende-zu-Ende-Transportverbindung. Wird der Empfang eines Pakets nicht innerhalb einer bestimmten Zeit (Retransmission Time) quittiert, wiederholt die Quelle das besagte TCP-Segment. Wegen der fehlenden Echtzeitfähigkeit hat das TCP-Protokoll im Zusammenhang mit VoIP nur bei der Signalisierung für Sessions eine gewisse bedeutung. Ein Einsatz zusammen mit SIP ist nur optional, bevorzugt wird UDP. Für die Übermittlung von Echtzeit-Nutzdaten wie Sprachdatenpaketen ist TCP wegen möglicherweise unzumutbarer Verzögerungen weitgehend ungeeignet.
UDP
User Datagram Protocol
UDP ist ein einfaches Transportprotokoll und sorgt für eine Ende-zu-Ende-Transportverbindung, allerdings ungesichert. Infolge der verbindungslosen, ungesicherten Kommunikation werden UDP-Datagramme so schnell wie möglich, ohne Verzögerung durch z.B. Paketwiederholungen, übermittelt. Daher ist UDP sehr gut geeignet für die Echtzeitkommunikation.
RTP / RTCP
Real Time Protocol
RTP ist ein Transportprotokoll für die Übertragung von Audio- und Video-Echtzeitdaten. RTP-Pakete werden im Normalfall per UDP transportiert, um Overhead zu vermeiden.
RTP Control Protocol
RTCP ist ein Protokoll zur Kontrolle von RTP-Sessions. Es ergänzt RTP, indem es Quality-of-Service-Informationen zwischen Sender und Empfänger austauscht.
SIP
Session Initiation Protocol
Das SIP-Protokoll dient der Übermittlung von Signalisierungsnachrichten für die Etablierung von Kommunikationsbeziehungen („Sessions“) im Bereich VoIP. Die Medienformen im Rahmen einer Session (VoIP, „Video over IP“ oder sonstige Multimedia-Anwendungen), sowie die zur Codierung und Decodierung der Multimedia-Daten notwendigen Parameter (z.B. verwendeter Codecs) etc.), werden im Rahmen von SIP-Nachrichten ebenso übertragen wie Teilnehmer und Signalisierungsinformationen. SIP stellt, unter Zuhilfenahme des unterstützenden Protokolls SDP, die komplette Kommunikationsbasis für den Auf- und Abbau, sowie für das Ändern einer bestehenden Session zur Verfügung und bietet somit, im Vergleich zur H.323-Protokollsammlung (ISDN), den entscheidenden Vorteil der einfachen Handhabung, der leichten Erweiterbarkeit sowie der Übersichtlichkeit.
SIP kann wahlweise per UDP oder TCP transportiert werden. Da SIP als Vermittlungs- und Signalisierungsprotokoll selbst Handshake-, Wiederholungs- und Timeout-Verfahren als Maßnahmen zur Kommunikationssicherung einsetzt, und somit verbindungsorientiert arbeitet, besteht keine Notwendigkeit zur Nutzung eines verbindungsorientiert arbeitenden Transportprotokolls. Üblicherweise wird aus diesem Grund das verbindungslose UDP als Transportprotokoll für SIP verwendet. Dieses bietet im Gegensatz zu den verbindungsorientiert arbeitenden Protokollen TCP und SCTP den Vorteil, dass weder ein zusätzlicher Verbindungsaufbau vor dem SIP-Signalisierungsdatenaustausch noch eine Flusskontrolle währenddessen erfolgen muss. Hieraus ergeben sich Einsparungen im Bezug auf Zeit und Datenverkehrsaufkommen bei der Verwendung von UDP als Transportprotokoll für SIP.
Da SIP bezüglich seines Nachrichtenaufbaus in großen Teilen auf dem HTTP-Standard basiert, und die SIP-Nachrichten unter Verwendung des ASCII-kompatiblen UTF-8-Zeichensatzes (Universal character set Transformation Format) übertragen werden, sind für ihre schriftliche Darstellung keine besonderen Decoder nötig.
SDP
Session Description Protocol
SDP dient der Beschreibung von Medien, die im Rahmen einer "Multimedia over IP"-Session übertragen werden. Hierbei werden neben den Medientypen (Audio, Video etc.) auch die Kontaktparameter (IP-Adresse und Port), sowie die verfügbaren Codecs (G.722, G.711, H.264 etc.) übermittelt. Es wird im Body des SIP-Paketes übertragen.
STUN
Session Traversal Utilities for NAT
Mit Hilfe des STUN-Protokolls können in privaten Netzen angesiedelte Endgeräte die jeweils für sie im öffentlichen Netz gültigen Kontaktdaten ermitteln, und selbständig in SIP-Header-Feldern und SDP-Parametern eintragen.
STUN zu aktivieren ist aber nur nötig, wenn vom Provider angegeben, im Normalfall benötigt man dies nicht.
DNS
Domain Name System
DNS ist ein hierarchisches verteiltes Namenssystem, das verwendet wird, um Domainnamen (z.B. example.com) in IP-Adressen (z.B. 192.0.2.1) und umgekehrt zu übersetzen. Es spielt eine entscheidende Rolle dabei, Benutzern den Zugriff auf Ressourcen im Internet unter Verwendung von menschenlesbaren Domainnamen anstelle von numerischen IP-Adressen zu ermöglichen.
Im DNS-Auflösungsprozess sendet eine Anwendung, wenn ein Benutzer einen Domainnamen in einen Webbrowser oder eine andere Netzwerkanwendung eingibt, eine DNS-Anfrage an einen DNS-Resolver, der in der Regel von dem Internetdienstanbieter (ISP) des Benutzers oder einem öffentlichen DNS-Resolverdienst bereitgestellt wird. Der Resolver leitet dann den Auflösungsprozess ein, indem er autoritative DNS-Server abfragt, um die entsprechende IP-Adresse für den angegebenen Domainnamen zu erhalten.
Die DNS-Hierarchie besteht aus verschiedenen Arten von DNS-Servern, einschließlich:
- Root DNS Server: Diese Server befinden sich an der Spitze der DNS-Hierarchie und verweisen auf Top-Level-Domain (TLD)-DNS-Server.
- Top-Level-Domain (TLD)-DNS-Server: Diese Server sind für die Verwaltung von Domainnamen innerhalb bestimmter Top-Level-Domains wie
.com
,.org
,.net
und länderspezifischen TLDs wie.ch
,.at
,.de
usw. verantwortlich. - Authoritative DNS Servers: Diese Server speichern DNS-Einträge (wie A-Einträge, AAAA-Einträge, MX-Einträge usw.) für spezifische Domainnamen und sind dafür verantwortlich, autoritative Antworten auf DNS-Anfragen bereitzustellen.
DNS arbeitet über UDP oder TCP auf Port 53
. UDP wird typischerweise für DNS-Anfragen verwendet, während TCP für große DNS-Antworten oder Zonentransfers verwendet wird.
Insgesamt ist DNS eine grundlegende Komponente der Internetinfrastruktur, die wesentliche Namensauflösungsdienste bereitstellt, die eine nahtlose Kommunikation und den Zugriff auf Online-Ressourcen ermöglichen.
NAT / PAT
Network Address Translation / Port Address Translation
NAT wurde eingeführt, um der Adressknappheit im IPv4 zu begegnen. Mit NAT braucht nicht mehr jedes Endgerät eine im öffentlichen Internet erreichbare IPv4 Adresse, sondern nur noch jedes Netzwerk. Die im Netzwerk verbundenen Endgeräte kommunizieren dann über eine gemeinsame öffentliche IP-Adresse.
Umgesetzt wurde dies, in dem ein Router die Source-Adresse der Netzwerkpakete ändern kann. So sieht ein Ziel im Internet als Absenderadresse der empfangenen Pakete nicht die lokale Adresse des sendenden Gerätes, sondern die öffentliche Adresse des Routers. Damit der Router die empfangenen Antworten aus dem Internet dem richtigen lokalen Gerät zuordnen kann, speichert der Router diese Daten in einer NAT-Tabelle.
Damit NAT-Tabellen nicht unendlich gross werden, versieht der router alle Einträge in der NAT-Tabelle mit einer Gültigkeitsdauer. Ist diese Zeit erreicht, und wurden solange keine Daten mehr über die gespeicherte Verbindung übertragen, löscht der Router die Einträge.
PAT wird leider im Zusammenhang mit NAT oft vergessen. Wenn der vom sendenden Endgerät genutzte Port (bei SIP normalerweise 5060
) auf der WAN-Seite schon genutzt wird,
muss der Router nicht nur die IP-Adresse zur WAN-Adresse ändern, sondern er muss auch den Port der Source-Adresse zu einem ungenutzten Port ändern.
So kann es vorkommen, dass ein SIP-Paket vom Endgerät mit der Source-Adresse 192.168.0.11:5060
versendet wird, die Adresse aber vom Router zu 80.70.60.51:1024
angepasst wird.
CGNAT
Carrier-Grade NAT
CGNAT, auch bekannt als large-scale NAT oder NAT444, ist eine Netzwerkadressübersetzungstechnik (NAT), die von Internetdienstanbietern (ISPs) verwendet wird, um die Knappheit öffentlicher IPv4-Adressen zu verwalten und die wachsende Anzahl von mit dem Internet verbundenen Geräten zu unterstützen.
Bei einer CGNAT-Bereitstellung erhalten mehrere Kunden innerhalb eines ISP-Netzwerks private IP-Adressen aus einem gemeinsamen Pool von Adressen
(typischerweise im RFC 1918-Bereich: 10.0.0.0/8
, 172.16.0.0/12
, 192.168.0.0/16
oder im RCF 6598 Bereich 100.64.0.0/10
).
Diese privaten IP-Adressen werden für die Kommunikation innerhalb des ISP-Netzwerks verwendet, können jedoch nicht direkt aus dem öffentlichen Internet erreicht werden.
Wenn ein Gerät innerhalb des ISP-Netzwerks eine Kommunikation mit einem Ziel im Internet initiiert, z. B. den Zugriff auf eine Website oder die Verbindung zu einem Server, führt das CGNAT-Gerät eine Adressübersetzung auf den ausgehenden Paketen durch. Es ersetzt die private Quell-IP-Adresse des Pakets durch eine öffentliche IP-Adresse aus dem Pool des ISPs, und führt eine Zuordnungstabelle um die Übersetzung zu verfolgen.
Ebenso führt das CGNAT-Gerät beim Empfang eingehender Pakete aus dem Internet, die für ein Gerät innerhalb des ISP-Netzwerks bestimmt sind, eine umgekehrte Adressübersetzung durch. Es ersetzt die öffentliche Ziel-IP-Adresse durch die entsprechende private IP-Adresse, bevor es das Paket an den beabsichtigten Empfänger weiterleitet.
Vorteile von CGNAT sind:
- Konservierung von IPv4-Adressen: CGNAT ermöglicht es ISPs, öffentliche IPv4-Adressen zu konservieren, indem mehrere Kunden hinter einer einzelnen öffentlichen IP-Adresse multiplexiert werden.
- Skalierbarkeit: CGNAT ermöglicht es ISPs, eine große Anzahl von mit dem Internet verbundenen Geräten innerhalb ihres Netzwerks zu unterstützen, während die Erschöpfung des öffentlichen IPv4-Adressraums minimiert wird.
- Netzwerksicherheit: CGNAT bietet ein Maß an Netzwerksicherheit, indem die internen IP-Adressen der Geräte der Kunden vor dem öffentlichen Internet verborgen werden, wodurch die Exposition gegenüber potenziellen Angriffen und unbefugtem Zugriff verringert wird.
Nachteile von CGNAT sind:
- Begrenzte Portverfügbarkeit: CGNAT kann die Verfügbarkeit von Ports für bestimmte Anwendungen und Dienste einschränken und möglicherweise Probleme bei der Peer-to-Peer-Kommunikation, beim Online-Gaming und anderen Anwendungen verursachen, die bestimmte Portkonfigurationen erfordern.
- Auswirkungen auf die Peer-to-Peer-Kommunikation: CGNAT kann die Peer-to-Peer-Kommunikation und bestimmte Netzwerkprotokolle beeinträchtigen, die auf End-to-End-Konnektivität angewiesen sind, da es eine zusätzliche Ebene der Adressübersetzung einführt und eingehende Verbindungen einschränken kann.
- Komplexität: Die Verwaltung und Fehlerbehebung von CGNAT-Bereitstellungen kann komplex sein, insbesondere in großen Netzwerken mit einem hohen Datenverkehrsvolumen und dynamischen Adresszuweisungen.
Insgesamt spielt CGNAT eine entscheidende Rolle bei der Verlängerung der Lebensdauer von IPv4 und ermöglicht es ISPs, Internetzugang für eine wachsende Anzahl von Abonnenten bereitzustellen, während die Einschränkungen durch die Erschöpfung von IPv4-Adressen angegangen werden.
SIP-ALG
Da SIP-Endgeräte normalerweise in einem LAN installiert sind, kennen sie nur die interne IP-Adresse des Netzwerks, nicht aber die WAN-Adresse, über die die Pakete zum Provider gesendet werden. Darum können die Endgeräte nur die interne IP-Adresse in die SIP-Pakete schreiben. Das hat einige Router- und Firewall-Hersteller dazu gebracht, auf Ihren Produkten eine Funktion zu implementieren, welches die interne IP-Adresse in den SIP-Paketen durch die WAN-Adresse des Anschlusses ersetzt. Die Idee war, dass dann in den SIP-Paketen die Adresse eingetragen ist, zu der der Provider die eingehenden Anrufe senden kann. Doch leider haben die meisten Router- und Firewall-Hersteller nur das Ersetzen der IP-Adresse implementiert. Aber wie unter "Adressen im Internet" beschrieben gehört auch der Port zu Adresse, nicht nur die IP. Wenn nun nämlich der Router oder die Firewall gleichzeitig mit PAT den Port ersetzen, und mit SIP-ALG die IP ersetzen, ist am Ende eine falsche Adresse in den SIP-Paketen eingetragen.
Darum empfiehlt sipcall SIP-ALG immer zu deaktivieren. Auf den sipcall-Servern ist eine NAT-erkennung aktiviert, welche die privaten IP-Adressen in den SIP-Paketen erkennt, und sich dann entsprechend verhält.
Leider haben einige Mobilfunkprovider SIP-ALG im CGNAT aktiv. Sollte dies der Fall sein, und der Mobilfunkanbieter möchte es nicht deaktivieren, können Sie im Endgerät das Transportprotokoll auf TCP ändern. Oft werden TCP-Pakete von SIP-ALG nicht manipuliert, sondern nur UDP-Pakete.
NAT keep alive
Um den Konfigurationsaufwand für die Benutzer so gering wie möglich zu halten, wurde VoIP so entwickelt, dass man für die eingehende Erreichbarkeit keine Portforwardings im Router einrichten muss. VoIP-Endgeräte bringen die Technik "NAT keep alive" mit. Ist "NAT keep alive" auf einem Endgerät aktiv, sendet das Endgerät in regelmässigen Abständen ein leeres Paket zum konfigurierten SIP-Server. Durch dieses Paket wird in der NAT-Tabelle des Routers der Eintrag für die Connection "am leben erhalten (keep alive)", über die eingehende Anrufe geroutet werden.
RTP keep alive
Wegen der Situation mit NAT bei den Kunden, wartet der SIP-Server mit dem Zustellen der RTP-Streams, bis vom Endgerät des Kunden ein RTP-Stream zu unserem Server gesendet wird. Denn erst durch das hinaussenden des RTP-Streams wird eine Connection durch das NAT geöffnet, über die dann der eingehende RTP-Stream zum Endgerät geroutet wird. Wird nun auf einer PBX anstelle eines Endgeräts eine Weiterleitung nach Extern eingerichtet, hat die PBX keinen RTP-Stream vom Endgerät um hinaus zu senden. Und der SIP-Server stellt die RTP-Streams auf der eingehenden und auf der ausgehenden Seite des weitergeleiteten Anrufs nicht zu, da keine Connections durch das NAT geöffnet sind. In diesem Fall muss RTP-Keep-Alive aktiviert werden, damit die PBX RTP-Pakete generiert und hinaussendet, und so eine Connection durch das NAT öffnet. Sobald der SIP-Server die leeren RTP-Pakete vom RTP-Keep-Alive erhält, weiss der Server, dass die Connection durch das NAT offen ist, und stellt die RTP-Streams der beiden Seiten zu.
QoS
Bei Sprachkommunikation geht man von einer guten Qualität aus, wenn die Signalverzögerung (Mund zu Ohr in einer Übertragungsrichtung) unter 200ms bleibt. 200-300ms gelten noch als gut, 300-400ms als gerade noch akzeptabel. Oberhalb von 400ms ist die Verständlichkeit nicht mehr ausreichend.
Bei heutigen Netzwerken ist die Übertragungskapazität so hoch, dass keine Verzögerungen zur normalen Lauzeit der Pakete hinzukommen sollte. Dann bleibt die Signalverzögerung in etwa bei der Signallaufzeit, welche im normalfall unter 100ms beträgt.
Sollte die Signalverzögerung zu hoch sein, deutet dies auf ein Problem im Netzwerk hin, z.B. ein zu geringer NAT-Durchsatz der Firewall. Dann ist es Sinnvoller, das Problem zu lösen, z.B. durch eine Firewall mit mehr Performance, als mit QoS-Einstellungen zu versuchen, die RTP-Pakete des Audiostreams mit QoS zu priorisieren. Nur wenn keine weiteren optimierungsmöglichkeiten im Netzwerk mehr vorhanden sind, kann mit QoS-einstellungen im Netzwerk versucht werden, Echtzeitdaten zu priorisieren.
Sollten sich aber mehrere Echtzeitstreams gegenseitig ausbremsen, kann man auch mit QoS nichts mehr korrigieren.
OSI-Modell / DOD-Modell
Es gibt mehrere Referenzmodelle, um Netzwerkprotokolle verschiedenen Schichten im Netzwerk zuzuordnen. Das bekannteste Modell ist das OSI-Modell mit 7 Schichten, Wireshark nutzt zur Darstellung das DOD-Modell.
OSI-Modell
Schicht: | Bezeichnung: | Protokolle: |
---|---|---|
7 | Application-Layer | Browser, e-Mail, Instant-Massaging |
6 | Presentation-Layer | Übersetzer zwischen verschiedenen Datenformaten |
5 | Session-Layer | RPC HTTP, FTP, SIP, SDP, RTP |
4 | Transport-Layer | TCP, UDP |
3 | Network-Layer | IP, IPX |
2 | Datalink-Layer | MAC |
1 | Physical-Layer | Ethernet |
DOD-Modell
Schicht: | Bezeichnung: | Protokolle: |
---|---|---|
4 | Process | HTTP, SMTP, FTP, Telnet, ssh |
3 | Host-to-Host | TCP, UDP |
2 | Internet | IP, IPX |
1 | Network Access | Ethernet |
Firewall
Da die von den Endgeräten genutzten Ports dynamisch ausgehandelt werden, is es nicht möglich, mit klassischen Portforwardings die Endgeräte für eingehende Anrufe aus dem Internet erreichbar zu machen. Aus diesem grund empfehlen wir die Firewall-Konfiguration nicht Port-basiert sondern IP-Adress-basiert anzulegen. Erlauben Sie allen ein- und ausgehenden Traffic von und zu unseren SIP-Servern. Diese befinden sich in folgendem IP-Adress-Bereich:
212.117.203.0/24
(aktuell genutzt)212.117.204.0/24
(zukünftig genutzt)
SIP Requests
- REGISTER:
- Registration eines Clients am Registrar
- INVITE:
- Einladen eines SIP- Teilnehmers zu einer Sitzung
- re-INVITE:
- Ändern einer bestehenden Sitzung
- ACK:
- Bestätigung eines INVITEs
- CANCEL:
- Abbruch eine INVITEs
- BYE:
- Beenden einer Sitzung
- OPTIONS:
- Dient zum Austausch der unterstützten Request- Methoden
SIP Response
- 1XX:
- Die Anfrage wurde empfangen und wird verarbeitet
- 2XX:
- Die Anfrage wurde erfolgreich verarbeitet
- 3XX:
- Der Anruf wird an einen anderen Teilnehmer weitergerleitet
- 4XX:
- Es ist ein Fehler auf der Clientseite aufgetreten
- 5XX:
- Es ist ein Fehler auf der Serverseite aufgetreten
- 6XX:
- Die Anfrage kann von keinem Server erfüllt werden
Wichtige Parameter im SIP-Paket
- From:
- Displayname, SIP-URI, Anrufernummer
- To:
- Displayname, SIP-URI, Zielnummer
- Contact:
- Temporäre SIP-URI, kann für die direkte Kontaktaufnahme verwendet werden.
- Authorization:
- Authentifizierung per Benutzername und Passwort
- Call-ID:
- Ein vom Initiator generierter Zufallswert, identifiziert alle zur gleichen Session gehörenden Anfragen und Statusinformationen.
- CSeq:
- Eine Zufallszahl, identifiziert SIP-Request auf den sich der SIP-Response bezieht.
- User-Agent:
- Name des User-Agents
- o=:
- Origin, Name der die Mediensession einleitenden Person, gefolgt von einem pro Session generierten Zufallszahl, Version der Session, Typ des Netzwerks und Kontaktadresse
- c=
- Nutzdatenempfangsadresse des betreffenden Sessionteilnehmers, Typ des Netzwerks und IP-Adresse für die Nutzdaten
- m=
- Medien Descriptions, Medientyp, Port, Protokoll, Codec
- a=
- Attributes, Erläuterung zu den im "m"-Parameter angegebenen Codecs
SIP URI
SIP Uniform Resource Identifier
Eine SIP URI stellt eine Kontaktadresse eines SIP-Endsystems dar. Ihre Funktion ist vergleichbar mit der Telefonnummer ehemaliger Telekommunikationsnetze. Der Aufbau einer SIP URI entspricht dem Aufbau einer e-Mail-adresse mit einer vorangestellten Protokollbezeichnung.
sip:User@Host
"User" stellt hierbei einen individuellen Benutzername dar, "Host" entspricht einder IP-.Adresse oder einem Domain-Namen.
Codecs
Grundlagen
Es gibt verschiedene Techniken, um die gesprochene Sprache digitalisieren zu können. Dazu verwendet man sogenannte Codecs.
Das Wort Codec setzt sich aus den folgenden zwei Worten zusammen: Coder und Decoder. Ein Codec ist eine Software, welche die Aufgabe hat, analoge Signale in einen digitalen Datenstrom zu kodieren, und diese wieder zu dekodieren.
Digitalisierung analoger Signale
Bei der analog / digital-Wandlung im Sender wird das analoge Audio-Signal abgetastet. Die dabei gewonnenen zeitdiskreten, aber noch wertkontinuierlichen Abtastwerte werden in der Folge quantisiert, d.h. einem bestimmten Amplitudenbereich wird ein wertdiskreter Amplitudenwert zugeordnet. Ergebnis ist ein zeit- und wertdiskretes Signal.
Um dieses als Digitalsignal übertragen zu können, werden die einzelnen Amplitudenwerte als digitale Codeworte, spezielle 0/1-Folgen, abgebildet. Diesen Vorgang nennt man Codierung.
Abhängig vom verwendeten Codec wird berücksichtigt, dass dass das ursprüngliche analoge Sprachsignal überflüssige Informationen enthält. Diese können bei der Codierung entfernt werden, das Sprachsignal wird dadurch komprimiert.
Empfohlene Codecs
Da die grossen Provider auf den Carrier-Connections nur wenige Codecs erlauben, empfehlen wir die folgenden Codes mit der angegebenen Priorität zu verwenden:
Audio:
- G.722 – HD-Codec mit hoher Qualität
- PCMA (G.711-alaw) – Standard-Codec in Europa
- PCMU (G.711-ulaw) – Standardcodec in Amerika
Video:
- H.264 – Weit verbreiteter Videocodec
Transcodierung
Transcodierung nennt man das Decodieren und erneute Codieren eines Datenstroms. Dies ist dann notwendig, wenn beim Endgerät A ein anderer Codec zum Einsatz kommt als beim Endgerät B. Dies hat zur Folge, dass ein direkter Nutzdatenaustausch zwischen den beiden Endgeräten nicht möglich ist. Wird der Datenstrom passen transcodiert, funktioniert der Nutzdatenaustausch.
Transcodierung sollte aber wenn möglich durch passende Codec-Einstellungen in den endgeräten verhindert werden, weil es einiges an Rechenleistung aud dem transcodierenden Server benötigt.
Netzwerkbandbreite bei VoIP
In den letzten Jahren wurden die Internetverbindungen immer schneller, so dass es meistens nicht mehr nötig ist, Bandbreite zu sparen. Sollte es aber dennoch nötig sein die Bandbreite zu kalkulieren, können Sie sich an Folgenden Werten orientieren:
Codec: | Bitrate: |
---|---|
G.711-alaw | 64kbit/s |
G.711-ulaw | 64kbit/s |
G.722 | 64kbit/s |
Opus | 6-510kbit/s |
H.264 | 64kbit/s-240Mbit/s |
Endgeräte / Useragent
Es gibt verschiedene Endgeräte wie Tischtelefone, Softwaretelefone, MS Teams mit Telefonieanbindung und Telefonanlagen. Und für analoge Geräte gibt es SIP-Adapter, um die analogen Geräte weiter nutzen zu können. Obwohl die Bauformen sehr unterschiedlich sind, unterscheiden sich diese Geräte bezüglich SIP nicht.
Werkzeuge zur Analyse
Wireshark
Wireshark ist eine freie Software zur Analyse und grafischen Aufbereitung von Datenprotokollen. Mit dem integrierten "Netzwerk-Sniffer" können auch Netzwerkpakete aufgezeichnet werden. Wireshark bietet für die Analyse von SIP-Paketen eigene Werkzeuge, das vereinfacht die Analyse enorm. Bei unverschlüsselten Daten kann man im Wireshark die Daten in den Netzwerkpaketen im klartext sehen. D.h. man sieht die SIP-Daten und kann auch den Audioteil abhören.
Switch mit Port Mirroring (Port Spiegelung)
Ein Switch mit Port Mirroring kann den Netzwerktraffic, der über einen Port des Switches läuft, auch an einem weiteren Port ausgeben (spiegeln). So wird es möglich, den Netzwerktraffic z.B. eines SIP-Telefons mit einem an einem anderen Port des Switches angeschlossenen Computer und Wireshark aufzuzeichnen und zu analysieren.
Weitere Möglichkeiten zum tracen
Abgesehen von einem Trace mit einem Switch mit Portmirroring, gibt es noch weitere Möglichkeiten einen trace zu erstellen:
- Viele Telefone bieten über das Webinterface eine Tracefunktion an
- Bei 3CX kann man über das Webinterface der PBX das Tracing starten
- Bei PBX die über das Webinterface keine Tracingfunktion anbieten, kann man auch im darunterliegenden Betriebssystem tracen
- Bei Linux mit tcpdump
- Bei Windows mit Wireshark
- Ist im Netzwerk eine Firewall installiert, kann man auch mit der Firewall tracen
Häufige Probleme (Ursache/Lösung)
Useragent registriert nicht
Die zwei häufigsten Ursachen für eine nicht funktionierende Registrierung sind:
- Firewall: Blockiert eine Firewall die Register-Pakete, kann sich der Useragent nicht registrieren
- falsches Passwort: manchmal kommt es vor, dass beim kopieren des Passwortes ein Leerschlag mitkopiert wird, und deshalb das Passort falsch ist.
keine eingehenden Anrufe
Die zwei häufigsten Ursachen für nicht ankommende eingehende Anrufe sind:
- SIP-ALG: Durch ein aktives SIP-ALG kann die Adresse für die eingehenden Anrufe falsch sein, darum SIP-ALG immer deaktivieren.
- Firewall: Wenn eine Firewall eingehende Anrufe blockiert, muss die Firewall-Konfiguration entsprechend angepasst werden.
One Way Voice
Sollte es bei einem aufgebauten Anruf vorkommen, dass Sie als Anrufer zwar vom Gegenüber gehört werden, aber Sie das Gegenüber nicht hören können, spricht man von "One Way Voice". Ursache dafür ist oft eine Firewall, welche die eintreffenden RTP-Pakete blockiert.
Erlauben Sie in diesem Fall alle eintreffenden Pakete von unseren SIP-Servern:
212.117.203.0/24
(aktuell genutzt)
212.117.204.0/24
(zukünftig genutzt)
Schlechte Gesprächsqualität
Für eine optimale Gesprächsqualität ist es wichtig, dass alle 20ms eine Paket des Audiostreams mit 20ms Audio als Inhalt übertragen wird. Falls Sie eine schlechte Gesprächsqualität feststellen, kann dies verschiedene Ursachen haben:
Paketverlust
Gehen auf der Strecke zwischen Endgerät und sipcall-Server Pakete verloren, nimmt die Gesprächsqualität ab. Ursache für Paketverlust ist oft eine Störung an einer Netzwerkkomponente oder dem Internetanschluss. Oft hilft es, das betroffene Gerät neu zu starten. Sollte der Internetanschluss die Ursache sein, muss der Internetprovider dafür sorgen, dass kein Paketverlust mehr auftritt.
Jitter / Verzögerungen
Eher selten kommt es vor, dass Pakete zwar übertragen werden, aber zeitlich verzögert. Bei Audioübertragungen werden zu spät eintreffende Pakete aber verworfen, weil man sie nicht zu spät doch noch abspielen kann. Ursache für Verzögerungen sind oft überlastete Netzwerkkomponenten. Wenn z.B. eine Firewall für einen 10MBit/s Internetanschluss ausgelegt ist, aber durch ein Upgrade plötzlich an einem 1Gigabit/s angeschlossen ist, kann der höhere Traffic die CPU der Firewall überlasten. Dann kommt es vor, dass Pakete erst verzögert zugestellt werden.
Analoge Störungen
Sollte das genutzte Endgerät bei den analogen Komponenten (z.B. Mikrofon oder Lautsprecher) einen defekt aufweisen, sieht man das oft nicht in den SIP-Logfiles. In diesem Fall hilft Wireshark bei der Analyse, weil man bei einem aufgezeichneten Anruf in das Gespräch reinhören kann. Sollten Sie dort z.B. ein Rauschen hören, kann dies auf einen Defekt hinweisen.
Ghost-Calls
Da sich die Endgeräte eine Verbindung durch den Router offen halten, um eingehend erreichbar zu sein, werden alle SIP-Pakete, die beim Router am entsprechenden Port eintreffen, zum Endgerät weiter geleitet. Dies nutzen Hacker aus, um über das Internet SIP-Pakete zu den Endgeräten zu senden. Und leider gibt es endgeräte, die bei jedem eintreffenden Anruf klingeln. In diesem Fall sprechen wir von Ghost-Calls.
Um Ghost-Calls zu verhindern, installieren Sie bitte eine Firewall, und erlauben Sie eingehende Pakete nur von den sipcall-VoIP-Servern:
Die sipcall-VoIP-Server nutzen folgende Adressbereiche:
212.117.203.0/24
(aktuell genutzt)
212.117.204.0/24
(zukünftig genutzt)
Sicherheit
Da SIP-Endgeräte und Telefonanlagen aus dem Internet erreichbar sind, ist es wichtig, die Geräte immer aktuell zu halten. Ebenso wichtig ist die Länge der verwendeten Passworte. Diese sollten mind. 15 Zeichen lang sein. Zudem sollte eine Firewall die Kommunikation auf den eigenen Provider einschränken, damit keine SIP-Pakete direkt zu den Endgeräten gesendet werden können.