42wim / matterbridge

bridge between mattermost, IRC, gitter, xmpp, slack, discord, telegram, rocketchat, twitch, ssh-chat, zulip, whatsapp, keybase, matrix, microsoft teams, nextcloud, mumble, vk and more with REST API (mattermost not required!)
Apache License 2.0
6.67k stars 620 forks source link

Other bridges ? #28

Open 42wim opened 8 years ago

42wim commented 8 years ago

If anyone wants to contribute code to support for a new bridge, feel free to open an issue about this. I'll be glad to help you where possible.

Bridges supported

Not supported anymore

3rd party via matterbridge API

Not going to be implemented by me, but PR's welcome

Obsolete

dumblob commented 4 years ago

What about Delta Chat? It's just an email client with Autocrypt which looks like and works like WhatsApp.

lil5 commented 4 years ago

What about Delta Chat? It's just an email client with Autocrypt which looks like and works like WhatsApp.

There is a go repo for autocrypt not sure how far it is in development

https://github.com/autocrypt/go-autocrypt

stefan123t commented 4 years ago

Threema support would be awesome.

Could be a start, but apparently something changed in Threema and it stopped working: https://github.com/genofire/thrempp

You may want to check if the following Go implementation works for matterbridge:

Open-source implementation of the Threema protocol in Go. [4] https://github.com/o3ma/o3

It might also be worth to take a look at OpenMittsu [1]

[1] https://github.com/blizzard4591/openMittsu

adding a link to the Threema protocol analysis by Jan Ahrens [3] https://blog.jan-ahrens.eu/2014/03/22/threema-protocol-analysis.html

and/or the official Threema API Gateway [2] which would incur costs of CHF 0,02/message shrug this feels like SMS cost pitfalls are back for messengers.

[2] https://gateway.threema.ch/en

poVoq commented 3 years ago

Another option for Signal: https://gitlab.com/signald/signald-go Works via the signald deamon though: https://gitlab.com/thefinn93/signald

lil5 commented 3 years ago

Another option for Signal: https://gitlab.com/signald/signald-go

Works via the signald deamon though: https://gitlab.com/thefinn93/signald

Doesn't seem possible using a GPL3 library on matterbridge (Apache)

poVoq commented 3 years ago

Ah, yes. Didn't think of that. But since this is dependent on an external system anyways, maybe Matterbridge could use it as some sort of plugin that isn't included in the main branch?

poVoq commented 3 years ago

https://github.com/coffeemakr/threema Maybe this will will be made to work, now that the Threema client is open-source. Edit: looks like it now uses the pay-only gateway API.

minecraftchest1 commented 3 years ago

I am starting to work on a groupme bridge. https://github.com/42wim/matterbridge/issues/1356

42wim commented 3 years ago

vk bridge has been added, thanks to @ivanik7 🎉

unfa commented 3 years ago

I'd like to request YouTube live chat bridge: https://developers.google.com/youtube/v3/live/docs/liveChatMessages

MurzNN commented 3 years ago

Want suggest to community the workaround for bridging networks, that not yet supported in Matterbridge itself.

This way is to use [Matrix] bridges for bridge the room in remote network to some Matrix room, and then - bridge that Matrix room to other needed network using Matterbridge. List of supported bridges: https://matrix.org/bridges/

minecraftchest1 commented 3 years ago

Thata an idea. A matrix server in matterbridge. :)

petermolnar commented 3 years ago

Another option for Signal: https://gitlab.com/signald/signald-go Works via the signald deamon though: https://gitlab.com/thefinn93/signald

Doesn't seem possible using a GPL3 library on matterbridge (Apache)

signald is not a library, it's a standalone daemon. It's perfectly fine to write a GPL3 "glue" that connects to the signald daemon.

minecraftchest1 commented 3 years ago

Would support for Zoom chat be possible? https://marketplace.zoom.us/docs/api-reference/zoom-api/ The site even generates request code for several languages (go included). image

petermolnar commented 3 years ago

I started working on signal based on https://gitlab.com/signald/signald. Because signald is an external component, there is no licensing issue, but https://gitlab.com/signald/signald-go cannot be used, given it's GPL3. My initial commit used it, because I misunderstood the author's intentions on re-licensing https://gitlab.com/signald/signald-go/-/issues/7

