DasSession Initiation Protocol (SIP) (engl. fürSitzungs-Initiierungs-Protokoll oder auchEinleitungs-Protokoll) ist einNetzprotokoll zum Aufbau, zur Steuerung und zum Abbau einerKommunikationssitzung zwischen zwei und mehr Teilnehmern. Das Protokoll wird u. a. im RFC 3261[1]spezifiziert und häufig in derIP-Telefonie angewandt.
Im Gegensatz zu H.323, das von der ITU-T stammt, wurde SIP von der IETF entwickelt. H.323 kann stark vereinfacht als ISDN over IP bezeichnet werden. Dies erlaubte zwar insbesondere denTelefonanlagenherstellern, vergleichsweise schnell und einfach die Kommunikation auf IP-Netzwerke umzustellen, andererseits wurden die Stärken und Schwächen dieser Netze nicht genügend berücksichtigt. Augenscheinlich wird dies insbesondere im Zusammenhang mit NAT, der vor allem beiFirewalls undEndkundennetzen (z. B.DSL-Routern) notwendigen Übersetzung vonNetzwerkadressen, welche bei H.323 nur mit viel Aufwand erreicht werden kann.
Das Design des SIP dagegen lehnt sich an dasHypertext Transfer Protocol an (ist zu diesem abernichtkompatibel) und ist deutlich besser für IP-Netze geeignet.
Der Aufbau von SIP erlaubt es, auf einfache Weise neueErweiterungen einzufügen, ohne dass alle involviertenGeräte diese verstehen müssen.
Auch ist es allgemeiner gehalten: Während H.323 nur für Telefonie gedacht ist, können mit SIP Sitzungen beliebiger Art verwaltet werden. Die „Nutzlast“ der Sitzung, also die eigentlichen zu übertragendenDatenströme, können alle Ströme sein, die sich über ein Netzwerk übertragen lassen. Das Haupteinsatzgebiet findet sich in der Audio- und Video-Übertragung, einigeOnline-Spiele greifen zur Verwaltung der Übertragung ebenfalls auf SIP zurück.[2]
Um einInternet-Telefonat zu führen, braucht man mehr als nur SIP, denn es dient lediglich dazu, die Bedingungen für dieVerbindung zu vereinbaren bzw. auszuhandeln – die eigentlichen Daten für die Kommunikation müssen über andere, dafür geeignete Protokolle ausgetauscht werden. Hierzu wird in SIP häufig dasSession Description Protocol eingebettet (SDP, RFC 4566,[3] die Übersetzung aus demEnglischen „Sitzungs-Beschreibungs-Protokoll“ ist nicht gebräuchlich). Dabei teilen sich die Geräte gegenseitig mit, welche Methoden der Video- und Audio-Übertragung sie beherrschen (dieCodecs), mit welchem Protokoll sie das tun möchten und an welcherNetzadresse sie senden und empfangen wollen. Diese Medien-Aushandlung ist also kein direkter Bestandteil von SIP, sondern wird durch die Einbettung eines weiteren Protokolls erreicht.
Für die Medienübertragung wird bei der Internet-Telefonie dasReal-Time Transport Protocol (RTP, deutschEchtzeit-Transportprotokoll, RFC 3550[4]) verwendet.
Teilnehmer-Adressen werden im URI-Format geschrieben, welches auch in E-Mails und WWW-Adressen verwendet wird. Solch eine Teilnehmer-Adresse folgt meist einem der folgenden dreiSchemata:
Verschlüsselte SIP-Verbindung:sips:user@domain (s. u.).
Telefonnummer:tel:nummer, zum Beispieltel:+49-69-1234567. Dieses Schema wird vor allem von Geräten verwendet, die eine Schnittstelle in das „normale“Telefonnetz bereitstellen und kann bei Bedarf in eine SIP-URI gewandelt werden, z. B. insip:+49-69-1234567@domain.
Durch die Trennung von Sitzung und Medien können beideDatenströme auch unabhängig voneinanderverschlüsselt werden. Man kann SIP über dasTLS-Protokoll, auch SIPS genannt, verschlüsseln und den Medienstrom (Sprachdaten) ebenfalls über dasSRTP. Jede Kombination davon ist möglich, allerdings in Hinsicht auf eine sichere Verschlüsselung nicht sinnvoll.
Zwecks einer sicheren Verschlüsselung müssen beide Datenströme (also Sitzung und Medien) gleichzeitig verschlüsselt werden.
DiesymmetrischenSchlüssel des Medienstroms werden über SDP (also SIP)ausgetauscht und wären damit über ein unverschlüsseltes SIP angreifbar.
Die symmetrischen Schlüssel von TLS werden zwar am Anfang der Sitzung auch ausgetauscht, jedoch greifen hier die Mechanismen derTLS-Zertifikate, bei denen die symmetrischen Schlüssel wiederum durch dieasymmetrischen Schlüssel der TLS-Zertifikate verschlüsselt sind.
Da bei SIP eine Übertragung über ein verbindungsloses Netzwerkprotokoll sinnvoller ist, wurde mit DTLS ein auf UDP basierendesPendant zu TLS entworfen, welches auf TCP aufbaut. Allerdings wird es gegenwärtig nur von einem SIP-Stack (nämlich von ReSIProcate)implementiert.
DerUser Agent (UA) ist eineSchnittstelle zum Benutzer, die Inhalte darstellt und Befehle entgegennimmt. Auch ein SIP-Telefon ist ein SIP User Agent, der die traditionellen Ruffunktionen eines Telefons wie Zifferneingabe, Annehmen, Abweisen und Halten bietet.
EinProxy Server ist eine Kommunikationsschnittstelle in einemNetzwerk. Er arbeitet alsVermittler, der auf der einen Seite Anfragen entgegennimmt, um dann über seine eigene Adresse eine Verbindung zu einer anderen Seite herzustellen. Er soll sicherzustellen, dass Anfragen gezielt an den Benutzer gesendet werden. Proxys sind auch für die Durchsetzung derHierarchie nötig.
Der Redirect Server entlastet den Proxy Server. Er übergibt die Routing-Informationen direkt an den User Agent Client. Er erzeugtWeiterleitungen, um eingehende Anträge in einer alternativen Gruppe von URIs kontaktieren zu können. Der Redirect Server ermöglicht es, SIP-Session-Einladungen an externe Domänen zu übermitteln.
SIP UA-Registrierung auf SIP-Registrar mit Authentifizierung durch Login
Der Registrar Server dient als zentrale Schaltstelle in derSystemarchitektur von SIP. Er übernimmt das Registrieren von Anfragen für dieDomain, die er verarbeitet. Er bearbeitet eine oder mehrereIP-Adressen zu einer bestimmten SIP-URI, die durch das SIP-Protokoll übermittelt werden.
EinGateway kann als Schnittstelle ein SIP-Netz mit anderen Netzen verbinden, die unterschiedliche Protokolle oder Technologien verwenden, z. B. mit dem öffentlichenFernsprechnetz.
B2BUA - (auf Englisch Back-to-Back-User-Agent, wörtlich: der User-Agent "Rücken an Rücken") ist eineMiddleware sowohl im SIP- als auch imRTP-Datenstrom. Gegenüber SIP-Clients verhält sich ein B2BUA wie ein User-Agent-Server auf der einen Seite der Verbindung und wie ein User-Agent-Client auf der anderen. Sinn ist es, die Datenströme manipulieren zu können.Der B2BUA wird im RFC 3261[1] spezifiziert.
Die an einer SIP-Session beteiligten Clients und Server senden sich Anfragen (englisch „requests“) und beantworten diese mittels Antwort-Codes (englisch „responses“).
Vorläufige Statusinformationen, dass der Server weitere Aktionen durchführt und deshalb noch keine endgültige Antwort senden kann.
2xx – Successful
Die Anfrage war erfolgreich.
3xx – Redirection
Diese Nachrichten informieren über eine neue Kontaktadresse des Angerufenen oder über andere Dienste, die es ermöglichen die Verbindung erfolgreich aufzubauen.
4xx – Request Failures
Die vorangegangene Nachricht konnte nicht bearbeitet werden.
5xx – Server Failures
Ein an der Übermittlung beteiligter Server konnte eine Nachricht nicht bearbeiten.
6xx – Global Failures
Der Server wurde zwar erfolgreich kontaktiert, jedoch kommt dieTransaktion nicht zustande.
Unterstützung findet SIP bereits in vielen Geräten diverser Hersteller und scheint sich zum Standard-Protokoll für Voice over IP (VoIP) zu entwickeln. SIP wurde auch vom3rd Generation Partnership Project (3GPP) als Protokoll fürMultimediaunterstützung im 3G-Mobilfunk (UMTS) ausgewählt. Auch die Spezifizierung desNext Generation Network (NGN) beimEuropean Telecommunications Standards Institute (ETSI) der ProjektgruppeTelecommunications and Internet converged Services and Protocols for Advanced Networking (TISPAN) stützt sich auf SIP.
Zu den Vorteilen von SIP gehört, dass es sich hierbei um einenoffenen Standard handelt, der mittlerweile sehr weite Verbreitung gefunden hat.
Da SIP-Serververteilt sind, betrifft einAngriff nur den jeweiligen Anbieter und nicht die gesamte über SIP vermittelte Telefonie.
Ein weiterer Vorteil von SIP ist die Möglichkeit, eine bereits etablierte Sitzung modifizieren zu können. Dazu wird innerhalb der Sitzung eine weitere INVITE-Message mit den neuen SDP-Sitzungseigenschaften an die Gegenseite gesendet. Somit kann ein neues Medium hinzugefügt oder ein bestehendes Medium modifiziert bzw. entfernt werden. Die entsprechende Nachricht wird auch alsRe-INVITE Request bezeichnet.
Die Trennung von Sitzungs- und Medienaushandlung ist ein weiterer Vorteil von SIP, da sie eine große Flexibilität bei der unterstütztenNutzlast erlaubt: möchte z. B. ein Hersteller SIP für eine spezialisierteAnwendung verwenden, so kann er dafür eine eigene Medienaushandlung entwerfen, falls dafür noch kein Protokoll existiert.
Ein Nachteil von SIP ist, dass es zur Übertragung der Sprachdaten aufRTP zurückgreift. Die dafür verwendetenUDP-Ports werden dynamisch vergeben, was die Verwendung von SIP in Verbindung mitFirewalls oderNetwork Address Translation (NAT, RFC 2663[5]) schwierig macht, da die meisten Firewalls bzw. NAT-Router die dynamisch vergebenen Ports nicht der Signalisierungsverbindung zuordnen können. Abhilfe für dieses Problem schafft der Einsatz von STUN (Session Traversal Utilities for NAT), welches NAT-Router erkennt und durchdringt, aber auch andere Protokolle wieIAX (InterAsterisk eXchange). Durch den Einsatz des STUN-Protokolls werden die IP-Adresse und der Port ermittelt, mit dem die NAT-Firewall bzw. der NAT-Router nach außen (d. h. in das öffentliche Internet) geht. Eine deutlich einfachere Methode dieses Problem zu umgehen ist, dass der Proxyserver bzw. der gerufene Teilnehmer direkt auf die IP-Adresse und den verwendeten Port im IP-Header zurückgreift, wodurch der NAT-Mechanismus auch ohne STUN-Server wieder greift.IAX kombiniert Signalisierung und Mediendaten auf einer UDP-Verbindung. Wie H.323 ist IAX ein binäres Protokoll, weshalb die Fehlerbehebung schwieriger als bei SIP ist. Zudem befindet sich IAX erst in der Standardisierungsphase.
Ein neueres Verfahren derIETF zur Lösung des NAT-Traversal-Problems stelltInteractive Connectivity Establishment (ICE) dar, welches schon von einigen SIP-Clients unterstützt wird und meist perFirmware-Upgrade installiert werden kann.
Eine weitere Technik zum NAT-Traversal stellen sogenannteApplication Layer Gateways (ALG) dar. Diese sind zwischengeschaltete SIP-Proxys, die – auf einem NAT-Router bzw. einer Firewall installiert – für reibungslosen Transfer der SIP-Signalisierung und -Medienströme sorgen sollen. Ein ALG kann bei SIP-Telefonaten automatisch für die Öffnung der notwendigen Ports auf einer Firewall sorgen sowieRTP-Medienströme mitDiffServ-Bits markieren, wodurch die Medien-Pakete mit höherer Priorität über IP-Netze transportiert werden können, wenn ein Netz dieses unterstützt. Das Internet bietet grundsätzlich keine Priorisierung, sieheNetzneutralität. In der Praxis werden die Pakete jedoch meist an eine nicht dafür vorgesehene IP-Adresse geliefert (an den Server resp. Proxy anstatt an das dafür vorgesehene Endgerät), weshalb in vielen Konfigurationen und als Vorgabe von vielen VoIP-Anbietern SIP-ALG abzuschalten ist, um überhaupt Verbindungen herstellen zu können.
Bei der Nutzung von IPv6 als Transportprotokoll entfällt in der Regel NAT und damit auch die Notwendigkeit die NAT-typischen Probleme zu umschiffen. Lediglich die Problematik der Firewall bleibt identisch.
Ulrich Trick, Frank Weber:SIP und Telekommunikationsnetze. Next Generation Networks und Multimedia over IP - konkret. De Gruyter Oldenbourg, 2015,ISBN 978-3-486-77853-3.