Um ein Telefongespräch über das Internet zwischen zwei oder mehreren Teilnehmern zu initiieren braucht es das „Session Initial Protocol“, kurz SIP. Was das SIP-Protokoll genau macht, wie es funktioniert und was die einzelnen Elemente des Protokolls bedeuten, erfahren Sie in diesem Artikel.
SIP Protokoll
Alles was man 2024 wissen sollte
1. Was ist ein SIP-Protokoll?
1. Was ist ein SIP-Protokoll?
Die Abkürzung SIP steht für Session Initiation Protocol. Im Deutschen spricht man von einem Gesprächsprotokoll. Das SIP-Protokoll kommt in der VoIP-Telefonie zur Sprach- und Videokommunikation zum Einsatz. Dabei wird es sowohl zum Auf- und Abbau als auch zur Steuerung einer Kommunikationsverbindung zwischen zwei oder mehreren Gesprächspartnern genutzt. Mithilfe dieses Netzwerkprotokolls werden Verbindungen trotz Firewalls und NAT Grenzen (Network Address Translation) ermöglicht.
Die Nutzung des SIP-Protokolls ermöglicht unter anderem:
- IP-Telefonie
- Webkonferenzen
- Instant-Messaging
- Sprach- & Videokommunikation
2. Wie funktioniert das SIP-Protokoll?
2. Wie funktioniert das SIP-Protokoll?
Die Abläufe eines SIP-Protokolls ähneln der Funktionsweise der Telefonie in ihren ersten Entwicklungsstufen. Damals wurde die Verbindung zwischen den Gesprächspartnern manuell durch einen Telefonisten hergestellt und wieder beendet.
In der VoIP-Telefonie übernimmt diese Rolle das SIP-Protokoll. Es beruht auf einer Client-Server-Architektur, innerhalb derer es für die Signalisierung zuständig ist. Das textbasierte SIP-Protokoll funktioniert ähnlich wie das Hypertext Transfer Protocol (HTTP). Dies birgt einen Vorteil: Das SIP-Protokoll lässt sich durch seine Ähnlichkeit mit HTTP in Geräte, Webanwendungen oder Browser mit integrieren. Dadurch wird das Telefonieren via SIP am Smartphone möglich.
Der SIP-Trunk als Schnittstelle bzw. zentraler Anschluss ermöglicht die Erreichbarkeit von mehreren Rufnummern aus einem einzigen Benutzerkonto. Zur Identifizierung der User wird mit URIs (Universal Resource Identifiyers) gearbeitet.
Um ein VoIP-Gespräch aufzubauen, wird im SIP-Protokoll zunächst eine SIP-Anfrage bzw. SIP-Request versendet. Kommt eine entsprechende SIP-Antwort bzw. SIP-Response zurück, kann eine Verbindung hergestellt werden.
Für die Übertragung von Sprache und Video in der VoIP-Telefonie ist das RTP-Protokoll (Real-Time Transport Protocol) zuständig. Verschlüsselte Daten werden via SRTP-Protokoll (Secure Real-Time Transport Protocol) übertragen. Das „sichere Echtzeit Protokoll“ enthält die Informationen über IP-Adressen sowie Ports und bestimmt die entsprechenden Codecs (Koderierer und Dekodierer).
3. Elemente des SIP-Protokolls
3. Elemente des SIP-Protokolls
Innerhalb der SIP-Systemarchitektur unterscheidet man zwischen folgenden Elementen:
- User Agent
- Registrar Server
- Proxy Server
- Redirect Server
- Session Border Controller
- Gateway
- B2BUA
Wie der Name schon sagt, stellt der User Agent die Schnittstelle zum jeweiligen Nutzer dar. Er dient der Darstellung von Inhalten und der Entgegennahme von Befehlen. Die zentrale Schnittstelle wird durch den Registrar Server bereitgestellt. Er registriert und verarbeitet Anfragen an die Domain.
Unter dem Proxy Server versteht man die Kommunikationsschnittstelle des Netzwerks. Der Router („Vermittler“) nimmt Anfragen entgegen und stellt eine Verbindung mit dem richtigen Benutzer her. Der Redirect Server dient der Entlastung des Proxy Servers, indem er die Routing-Informationen an den User Agent weitergibt.
Um Rechnernetze mit verschiedenen Sicherheitsanforderungen sicher zu koppeln, wird der Session Border Controller als Netzwerkkomponente verwendet. Als Knotenpunkt zwischen SIP-Server und User Agent erfolgt damit unter anderem die Netzwerkadressübersetzung (Network Address Translation NAT).
Das Gateway verbindet als Schnittstelle das SIP-Netz mit anderen Netzen. Die Verbindung funktioniert auch zwischen unterschiedlichen Technologien bzw. Protokollen, beispielsweise zwischen SIP und dem klassischen Telefonnetz.
Die Abkürzung B2BUA steht für Back-to-Back-User-Agent („Rücken an Rücken User Agent“) und fungiert als Middleware nicht nur im SIP- sondern auch im RTP-Datenstrom. Er ermöglicht das Management von Gesprächen, z. B. die Weiterleitung, die Kopplung verschiedener Netzwerke oder das Ausblenden der Netzwerkstruktur.
4. SIP-Anfragen bzw. SIP-Requests
4. SIP-Anfragen bzw. SIP-Requests
Bevor zwischen zwei Geräten eine VoIP-Verbindung aufgebaut werden kann, sendet das IP-Gerät des Anrufers eine SIP-Anfrage an den/die gewünschten Gesprächspartner. Man spricht auch von einem SIP-Request.
Es gibt sechs elementare SIP-Anfragecodes:
- REGISTER: Anmeldung des Endgeräts beim VoIP-Service-Anbieter
- INVITE: Anfrage an einen Server eine Sitzung (Session) aufzubauen
- ACK: Bestätigung einer empfangenen Anfrage oder Antwort
- CANCEL: Abbruch einer begonnenen Anfrage
- BYE: Beendigung einer bestehenden Sitzung
- OPTIONS: Ermöglicht Endgeräten die Fähigkeiten anderer beteiligter Geräte anzufragen
Zur Erweiterung der Möglichkeiten existieren acht weitere Codes:
- SUBSCRIBE: Einleitung der Überwachung eines Endgerätes auf ein bestimmtes Ereignis oder einen Zustand.
- NOTIFY: Meldung eines bestimmten Ereignisses oder eines Zustandes, als Antwort auf SUBSCRIBE oder REFER.
- REFER: Einleitung einer Verbindungsübergabe an einen dritten Teilnehmer.
- MESSAGE: Übermittlung einer Textnachricht an ein Endgerät.
- PRACK: Antwort auf einen 1xx-SIP-Status-Code.
- UPDATE: Veränderung von Parametern noch während der Verbindungsaufbauphase.
- INFO: Ãœbermittlung von Steuer- und Kontrollinformationen, die nicht direkt die SIP-Sitzung betreffen.
- PUBLISH Unaufgeforderte Übermittlung von Zuständen und Ereignisinformationen durch Endgeräte.
👉Quelle und weitere Informationen: de.wikipedia.org/wiki/SIP-Anfragen
5. SIP Status Codes: SIP-Antworten bzw. SIP-Responses
5. SIP Status Codes: SIP-Antworten bzw. SIP-Responses
Empfängt ein VoIP-Telefon bzw. Endgerät eine SIP-Anfrage, antwortet es mit einer SIP-Response. Es gibt verschiedene Formen von SIP-Antworten.
SIP Status Codes 1xx: Provisional
Führt der Server zur Bearbeitung der Anfrage noch weitere Aktionen durch, erhält der Sender vorläufige Antworten.
Code | Nachricht | Bedeutung |
---|---|---|
100 | Trying | Es wird versucht, den Anruf zu vermitteln. |
180 | Ringing | Es wird versucht, beim Angerufenen zu klingeln. |
181 | Call Is Being Forwarded | Der Anruf wird weitergeleitet. |
182 | Queued | Der Anruf ist in einer Warteschleife. |
183 | Session Progress | Die Verbindung wird aufgebaut. |
199 | Early Dialog Terminated | Der Dialog wurde während des Verbindungsaufbaus beendet. |
👉Quelle & weitere Infos: de.wikipedia.org/wiki/SIP-Status-Codes
SIP Status Codes 2xx: Successful
War die SIP-Anfrage erfolgreich, empfängt man folgende Codes:
Code | Nachricht | Bedeutung |
---|---|---|
200 | OK | Die Anfrage wurde erfolgreich bearbeitet und das Ergebnis der Anfrage wird in der Antwort übertragen. |
202 | Accepted | Die Anfrage wurde akzeptiert, wird aber zu einem späteren Zeitpunkt ausgeführt. |
204 | No Notification | Die Anfrage wurde erfolgreich durchgeführt, die entsprechende Antwort wird aber bewusst nicht gesendet. |
👉Quelle & weitere Infos: de.wikipedia.org/wiki/SIP-Status-Codes
SIP Status Codes 3xx: Redirection
Besitzt die angerufene Person eine neue Adresse oder nutzt andere Dienste, findet eine Weiterleitung statt.
Code | Nachricht | Bedeutung |
---|---|---|
300 | Multiple Choices | Für die Gegenstelle gibt es keine eindeutige Zieladresse. |
301 | Moved Permanently | Der Angerufene ist dauerhaft woanders erreichbar. |
302 | Moved Temporarily | Der Angerufene ist vorübergehend woanders erreichbar. |
305 | Use Proxy | Es muss der angegebene Proxy verwendet werden. |
380 | Alternative Service | Der Anruf war nicht erfolgreich, es sind aber alternative Dienste verfügbar. |
👉Quelle & weitere Infos: de.wikipedia.org/wiki/SIP-Status-Codes
SIP Status Codes 4xx: Request Failures
Wenn eine SIP-Anfrage nicht bearbeitet werden konnte, erhält der Sender eine negative Rückmeldung.
Code | Nachricht | Bedeutung |
---|---|---|
400 | Bad Request | Die SIP-Anfrage ist fehlerhaft. |
401 | Unauthorized | Die Autorisierung ist fehlerhaft. |
402 | Payment required | Noch nicht definiert; vorgesehen für „nicht genügend Guthaben vorhanden“. |
403 | Forbidden | Die Anfrage war unzulässig. |
404 | Not Found | Die Gegenstelle wurde nicht gefunden oder existiert nicht. |
405 | Method Not Allowed | Die Methode der Anfrage (zum Beispiel SUBSCRIBE oder NOTIFY) ist nicht erlaubt. |
406 | Not Acceptable | Die Optionen des Anrufs sind nicht gestattet. |
407 | Proxy Authentication Required | Der Proxy benötigt eine Autorisierung. |
408 | Request Timeout | Timeout – Die Gegenstelle antwortet nicht innerhalb einer angemessenen Zeit. |
410 | Gone | Der gewünschte Teilnehmer ist unter der angegebenen Adresse nicht mehr erreichbar. |
412 | Conditional Request Failed | Die Voraussetzungen für die Bearbeitung der Anfrage konnten nicht hergestellt werden, weil eine dafür erforderliche Anfrage fehlschlug. |
413 | Request Entity Too Large | Der Nachrichteninhalt ist zu groß. |
414 | Request URI Too Long | Die SIP-Adresse (URI) der Anfrage ist zu lang. |
415 | Unsupported Media Type | Der Codec wird nicht unterstützt. |
416 | Unsupported URI Scheme | Die SIP-Adresse ist fehlerhaft. |
417 | Unknown Resource-Priority | Die Anfrage soll mit einer bestimmten Priorität behandelt werden, der Server versteht die Angaben dazu aber nicht. |
420 | Bad Extension | Der Server versteht eine Protokollerweiterung nicht. |
421 | Extension Required | Der Server benötigt eine Protokollerweiterung. |
422 | Session Interval Too Small | Der Session-Expires-Wert ist zu niedrig für den Server. |
423 | Interval Too Brief | Der Wert der gewünschten Bearbeitungsdauer ist zu kurz. |
428 | Use Identity Header | Der Identity-Header fehlt. |
429 | Provide Referrer Identity | Es ist kein gültiges Referred-By-Token angegeben. |
430 | Flow Failed | Die bestimmte Wegewahl ist gescheitert (proxyintern, Endpunkte sollten die Response wie Code 400 behandeln). |
433 | Anonymity Disallowed | Der Server weigert sich, anonyme Anfragen zu bearbeiten. |
436 | Bad Identity-Info | Die im Identity-Header enthaltene SIP-Adresse ist ungültig, nicht erreichbar oder wird nicht unterstützt. |
437 | Unsupported Certificate | Der Verifier kann das Zertifikat im Identity-Header nicht überprüfen. |
438 | Invalid Identity Header | Das Zertifikat im Identity-Header ist ungültig. |
439 | First Hop Lacks Outbound Support | Der Registrar unterstützt Outbound-Feature, der verwendete Proxy jedoch nicht. |
440 | Max-Breadth Exceeded | Es können keine nebenläufigen Forks aus der Anfrage mehr abgeleitet werden. |
469 | Bad Info Package | Unpassendes Info-Package – Übertragungsfehler, erneut senden. |
470 | Consent Needed | Der Server hat keine Zugriffsrechte auf mindestens eine der angegebenen SIP-Adressen. |
480 | Temporarily Unavailable | Der angerufene Teilnehmer ist zurzeit nicht erreichbar. |
481 | Call/Transaction Does Not Exist | Diese Verbindung existiert nicht (mehr). |
482 | Loop Detected | Es wurde eine Weiterleitungsschleife festgestellt. |
483 | Too Many Hops | Es wurden zu viele Weiterleitungsschritte festgestellt. |
484 | Address Incomplete | Die SIP-Adresse ist unvollständig. |
485 | Ambiguous | Die SIP-Adresse ist nicht eindeutig auflösbar. |
486 | Busy Here | Der angerufene Teilnehmer ist belegt. |
487 | Request Terminated | Der Anrufversuch wurde abgebrochen. |
488 | Not Acceptable Here | Unzulässiger Anrufversuch. |
489 | Bad Event | Der Server kennt das angegebene Event nicht. |
491 | Request Pending | Eine Anfrage desselben Dialogs befindet sich noch in Bearbeitung. |
493 | Undecipherable | Die Anfrage enthält einen verschlüsselten MIME-Body, den der Empfänger nicht entschlüsseln kann. |
494 | Security Agreement Required | Die Anfrage verlangt ein Security Agreement, enthält aber keinen vom Server unterstützten Sicherheitsmechanismus. |
👉Quelle & weitere Infos: de.wikipedia.org/wiki/SIP-Status-Codes
SIP Status Codes 5xx: Server Failure
Wenn ein Server nicht in der Lage war, die Anfrage zu bearbeiten, sendet er Server Failure-Codes.
Code | Nachricht | Bedeutung |
---|---|---|
500 | Server Internal Error | Interner Server-Fehler. |
501 | Not Implemented | Der Server unterstützt die SIP-Anfrage nicht. |
502 | Bad Gateway | Das Gateway in der SIP-Anfrage ist fehlerhaft. |
503 | Service Unavailable | Der SIP-Dienst des Servers ist vorübergehend nicht verfügbar. |
504 | Server Time-out | Der Server kann einen anderen Server nicht in einer angemessenen Zeit erreichen. |
505 | Version Not Supported | Die SIP-Protokollversion wird vom Server nicht unterstützt. |
513 | Message Too Large | Die SIP-Nachricht ist zu groß für UDP; es muss TCP verwendet werden. |
580 | Precondition Failure | Der Server kann oder will die Voraussetzungen für die Bearbeitung der Anfrage nicht erfüllen. |
👉Quelle & weitere Infos: de.wikipedia.org/wiki/SIP-Status-Codes
SIP Status Codes 6xx: Global Failure
Wenn die Verbindung wegen anderer Gründe nicht zustande kommt, liegt ein globaler Fehler vor.
Code | Nachricht | Bedeutung |
---|---|---|
600 | Busy Everywhere | Alle Endgeräte des angerufenen Teilnehmers sind belegt. |
603 | Declined | Der angerufene Teilnehmer hat den Anrufversuch abgelehnt. |
604 | Does Not Exist Anywhere | Der angerufene Teilnehmer existiert nicht mehr. |
606 | Not Acceptable | Das Endgerät des angerufenen Teilnehmers lehnt die SIP-Anfrage als unzulässig ab. |
👉Quelle & weitere Infos: de.wikipedia.org/wiki/SIP-Status-Codes
SIP Status Codes 7xx: SIP-Stack-Fehlercodes
Wenn die angerufene Person auflegt, sendet der SIP-Stack oder Protokollstapel einen Fehlercode:
Code | Nachricht | Bedeutung |
---|---|---|
701 | Party Hangs Up | Der Angerufene hat aufgelegt. |
👉Quelle & weitere Infos: de.wikipedia.org/wiki/SIP-Status-Codes
6. Ist das SIP-Protokoll sicher?
6. Ist das SIP-Protokoll sicher?
Die Tatsache, dass das SIP-Protokoll auf einem offenen Standard mit weiter Verbreitung basiert, ist einer der Pluspunkte dieses Netzwerkprotokolls. Die simple Architektur des Session Initiation Protocols birgt jedoch Sicherheitslücken. Die Informationspakete werden im SIP-Protokoll unverschlüsselt übertragen. Dadurch wird das Mitlesen von privaten Informationen über die Verbindung möglich.
Um dieses Datenleck zu schließen wurde das verschlüsselte SIPS-Protokoll (Session Initiation Protocol Secure) entwickelt. Dabei werden die Datenströme beim Aufbau der Verbindung sowie zur Datenübertragung voneinander getrennt und unabhängig verschlüsselt. Zur Verschlüsselung der Gesprächsdaten kommt das Secure Real-Time Transport Protocol (SRTP) zum Einsatz.
7. Was ist der Unterschied zwischen SIP und VoIP?
7. Was ist der Unterschied zwischen SIP und VoIP?
Die Begriffe SIP und VoIP-Protokoll werden häufig synonym verwendet, was so jedoch nicht richtig ist, da es sich um zwei unterschiedliche Protokolle handelt, die beim Telefonieren über das Internet zum Einsatz kommen. Während SIP für den Verbindungsauf- und Abbau von Kommunikationssitzungen zuständig ist (wörtlich übersetzt „Für die Initiierung einer Sitzung“), übernimmt VoIP nach dem Verbindungsaufbau den Transfer der Datenpakete zwischen den Gesprächspartnern.
Auch wenn sich SIP in Deutschland vor allem im Geschäftsbereich durchgesetzt hat, so ist es theoretisch möglich, VoIP ohne das SIP-Protokoll zu nutzen. Als Alternative kann zum Beispiel auch das Protokoll H.323 verwendet werden, das sowohl VoIP unterstützt, als auch für die Kommunikation in öffentlichen Telefonnetzen und ISDN genutzt wird.
Bildquelle Header: © fizkes – stock.adobe.com