Inhaltsverzeichnis

Voice over IP (VoIP)

Unter Internet-Telefonie bzw. IP-Telefonie (Internet-Protokoll-Telefonie; auch Voice over IP (VoIP) versteht man das Telefonieren über Computernetzwerke, die nach Internet-Standards aufgebaut sind. Dabei werden für Telefonie typische Informationen, d. h. Sprache und Steuerinformationen für z. B. den Verbindungsaufbau, über ein auch für Datenübertragung nutzbares Netz übertragen. Bei den Gesprächsteilnehmern können sowohl Computer, für IP-Telefonie spezialisierte Telefonendgeräte, als auch über spezielle Adapter angeschlossene, klassische Telefone die Verbindung ins Telefonnetz herstellen.

Unterschiede zum Telefonieren übers Festnetz

Augenscheinlichster Unterschied ist der Wechsel von exklusiv geschalteten Verbindungen des alten geschlossenen Telefonnetzes in ein öffentliches (und feindliches/unsicheres) Netz mit Schwankendem Verkehrsaufkommen. Daraus ergeben sich viele Vor- und Nachteile.

Vorteile

ansonsten kann man immer ja noch beim Marketing anhören was noch gut ist :-)

Nachteile

Konfiguration

Anhand des Providers carpo.de wird hier die Konfiguration eines VoIP-(Soft-)-Phones erklärt.

Verschlüsselung bei VoIP

Zwar gibt es die Möglichkeit Verschlüsselung einzusetzen, dennoch wird diese Möglichkeit von vielen Anbietern aus Kostengründen nicht unterstützt. Zusätzlich sollte der Datenkanal mit SRTP (Secure Real-Time Transport Protocol) abgesichert sein.

Falls der aktuelle Anbieter keine der Möglichkeiten unterstützt, kann man derzeit nur

  1. einen Anbieterwechsel zu einem Anbieter mit TLS/ZRTP-abgesicherten Verbindungen vornehmen
  2. eine (Teil-)Absicherung durch VPN in ein bekanntes Netz durchführen und von da aus unverschlüsselt weitersenden
  3. mit proprietären Lösungen (Zu Skype siehe unten) arbeiten
  4. oder zusätzlich aufgesetzter Sicherheit, z.B. mit ZRTP arbeiten.

VoIP Sicherheit / Datenschutz

Bücher

VoIP-Software (Softphones)

Unterschiede SIP vs. Skype

Skype ist eine kostenlose aber proprietäre Software (man weiß also nicht wirklich was da alles so drin ist, da Skype-Software auch sehr große Anstrengungen unternimmt den Code geheim zu halten). Auch das Kommunikationsprotokoll ist proprietär, demzufolge ist eine eine Kommunikation mit anderen standardkonformen Clients nach dem SIP-Standard nicht möglich. Durch proprietäre Lösungen, also vorrangig Skype, ist man aber auf diese Software als VoIP-Gegenstelle beschränkt (es sei denn man lässt das Gespräch über das Festnetz laufen) und kann

Skype arbeitet immerhin mit starker Verschlüsselung (Offiziell mit 256Bit bzw. 1024Bit RSA beim Aushandeln des Schlüssels), nachprüfen kann man dies natürlich nicht, der Dienst ist etabliert, zudem kommt Skype an so ziemlich jeder Firewall vorbei. Leider sind aber auch Störungen und Qualitätsmängel im Skype-Netz nicht allzu selten.

SIP Skype
offener Standard proprietär
beliebige Clients; freie Software verfügbar nur Skype-eigener Client; fragwürdige Lizenz
Computer nicht erforderlich Computer erforderlich
NAT-Umgehung muss konfiguriert werden fragwürdige Technik für NAT-Umgehung
Verschlüsselung optional Verschlüsselung automatisch
kein globales Benutzerverzeichnis globales Benutzerverzeichnis
kostenlose Gespräche zu vielen SIP-Anbietern, es muss ein kostenlose Gespräche nur zu anderen Skype-Nutzern