Work is in https://github.com/petermolnar/matterbridge/tree/signald

poVoq commented 3 years ago

It seems like official API support for Threema will stay paid service only. But they recently published the Threema-web communication protocol, so a bridge use similar to how it is currently done with WhatsApp seems feasible: https://github.com/threema-ch/app-remote-protocol

MrDrache333 commented 3 years ago

I would like to see a bridge for the Kik-Messanger. They also provide an Api for that.

PackElend commented 3 years ago

I started working on signal based on https://gitlab.com/signald/signald. Because signald is an external component, there is no licensing issue, but https://gitlab.com/signald/signald-go cannot be used, given it's GPL3. My initial commit used it, because I misunderstood the author's intentions on re-licensing https://gitlab.com/signald/signald-go/-/issues/7

Work is in https://github.com/petermolnar/matterbridge/tree/signald

does this https://github.com/hacktor/signal-irc-telegram-gateway help somehow?

TobjasR commented 3 years ago

It seems like official API support for Threema will stay paid service only. But they recently published the Threema-web communication protocol, so a bridge use similar to how it is currently done with WhatsApp seems feasible: https://github.com/threema-ch/app-remote-protocol

any news about the Threema WebClient API thing? :)

gabrc52 commented 3 years ago

@petermolnar how do we use your bridge? what still needs to be worked on?

Edit: after fiddling around with it, I've gotten the bridge to work and send and receive messages.

  1. You need to setup signald following instructions from https://signald.org/articles/getting-started/
  2. Get the Signal group ID by running signaldctl groups list
  3. Add to the config:
[signald.num]
Number="+1xxxxxxxxxx"
UnixSocket="/run/user/1000/signald/signald.sock"
RemoteNickFormat="[{NICK}] "

and in the gatweay:

[[gateway.inout]]
account="signald.num"
channel="[channel from step 2]"

As for what needs to be worked on, images/attachments don't work, and instead of display name, the phone number appears in the other messaging apps.

However, I've found an issue with WhatsApp: it gives the following error [0001] WARN whatsapp: [Connect:bridge/whatsapp/whatsapp.go:78] failed to restore session: error decoding login connResp: json: cannot unmarshal array into Go value of type map[string]interface {}. I don't know if it's caused by the environment or version of Go or if any change you made broke WhatsApp or if its behind in commits such that WhatsApp no longer works in the old version it's forked from. I tried go build then ./matterbridge and go run . to run.

gabrc52 commented 3 years ago

For Signal, there was a lot of talk about Go and license limitations. However, with the matterbridge API (https://github.com/42wim/matterbridge/wiki/API), the Signal bridge could be a standalone program bridged through the API, and both should not be a constraint.

maxxer commented 2 years ago

Zammad?

A quick search on Github returned this go library for Zammad

poVoq commented 2 years ago

https://github.com/tulir/whatsmeow

Will probably become useful soonish.

glyh commented 2 years ago

For QQ, there is MiraiGo. For Wechat, there is wechat-go, but the author is not updating it anymore because he's account get banned by tencent because of the repo.

RhinosF1 commented 2 years ago

For QQ, there is MiraiGo. For Wechat, there is wechat-go, but the author is not updating it anymore because he's account get banned by tencent because of the repo.

We use matterbridge for @Miraheze projects and got asked if we could support QQ

poVoq commented 2 years ago

New Golang Threema bot library: https://github.com/karalabe/go-threema

alerque commented 2 years ago

It might be time to revisit Signal. The original issue post above mentions one library possibility but it was underdeveloped and did not have a compatible license. Since then both of those points have changed somewhat:

  1. An alternative approach to licensing issues was taken already by this project for the whatsappmulti support which uses a GPL3 library and just isn't included in the binary release.
  2. There are two active forks of the Go library for Signal, crossie's and tulir's. Most of the work was done in the former, the latter is by the author of the whatsappmulti library being used by this project and specifically tuned for use behind the scenes on Whatsapp (which still uses the Signal protocol).

All this to to say the stage appears to be clear if somebody wanted to jump in and contribute this. I believe there would be some work to wrap the signal protocol library into something that would specifically access the Signal Inc. service and facilitate device registration and such, but there don't seem to be any major roadblocks to it being possible.

42wim commented 2 years ago

@alerque Yes indeed, we can do it the same way as with whatsapp multidevice. As usual, I'm open to PR's to support this.

Bluscream commented 2 years ago

Threema support would be awesome.

Could be a start, but apparently something changed in Threema and it stopped working: https://github.com/genofire/thrempp

You may want to check if the following Go implementation works for matterbridge:

Open-source implementation of the Threema protocol in Go. [4] https://github.com/o3ma/o3

It might also be worth to take a look at OpenMittsu [1]

[1] https://github.com/blizzard4591/openMittsu

adding a link to the Threema protocol analysis by Jan Ahrens [3] https://blog.jan-ahrens.eu/2014/03/22/threema-protocol-analysis.html

and/or the official Threema API Gateway [2] which would incur costs of CHF 0,02/message shrug this feels like SMS cost pitfalls are back for messengers.

[2] https://gateway.threema.ch/en

i agree. Threema support would finally make matterbridge useful for me once again.

poVoq commented 2 years ago

The older Discouse Bubble chat integration is not maintained and depreciated these days, but the Discourse team is working on a first party chat system right inside Discourse: https://meta.discourse.org/t/introducing-discourse-chat-beta/210734 https://github.com/discourse/discourse-chat

Would be probably cool to have support for that in Matterbridge.

tuxmartin commented 2 years ago

Hi, it would be great to have support for https://wire.com/ <---> Rocket.Chat integration.

I like to send some money to this integration.

troilus commented 2 years ago

Yes, RSS is good idea - poll RSS feed and post new articles to IM channels. Matrix.org IM have this feature via bot https://github.com/matrix-org/go-neb#user-content-rss-bot

Please add RSS support, poll RSS feed and post new articles.

poVoq commented 2 years ago

Looks like the new Discourse chat feature is nearing a release: https://meta.discourse.org/t/discourse-chat/230881

rasos commented 2 years ago

Bridge to the chat of a BigBlueButton video conferencing room. A PoC for bridging to Matrix is now available https://git.fairkom.net/chat/bbb-chat-bridge

poVoq commented 2 years ago

https://blog.discourse.org/2022/08/discourse-chat-is-now-available-try-it-out-today/

It supports incoming webhooks, so it could probably work similar to Slack/Discord etc.

Edit: incoming webhooks are Slack-like so that should be very easy to add: https://meta.discourse.org/t/discourse-chat/230881

There is also a golang lib: https://github.com/FrenchBen/godisco But support for the chat needs to be probably added first for using it as a bot to read messages.

poVoq commented 2 years ago

No idea if that will work, but there is a tencentqq Golang lib:

https://github.com/Mrs4s/MiraiGo

(Found via: https://gitlab.com/xiayesuifeng/matrix-tencentqq-bridge )

Bluscream commented 2 years ago

Wouldnt it be easier to send your messages directly to the CCP

poVoq commented 2 years ago

As opposed to sending them directly to the NSA as with many of the currently supported services? 😅

Pantyhose-X commented 2 years ago

Add bridge

cabal p2p/decentralized chat. No server exists

Mikaela commented 1 year ago

Syncplay gateway support would be lovely. https://github.com/Syncplay/syncplay/discussions/574 has some links on the protocol details in the end of the original post.

adbenitez commented 1 year ago
  • deltachat - PR welcome

hi @42wim, for deltachat there is a new WIP library at: https://github.com/deltachat/deltachat-rpc-client-go

I am really loving matterbridge and will probably play with it but I am really new to Golang so not sure if I will be able to make something worthy of a PR, but maybe at least some simple 3rd party API client

Mikaela commented 1 year ago

SimpleX is an privacy first decentralised messenger that doesn't even have user IDs and which I have been enjoying on iOS and Android. I would like to Matterbridge it in the future. However:

cooljeanius commented 1 year ago

groupme - PR welcome

I'm interested in this; any pointers on how one might get started with it?

Bluscream commented 1 year ago

Sam Porter Bridges

Sh4d0wless commented 10 months ago

nobody work with Viber ?

Lippiece commented 7 months ago

I would very much love to see Simplex in the list.

poVoq commented 5 months ago

https://github.com/ben-forster/revolt

Go API wrapper for Revolt chat.