SIP und SDP

Schon mehrfach habe ich geschrieben, dass SIP (Session Initiation Protocol) nur ein teil einer OCS/UM/VoIP-Umgebung ist. SIP nutzt TCP/UCP, um Sitzungen aufzubauen und zu pflegen, aber SIP wird nicht genutzt, um letztlich Sprache oder Video zu übertragen. Hierzu kommen andere Protokolle und Codierungsverfahren (RTP, RTSP, G.711, ICE) zum Einsatz, über die noch zu sprechen ist.

SIP Client und Server

Es gibt sehr wohl "Server" beim Einsatz von SIP, da der SIP Client sich ja an einem bekannten System anmelden muss. SIP ist also immer Hierarchisch aufgebaut und kein Peer2Peer Netzwerk. Da es aber weniger ein Server ist, werden diese Dienste auch "Registrar" genannt, an denen sich ein SIP-Client einfach anmeldet.

Mehrere SIP Clients können sich an diesen Austauschpunkt gleichzeitig anmelden und wenn der Dienst die Funktion bereitstellt, auch miteinander kommunizieren (z.B.: OCS Instant Messaging). Sie können auch Adressbuchdienste nutzen, wenn diese implementiert sind oder Informationen über das andere System in Erfahrung bringen und basierend darauf Verbindungen aufbauen.

Sprache und Gateway

Damit kommen wir auch schon zur Sprache, Bild und mehr. Diese Daten werden nicht über SIP übertragen, sondern über einen eigens aufgebauten Kommunikationskanal. Allerdings nutzen die Clients SIP dazu, eben diese Verbindung zu etablieren. Der SIP-Client fragt den SIP-Registrar, wie er die Gegenstelle am besten erreichen kann und lädt diese ein.

Handelt es sich bei der Gegenstelle nun um z.B. ein Festnetztelefon, dann kann natürlich keine direkte Verbindung aufgebaut werden. Dann verweist mich der Server an ein konfiguriertes Gateway, welches meine Daten annimmt und seinerseits die Verbindung z.B.: über ISDN oder analoge Leitungen herstellt. Auch eingehende Rufe landen über das Gateway, welches ebenfalls wie ein SIP-Client sich am Registrar anmeldet, im Netzwerk und das Gateway kann so die aktuelle Adresse erhalten, unter der der Empfänger erreicht werden kann.

Oft ist es so, dass zwei Partner unterschiedliche Codierungsverfahren verwenden. So sprechen viele Gateways einfach nur SIP und G.711, während OCS-Clients primär SIP und RTSP sprechen, die so nicht miteinander kompatibel sind. Hierfür gibt es dann z.B. den Mediation Server, welcher die Formate on the fly umsetzt.

Dialplan und Gateway

In eine ganz andere Welt kommen Windows Administratoren, wenn es um "Dialplans" geht. Eigentlich ist es ganz einfach, wenn man verstanden hat, warum es all das gibt. Stellen Sie sich vor, sie sind in einer Firma und möchten "telefonieren". Dann kann es mehrere Ziele geben

Ziel Rufnummer Einsatzzweck

Intern

Nebenstelle

Kurze interne Rufnummer für interne Gespräche

Ortsgespräch

0 + Anschlussnummer

Meist wird ein Amt mit der "0" geholt, um dann andere Anschlüsse im gleichen Ortsnetz zu erreichen.

Ferngespräch

00 + Ortsnetz + Anschlussnummer

Für Ferngespräche wird erst ein "Amt" mit der 0 geholt um dann mit einer weiteren 0 + Ortsnetzkennzahl + Anschlussnummer das Ziel zu erreichen.

Ausland

000 + Landeskennzahl + Ortsnetz + Anschlussnummer

Auch Auslandsgespräche sind über entsprechende Vorwahlen zu erreichen.

Querwahl

99 + Nebenstelle

Oft gibt es besondere Vorwahlen, um

Voicemail

98 + Nebenstelle

Vielleicht hat auch ihre Voicemail eine eigene Nummerngasse

Sie sehen also, dass es eine ganze Menge von Optionen gibt. Internation hat sich aber die E.164-Normierung durchgesetzt, bei der eine Rufnummer in der Form "+LandOrtznetzAnschluss" geschrieben wird. Meine Nummer ist z.B. "+495251304613". Ein Gateway und SIP-Registrar muss nun die gewählte Rufnummer des Clients analysieren und passend umsetzen, damit die folgende Signalisierung funktioniert. Schließlich kann es auch sinnvoll sein, ein Gespräch in die USA per IP an ein Gateway in den USA zu senden, um dort kostengünstig "im Land" zu telefonieren. Oder bestimmte Ziele (z.B. Mobilfunk) werden über bestimmte Provider (Sparvorwahl) geroutet. Hierfür sind in der Regel Dialplans zu pflegen, die für Administratoren eher ungewohnt, meist mit Regular Expressions arbeiten. Das macht es etwas knifflig.

SIP Traces analysiert

Ich stelle ihnen hier ein paar NETMON-Mitschnitte einer DemoUmgebung bereit, die einfache Aktionen per SIP zwischen OCS Clients und Servern aufzeigen.

  • SIP Logon
    Mitschnitt der Anmeldung eines OCS-Clients am OCS Server
  • SIP Message
    Mitschnitt einer "Instant Message" vom Client zum OCS-Server
  • SIP Altversion
    Mitschnitte einer fehlerhaften Anmeldung eines "alten" Clients

Niemand kann erwarten, dass Sie all das nun auswendig wissen. Es reicht, wenn Sie die prinzipielle Funktionsweise von SIP und der Instant Messaging Kommunikation soweit verstehen, um bei Problemen genauer nachzuschauen. In den meisten Fällen scheitert die Kommunikation schon vorher an Fehlern der Namensauflösung, IP-Routing, Client Konfiguration oder Zertifikaten.

Weitere Links

SIP Signaling, Negotiation and Media Flows in Skype für Business, Explained
https://channel9.msdn.com/events/Ignite/2015/BRK4102
Sehr schöner Vortrag zu SIP und SDP