SIP-Kommunikation

SIP stellt mehrere Dialoge zur Verfügung um eine Sitzung zwischen zwei Teilnehmern (User Agent) aufzubauen. Die Dialoge bestehen aus einer Anforderung/Anfrage (Request) und einer Rückmeldungen/Antwort (Response). Die SIP-Kommunikation arbeitet nach dem Client-Server-Prinzip.
Requests werden vom User Agent Client erzeugt und an den User Agent Server gesendet. Responses werden vom User Agent Server erzeugt und an dem User Agent Client gesendet.

SIP-Requests (Anforderung)

SIP kennt folgende 6 Anforderung (Request).

Anforderung (Request) Beschreibung
Invite Die Gegenstelle wird zu einer Sitzung eingeladen. Dieser Vorgang entspricht der Signalisierung beim Angerufenen, dessen Telefon klingelt. Invite ist der wichtigste Request. Mit ihm wird die Verbindung gestartet.
Ack (nowledge) Mit diesem Request wird die Verbindung bestätigt.
Bye Dieser Request wird ausgeführt, wenn einer der beiden Gesprächspartner die Verbindung beendet.
Cancel Dieser Request wird ausgeführt, wenn die Verbindung nach einer gewissen Zeit abgebrochen wird.
Options Mit diesem Request werden Zusatzinformationen des Anwenders übermittelt.
Register Mit diesem Request werden die Standort-Informationen des Client an den Server übergeben, damit dieser den Client bei einem Anruf finden kann.

Beispiel für ein INVITE-Request

INVITE sip:my@sip.server.com SIP/2.0


VIA:SIP/2.0/UDP 192.168.0.1
Call-ID:300f0gd090fgsa0f9da0gf0g@sip.server.com
From:<sip:my@sip.server.com>
To: Name <name@sip.server.com>
Call-ID:300f0gd090fgsa0f9da0gf0g@sip.server.com
CSeq:1 INVITE

SIP-Responses (Rückmeldungen)

Kennung Bedeutung
1 Anruf erfolgt
100 Verbindung wird hergestellt
180 Verbindung etabliert, warten auf Gegenseite
181 Der Anruf wird zu einem anderen Bestimmungsort umgeleitet.
182 Die Gegenstelle ist zur zeit nicht verfügbar, weist den Anrufer aber nicht zurück, sondern stellt ihn in eine Warteschleife.
200 OK
300 Die Rufnummer führt zu mehreren Zielen. Es folgt eine Auswahlmöglichkeit.
305 Das Anrufziel ist nur über einen Proxy-Server zu erreichen.
400 SIP-Syntaxfehler bei der Verbindungsaufnahme.
404 Die Gegenstell teilt mit, das2 das Anrufziel nicht existiert.
485 Das Anrufziel ist vieldeutig. Der SIP-Server kann mögliche Alternativen nennen.
500 Interner Server-Fehler, die Bearbeitung wurde abgebrochen.
501 Das SIP-Gateway unterstützt die angeforderte Aktion nicht.
504 Timeout beim Warten auf einen anderen Server überschritten.
600 Besetzt.
603 Die Gegenstelle weist den Anruf ab.
604 Die Gegenstelle existiert nicht im angegebenen SIP-Netz.
605 Der Session-Aufbau wurde ohne weitere Begründung nicht akzeptiert.

Prinzip des Verbindungsaufbaus

In einer SIP-Verbindung wird der Anrufer als User Agent Client (UAC) und der Angerufene als User Agent Server (UAS) bezeichnet.
Die Sitzungsabläufe können direkt zwischen den User Agents ablaufen. Allerdings ist nicht immer gewährleistet, dass ein User Agent erreichbar ist und immer dieselbe IP-Adresse hat. Daher meldet sich ein User Agent in der Regel an einem SIP-Server (Registrar) an, der als Proxy fungiert. Der SIP-Server registriert die IP-Adresse. Wenn ein Anruf auf die SIP-Adresse des SIP-Clients erfolgt, wird die SIP-Adresse aufgelöst und ermittelt, wo der Client erreichbar ist. Anschließend wird der Anruf und alle anderen Anfragen an den Client weitergeleitet.
SIP bedient sich beim Rufaufbau eines SIP-Proxys. Um erreichbar zu sein, muss sich jeder SIP-Teilnehmer bei einem SIP-Registrat anmelden. Meistens sind der SIP-Proxy und der SIP-Registrar der gleiche Server. Der SIP-Registrar hat eine ähnliche Funktion, wie der DNS-Server. Der SIP-Proxy greift auf den SIP-Registrat zu, um den Standort des Teilnehmers herauszufinden.

Verbindungsaufbau bei einer direkten Verbindung zwischen UAC und UAS

SIP-Verbindungsaufbau bei einer Direkt-Verbindung
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, dann schickt der UAS dem UAC ein "Busy here".
Nimmt der gewünschte Gesprächspartner den Verbindungswunsch an, dann schickt der UAS dem UAC ein "OK". In diesem Response werden auch die SDP-Verbindungsparameter mitgeschickt. 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 über einen Proxy-Server

SIP-Verbindungsaufbau über den Proxy-Server
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.
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.
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 über einen Redirect-Server

SIP-Verbindungsaufbau über einen Redirect Server
Der UAC leitet seinen Verbindungswunsch mit einem INVITE an seinen Redirect-Server ein. Der Server befragt seinen "Location Service" nach der IP-Adresse des gewünschten Teilnehmers. Er bekommt die Adresse des Teilnehmers zurückgeliefert. Der Redirect-Server meldet dem UAC die Adresse des gewünschten Teilnehmers. Der UAC bestätigt den Erhalt der Adresse mit einem "ACK".
Dann kontaktiert der UAC den UAS direkt mit einem "INVITE". Danach verläuft der weitere Verbindungsaufbau, wie bei einer Direktverbindung.

Übersicht: SIP