SIP
SIP (Session Initiation Protocol) ist ein Signalisierungsprotokoll, das auf der Anwendungsschicht des OSI-Modells arbeitet. Es dient dem Aufbau, der Steuerung und dem Abbau von Kommunikationssitzungen in IP-Netzwerken. SIP wurde von der IETF entwickelt und ist in RFC 3261 spezifiziert.
Das Protokoll bildet die technische Grundlage fuer moderne VoIP-Telefonie und Videokonferenzsysteme. SIP kuemmert sich dabei ausschliesslich um die Signalisierung - also das Herstellen und Beenden von Verbindungen. Die eigentliche Uebertragung von Sprache und Video erfolgt ueber separate Protokolle wie RTP (Real-time Transport Protocol).
Funktionsweise von SIP
SIP arbeitet nach dem Client-Server-Prinzip und ist textbasiert, aehnlich wie HTTP. Die Nachrichten sind fuer Menschen lesbar, was die Fehlersuche und das Debugging erheblich erleichtert. Das Protokoll nutzt standardmaessig UDP auf Port 5060, kann aber auch TCP oder TLS (Port 5061) verwenden.
Ablauf eines SIP-Anrufs
Ein typischer VoIP-Anruf mit SIP laeuft in mehreren Schritten ab. Der Anrufer sendet zunaechst eine INVITE-Anfrage an den Empfaenger. Dieser signalisiert mit einer 180-Antwort (Ringing), dass das Telefon klingelt. Nimmt der Empfaenger ab, folgt eine 200-Antwort (OK). Der Anrufer bestaetigt dies mit einer ACK-Nachricht, und die Sprachuebertragung beginnt.
Anrufer SIP-Server Empfaenger
| | |
|--- INVITE ------------->| |
| |--- INVITE ------------->|
| |<-- 180 Ringing ---------||
|<-- 180 Ringing ---------| |
| |<-- 200 OK --------------||
|<-- 200 OK --------------| |
|--- ACK ---------------->| |
| |--- ACK ---------------->|
|<=============== RTP Medienstream ================>|
| | |
|--- BYE ---------------->| |
| |--- BYE ---------------->|
|<-- 200 OK --------------| |
Zum Beenden des Gespraechs sendet eine der Parteien eine BYE-Nachricht. Die Gegenseite bestaetigt mit 200 OK, und die Verbindung wird getrennt. Dieser Ablauf zeigt die Trennung von Signalisierung (SIP) und Medientransport (RTP) deutlich.
SIP-Architektur und Komponenten
Eine vollstaendige SIP-Infrastruktur besteht aus verschiedenen Komponenten, die unterschiedliche Aufgaben uebernehmen. Diese Architektur ermoeglicht flexible und skalierbare Kommunikationsloesungen.
User Agent
Der User Agent ist das Endgeraet des Nutzers - typischerweise ein IP-Telefon, ein Softphone auf dem Computer oder eine Smartphone-App. Jeder User Agent kann sowohl als Client (User Agent Client, UAC) als auch als Server (User Agent Server, UAS) agieren. Als UAC sendet er Anfragen, als UAS empfaengt und beantwortet er sie.
Registrar Server
Der Registrar verwaltet die Zuordnung zwischen SIP-Adressen und aktuellen Netzwerkadressen. Wenn du dein IP-Telefon einschaltest, sendet es eine REGISTER-Nachricht an den Registrar. Dieser speichert, unter welcher IP-Adresse du aktuell erreichbar bist. So koennen Anrufe auch dann zugestellt werden, wenn sich deine IP-Adresse aendert.
Proxy Server
Der SIP-Proxy leitet Anfragen zwischen Endgeraeten weiter. Er kann zusaetzliche Funktionen wie Authentifizierung, Routing-Entscheidungen oder Logging uebernehmen. Man unterscheidet zwischen Stateless Proxies, die Nachrichten nur weiterleiten, und Stateful Proxies, die den Sitzungsstatus speichern und komplexere Routing-Logik ermoeglichen.
Redirect Server
Der Redirect Server antwortet auf Anfragen mit Informationen, wo der Empfaenger zu finden ist. Statt die Anfrage selbst weiterzuleiten, teilt er dem Anrufer die aktuelle Adresse des Empfaengers mit. Der Anrufer kontaktiert den Empfaenger dann direkt. Dies reduziert die Last auf dem Server.
SIP-Nachrichten
SIP verwendet zwei Arten von Nachrichten: Requests (Anfragen) und Responses (Antworten). Die Struktur aehnelt HTTP, was die Integration in bestehende Web-Infrastrukturen erleichtert.
SIP-Requests
Die wichtigsten SIP-Anfragemethoden decken den gesamten Lebenszyklus einer Kommunikationssitzung ab. Jede Methode hat eine spezifische Funktion im Verbindungsablauf.
| Methode | Beschreibung |
|---|---|
| INVITE | Initiiert eine Sitzung oder laedt einen Teilnehmer ein |
| ACK | Bestaetigt den Erhalt einer finalen Antwort auf INVITE |
| BYE | Beendet eine bestehende Sitzung |
| CANCEL | Bricht eine noch nicht etablierte Sitzung ab |
| REGISTER | Registriert die aktuelle Adresse beim Registrar |
| OPTIONS | Fragt unterstuetzte Funktionen und Faehigkeiten ab |
SIP-Responses
SIP-Antworten sind in Klassen von 1xx bis 6xx eingeteilt. Diese Struktur ist von HTTP uebernommen und erleichtert das Verstaendnis fuer Entwickler, die bereits mit Webprotokollen vertraut sind.
| Klasse | Bedeutung | Beispiele |
|---|---|---|
| 1xx | Provisorisch | 100 Trying, 180 Ringing, 183 Session Progress |
| 2xx | Erfolg | 200 OK |
| 3xx | Umleitung | 301 Moved Permanently, 302 Moved Temporarily |
| 4xx | Client-Fehler | 400 Bad Request, 401 Unauthorized, 404 Not Found |
| 5xx | Server-Fehler | 500 Server Internal Error, 503 Service Unavailable |
| 6xx | Globaler Fehler | 600 Busy Everywhere, 603 Decline |
Die Antwortcodes helfen bei der Fehlerdiagnose erheblich. Wenn ein Anruf nicht zustande kommt, liefert der Antwortcode einen ersten Hinweis auf die Ursache - ob etwa die Nummer nicht existiert (404), der Empfaenger beschaeftigt ist (486 Busy Here) oder ein Serverproblem vorliegt (5xx).
SIP-Adressierung
SIP verwendet SIP-URIs zur Adressierung, die aehnlich wie E-Mail-Adressen aufgebaut sind. Eine typische SIP-Adresse lautet sip:benutzer@domain.de. Fuer verschluesselte Verbindungen wird das Schema sips: verwendet.
Beispiele fuer SIP-URIs:
sip:max.mustermann@firma.de - Einfache SIP-Adresse
sip:+4912345678@provider.de;user=phone - Telefonnummer als SIP-URI
sips:vertraulich@secure.de - Verschluesselte Verbindung
sip:konferenz@meet.firma.de - Konferenzraum
Die Aehnlichkeit zu E-Mail-Adressen ist kein Zufall: SIP wurde bewusst so gestaltet, dass es sich nahtlos in bestehende Internet-Infrastrukturen integrieren laesst. Du kannst SIP-Adressen sogar ueber DNS-Eintraege (SRV-Records) auflösen.
SIP und Medientransport
SIP ist ausschliesslich fuer die Signalisierung zustaendig - es teilt den Endgeraeten mit, wann und wie sie kommunizieren sollen. Die eigentlichen Sprach- und Videodaten werden ueber separate Protokolle transportiert, hauptsaechlich RTP (Real-time Transport Protocol).
SDP - Session Description Protocol
Innerhalb von SIP-Nachrichten wird SDP (Session Description Protocol) verwendet, um die Medienparameter auszuhandeln. SDP beschreibt, welche Codecs verfuegbar sind, auf welchen Ports die Medienstreams erwartet werden und welche IP-Adressen zu verwenden sind. Diese Informationen werden im Body der INVITE- und 200-OK-Nachrichten uebertragen.
Beispiel eines SDP-Inhalts:
v=0
o=- 12345 12345 IN IP4 192.168.1.100
s=VoIP-Anruf
c=IN IP4 192.168.1.100
t=0 0
m=audio 49170 RTP/AVP 0 8 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
In diesem Beispiel bietet der Anrufer Audio auf Port 49170 an und unterstuetzt die Codecs PCMU (G.711 mu-law), PCMA (G.711 A-law) sowie DTMF-Toene. Der Empfaenger waehlt einen kompatiblen Codec aus und antwortet mit seinen eigenen Parametern.
Vergleich: SIP vs. H.323
Vor SIP war H.323 der dominierende Standard fuer VoIP. H.323 stammt von der ITU (International Telecommunication Union) und wurde urspruenglich fuer Videokonferenzen ueber ISDN entwickelt. Beide Protokolle erfuellen aehnliche Aufgaben, unterscheiden sich aber erheblich in Architektur und Komplexitaet.
| Aspekt | SIP | H.323 |
|---|---|---|
| Herkunft | IETF (Internet-Community) | ITU (Telekommunikation) |
| Architektur | Dezentral, HTTP-aehnlich | Zentralisiert, komplex |
| Nachrichtenformat | Textbasiert (lesbar) | Binaer (ASN.1-kodiert) |
| Erweiterbarkeit | Einfach durch Header | Komplex, neue Versionen noetig |
| NAT-Traversal | Mit STUN/TURN/ICE loesbar | Schwieriger |
| Verbreitung heute | Dominant | Ruecklaeufig |
SIP hat sich durchgesetzt, weil es besser zur Internet-Philosophie passt. Die Textbasierung, Erweiterbarkeit und Einfachheit machen es attraktiver fuer Entwickler. H.323 findest du heute noch in aelteren Videokonferenzsystemen und einigen Unternehmensnetzwerken, aber fuer neue Projekte ist SIP die klare Wahl.
SIP-Sicherheit
Die Sicherheit von SIP-Kommunikation ist ein kritisches Thema, da Telefonate abgehoert oder manipuliert werden koennen. SIP bietet verschiedene Sicherheitsmechanismen, die je nach Anforderung eingesetzt werden.
Transportverschluesselung
SIP over TLS (SIPS) verschluesselt die Signalisierung zwischen Endgeraeten und Servern. Dabei wird Port 5061 statt 5060 verwendet. TLS schuetzt vor dem Abhoeren der Verbindungsmetadaten - wer mit wem telefoniert und wann. Die Medienstreams (Sprache/Video) werden separat mit SRTP (Secure Real-time Transport Protocol) verschluesselt.
Authentifizierung
SIP unterstuetzt Digest Authentication, bei der Benutzername und Passwort nicht im Klartext uebertragen werden. Stattdessen wird ein Hash berechnet. Wenn ein Proxy oder Registrar eine Authentifizierung verlangt, antwortet er mit 401 Unauthorized oder 407 Proxy Authentication Required und einem Challenge-Wert. Der Client berechnet daraus die korrekte Antwort.
Typische Angriffe
SIP-Systeme sind verschiedenen Angriffen ausgesetzt, gegen die Schutzmassnahmen ergriffen werden muessen:
- INVITE Flooding: Massenhaft gefaelschte Anrufanfragen ueberlasten den Server
- Registration Hijacking: Angreifer registriert sich unter fremder Identitaet
- Eavesdropping: Abhoeren unverschluesselter Signalisierung oder Medien
- Toll Fraud: Unbefugte nutzen die VoIP-Infrastruktur fuer teure Anrufe
- SRTP Downgrade: Angreifer erzwingt unverschluesselte Medienverbindung
Gute Sicherheitspraxis umfasst TLS fuer die Signalisierung, SRTP fuer die Medien, starke Passwoerter, Rate Limiting gegen Flooding-Angriffe und regelmaessige Updates der SIP-Software.
SIP in modernen Anwendungen
SIP ist heute das Standardprotokoll fuer geschaeftliche Telefonie und findet sich in zahlreichen Anwendungsbereichen. Von der klassischen IP-Telefonanlage bis hin zu modernen Unified-Communications-Plattformen bildet SIP die technische Basis.
SIP-Trunking
SIP-Trunking ersetzt traditionelle ISDN-Anschluesse und verbindet Unternehmen ueber das Internet mit dem oeffentlichen Telefonnetz. Ein SIP-Trunk ist eine virtuelle Telefonleitung, die mehrere gleichzeitige Gespraeche ermoeglichen. Dadurch entfallen teure Hardware-Anschluesse, und die Skalierung wird deutlich einfacher.
WebRTC und SIP
WebRTC (Web Real-Time Communication) ermoeglicht Echtzeitkommunikation direkt im Browser. Obwohl WebRTC eigene Signalisierungsmechanismen nutzen kann, wird es haeufig mit SIP kombiniert. Gateways uebersetzen zwischen WebRTC und SIP, sodass Browser-Nutzer mit traditionellen SIP-Telefonen kommunizieren koennen.
Unified Communications
Moderne Unified-Communications-Plattformen wie Microsoft Teams, Cisco Webex oder Zoom verwenden SIP fuer die Anbindung an das Telefonnetz. Auch wenn diese Plattformen intern propriataere Protokolle nutzen, erfolgt die Schnittstelle zur Aussenwelt ueber SIP-Gateways.
SIP in der IT-Praxis
Fuer Fachinformatiker fuer Systemintegration gehoert die Einrichtung und Wartung von VoIP-Systemen zum typischen Aufgabenspektrum. Das Verstaendnis von SIP ist dabei unverzichtbar - ob bei der Konfiguration von IP-Telefonanlagen, der Fehlersuche mit Wireshark oder der Integration von Telefonie in Unternehmensnetzwerke.
Auch Fachinformatiker fuer Anwendungsentwicklung begegnen SIP, wenn sie Kommunikationsfunktionen in Anwendungen integrieren. APIs fuer Telefonanlagen, Click-to-Call-Funktionen auf Webseiten oder die Integration von Sprachanrufen in Business-Software basieren haeufig auf SIP.
Quellen und weiterfuehrende Links
- RFC 3261 - SIP: Session Initiation Protocol - Offizielle IETF-Spezifikation
- Elektronik-Kompendium: SIP - Deutschsprachige Erklaerung
- Wikipedia: Session Initiation Protocol - Umfassende Uebersicht
- IETF SIP Working Group - Aktuelle Entwicklungen und RFCs