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
-
VoIP
Telefonieren über IP - Exchange 2007 UM nutzt auch VoIP -
VoIP Sniffer
VoIP Sprachdaten mit WireShark analysieren. - Early Media
- MediaBypass
- MRAS Edge
- Lync Edge
- Silence
- SDP - Session Description Protocol
-
PSTN Call mit MediaBypass
SDP-Kandidaten beim PSTN-Call mit Media Bypas
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
- RFC 3261 SIP architecture
- RFC 2974 Session Announcement Protocol (SAP)
- RFC 2327 Session Description Protocol (SDP)
- RFC 3550 Real Time Protocol specification (RTP)
- RFC 3551 RTP Profile für Audio and Video Conferences with Minimal Control
- Understanding SIP—Part IV: Describing the SIP Session
http://www.voipplanet.com/backgrounders/article.php/3510741 - Übersicht SIP-relevanter RFCs
http://www.tech-invite.com/Ti-sip-topics.html - SIP Service Examples
http://www.tech-invite.com/Ti-sip-service-1.html
Sehr schöne Seite mit SIP-Beispielen - To UDP, or not to UDP, that is the question…
http://communicationsserverteam.com/archive/2008/05/23/196.aspx - Overview of the Microsoft RTAudio Speech codec
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=7515