SIP Kommunikation

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

SIP-Kommunikation

  • SIP ist ein Protokoll, das für den Aufbau, Betrieb und Abbau von Sprach- und Video-Verbindungen verantwortlich ist.
  • Es arbeitet nach dem Client-Server-Prinzip und ermöglicht den Aufbau von Sitzungen zwischen zwei Teilnehmern, den User Agents.
  • Die SIP-Kommunikation basiert auf dem Austausch von Dialogen, die aus Anfragen (Requests) und Antworten (Responses) bestehen.
  • Der User Agent Client erzeugt und sendet Requests an den User Agent Server, während der User Agent Server Responses erzeugt und an den User Agent Client sendet.
  • Die Dialoge in der SIP-Kommunikation ermöglichen den Ablauf einer Sitzung und den Austausch von Informationen zwischen den Teilnehmern.
  • Sie dienen dem Aufbau, der Steuerung und dem Abbau der Verbindungen.
  • Die Kommunikation erfolgt durch den Austausch von SIP-Nachrichten, die in den Requests und Responses enthalten sind.
  • Diese Nachrichten enthalten Informationen wie die gewünschte Aktion, Adressen, Parameter und Zustandsinformationen.
  • SIP ermöglicht eine Vielzahl von Aktionen und Funktionen, wie z.B. das Initiieren von Anrufen, das Halten und Fortsetzen von Verbindungen.
  • Als auch das Weiterleiten von Anrufen und das Beenden von Sitzungen.

SIP-Ablauf

  • Aufbau, Betrieb und Abbau von Sprach- und Video-Verbindungen
  • Client-Server-Prinzip
  • Dialoge bestehend aus Requests und Responses
  • User Agent Client erzeugt und sendet Requests
  • User Agent Server erzeugt und sendet Responses

SIP-Requests (Anforderung)

Anforderung (Request) Beschreibung
Invite Mit dem Invite-Request wird die Gegenstelle zu einer Sitzung eingeladen. Dieser Vorgang entspricht der Signalisierung beim Angerufenen, dessen Telefon klingelt. Der Invite-Request ist der wichtigste Request und startet die Verbindung.
Acknowledge (Ack) Mit dem Acknowledge-Request wird die Verbindung bestätigt.
Bye Der Bye-Request wird ausgeführt, wenn einer der beiden Gesprächspartner die Verbindung beendet.
Cancel Der Cancel-Request wird ausgeführt, wenn die Verbindung nach einer gewissen Zeit abgebrochen wird.
Options Der Options-Request wird verwendet, um Zusatzinformationen des Anwenders zu übermitteln.
Register Der Register-Request wird verwendet, um die Standortinformationen des Clients an den Server zu übergeben, damit dieser den Client bei einem Anruf finden kann.

SIP-Responses (Rückmeldungen)

Kennung Bedeutung
1 Anruf wird ausgeführt
100 Verbindungsaufbau im Gange
180 Verbindung hergestellt, warten auf Antwort von der Gegenseite
181 Der Anruf wird zu einem anderen Ziel umgeleitet.
182 Die Gegenstelle ist vorübergehend nicht verfügbar, der Anrufer wird jedoch nicht abgewiesen, sondern in eine Warteschleife gestellt.
200 OK
300 Die Rufnummer führt zu mehreren Zielen. Es folgt eine Auswahlmöglichkeit.
305 Das Anrufziel kann nur über einen Proxy-Server erreicht werden.
400 SIP-Syntaxfehler beim Verbindungsaufbau.
404 Das Anrufziel existiert nicht.
485 Das Anrufziel ist mehrdeutig. Der SIP-Server kann mögliche Alternativen nennen.
500 Interner Serverfehler, die Bearbeitung wurde abgebrochen.
501 Die angeforderte Aktion wird vom SIP-Gateway nicht unterstützt.
504 Timeout beim Warten auf einen anderen Server überschritten.
600 Besetzt.
603 Die Gegenstelle weist den Anruf ab.
604 Das Anrufziel existiert nicht im angegebenen SIP-Netz.
605 Der Session-Aufbau wurde ohne weitere Begründung nicht akzeptiert.

Verbindungsaufbau Prinzip

  • In einer SIP-Verbindung werden der Anrufer und der Angerufene als User Agent Client (UAC) bzw. User Agent Server (UAS) bezeichnet. Diese User Agents sind Endgeräte oder Anwendungen, die SIP verwenden, um Kommunikationssitzungen aufzubauen, zu steuern und zu beenden.
  • Um sicherzustellen, dass ein User Agent erreichbar ist und immer dieselbe IP-Adresse hat, meldet sich dieser in der Regel bei einem SIP-Server (Registrar) an, der als Proxy fungiert. Der User Agent sendet eine Registrierungsanfrage an den Registrar und übermittelt dabei seine SIP-Adresse und die aktuelle IP-Adresse, unter der er erreichbar ist. Der Registrar speichert diese Informationen für die spätere Weiterleitung von Anrufen und anderen SIP-Anfragen.
  • Wenn ein Anruf auf die SIP-Adresse des SIP-Clients erfolgt, wird die SIP-Adresse aufgelöst und ermittelt, wo der Client erreichbar ist. Der SIP-Server, der als Proxy fungiert, greift auf die Informationen des Registrars zu und leitet den Anruf an die richtige IP-Adresse des User Agents weiter. Dies ermöglicht eine effiziente Zustellung von Anrufen und anderen SIP-Nachrichten.
  • Der SIP-Proxy übernimmt eine wichtige Rolle im Rufaufbau. Er empfängt den Rufaufbau von einem User Agent und leitet ihn an den gewünschten Ziel-User-Agent weiter. Dabei kann der Proxy weitere Funktionen erfüllen, wie z.B. die Verwaltung von Authentifizierung, Routingentscheidungen, Lastverteilung und Medienumwandlung.
  • Jeder SIP-Teilnehmer muss sich bei einem SIP-Registrar anmelden, der oft auch als SIP-Proxy fungiert. Der SIP-Registrar hat eine ähnliche Funktion wie ein DNS-Server und hilft dabei, den Standort des Teilnehmers zu ermitteln. Beim Anmeldevorgang sendet der Teilnehmer seine SIP-Adresse und IP-Adresse an den Registrar, der diese Informationen speichert und bei Bedarf zur Weiterleitung von Anrufen verwendet.
  • Durch die Verwendung von SIP-Proxy-Servern und -Registraren wird die Skalierbarkeit des SIP-Netzwerks verbessert. Es können mehrere Proxy-Server und Registrare eingesetzt werden, um den Anforderungen des Netzwerks gerecht zu werden und eine effiziente Kommunikation sicherzustellen.
  • SIP-Server und -Proxy-Server können auch in einem Netzwerk hierarchisch organisiert sein, wobei sich Proxy-Server auf verschiedenen Ebenen befinden. Dies ermöglicht die effiziente Verwaltung von Anrufen und die Gewährleistung einer reibungslosen Kommunikation, auch bei umfangreichen SIP-Netzwerken.
  • SIP setzt auf dem Session Description Protocol (SDP) auf, um die Parameter für die Medienübertragung, wie z.B. Audiocodecs, zu übermitteln. Dies ermöglicht die Verhandlung und Festlegung der unterstützten Medienfähigkeiten zwischen den beteiligten User Agents.
  • SIP ist ein textbasiertes Protokoll, bei dem die Kommunikation durch das Senden und Empfangen von SIP-Nachrichten erfolgt. Die Nachrichten enthalten Informationen wie den Typ der Anfrage oder Antwort (Request/Response), die SIP-Adresse des Absenders und Empfängers, sowie optionale Header und den eigentlichen Inhalt der Nachricht.
  • Durch die Verwendung von SIP können verschiedene Kommunikationsdienste wie Sprachanrufe, Videokonferenzen, Instant Messaging und Präsenzinformationen in einer einheitlichen IP-Kommunikationsumgebung integriert werden. SIP ermöglicht die Interoperabilität zwischen verschiedenen Endgeräten und Plattformen, unabhängig von Hersteller oder Anbieter.

Direkter Verbindungsaufbau

  • Der UAC leitet den Verbindungswunsch durch ein INVITE ein.
  • Der UAS bestätigt dem UAC den Verbindungswunsch mit einem "Trying".
  • Mit "Ringing" wird dem UAC bestätigt, dass dem Angerufenen der Verbindungswunsch signalisiert wird.
  • Ist der Gesprächspartner belegt, schickt der UAS dem UAC ein "Busy here".
  • Nimmt der gewünschte Gesprächspartner den Verbindungswunsch an, schickt der UAS dem UAC ein "OK" und übermittelt die SDP-Verbindungsparameter.
  • Der UAC bestätigt dem UAS den Verbindungsaufbau und die Verbindungsparameter mit einem "ACK". Das Gespräch ist aufgebaut.
  • Wenn einer der beiden Teilnehmer das Gespräch beendet, schickt der User Agent ein "BYE" und bekommt das von der Gegenseite mit einem "OK" bestätigt.

Verbindungsaufbau mit einem Proxy-Server

Ablauf der Verbindungsherstellung

  • Der UAC leitet seinen Verbindungswunsch mit einem INVITE an seinen Proxy-Server ein. Zur Bestätigung bekommt der UAC ein "Trying" zurück.
  • Der Proxy-Server befragt seinen "Location Service" nach der IP-Adresse des gewünschten Teilnehmers. Er bekommt die Adresse des Teilnehmers zurück. Wenn es für den UAS mehrere IP-Adressen gibt, dann bekommt jede IP-Adresse eine Verbindungsanfrage. Demzufolge signalisiert jeder UAS den Verbindungswunsch. Im einfachsten Fall klingeln die SIP-Telefone.
  • Damit der Proxy-Server die IP-Adresse des UAS aus einem fremden Netz bekommen kann, muss der "Location Service" mit möglichst vielen Datenbanken anderer SIP-Provider zusammengeschaltet sein.
  • Der Proxy-Server leitet die Verbindungsanfrage an den UAS weiter. Dabei spielt es keine Rolle, ob der UAS im gleichen Domain-Bereich oder an einer anderen Domain hängt. Der UAS schickt dem Proxy-Server darauf ein "Trying" zur Bestätigung. Wenn es beim UAS klingelt, folgt ein "Ringing", das der Proxy-Server an den UAC weiterreicht.

Verbindungsaufbau

  • Nimmt der Teilnehmer beim UAS ab, dann schickt er ein "OK" an den Proxy-Server, der auch das an den UAC weiterreicht. In der OK-Meldung sind zusätzlich alle SDP-Verbindungsparameter enthalten.
  • Der UAC bestätigt dem UAS den Verbindungsaufbau und die Verbindungsparameter mit einem "ACK". Das Gespräch ist aufgebaut.

Beenden des Gesprächs

  • Wenn einer der beiden Teilnehmer das Gespräch beendet, schickt der User Agent ein "BYE" und bekommt das von der Gegenseite mit einem "OK" bestätigt.