SIP – Session Initiation Protocol

Abkürzung: SIP

SIP baut Gespräche auf, steuert sie und beendet sie. Die Sprache selbst überträgt SIP nicht.

Definition

Das Session Initiation Protocol ist in RFC 3261 festgelegt und dient dem Auf- und Abbau von Kommunikationssitzungen. Im Telefonieumfeld ist es das Verfahren, mit dem sich Endgeräte anmelden, Anrufe signalisieren und Gespräche beenden.

SIP ist textbasiert und im Aufbau an HTTP angelehnt. Eine Nachricht besteht aus einer Startzeile, Kopfzeilen und einem optionalen Rumpf (Body). Das macht Mitschnitte lesbar, was für die Fehlersuche entscheidend ist.

Der wichtigste Punkt zum Verständnis: SIP transportiert keine Sprache. Es handelt nur aus, wer mit wem spricht und über welche Adresse der Sprachkanal laufen soll. Die eigentliche Übertragung übernimmt RTP auf einer getrennten Verbindung, die Beschreibung dieser Verbindung liefert SDP.

Aus dieser Trennung erklären sich die meisten Störungen im Betrieb. Signalisierung und Sprache nehmen unterschiedliche Wege und können unabhängig voneinander scheitern. Ein Telefon, das klingelt, aber stumm bleibt, ist der Regelfall dieses Musters.

Beteiligte

  • User Agent. Das Endgerät. Es tritt als Client auf, wenn es eine Anfrage sendet, und als Server, wenn es eine empfängt.
  • Registrar. Nimmt Anmeldungen entgegen und speichert, unter welcher Adresse ein Teilnehmer erreichbar ist.
  • Location Service. Die zugehörige Ablage. Sie beantwortet die Frage, wohin ein Anruf zuzustellen ist.
  • Proxy. Leitet Anfragen weiter und trifft dabei Wegeentscheidungen.
  • Redirect Server. Antwortet nicht mit einer Weiterleitung, sondern mit einer anderen Adresse, an die sich der Anrufer wenden soll.
  • B2BUA. Ein Gegenüber, das eine Sitzung terminiert und eine zweite aufbaut. Telefonanlagen und Session Border Controller arbeiten so, weshalb sie mehr Einfluss auf ein Gespräch haben als ein Proxy.

Beim Anbieter sind diese Rollen üblicherweise auf einem Gegenüber vereint, das schlicht als Registrar oder SIP-Server angesprochen wird.

SIP-Nachrichten

Die wichtigsten Methoden:

MethodeZweck
REGISTERAnmeldung beim Registrar
INVITEGesprächsaufbau
ACKBestätigung der Annahme
BYEGespräch beenden
CANCELLaufenden Aufbau abbrechen
OPTIONSErreichbarkeit prüfen

Auf jede Anfrage folgen eine oder mehrere Antworten mit dreistelligem Statuscode, ebenfalls nach HTTP-Vorbild. Die vollständige Übersicht steht in der /misc/sip-statuscodes.html.

Ein einfacher Gesprächsaufbau sieht so aus: INVITE vom Anrufer, 100 als Eingangsbestätigung, 180 während es klingelt, 200 bei Annahme, ACK vom Anrufer. Danach läuft der Sprachkanal. Zum Schluss BYE und 200.

SIP-Anmeldung

Die Anmeldung ist der Vorgang, an dem im Betrieb am häufigsten etwas schiefgeht.

Das Endgerät sendet REGISTER an den Registrar und teilt mit, unter welcher Adresse es erreichbar ist. Der Registrar antwortet in aller Regel zunächst mit 401 und einer Aufforderung zur Authentifizierung. Das Gerät wiederholt die Anfrage mit einem aus dem Passwort berechneten Nachweis. Das Passwort selbst wird dabei nicht übertragen.

Eine Anmeldung gilt nur für eine begrenzte Zeit. Das Gerät schlägt eine Dauer vor, der Registrar kann sie kürzen. Vor Ablauf muss erneut REGISTER gesendet werden, sonst gilt der Teilnehmer als nicht erreichbar.

Daraus folgt ein Verhalten, das im Alltag unangenehm ist. Fällt die Erneuerung aus, etwa weil die Internetverbindung kurz unterbrochen war, bleibt das Gerät für eingehende Anrufe unerreichbar, ohne dass der Nutzer etwas bemerkt. Ausgehend zu telefonieren funktioniert je nach Anbieter weiterhin. Bemerkt wird der Zustand oft erst, wenn jemand sich beschwert, nicht durchgekommen zu sein.

Hinter NAT kommt hinzu, dass der Router die Zuordnung nach einiger Zeit ohne Verkehr verwirft. Ist das Registrierungsintervall länger als diese Zeit, erreicht ein eingehender Anruf das Gerät nicht mehr. Abhilfe schaffen ein kürzeres Intervall oder regelmäßige Erhaltungspakete.

Transport und Adressierung

SIP nutzt üblicherweise Port 5060 über UDP oder TCP, verschlüsselt über TLS den Port 5061. Verschlüsselte Signalisierung schützt die Sprache nicht, dafür ist SRTP zuständig.

Adressiert wird in der Form sip:teilnehmer@domain, aufgebaut wie eine Mailadresse. Bei Anbietern steht links die Rufnummer und rechts die Domain des Anbieters.

Die Auflösung des Registrars erfolgt über DNS. Scheitert sie, kommt die Anmeldung nicht zustande, obwohl Zugangsdaten und Netzverbindung in Ordnung sind. Deshalb ist bei Anmeldeproblemen die Namensauflösung früh zu prüfen.

SIP und NAT

SIP trägt Adressen im Nachrichteninhalt mit. Steht dort die private Adresse des Endgeräts, kann die Gegenstelle nichts damit anfangen.

Drei Ansätze sind verbreitet. Der Router erkennt SIP und schreibt die Adressen mit um. Das Endgerät ermittelt seine öffentliche Adresse selbst, etwa über STUN. Oder beide Seiten antworten grundsätzlich an die Adresse, von der die Pakete tatsächlich kamen, statt an die im Inhalt genannte.

Das letzte Verfahren ist das zuverlässigste und in RFC 3581 beschrieben. Die mitschreibende Variante im Router ist die fehleranfälligste und Ursache schwer erklärbarer Störungen.

Abgrenzung

RTP überträgt die Sprache, SDP beschreibt den Kanal. Beide sind eigene Protokolle und arbeiten unabhängig von SIP.

H.323 ist ein älterer Ansatz der ITU-T mit demselben Zweck. SIP hat sich durchgesetzt.

SIPS bezeichnet SIP über TLS.

IAX ist ein Protokoll der Telefonanlage Asterisk, das Signalisierung und Medien über dieselbe Verbindung führt und deshalb unempfindlicher gegen NAT ist.

Quellen

  • RFC 3261: SIP, Session Initiation Protocol
  • RFC 3263: Locating SIP Servers
  • RFC 3264: An Offer/Answer Model with the Session Description Protocol
  • RFC 3581: An Extension to the Session Initiation Protocol for Symmetric Response Routing
  • RFC 5626: Managing Client-Initiated Connections in SIP
  • RFC 7616: HTTP Digest Access Authentication, Grundlage der SIP-Authentifizierung

Erstellt: · Überarbeitet: