Yes, that's precisely what matterbridge is for.
Yes, but actual support depends on the platform.
No, that is currently unsupported at the moment. See tracking issue #191.
(From 42wim#1566)
Matterbridge does not relay messages from the user account that it is logged in as. Make sure it has its own account.
- Support bridging between any protocols
- Support multiple gateways(bridges) for your protocols
- Message edits and deletes
- Attachment / files handling
- Username and avatar spoofing
- Private groups
- API
Supported protocols are Discord, IRC, Mattermost, Matrix, RocketChat, Slack, Steam, Telegram, XMPP (and our own rest API)
You can bridge between any (number) protocols. Even the same protocol!
For example you can bridge Discord, Matrix and Slack.
A message typed in Slack will be shown in Discord, and Matrix (and the other way around)
Follow the steps in [[How-to-create-your-config]]
A gateway here is a collection of protocols that you want to bridge.
For example you want to bridge the channel "community" on discord, mattermost and slack.
But you also want to bridge the channel "development" on discord, mattermost and slack.
To create the setup above you'll have to create 2 gateways.
See Gateway Config Advanced TODO
- Support incoming and outgoing edits and deletes: Discord, Mattermost, Slack, Matrix and Telegram.
- Support only incoming edits/deletes: RocketChat
- Support only edits: XMPP
- Support no deletes or edits: IRC, Steam(NR)
NR = Not researched
The logic is: Public links > Native file upload > External mediaserver > Private links
This means that bridges:
- will receive the "public link" from protocols that have links to files without authentication (IRC, Discord)
- that support native file uploads (Discord,Matrix,Mattermost,Slack,Telegram,Rocketchat) will receive a uploaded copy of the file from protocols that have links to files with authentication (Matrix, Mattermost, Slack, Telegram)
- that do NOT support native file uploads (IRC, Steam, XMPP) will receive the "public link" from your "external mediaserver" from protocols that have links to files with authentication (Matrix, Mattermost, Slack, Telegram). (If you have configured an "external mediaserver")
- that do NOT support native file uploads (IRC, Steam, XMPP) will receive the "private link" from protocols that have links to files with authentication (Matrix, Mattermost, Slack, Telegram). (If you have not configured an "external mediaserver")
For example if you bridge between slack and discord:
When you upload a file to slack. The link you get from slack needs authentication, so matterbridge downloads this file and reuploads it to the destination bridge Discord (which support native file uploads). If you upload a file to discord, matterbridge will just sent the link to slack (because the discord links are public and don't need authentication)
Username spoofing (so it looks like the remote users) only works with webhooks for Discord, Mattermost, Slack.
Matterbridge reads avatars from Discord, Mattermost and Slack but can only send them to Discord, Mattermost and Slack when webhooks are enabled.
To have avatars from mattermost visible on the other bridges, you'll have to use the external mediaserver setup. This is because avatar images from mattermost aren't publicly visible when not logged into mattermost. This means we need to download the avatar images, and upload them to the public mediaserver, and use this (now public) avatar URL in the messages sent to another bridge, eg slack.
See webhook in advanced for specific bridge information TODO
Private groups are supported for Mattermost and Slack
See [[Api]]