VoIP-Serversoftware

Softwarevermittlungsanlagen

Bekannte Softwarevermittlungsanlagen sind

SIP-Proxies

VoIP-Diensteanbieter

technische Funktionsweise

Bei Voice-over-Internet-Protocol (VoIP) wird Sprache über IP-Datenpakete abgewickelt. Die Verbindungen werden über ein Signalisierungsprotokoll (meist SIP, andere wie H.323 oder IAX möglich) und anschließend über den Audiocodec (RTP) realisiert.

SIP ist das „Session Initiation Protocol“.

Die eigentliche Sprachverbindung erfolgt über Streams mittels RTP, dem „Realtime Transport Protocol“.

Es ist für den Aufbau, Abbau und die Steuerung von Verbindungen zuständig.

SIP

SIP (Session Initiation Protocol) ist ein einfaches Netzprotokoll (durch RFC 3261 beschrieben) zum Aufbau, zur Steuerung und zum Abbau einer Kommunikationssitzung zwischen zwei und mehr Teilnehmern. Es wurde von der Internet Engineering Task Force (IETF) entwickelt und ist dadurch nicht an einen bestimmten Hersteller gebunden. Diese herstellerunabhängige Standardisierung ermöglicht den Einsatz von SIP-basierten Systemen in heterogenen Umfeldern, insbesondere auch in der Kopplung von VoIP-Komponenten unterschiedlicher Hersteller. Grundsätzlich eignet sich SIP allerdings auch für Einsatzszenarien außerhalb von VoIP.

Funktionen von SIP

Funktion Beschreibung
Lokalisierung und Registrierung des Benutzers Endpunkten (bzw. Endgeräte wie Telefone) benachrichtigen des SIP-Proxy über ihren Standort; SIP bestimmt welche Endpunkte in einem Anruf beteiligt sind.
Erreichbarkeit des Benutzers SIP wird von den Endgeräten benutzt um zu bestimmen ob abgenommen wird.
Fähigkeiten des Endgerätes SIP wird zur Bestimmung der Fähigkeiten, d.h. welche Codecs (s.u.) ein Gerät unterstützt. Dabei kann nur die Schnittmenge der Codecs benutzt werden.
Sitzungsaufbau SIP signalisiert dem Endgerät wann es „läuten“ soll, also ein Anruf erfolgt. Es wird auch für die Aushandlung der Sitzungsattribute (z.B. verwendete Codecs) verwendet.
Sitzungsverwaltung SIP wird für die Übertragung und Beendigung von Anrufen und die für die Änderung von Gesprächsparametern während der Sitzung (z.B. bei einer dreier Konferenz) benutzt.

WHAT IS SIP: INTRODUCTION

Verbindungsaufbau

FIXME

Schema: SIP Signalisierungs; Lizenz: Public Domain

VoIP "Telefonnummern"

Auch VoIP benötigt Teilnehmerkennungen, die für die Adressierung einer Gegenstelle, die man anrufen möchte, verwendet werden können. Das SIP-Protokoll verwendet URIs (Uniform Resource Identifiers), die eine Nutzerkennung und eine Domain enthalten. SIP-URIs sind ähnlich aufgebaut wie und in vielen Fällen gleichnamig mit E-Mail-Adressen im Internet.

Beispiele:

Ein SIP-Client (z.B. ein IP-Telefon oder ein VoIP-Gateway) verwendet diese URIs, um einen Server zu identifizieren, über den der genannte User erreicht werden kann. Erhält der SIP-Client diese Informationen, so kann ein Anruf an die Gegenstelle erfolgen.

Parallel dazu werden auch gewöhnliche Telefonnummern verwendet, die über ENUM auf SIP-URIs abgebildet werden können. Erfolgt also ein Anruf von einem VoIP- und ENUM-fähigen Telefon, so kann dieser direkt und kostenfrei durchgeführt werden. Erfolgt der Anruf über Festnetz, so muß ein Provider diesen auf der jeweiligen Festnetznummer entgegennehmen und als SIP-Anruf weiterleiten. Die Technik hierzu ist in einem separaten Artikel über ENUM-Einträge dargestellt.

