VoIP mit SIP

Unterschiede SIP vs. Skype

SIP

Skype

SIP und RTP

SIP ist das "Session Initiation Protocol". Es ist für den Aufbau, Abbau und die Steuerung von Verbindungen zuständig.

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

SIP kann auch Videoverbindungen und Instant Messenging Dienste vermitteln.

SIP Clients

Korrekte Bezeichnung: "User Agent"

SIP Clients bauen die Verbindung zur Gegenstelle auf.

SIP Clients sind gleichzeitig auch Server, die von anderen Clients aufgebaute Verbindungen entgegennehmen.

SIP Clients müssen nicht zwingend Telefone sein.

SIP Proxy

SIP Proxys leiten SIP Verbindungen weiter. Die RTP Verbindungen bleiben unberührt.

SIP Proxys ermöglichen den Empfang von SIP Verbindungen hinter einem NAT.

SIP Proxys können mit diversen Zusatzfunktionen bestückt sein wie Gateway, Voicemail oder Registrar.

SIP Registrar

Durch die Anmeldung an einem Registrar ist man an jedem Ort unter der gleichen SIP-Adresse erreichbar.

Anrufe erfolgen auf sip:<Benutzername>@<Registrar>.

Auf Wunsch kann ein Registrar anderen Nutzern mitteilen, ob man gerade erreichbar ist.

NAT

Viele Internetnutzer stecken hinter NATs. Tendenz steigend.

Problem 1: Ein SIP-Client hinter einem NAT kann keine SIP-Verbindungen empfangen.
Lösung: SIP-Proxy.

Problem 2: Ein SIP-Client hinter einem NAT kann keine RTP-Verbindungen empfangen.

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

NAT-Lösungen

Client ausserhalb des NAT platzieren

Vorteil

Nachteile

Router mit eingebautem SIP-Client

Vorteil

Nachteil

SIP-fähiger Router / Interner SIP/RTP-Proxy

Der Router/Proxy korrigiert die SIP-Packete, und leitet die RTP-Packete weiter.

Vorteil

Nachteil

Externer SIP/RTP-Proxy

Der Proxy korrigiert die SIP-Packete, und leitet die RTP-Packete über sich selbst zum jeweiligen Gesprächspartner.

Vorteil

Nachteil

STUN

Mittels STUN kann der Client die vom NAT vergebene IP- und Portnummer ermitteln.

Vorteil

Nachteil

UPnP

Mittels UPnP kann der Client ein Portforwarding auf dem NAT einrichten.

Vorteil

Nachteile

TURN

Variante des SIP/RTP-Proxys, die vom Client explizit gesteuert werden kann.

Vorteile

Nachteile

Codecs

G.711

Von ISDN verwendeter Codec
Wird von allen Clients unterstützt
A-law oder µ-law Kompression (schwach)

G.726

Hohe Verbreitung bei Hardwaretelefonen
G.711 + ADPCM (komprimiert besser, aber immer noch schwach)

G.723 / G.729

Hohe Verbreitung bei Hardwaretelefonen
Kaum Verbreitung bei Softwaretelefonen aufgrund von Patentproblemen
Hohe Kompression bei akzeptabler Sprachqualität

GSM

Von Mobiltelefonen der zweiten Generation verwendeter Codec
Hohe Verbreitung bei Softwaretelefonen
Hohe Resistenz gegen Bitfehler
Ordentliche Kompression und Sprachqualität

iLBC

Vermutlich von Skype verwendeter Codec
Hohe Verbreitung bei Softwaretelefonen
Hohe Resistenz gegen verlorene Packete
Kompression und Sprachqualität vergleichbar mit GSM

Speex

Von Xiph.org (OGG/Vorbis) entwickelter, neuer Codec
Hohe Verbreitung bei Softwaretelefonen
Bessere Sprachqualität oder höhere Kompression (je nach Einstellung) als GSM und iLBC

ENUM

ENUM verknüpft Telefonnummern mit elektronischen Visitenkarten.

Mit einem ENUM-fähigen Telefon oder Provider kann jeder mit einer SIP-Adresse Eingetragene per SIP angerufen werden.

ENUM-Einträge sind nur einzeln abfragbar.

Derzeit drei globale Verzeichnisse:

SRV

SRV-Records sind eine allgemeine Form des MX-Records.

SRV-Records ermöglichen SIP-Adressen, die auf Domänen statt auf Hosts lauten.

SRV-Records ermöglichen Load-Balancing und Backup-Server.

SRV-Records ermöglichen die Autokonfiguration von SIP-Clients.

Sicherheit

VoIP-Gespräche sind schwieriger abzuhören, als PSTN-Gespräche.

Passwörter sind mittels kryptographischer Hashes verschlüsselt.

Weitergehende Verschlüsselung funktioniert nur, wenn beide Endpunkte dies unterstützen. Verschlüsselnde Clients sind nicht weit verbreitet.

TLS ermöglicht eine hop-by-hop Verschlüsselung von SIP (nicht RTP).

SIPS ermöglicht eine end-to-end Verschlüsselung von SIP (nicht RTP). Der Verbindungspfad bleibt nach aussen sichtbar. Interessant für Authentifizierung und MIKEY (siehe unten).

SRTP ermöglicht eine end-to-end Verschlüsseung von RTP. Es wird mit symetrischen, statischen Keys gearbeitet.

MIKEY ermöglicht dynamische Keys mit SRTP.

Softwareclients

Es gibt mittlerweile auch für Linux eine grosse Anzahl Softwareclients.

Freie SIP-Clients, mit denen ich gute Erfahrungen gemacht habe:

Erwähnenswerte closed source Gratisclients:

Server

PartySIP

Einfacher SIP-Proxy mit Registrar

Zum Aufbau kleiner, privater SIP-Netze geeignet

Nicht NAT-fähig

Kann mittels "iptables" automatisch Portforwarding einrichten (ähnlich UPnP)

Siproxd

Einfacher SIP/RTP-Proxy mit Registrar

Zum Aufbau kleiner, privater SIP-Netze geeignet

Als interner (nicht externer!) SIP/RTP-Proxy zur Überwindung eines NAT geeignet

Als transparenter Proxy konfigurierbar

SIP Express Router (SER)

Mächtiger, gut skalierender Allzweck-SIP-Proxy

Konfiguration sehr low-level (eher eine high-level Programmiersprache)

Gute SIP-Kentnisse für eine saubere Konfiguration von Hand erforderlich

Eine gewisse Frustresistenz ist beim erstmaligen Einrichten von Nutzen ;-)

RTP-Proxy, Voicemail, Gateway etc. über Zusatzprogramme

Asterisk

SIP-fähige Hauszentralensoftware

Eierlegende Wollmilchsau

Kann verschiedene VoIP-Protokolle vermitteln (auch untereinander)

Hohe Verbreitung, daher auch guter Support

Komplexe Situation sind teils mühsam zu konfigurieren

Quellen

Infos zu SIP, Asterisk und SER:
http://www.voip-info.org/
http://wiki.rowi.net/

ENUM:
http://www.switch.ch/enum/
http://www.e164.org/
http://www.e164.info/

PartySIP:
http://www.partysip.org/

Siproxd:
http://siproxd.sf.net/


©2005 by Christof Bürgi

Der Autor verzichtet auf die Urheberrechte.