SIP - Session Initiation Protocol

SIP ermöglicht den Aufbau von Verbindungen (Sessions) zwischen Teilnehmern. Im Rahmen etablierter Verbindungen können dann beispielsweise Sprachdaten (z.B. via RTP) übertragen werden. Das Session Description Protocol (SDP) wird verwendet, um spezifische Parameter der Verbindung, z.B. Codecs oder Transportprotokolle, zu vereinbaren.

SIP-Identifikation

SIP verwendet URIs (siehe auch: SIP-URI) zur eindeutigen Identifikation von SIP-Nutzern. Zur Nutzung eines SIP-basierten Dienstes muß sich ein Nutzer zunächst bei einem Registrar anmelden, so daß die Lokation und bestimmte Parameter über den Anwender und das vorhandene Equipment bekannt sind. Diese Anmeldung erfordert i.a. folgende Parameter:

SIP-URI Eine eine SIP-URI bestehend aus einem User- und einem Hostteil, z.B. johndoe@sipprovider.com oder 60222283@sipgate.de
Registrar Domain des Servers1), Hostname2) oder IP-Adresse3) - dies ist i.a. der Hostteil einer SIP-URI nach dem “@“, im obigen Beispiel also sipprovider.com bzw. sipgate.de
Proxy Der zu kontaktierende SIP-Server, ggf. aus einem SRV-Lookup
SIP-Port üblicherweise 5060, der Port des SIP-Servers
User Id Die User-Id ist der Userteil der SIP-URI, im obigen Beispiel also ein Name (johndoe) oder eine Nummer (60222283)
Auth Id Die Auth-Id kann verschieden von der User-Id sein und wird zur eigentlichen Authentifizierung zusammen mit einem Passwort verwendet.
Passwort Ein Passwort, das zur Authentisierung am SIP-Server dient.

Mit diesen Daten ist die Anmeldung an einem SIP-Server möglich. Normalerweise reicht eine SIP-URI zusammen mit einem Passwort aus, denn

  • Registrar und Proxy folgen aus der SIP-URI (Hostteil) bzw. werden über SRV-Lookups bestimmt.
  • Der SIP-Port ist in der SIP-URI enthalten
  • User Id und Auth Id sind normalerweise gleich dem Userteil der SIP-URI.

Im speziellen Fall ist noch zusätzlich eine Auth Id erforderlich.

SIP-Protokoll

SIP verwendet eine HTTP-ähnliche Notation für Requests und Antworten. Antworten enthalten einen Status Code, der Erfolg oder Fehler von Requests anzeigt. Eine Liste dieser Status Codes findet sich weiter unten in diesem Artikel.

Wesentliche Elemente von SIP sind

  • REGISTER Request: ein Client registriert sich bei einem Server und teilt diesem mit, unter welcher IP-Adresse und welchem Port er erreichbar ist. Hierzu sind Username und Passwort und ggf. auch Telefonnummern oder andere Kennungen zur Anmeldung erforderlich. Eine Registrierung muß nach einer definierten Zeit wiederholt werden, da sie nur für einen bestimmten Zeitraum (z.B. 60 Minuten) gilt.
  • UNREGISTER Request: ein Client meldet sich nach erfolgtem REGISTER ab.
  • INVITE Request: ein Teilnehmer fordert einen anderen zu einer Sitzung auf, beispielsweise zu einem VoIP-Telefonat. Es werden Codecs und Daten für die Sprachverbindung ausgehandelt.

Weitere Informationen:

SIP Status Codes

Die Statuscodes im SIP-Protokoll werden von IANA verwaltet. Die sind im offiziellen Referenzdokument zusammengefaßt.

Code Bedeutung Erklärung
100 Trying Ein Anruf wird versucht zu vermitteln
180 Ringing Es klingelt beim Gegenüber
181 Call Being Forwarded Anruf wird weitergeleitet
182 Call Queued Anruf ist in Warteschleife
183 Session Progress Der Verbindungsaufbau läuft
200 OK Alles OK
202 Accepted Verbindung akzeptiert
300 Multiple Choices Für die Gegenstelle gibt es keine eindeutige Zieladresse. Die Antwort sollte Alternativen enthalten.
301 Moved Permanently Der Angerufene ist permanent woanders erreichbar.
302 Moved Temporarily Der Angerufene ist temporär woanders erreichbar.
305 Use Proxy Es muß ein Proxy verwendet werden.
380 Alternative Service ?
400 Bad Request SIP-Request ist fehlerhaft
401 Unauthorized Autorisierung ist fehlerhaft
402 Payment Required Zuerst bezahlen, dann sprechen
403 Forbidden Unzulässig, nicht gestattet
404 Not Found Gegenstelle wurde nicht gefunden/existiert nicht
405 Method Not Allowed Methode (z.B. SUBSCRIBE oder NOTIFY) ist nicht erlaubt.
406 Not Acceptable Optionen des Anrufs sind nicht gestattet.
407 Proxy Authentication Required Der Proxy benötigt Autorisierung
408 Request Timeout Timeout… Gegenstelle antwortet nicht
409 Conflict ?
410 Gone Teilnehmer ist nicht mehr hier erreichbar
411 Length Required Probleme mit SIP-Parametern
413 Request Entity Too Large Probleme mit SIP-Parametern
414 Request URI Too Long Probleme mit SIP-Parametern
415 Unsupported Media Type Codec wird nicht unterstützt
416 Unsupported URI Scheme Fehlerhafte SIP-URI
420 Bad Extension Probleme mit SIP-Parametern
421 Extension Required Probleme mit SIP-Parametern
423 Interval Too Brief Probleme mit SIP-Parametern
480 Temporarily Unavailable Teilnehmer zur Zeit nicht erreichbar
481 Call/Transaction Does Not Exist Diese Verbindung existiert nicht (mehr)
482 Loop Detected Weiterleitungsschleife festgestellt
483 Too Many Hops Zu viele Weiterleitungsschritte
484 Address Incomplete SIP-Adresse unvollständig
485 Ambiguous SIP-Adresse nicht eindeutig auflösbar
486 Busy Here Teilnehmer ist belegt
487 Request Terminated Anrufsversuch abgebrochen
488 Not Acceptable Here Unzulässiger Anrufsversuch
491 Request Pending ?
493 Undecipherable SIP-Request unverständlich
500 Server Internal Error Interner Server-Fehler
501 Not Implemented SIP-Request nicht implementiert
502 Bad Gateway Gateway im SIP-Request ist fehlerhaft
503 Service Unavailable SIP-Service nicht verfügbar
504 Server Time-Out Server Timeout
505 Version Not Supported SIP-Version nicht unterstützt
513 Message Too Large SIP-Message ist zu groß für UDP - TCP ist zu nutzen
600 Busy Everywhere Teilnehmer ist an allen Endgeräten belegt
603 Declined Teilnehmer hat Anrufsversuch abgelehnt
604 Does Not Exist Anywhere Teilnehmer existiert nicht mehr
605 Not Acceptable Unzulässiger SIP-Request
1) SRV-Eintrag im DNS ist dann erforderlich
2) Es findet dann ggf. ein SRV-Lookup statt
3) immer ohne SRV-Lookup
 
voip/sip/start.txt · Zuletzt geändert: 2006/06/29 07:24 von gandalf94305
 
Impressum
Recent changes RSS feed Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki