
Mit Matrix-Brücken ist es möglich, sich mit andere Messenger-Systemen zu verbinden. Es gibt mittlerweile zahlreiche Brücken (https://matrix.org/bridges/), die sich allerdings in Features und insbesondere der Bedienung/Anwendung z.T. erheblich unterscheiden.
Die folgenden Artikel sollen einen Überblick über die Verwendung der bekanntesten Brücken geben.
Allgemeines
Note
|
Generell gilt: Brücken müssen ggf. Verschlüsselungen terminieren. Damit hat der Bridge-Betreiber (Admin) vollständigen zugriff auf den Nachrichtenverkehr. Es empfiehlt sich daher, Matrix-Brücken selber zu betreiben, und öffentlichen Brücken möglichst nur für öffentliche Kanäle zu verwenden. |
-
Syntax von Martix Räumen: #raumname:domain.tld
-
Syntax von Matrix Usern: @username:domain.tld
Begrifflichkeiten
Management-Raum
Ja nach Art der Brücke wird ein Managment-Raum benötigt. Dies ist der Raum, indem sich ein Benutzer den jeweiligen Bridge-Bot einläd, und ihn von hier aus per Chat-Befehle steuern kann (Ein.-Auloggen, Adressbuchabgleich, Synchronisation, …). Je Nach Brücke gibt es Unterschiede in der Funktionalität. Einen Überblick erhält man I.d.R. indem man zu dem Bridge-Bot spricht:
help
Portal-Raum
Matrix-Brücken erstellen beim Betreten einen Matrix-Raum, der den gebrückten Raum [TODO]
Bridgebot-style (Relay)
Bei Bridgebot-Brücken handelt es sich um eine relativ einfache Form von Brücken: In die zu überbrückenden Kanäle (das können sowohl Chat-Räume als auch Privatnachrichten sein) wird jeweils ein Bot(-User) gesetzt. Die jeweiligen Bots lesen in ihren Kanälen mit und übergeben neue Nachrichten an den jeweils anderen Bot, der diese Nachricht dann (in seinem Namen!) in dem entfernten Kanal ausgibt. Für die Benutzer in den beteiligten Kanälen sieht eine gebrückte Nachricht dann z.B. so aus:
bridgebotNAme: [protocol] <Username> Nachricht
Puppeting
Mit Puppeting wird eine viel umfassendere Form der Überbrückung erreicht: Hier meldet sich die die Brücke korrekt beim Remote-Dienst an. Dazu muss sich die Brücke an einem gültigen Konto des entfernten System anmelden.
xmpp (Extensible Messaging and Presence Protocol)
Öffentlich nutzbar |
Bot-Name |
Bot-Typ |
Limitationen |
Ja |
@_bifrost_bot:aria-net.org |
Puppeting |
* Nur unverschlüsselte Chats/MUCs * Matrix-Reactrions gehen nach xmpp verloren * Matrix-Threads sind auf xmpp Antworten |
Für xmpp exisiteren z.Z. mindestens zwei öffentliche Matrix-Brücken:
Eine Besonderheit der xmpp-Brücke ist, dass diese sowohl von Matrix als auch von xmpp aus verwendet werden kann.
Momentan werden nur unverschlüsselte Privatnachrichten und MUCs (Multi User Chat) unterstützt.
Note
|
Die zwei Brücken haben eine leicht unterschiedliche Syntax. Die aria-net.org Brücke hat einige zusätzliche Features |
Beispiele
Mit Matrix einen xmpp MUC betreten
Öffentliche xmpp MUCs wie beispielsweise public@conference.jabber.chaostreff-osnabrueck.de können von Matrix aus direkt betreten werden. Es muss lediglich die Raumadresse in die entsprechende Matrix-Syntax umgeändert werden.
Der Raumname im Beispiel lautet public
, der xmpp-Server conference.jabber.chaostreff-osnabrueck.de
. Entsprechend der Anleitung lautet der entsprechende Portal-Raum:
#_bifrost_public_conference.jabber.chaostreff-osnabrueck.de:aria-net.org
Dieser lässt sich nun einfach betreten, entweder über "Räume erkunden" den Raumnamen eingeben, oder als Kommando in einem beliebigen Raum als "Nachricht senden" eingeben:
/join #_bifrost_public_conference.jabber.chaostreff-osnabrueck.de:aria-net.org
Oder alternativ über Matrix.org:
/join #xmpp_public_conference.jabber.chaostreff-osnabrueck.de:matrix.org
Zu beachten ist, dass es MUCs gibts, die verhindern, dass User ihre JIDs untereinander sehen können (Stichwort: Semi-Anonym). Das kann dazu führen, dasss man die angezeiten User im Matrix-Raum (technisch gesehen sind es virtuelle User/Puppets) zwar anschreiben kann, die wirklichen User diese Nachricht aber nie erhalten.
Privatnachricht an xmpp User:
Ähnlich zum vorherigen Beispiel funktioniert das auch bei Privatnachrichten. In xmpp wird ein User durch eine JID (Jabber IDentifier) repräsentiert, die den gleichen Aufbau wie eine EMail-Adresse hat: benutzername@domain.tld
Daraus folgt wieder der entprechende "Matrix-User"
→ @_bifrost_benutzername=40domain.tld:aria-net.org
Mit dem folgenden Kommando wird ein neuer Raum erzeugt und der xmpp-User "eingeladen":
/msg @_bifrost_benutzername=40domain.tld:aria-net.org
Alternativ über matrix.org:
/msg @_xmpp_benutzername=40domain.tld:matrix.org
Telegram
Öffentlich nutzbar |
Bot-Name |
Bot-Typ |
Limitationen |
Ja, nur Relay |
@telegram:t2bot.io |
Double-Puppeting |
Nur unverschlüsselte Chats |
Eine große, öffentliche Instanz wird von https://t2bot.io betrieben.
Anleitung
-
Bridgebot einladen in Privatchat
-
Im diesem Chat (Managment-Raum) eingeben: login bzw. login-qr
-
Mit Telegram-App den QR-Code scannen bzw. dem Link folgen und Anweisung folgen.
→ Fertig! Ab jetzt kommen alle neuen Telegram-Nachrichten ganz transparent in Martix an.
Um aktiv einen Chat zu beginnen, einfach Befehl an Brige-Bot senden:
pm +<internationale-Nummer>
Ein Telegram Raum oder Kanal kann mit folgendem Kommando betreten werden:
join <tg-invite-link>
Beispiel:
join t.me/fahrradkette
matterbridge - universelle Bridge
Öffentlich nutzbar |
Bot-Name |
Bot-Typ |
Limitationen |
self-hosting |
beliebig |
Bridgebot |
* Je nach Protokoll * Eine Brücke pro Raum |

Mit Matterbridge https://github.com/42wim/matterbridge können zwei Chat-Räume gebrückt werden. Es verden zahlreiche Protokolle unterstüzt.
Die Funktionsweise ist recht simpel: In die beiden Kanäle wird jeweils ein Bot (Name z.B. BridgeBotName) gesetzt. Die Bots lesen dann im Kanal alle Nachrichten mit, und übergeben neue Nachrichten an den jeweils anderen Bot, der diese Nachricht dann in dem entfernten Kanal ausgibt. Das ist die einfachste Form einer Bridge (vgl. z.B. https://matrix.org/docs/guides/types-of-bridging unter dem Punkt "Bridgebot-based bridges")
Ein spürbarer Nachteil an dieser Variante ist, dass Nachrichten über die Bridge zwangsläufig immer von dem Bot aus gesendet werden (und hier ggf. Meta-Daten verloren gehen). Somit sind z.B. Direktnachrichten an einen Teilnehmer in dem entfernten Kanal nicht möglich.
Es werden auch keine Nachrichten zwischengespeichert: Fällt z.B. ein Kanal/Netzwerk aus, werden Nachrichten nicht übertragen.
Beispiel einer Bridge-Nachricht:
BridgeBotName: [protocol] <Username> Nachricht
Beispiel
wget https://github.com/42wim/matterbridge/releases/download/v1.25.2/matterbridge-1.25.2-linux-64bit
chmod +x matterbridge-1.25.2-linux-64bit
Anschliessend die Konfig bauen. Starten. Fertig.
[matrix.riotchat] Server="https://riotchat.de" Login="@plocki-bot:riotchat.de" Password="SicheresPasswort!1elf" RemoteNickFormat="<{NICK}> " #RemoteNickFormat="[{PROTOCOL}] <{NICK}> HTMLDisable=false ShowJoinPart=true [irc.plocki] Server="irc.libera.chat:6666" Nick="BridgeBot" MessageClipped="<clipped message>" SkipTLSVerify=true RemoteNickFormat="@{NICK}: " IgnoreMessages="^\\*\\*\\[WARNING]\\*\\*:" [[gateway.inout]] account="matrix.riotchat" channel="!ZJAMVlrBniiADaXShi:tchncs.de" [[gateway.inout]] account="irc.plocki" channel="#does-it-matter" [[gateway]] name="gw-matrix-mumble" enable=true