Jingle ist ein Standardframework für die Peer-to-Peer-Kommunikation. Damit kann eine Multimedia-Kommunikation zwischen zwei XMPP-Geräten (Extensible Messaging and Presence Protocol) hergestellt werden. Die Aushandlung zwischen beiden erfolgt über einen XMPP-Kanal, während der eigentliche Datenträger einen separaten, dedizierten Datenkanal verwendet, der das Real-Time Transport Protocol (RTP) verwendet.

Der Hauptzweck von Jingle ist die Erleichterung der Kommunikation über VoIP und Videokonferenzen. Es wurde von Google und der XMPP Standards Foundation entwickelt. [1] Es ist nicht vorgesehen, andere Protokolle wie SIP (Session Initiation Protocol) zu ersetzen, die eine allgemeinere Sprachkommunikation ermöglichen, und es unterstützt auch nicht sämtliche Telefoniefunktionen wie Anrufweiterleitung, Weiterleitung usw. Es wurde jedoch für die Zusammenarbeit mit SIP entwickelt, sodass XMPP-Clients vorhandene VoIP-Netzwerke eines spezialisierten internationalen VoIP-Wholesale-Anbieters wie IDT nutzen können.

Okay, das ist ein kurzer Rückblick auf das, was Jingle ist und tut. Wenn Sie immer noch bei uns sind und mehr wissen möchten, lesen Sie weiter, um weitere Informationen zur Verwendung des Frameworks zu erhalten.

So funktioniert Jingle

Wie wir gesehen haben, ermöglicht Jingle zwei XMPP-Clients, eine Multimedia-Sitzung einzurichten, zu verwalten und zu beenden. Multimedia deckt in diesem Fall im Allgemeinen Sprache und Video ab. Die Aushandlung zwischen beiden erfolgt über XMPP, während die Medienübertragung außerhalb von XMPP stattfindet.

Bevor wir weitermachen, müssen wir etwas über XMPP wissen. XMPP ist eine Reihe von Open Source-Standards für Instant Messaging und Chat mithilfe von Sprache und Video. Es wurde hauptsächlich entwickelt, um eine offene, dezentrale Alternative zu den geschlossenen, proprietären Messagingsystemen zu bieten, die zum Zeitpunkt seiner Einführung existierten.

Der Schlüssel zum Erfolg von XMPP liegt darin, dass es wie E-Mail über eine dezentrale Infrastruktur verfügt, sodass jeder seinen eigenen XMPP-Server betreiben und seine eigene Kommunikation steuern kann. XMPP kann auch sicher und von öffentlichen Netzwerken isoliert ausgeführt werden, um private Kommunikation zu ermöglichen. Mit XMPP können eine Reihe von Technologien ausgeführt werden, von denen Jingle nur eine ist.

Wenn Sie eine Multimedia-Sitzung starten möchten, sendet der erste Client, der 'Initiator', eine Einladung, ein 'Sitzungsinitiierungsangebot' an den zweiten. Der zweite Client, der "Responder", bestätigt dies und fragt den Benutzer, ob er fortfahren möchte - obwohl der Client so konfiguriert werden kann, dass Anforderungen von bestimmten Initiatoren automatisch akzeptiert werden -, in beiden Fällen akzeptiert der Responder die Sitzung vom Initiator.

Beim Akzeptieren der Sitzung antwortet der Responder mit einer Liste der Codecs, die er akzeptieren kann. Der Initiator akzeptiert die Antwort und die beiden verhandeln dann, welcher Codec für den Medientransport verwendet werden soll, und beginnen eine Mediensitzung.

Am Ende des Anrufs kann jeder Teilnehmer die Beendigung der Sitzung beantragen. Sobald der andere Teilnehmer dies bestätigt, wird die Verbindung zwischen beiden getrennt. Einfach.

Session-Management

Damit all dies funktioniert, muss Jingle den Sitzungsablauf steuern. Beim Einrichten der Sitzung muss der Initiator herausfinden, welche der verfügbaren XMPP-Ressourcen des Responders für die Anwendung am besten geeignet ist und welche Transportmethode verwendet werden kann. Optional kann auch eine Sicherheitsbedingung angegeben werden, die erfüllt sein muss, z. B. eine verschlüsselte Verbindung, bevor die beiden Clients Daten austauschen dürfen.

Es gibt ein gewisses Maß an Flexibilität in Jingle-Sitzungen, sodass eine aktive Sitzung nicht unbedingt in ihrer Konfiguration fixiert bleiben muss. Aktive Sitzungen können geändert werden, um Inhalte zu ändern oder zu entfernen, z. B. um die Sprachausgabe aufrechtzuerhalten, während das Video angehalten wird, oder um das Transportprotokoll zu ändern. Jingle kann auch Informationsnachrichten zwischen Clients senden.

Unter Jingle stehen zwei verschiedene Transportarten zur Verfügung. Datagram verfügt über Komponenten, die Pakete austauschen. Diese können beliebig lang sein und in beliebiger Reihenfolge empfangen werden. Bei der Verwendung von Datagram muss der Transport angeben, welche Komponenten benötigt werden und wie sie verwendet werden.

Die Alternative ist Streaming-Transport; Dadurch werden bidirektionale Datenströme ausgetauscht, die der in TCP beschriebenen Methode entsprechen. Pakete im Stream werden der Reihe nach empfangen und müssen jeweils eine Zeichenfolgen-ID und eine maximale Paketlänge aufweisen. Welcher Transport verwendet werden soll, wird zu Beginn der Sitzung festgelegt.

Jingle schützen

Wie bei jedem Onlinedienst ist die Sicherheit bei der Verwendung von Jingle ein wichtiger Aspekt. Die Verwendung einer Form der Transportschichtsicherheit ist ein guter Anfang. Wie wir gesehen haben, können Sie das Starten einer Sitzung davon abhängig machen, dass diese vorhanden ist.

Jingle kann auch für DDoS-Angriffe anfällig sein, bei denen Clients mit zu vielen Anforderungen bombardiert werden, und es ist wichtig, dies zu verhindern, indem das System so konfiguriert wird, dass nur Verbindungen von bekannten Entitäten akzeptiert werden. Ebenso können Sie das Abfangen und Umleiten von Anrufen vermeiden, indem Sie sicherstellen, dass die Sitzungs-IDs übereinstimmen.

[1] https://xmpp.org/