Das Session Initiation Protocol (SIP) ist eine IETF definierte Signalisierung und wird als weit verbreitetes Netzprotokoll zur Steuerung von Kommunikationssitzungen, wie Sprach-und Videoanrufe über das Internet Protocol (IP) verwendet. Das Protokoll kann zum Erstellen,
Modifizieren und Beenden von Zweiparteiensitzungen (Unicast) oder Mehrparteiensitzungen (Multicast) verwendet werden. Die jeweiligen Sitzungen können aus einem oder mehreren Medienströmen bestehen. Auch andere SIP-Anwendungen sind möglich, wie zb. Videokonferenzen, Streaming-Multimedia-Distribution, Instant Messaging, Presence-Informationen, Dateiübertragungen und Online-Spiele.
Das SIP-Protokoll wurde als Application-Layer-Protokoll entwickelt, und ist unabhängig von dem dieser Technologie zugrunde liegenden Transport Layer. Es kann auf Transmission Control Protocol (TCP), User Datagram Protocol (UDP) oder Stream Control Transmission Protocol (SCTP) laufen.SIP ist ein auf Text basiertes Protokoll, und ähnelt in bestimmten Elementen dem bekannten Hypertext Transfer Protocol (HTTP) und dem Simple Mail Transfer Protocol (SMTP), ist aber zu diesen nicht kompatibel.
SIP wurde ursprünglich von Henning Schulzrinne und Mark Handley im Jahr 1996 entworfen. Im November 2000 wurde SIP als 3GPP Signalisierungsprotokoll und als fester Bestandteil des IP Multimedia Subsystem (IMS) in zellulären Systemen integriert. Die neueste Version
der Spezifikation ist RFC 3261 und wurde von der IETF Network Working Group im Juni 2002 veröffentlicht.
Das US-National Institute of Standards and Technology (NIST) ermöglichte eine Public Domain Implementierung auf Java Standard für SIP, die derzeit standartmäßig als Referenz-Implementierung dient. Dieser Stapel kann auf Proxy-Servern oder User-Agent-Szenarien arbeiten und wird in zahlreichen, kommerziellen Projekten und Forschungsprojekten eingesetzt. Er unterstützt Datenformate zur Übermittlung tabellarischer Daten (RFC) wie RFC 3261 in voller Höhe sowie weitere RFC`s einschließlich RFC 3265 und RFC 3262.
SIP verfügt über Design-Elemente ähnlich dem HTTP Request / Response-Transaktion Modell. Jede Transaktion besteht aus einer Client-Anfrage, diese Anfrage wird über eine bestimmte Funktion auf einem Server aufgerufen und erfordert mindestens eine Antwort. SIP verwendet meisten die Header-Felder, Encoding Rules und Statuscodes von HTTP weiter und bietet ein, als Text lesbares basiertes Format.Jede Ressource eines SIP-Netzwerkes, wie z. B. ein User-Agent oder eine Voicemail-Box wird durch einen Uniform Resource Identifier (URI), nach dem allgemeinen Standard-Syntax, der auch in Web-Services und E-Mail Diensten verwendet wird, identifiziert.
Soll eine sichere Übertragung gewehrleistet sein, muss jeder Vorgang von der Anfrage bis hin zur Zieldomäne mit einer Transport Layer Security (TLS) gesichert werden. Die TLS schützt mit Hilfe der Signalisierungsverbindung gegen ein mögliches „Abhören“. Sie bietet jedoch keine durchgehende Sicherheit, was bedeutet, dass jeder einzelne, zwischengeschaltete Proxy, selbst vertrauenswürdig sein muss.
SIP arbeitet gemeinsam mit mehreren anderen Protokollen und wird nur für den Signalisierungs-Abschnitt einer Kommunikationssitzung benötigt. SIP-Clients verwenden in der Regel TCP oder UDP und Port 5060 sowie Port 5061 um sich mit anderen SIP-Endpunkten zu verbinden. Port 5060 wird häufig für den nicht verschlüsselten Signalisierungsverkehr verwendet, während Port 5061 in der Regel für den mit TLS verschlüsselten Verkehr verwendet wird.
SIP wird vor allem für den Aufbau von Sprach-oder Videokommunikationen verwendet. Darüber hinaus erlaubt SIP eine Veränderung von bestehenden Anrufen. Das bedeutet, es erlaubt Änderungen von Adressen oder Ports und ermöglicht es weitere Teilnehmer hinzuzufügen. Ebenso das Löschen von Medien-Streams. SIP ermöglicht und definiert auch Messaging-Anwendungen, wie Instant Messaging und Event-Subscription. Sprach-und Video-Streams werden mit Hilfe eines anderen Protokolls, dass Real-Time Transport Protocol (RTP) durchgeführt.
Das Ziel einer SIP Signalisierung ist es, eine dementsprechende Signalisierung für Anrufaufbau, einer Anrufverarbeitung sowie weitere Funktionen und Merkmale auf einer IP-basierte Kommunikation im öffentlichen Telefonnetz bereitzustellen. Proxy-Server und User Agents sorgen dafür, dass vertraut Telefon-ähnliche Vorgänge zugelassen werden, wie zb. das Wählen einer Nummer, wodurch ein Telefon klingelt, das Hören von Freizeichentönen oder ein Besetztzeichen.SIP-fähige Telefonie-Netzwerke können auch viele Advanced Call Processing-Funktionen wie Signalsystem 7 (SS7) umsetzen, obwohl die beiden Protokolle selbst sehr unterschiedlich sind. SS7 ist ein zentrales Protokoll, auf einer komplexen zentralen Netzwerk-Architektur und ist durch „stumme“ Endpunkte (traditionelle Telefonapparate) gekennzeichnet. SIP ist ein Peer-to-Peer-Protokoll, so bedarf es nur eines einfachen (skalierbaren) Kernnetzes mit kommunizierenden Endpunkten. (Endgeräte in Hardware oder Software eingebaut). Die SIP Merkmale bestehen in kommunizierenden Endpunkten, entgegen herkömmlichen SS7 Merkmalen.
Obwohl mehrere andere VoIP-Signalisierungs-Protokolle existieren (wie z. B. BICC, H.323, MGCP, MEGACO), wird SIP aufgrund seiner zahlreichen Befürworter als standardisierte Telekommunikationsbranche hauptsächlich verwendet.Die erste vorgeschlagene
Standard-Version (SIP 1,0) wurde durch RFC 2543 definiert. Diese Version des Protokolls wurde weiter auf Version 2.0 verfeinert und in RFC 3261 präzisiert.
SIP definiert auch Server-Netzwerk-Elemente. Obwohl zwei SIP-Endpunkte ohne einer dazwischenliegenden SIP-Infrastruktur (Peer to Peer) kommunizieren können, ist dieser Ansatz oft für den öffentlichen Dienst unpraktisch. RFC 3261 definiert diese Server-Elemente.
USER AGENT
Ein SIP User Agent (UA) ist ein logisches Netzwerk, wobei zwei oder mehrere Endpunkte verwendet werden, um SIP Nachrichten zu empfangen. SIP-Nachrichten stehen damit unter Verwaltung einer SIP-Sitzung. Ein SIP-UA kann die Rolle eines User Agent Clients (UAC) übernehmen der die SIP-Anfragen sendet. Der User Agent Server (UAS), der die Anforderungen empfängt, erteilt einen SIP Response. Diese zugewiesenen Rollen von UAC und UAS erfolgt für die Dauer einer SIP-Transaktion.
SIP-TELEFON
Ein SIP-Telefon ist ein SIP User Agent, der die traditionellen Ruffunktionen eines Telefons, wie Zifferblatt, Annehmen, Abweisen und Halten bietet. SIP-Telefone können als Hardware implementiert werden oder als Softphone. Da sämtliche Telefonanbieter zunehmend SIP als Standard-Telefonie-Plattform umsetzen, wird die Unterscheidung zwischen Hard- und Software-basierten SIP-Telefonen verwischt und SIP Elemente werden in den grundlegenden Funktionen der Firmware in vielen IP-fähigen Geräten implementiert.
PROXY SERVER
Eine zwischengeschaltete Einheit, die sowohl als User Agent Server (UAS) als auch als User Agent Client (UAC) agiert. Ein Proxy-Server übernimmt vor allem die Rolle des Routings, es ist seine Aufgabe sicherzustellen, dass Anfragen gezielt an den Benutzer gesendet werden. Proxy`s sind auch für die Durchsetzung der Hirarchie nötig, zb. prüfen sie ob ein Benutzer berechtigt ist, einen Anruf zu tätigen. Ein Proxy interpretiert, schreibt (falls erforderlich) neue, bestimmte Teile einer Anfragenachricht vor dem Weiterleiten.
REGISTRAR
Ein Server der das registrieren von Anfragen für die Domain, die er verarbeitet, übernimmt. Er bearbeitet ein oder mehrere IP-Adressen zu einer bestimmten SIP-URI, die durch das SIP Protokoll übermittelt werden. Er ermöglicht es mehr als nur einen Benutzer-Agent unter der gleichen URI zu registrieren, mit dem Ergebnis, dass alle registrierten Benutzer-Agents eine gemeinsame SIP URI empfangen.
REDIRECT SERVER
Ein User-Agent-Server der 3xx (Redirection) Reaktionen erzeugt, um eingehende Anträge in einer alternative Gruppe von URIs kontaktieren zu können. Die Redirect-Server ermöglicht es Proxy-Server SIP-Session Einladungen an externe Domänen zu übermitteln.
SESSION BORDER CONTROLLER
Session Border Controller dienen als mittlere Knoten zwischen User Agents (UA) und SIP-Server für verschiedene Arten von Funktionen, einschließlich der Netztopologie und der Unterstützung der Network Address Translation (NAT).
GATEWAY
Ein Gateway kann ein SIP-Netz mit anderen Netzen, wie beispielsweise dem öffentlichen Fernsprechnetz, das unterschiedliche Protokolle oder Technologien verwendet, als Schnittstelle verbinden.
SIP nutzt Transaktionen um den Kommunikationsaustausch zwischen verschiedenen Teilnehmern zu kontrollieren und um Nachrichten zuverlässig zu übermitteln. Die Transaktionen sorgen für einen stabilen internen Zustand und nutzen Timer zur Zeitmessung. Client Transaktionen senden Anfragen und Server Transaktionen reagieren auf diese Anfragen mit einer oder mehreren Antworten.
Transaktionen werden entweder in „Einladend“ oder „Unwichtig“ Kriterien kategorisiert. Einladende Transaktionen unterscheiden sich darin, dass sie eine lang andauernde Konversation als SIP Dialog herstellen und keine Bestätigung von jedem Teilnehmer als endgültige Antwort erwarten. Wegen dieser Transaktions Mechanismen ist eine Nutzung der unzuverlässigen Transporte via User Datagram Protocol (UDP) möglich.
UDas Session Initiation Protocol for Instant Messaging and Presence Nutzung Extensions (SIMPLE) ist die auf SIP-basierte Suite von Standards für Instant Messaging und Präsenz-Informationen. UVP (Message Session Relay Protocol) ermöglicht Instant Message Sessions und Dateiübertragungen.
Der Markt für Endverbraucher SIP-Geräten expandiert immer weiter. Mittlerweile dienen viele Hardwaregeräte wie SIP Terminal Adapter, SIP Gateways und SIP-Trunking Dienste als Ersatz für herkömmliche ISDN-Telefonie. Viele VoIP-Anbieter ermöglichen ihren Kunden, ihre eigenen SIP-Geräte, wie zb. SIP-fähige Telefone oder Softphones zu verwenden.
SIP-fähige Video-Überwachungskameras können sogar Anrufe tätigen, die den Eigentümer oder Betreiber über ein aufgetretenes Ereignis informieren, wie zb. Bewegungserfassung in einem geschützten Bereich.
SIP ist auch für Audio-over-IP Broadcast-Anwendungen verfügbar. Es wird zb. für die Verbindung von Audio-Interfaces verschiedener Hersteller verwendet.
Session Initiation Protocol Core (Artikel vom 07.12.2010)
RCF3261 (SIP: Session Initiation Protocol - englisch)Network Working Group (The Session Initiation Protocol
http://www.elektronik-kompendium.de/sites/net/1305271.htm (SIP Beschreibung)
und Eigene