Analog werden so auch Anrufe, die per VoIP getätigt werden, jedoch als Gegenstelle eine klassische Festnetznummer haben, von einem Provider weitergeleitet. Diese Weiterleitung wird auch als „Termination Service“ bezeichnet.

an Festnetznummer an VoIP (SIP-URI)
von Festnetznummer kostenpflichtig
über das Festnetz
kostenpflichtig
über einen VoIP-Provider
von VoIP (SIP-URI) kostenpflichtig
über einen VoIP-Provider
kostenfrei und direkt
über das Internet

Das Schöne daran ist, daß Anrufe von SIP-URI zu SIP-URI über das Internet für beide Parteien kostenlos sind.

SIP URIs im Detail

SIP URIs verwenden eine URI-Syntax, die eine Reihe optionaler Parameter erlaubt:

proto:[user[:password]@]host[:port][;params][?headers]

RTP

Das Real-Time Transport Protocol (RTP) ist ein Protokoll zur kontinuierlichen Übertragung von audiovisuellen Daten (Streams) über IP-basierte Netzwerke. Das Protokoll wurde erstmals 1996 im RFC 1889 standardisiert. 2003 wurde ein überarbeiteter RFC veröffentlicht. Der RFC 3550 löst damit den RFC 1889 ab.

Es dient dazu, Multimedia-Datenströme (Audio, Video, Text, etc.) über Netzwerke zu transportieren, d.h. die Daten zu kodieren, zu paketieren und zu versenden. RTP ist ein Paket-basiertes Protokoll und wird normalerweise über UDP betrieben. RTP kann sowohl für Unicast-Verbindungen als auch für Multicast-Kommunikation im Internet eingesetzt werden. Das RealTime Control Protocol arbeitet mit RTP zusammen und dient der Aushandlung und Einhaltung von Quality of Service (QoS) Parametern.

Codecs und Bandbreitenanforderungen

Sprachsignale werden für VoIP aus der analogen Signalform digital codiert, übertragen und von der Gegenstelle decodiert. Die hierzu verwendeten Codecs bestimmen einerseits das Format der Codierung von Sprachdaten in den übertragenen RTP-Paketen, andererseits ergibt sich dadurch auch die erforderliche Bandbreite.

Gibt es keine gemeinsame Schnittmenge von Codecs bei zwei Endgeräten, die eine Verbindung aufbauen möchten, so ist eine Kommunikation nicht möglich.

Eine aktuelle Liste aller offiziell registrierten Codecs findet sich bei IANA. Einzelne Provider oder spezifische Endgeräte können abweichend davon bzw. in Ergänzung auch weitere Codecs anbieten.

Welche Provider welche Codecs unterstützen, ist in der Liste „Codecunterstützung durch VoIP-Provider“ des IP-Phone Wikis aufgeführt.

Die gebräuchlichsten Codecs sind die folgenden:

Codec Sample
[bits]
Sample
[ms]
Bitrate
[kbit/s]
Samples
je Paket
Pakete/s Bandbreite
[kbit/s]
Gespräche
128/256
G.722 640 10 64,0 2 50,0 87,2 1/2
G.7111) 640 10 64,0 2 50,0 87,2 1/2
G.729 80 10 8,0 2 50,0 31,2 4/8
G.723 192 30 6,4 1 33,3 21,9 5/11
G.723 160 30 5,3 1 33,3 20,8 6/12
G.726 2) 200 5 40,0 4 50,0 63,2 2/4
G.726 160 5 32,0 4 50,0 55,2 2/4
G.726 120 5 24,0 4 50,0 47,2 2/5
G.726 80 5 16,0 6 33,3 31,5 4/8
G.729 ? ? ? ? ? ? ?
GSM 264 20 13,2 1 50,0 36,4 3/7
iLBC 400 30 13,3 1 33,3 28,8 4/8
iLBC 304 20 15,2 1 50,0 38,4 3/6

