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 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
Im speziellen Fall ist noch zusätzlich eine Auth Id erforderlich.
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
Weitere Informationen:
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 |