Das SIP-Protokoll

3. September 2010
by Peter Hasitschka BSc

In den letzten Wochen haben wir bereits die Funktionsweise von SIP-Clients und IP-Telefonie im Allgemeinen vorgestellt. Heute wollen wir uns das SIP-Protokoll an sich genauer anschauen.

SIP (Session Initiation Protocol) wird benutzt, um eine Kommunikationssitzung zwischen mehreren Hosts aufzubauen. Es eignet sich dabei ideal für die Internet-Telefonie, wird aber z.B. auch von Online-Spielen genutzt. Wie und warum es genutzt wird, will ich nun kurz vorstellen:

SIP hat einen HTTP-ähnlichen Aufbau, und kann beliebig erweitert werden, ohne dass dies direkt zu Problemen bei Geräten führt, die die Erweiterung nicht kenn

en. Die Nutzlast von SIP ist beliebig, d.h. können beliebige Datenströme übertragen werden. Am verbreitesten sind hierbei Audio- und Video-Übertragungen.

Wird ein Telefonat gestartet, ist SIP jedoch nicht dafür verantwortlich, einen geeigneten Codec auszuhandeln. Dies übernimmt das SDP (Session Description Protocol), welches auch die Netzwerkadressen bestimmt, zwischen denen kommuniziert werden soll.
Diese Trennung von Sitzungs- und Medienaushandlung ist ein entscheidender Vorteil von SIP, da dadurch eine hohe Flexibilität gewährleistet werden kann.

Nachdem über SIP die Sitzung aufgebaut wurde, das SDP die Mediendetails ausgehandelt hat, ist ein drittes Protokoll, das in SIP eingebettet wurde, – das RTP (Realtime Transport Protocol) – dafür verantwortlich, die eigentlichen Gesprächsdaten zu übertragen.

SIP signaling

SIP signaling

Um ein Telefonat aufzubauen, muss man den anderen Teilnehmer im URI-Format bestimmen. Eine SIP-Adresse hat d.h. zum Beispiel folgenden Aufbau: sip:user@domain

Wie bereits erwähnt, erfolgt der Aufbau ähnlich dem HTTP-Protokoll. Daher existieren ebenfalls Anfragen, Status-Codes, Headers und Bodies. Ein detaillierter Ablauf des Verbindungsaufbaus ist in der Grafik ersichtlich.

About

Peter Hasitschka ist Student für Softwareentwicklung-Wirtschaft und seit 2010 als Softwareentwickler für die Planung, und Entwicklung von Magento-Commerce Webshops.