Dabei wurde für die Bandbreitenberechnung ein Ethernet-Overhead von 58 Bytes berücksichtigt (18 Bytes Ethernet Header, 20 Bytes IP-Header, 8 Bytes UDP-Header, 12 Bytes RTP-Header).

PCMA bzw. PCMU entsprechen den Angaben von G.711.

G.722 entspricht in den Bandbreitenanforderungen G.711, verwendet jedoch eine andere Codierung. Bei G.711 wird mit 8 kHZ (8 Bit) abgetastet, während G.722 16 kHz (7 Bit) verwendet. Dadurch ist die Samplequalität höher und der Codec erreicht eine gering bessere Qualität als G.711.

Für Fax over IP (T.38 = T.30 over IP) werden ca. 14,4 kbit/s Payload übertragen.

Die letzte Spalte gibt an, wie viele parallele Gespräche über eine Leitung mit Bandbreite von 128 bzw. 256 kbit/s Upstream geführt werden können. Dies setzt natürlich voraus, daß diese Bandbreite tatsächlich zur Verfügung steht.

Quelle: IP-Phone Wiki gehört zum IP-Phone-Forum.

VoIP und NAT

Aufgrund der IP-Adressenknappheit von IPv4 stecken viele Internetnutzer hinter NATs. D.h. Rechner stecken hinter Firewalls und Routern die die privaten IP-Adressen in öffentliche umsetzten.

Lösung: SIP-Proxy.

Für Problem 2 gibt es mehrere Lösungen mit verschiedenen Vor- und Nachteilen.

NAT-Lösungen
Lösung Vorteile Nachteile
Client ausserhalb des NAT platzieren kein SIP-Proxy nötig Client braucht eine öffentliche IP-Adresse, wenig flexibel
Router mit eingebautem SIP-Client kein SIP-Proxy nötig wenig flexibel
SIP-fähiger Router / Interner SIP/RTP-Proxy: Der Router/Proxy korrigiert die SIP-Packete, und leitet die RTP-Packete weiter. minimaler Aufwand auf ClientseiteRouter/Proxy mit zu schwacher CPU kann den Durchsatz beeinträchtigen
Externer SIP/RTP-Proxy: Der Proxy korrigiert die SIP-Packete, und leitet die RTP-Packete über sich selbst zum jeweiligen Gesprächspartner. minimaler Aufwand auf Clientseite Bandbreitenkosten des Proxy
STUN: Mittels STUN kann der Client die vom NAT vergebene IP- und Portnummer ermitteln. minimaler Aufwand auf Clientseitefunktioniert nicht bei NATs, die für jede Verbindung neue Portnummern vergeben (vor allem „grosse“ Router). Siehe auch STUN-Server aufsetzen.
UPnP: Mittels UPnP kann der Client ein Portforwarding auf dem NAT einrichten.hohe Zuverlässigkeitnur auf „kleinen“ Routern verfügbar, nur wenige UPnP-fähige Clients, Sicherheitsbedenken
TURN: Variante des SIP/RTP-Proxys, die vom Client explizit gesteuert werden kann.hohe Zuverlässigkeit, sauberer und flexibler als normale SIP/RTP-Proxys Bandbreitenkosten des TURN-Servers, nur wenige TURN-fähige Clients

ENUM - Telephone Number Mapping

tElephone NUmber Mapping (ENUM) ist eine Anwendung des Domain Name Systems zur Übersetzung von Telefonnummern in Internet-Adressen. ENUM wird im RFC 3761 definiert. Der Bedarf für eine solche Lösung erwuchs aus der Verfügbarkeit von VoIP-Diensten und dem Bedarf des Anwenders, sowohl im Internet als auch im klassischen Telefonnetz unter der selben Nummer erreichbar zu sein.

1)
kennt man von ISDN
2)
Variable Bitrate, kennt man von DECT