Was ist SIP?
Wer sich mit dem Thema IP-Telefonie beschäftigt, stößt unweigerlich auf die Abkürzung SIP. Es gibt SIP Trunks, SIP-Adressen, SIP-Telefone und noch viele weitere Zusammenhänge, in denen der Begriff SIP vorkommt. Doch was bedeutet SIP eigentlich genau, und was hat es mit Telefonieren zu tun? In diesem Artikel finden Sie Antworten.
Was bedeutet „SIP“?
SIP steht für „Session Initiation Protocol“, zu Deutsch etwa „Sitzungs-Einleitungs-Protokoll“. Damit ist ein Netzprotokoll gemeint, dass den Aufbau der Kommunikation zwischen zwei oder mehr Teilnehmern regelt. Genauer gesagt ist es Aufgabe des Protokolls, die Verbindung zwischen den Gesprächsteilnehmern herzustellen, während des Gesprächs aufrecht zu erhalten und danach auch wieder zu beenden. Für die eigentliche Übertragung der Sprachdaten, also des Gesprächsinhaltes, ist es hingegen nicht zuständig. Dies wird in der VoIP-Telefonie durch das RTP (Real-time Transport Protocol) übernommen.
Wie funktioniert SIP?
SIP wurde von der IETF (Internet Engineering Task Force) entwickelt und ist unter anderem im RFC 3261 spezifiziert. Es ist an das HTTP (Hypertext Transfer Protocol) angelehnt, wodurch es sich sehr gut für den Einsatz in IP-Netzen eignet. Da die eigentliche Datenübertragung wie gesagt von anderen Protokollen übernommen wird, können mit SIP verschiedene Arten von Sitzungen verwaltet werden, zum Beispiel Video-Chats, Streaming oder sogar Online-Spiele. Das Haupteinsatzgebiet von SIP ist allerdings die Telefonie – SIP ist mittlerweile das Standard-Protokoll für Voice over IP (VoIP).
User Agents: Client und Server
SIP funktioniert nach dem Client-Server-Prinzip. Dabei sendet das Endgerät des Anrufers, in einer SIP-Verbindung als „User Agent Client“ (UAC) bezeichnet, ein Request (Anfrage/Anforderung). Dieses wird vom Gerät des Angerufenen, im SIP-Kontext „User Agent Server“ (UAS) genannt, mit einer Response (Rückmeldung/Antwort) beantwortet.
Der weite Weg der Kommunikation
Diese Requests und Responses werden allerdings nicht direkt von Endgerät zu Endgerät geschickt, sondern durchlaufen dabei mehrere Zwischenstationen. Ein typischer Weg sieht etwa so aus: Telefon ⇒ Telefonanlage ⇒ SIP Infrastruktur des eigenen Providers ⇒ Carrier A ⇒ Carrier B ⇒ SIP Infrastruktur des anderen Providers ⇒ Telefonanlage ⇒ Telefon.
Im Detail läuft ein Verbindungsaufbau so ab: Der erste Request des UAC ist das INVITE, der Verbindungswunsch. Der UAS gibt als Rückmeldung TRYING zurück, bestätigt damit also den erhaltenen Invite. Erst mit RINGING wird bestätigt, dass der Anruf auch wirklich dem Angerufenen angezeigt wird. Nimmt dieser das Gespräch an, sendet der UAS dem UAC ein OK. In dieser Response sind auch die Verbindungsparameter wie Codecs usw. enthalten. Der UAC bestätigt mit ACK (Acknowledged, „Bestätigt“). Das Gespräch kann beginnen.
Wird das Gespräch von einem der Teilnehmer beendet, schickt dessen Gerät ein BYE an die Gegenseite und bekommt dieses mit einem OK bestätigt. Damit ist die Verbindung beendet.
Voraussetzung für eine erfolgreiche Verbindung ist, dass alle teilnehmenden Geräte über eine öffentliche IP-Adresse erreichbar sind – also Verbindung zum Internet haben. Falls einer der Teilnehmer einen Router mit NAT (Network Adress Translation) verwendet, ist dieser von außen nicht über IP erreichbar. In diesem Fall kann man entweder mit einem entsprechend konfigurierten SBC (Session Border Controller) oder aber mithilfe eines STUN-Servers (Simple Traversal of UDP through NAT) sowie in den Endgeräten integrierter STUN-Clients den NAT-Router umgehen und an ihm vorbei eine SIP Verbindung aufbauen.
Registrar Server
Nicht jeder User Agent ist immer erreichbar, und hat auch nicht immer dieselbe IP-Adresse. Deshalb melden sich die User Agents normalerweise standardmäßig an dem SIP-Server ihrer Domain, dem Registrar an. Registrar Server sind quasi die Schaltzentrale. Wie der Name sagt, registrieren sie die IP-Adressen sowie die SIP-Adressen der User Agents und können so die Teilnehmer einer Sitzung einander zuordnen.
Was ist eine SIP-Adresse?
Jeder User Agent bzw. jedes Terminal oder Endgerät (User Agent) braucht eine eindeutige Adresse, um mittels des Session Initiation Protocols mit anderen Geräten kommunizieren zu können. Diese Adresse besteht aus einem URI (Uniform Resource Identifier) und der DNS (Domain Name System). Klingt kompliziert, hat aber in der Realität große Ähnlichkeit mit einer E-Mail Adresse. Ein Identifizierer, also zum Beispiel die Rufnummer oder ein Benutzername, wird per @-Zeichen mit dem Domain-Namen verbunden. Ein Beispiel dafür wäre 123456@sip.easybell.de. Diese Adresse wird zusammen mit der IP-Adresse des Endgerätes beim Registrar Server hinterlegt. Dadurch kann ein User Agent weltweit lokalisiert und mit anderen User Agents verbunden werden.
Vorteile von SIP
- SIP ist ein offener Standard, und dadurch übergreifend bei einer Vielzahl von Betriebssystemen oder IT-Strukturen verwendbar. Im Gegensatz zu proprietären Systemen ist also sichergestellt, dass sich SIP bei jedem Anwender gleich verhält.
- Bei SIP gibt es keine zentrale Infrastruktur, die SIP-Server oder Registrar Server sind verteilt. Dies kommt der Sicherheit und Stabilität zugute: fällt ein Server aus oder wird angegriffen, ist nur der jeweilige Anbieter betroffen, nicht aber die restliche SIP-basierte Telefonie.
- SIP ist ausschließlich für den Verbindungsaufbau zuständig, nicht aber für die Aushandlung der Modalitäten, wie z.B. Codecs, weitere Protokolle, Ports und so weiter. Dies wird vom SDP (Session Description Protocol) übernommen. Durch diese strikte Trennung kann eine Sitzung sehr flexibel aufgebaut werden, indem man die benötigten oder gewünschten Eigenschaften der Verbindung einfach im SDP definiert, ohne das eigentliche Verbindungsprotokoll SIP verändern zu müssen.
- Mit SIP kann man eine bereits bestehende Sitzung modifizieren, indem einfach ein neuer INVITE gesendet wird. Danach werden die Verbindungsmodalitäten neu ausgehandelt. So kann zum Beispiel ein neues Medium hinzugefügt werden.
- SIP trennt die Rufnummer vom Telefonanschluss. Anders als zum Beispiel bei ISDN ist es mit SIP möglich, sich an einem beliebigen Internet-Anschluss mit seiner SIP-Adresse zu registrieren. SIP ist also die Voraussetzung für standortunabhängiges Telefonieren.
Sicherheit bei SIP
SIP überträgt standardmäßig alle Verbindungsinformationen als Klartext. Dadurch können diese theoretisch durch unbefugte Personen abgefangen und mitgelesen werden. Um dies zu verhindern, kann man die Verbindung mit der Variante SIPS (Session Initiation Protocol Secure) verschlüsseln. Auch die eigentlichen Gesprächsdaten können und sollten verschlüsselt werden, hierfür gibt es das SRTP (Secure Real-Time Transport Protocol). Lesen Sie dazu mehr auf unserer Themenseite Sicherheit und Verschlüsselung.