matterbridge icon indicating copy to clipboard operation
matterbridge copied to clipboard

Other bridges ?

Open 42wim opened this issue 7 years ago • 147 comments

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

  • [x] Mattermost
  • [x] IRC
  • [x] Gitter
  • [x] Xmpp
  • [x] Slack
  • [x] Discord
  • [x] Hipchat (cheated by using xmpp ;-)
  • [x] Telegram
  • [x] Rocket.Chat
  • [x] Matrix
  • [x] sshchat
  • [x] Twitch (is just irc, see https://github.com/42wim/matterbridge/wiki/Section-Twitch-(basic))
  • [x] Zulip
  • [x] Whatsapp - thanks to @KrzysztofMadejski
  • [x] Keybase - thanks to @hyperobject
  • [x] msteams (Microsoft Teams)
  • [x] Nextcloud Talk - thanks to @gary-kim
  • [x] Mumble - thanks to @s3lph
  • [x] vk - thanks to @ivanik7
  • [x] Harmony - thanks to @pontaoski

Not supported anymore

  • [x] Steam: Upstream library has no support for steam chat anymore. See here for more info.

3rd party via matterbridge API

  • [x] Minecraft
  • [x] Facebook Messenger
  • [x] Reddit
  • [x] Discourse
  • [x] Counter-Strike, half-life and more

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

  • Line - too much red tape,EULA for a developer. PR welcome
  • Let's chat - can be used with XMPP bridge (https://github.com/sdelements/lets-chat/wiki/XMPP)
  • Glip - not possible, no API ?
  • Wechat - too much red tape, too little english. PR welcome
  • Tox - no pure go library. PR welcome
  • Hangouts - dirty hack (https://github.com/rogora/hangish/issues/28). Couldn't get it to work. PR welcome
  • signal - no golang library. PR welcome
    • possibly https://github.com/nanu-c/textsecure/ or https://github.com/RadicalApp/libsignal-protocol-go
  • wire - no golang library. PR welcome
  • mixer.com - no golang library. PR welcome
  • deltachat - PR welcome
  • Treema - PR welcome
    • possibly https://github.com/o3ma/o3
  • Skype - PR welcome
  • Viber - PR welcome
    • works with webhook / callbacks. No streaming API. Shouldn't be hard.
    • possible libraries to use:
      • https://github.com/mileusna/viber
      • https://github.com/strongo/bots-api-viber
  • groupme - PR welcome
    • possible library to use: https://github.com/densestvoid/groupme
  • Hangouts chat (go library available, but not a free service $$) #409
  • Cisco WebEx teams: looks easy, https://github.com/jbogarin/go-cisco-webex-teams, but caveats #660

Obsolete

  • stride (https://bitbucket.org/atlassian/go-stride)

42wim avatar Sep 04 '16 18:09 42wim

Currently supported: IRC, mattermost, gitter, xmpp Next in line: slack To be considered: whatsapp, fb messenger, mail

stp-ip avatar Sep 04 '16 19:09 stp-ip

Sidenote: Awesome project and thanks for taking the time and publishing it openly.

stp-ip avatar Sep 04 '16 19:09 stp-ip

Support for Rocket.Chat would be great. See https://github.com/RocketChat/Rocket.Chat

tobru avatar Sep 07 '16 06:09 tobru

Thanks for the feedback. I'm also trying to make the config more flexible to combine multiple bridges in a gateway, more or less like the example in issue #9

Any comments ?

[Bridge "mattermost1"]
protocol=mattermost
..mattermostoptions..

[Bridge "irc1"]
protocol=irc
..ircoptions..

[Bridge "irc2"]
protocol=irc
..ircoptions..

[Bridge "gitter1"]
protocol=gitter
..gitteroptions..

[Channel "test"]
mattermost="testing"
irc="#test"

[Channel "stuff"]
mattermost="general"
irc="#stuff"
gitter="42wim/stuff"

[Gateway "gateway1"]
bridge=mattermost1
bridge=irc1
channel=test
enable

[Gateway "test2"]
bridge=mattermost1
bridge=irc2
bridge=gitter1
channel=stuff
enable

42wim avatar Sep 11 '16 12:09 42wim

Would like to suggest discord support :) https://github.com/reactiflux/discord-irc/issues/100

jleclanche avatar Sep 17 '16 12:09 jleclanche

@jleclanche well, discord support has just been added in current master ;-) Also decided to use your TOML configuration file because gcfg was not expressive enough.

42wim avatar Sep 19 '16 18:09 42wim

would like Telegram https://github.com/FruitieX/teleirc

lagleki avatar Oct 07 '16 06:10 lagleki

@lagleki unfortunately telegram needs a phone-number to join (and I'm not willing to give mine). On the other hand the bot API is implemented in Go, so it would be quite easy to add it.

If you're willing to be my test-user I can try to add it.

42wim avatar Oct 08 '16 20:10 42wim

Unsure how easy it'd be to add, but being able to bridge to hipchat would be a nice to have.

thybag avatar Oct 11 '16 14:10 thybag

@42wim I'll gladly offer myself for that (telegram), might even (if I find enough spare time) send a PR

jlsjonas avatar Nov 14 '16 00:11 jlsjonas

@jlsjonas thanks! Please let me know the results in #80

42wim avatar Nov 15 '16 22:11 42wim

Would be really nice to see mattermost to Skype group chat. Sameroom.io offers this as service so I imagine they are using Microsoft's API. This would be worth making a donation on its own.

scanline77 avatar Nov 28 '16 00:11 scanline77

@tobru rocket.chat support got just added, feedback welcome :-)

42wim avatar Dec 02 '16 23:12 42wim

@pgladwin seems that there's a rest API for skype on https://docs.botframework.com/en-us/skype/chat/ That's good news, no .net SDK needed.

42wim avatar Dec 02 '16 23:12 42wim

Could a possible additional bridge to add be Matrix?

There are several already existing bridges and an Application Service API spec. (Though admittedly it's still marked as unstable)

ananace avatar Feb 14 '17 09:02 ananace

@ace13 matrix support added in master :-) For channel names you'll have to use the room internal ID (looks like !QJFqjsGJwmQzbuBfff:matrix.org) You'll also need a dedicated bot user to avoid loops.

So for example

[matrix.test]
Server="https://yourhomeserver" (e.g. https://matrix.org)
Login="yourlogin"
Password="yourpass"
[[gateway]]
  enable=true
  [[gateway.inout]]
  account="matrix.test"
  channel="!QJFqjsGJwmQzbuBfff:matrix.org"

 [[gateway.inout]]
 ..your other bridges ..

42wim avatar Feb 19 '17 23:02 42wim

Got a question for Let's chat support (https://github.com/sdelements/lets-chat) but it seems quite dead to me. If you want this bridge added, please add the :+1: to this message.

42wim avatar Feb 21 '17 18:02 42wim

Line. It already has an API support in Go language too! 😉 https://devdocs.line.me/en/?go#messaging-api

tomoeuehara avatar Mar 26 '17 09:03 tomoeuehara

@tomoeuehara looks interesting, but signup unfortunately only works with phonenumber.

I'm willing to accept PR's for this protocol, or if someone sends me a test login/password (DM @42wim on twitter) I can take a look myself.

42wim avatar Mar 26 '17 13:03 42wim

@42wim DM sent :D

tomoeuehara avatar Mar 26 '17 13:03 tomoeuehara

If you do something like this: [Channel "stuff"] mattermost="general" irc="#stuff" gitter="42wim/stuff"

How will you know where your reply is going? If someone pings me on irc #stuff i dont want my replies going to gitter.

dantrevino avatar Apr 25 '17 06:04 dantrevino

@dantrevino That example was an old proposal, like you say it has some issues.

An example of the current configuration can be found in the README: https://github.com/42wim/matterbridge/#examples or sample config https://github.com/42wim/matterbridge/blob/master/matterbridge.toml.simple

42wim avatar Apr 26 '17 20:04 42wim

Dear @42wim,

Your tube system looks exact what we need, only is the integration with skype something we would like to see.

It's on your list at the top, so can you give something of an status? Does it comes in an few days, weeks, months or was it only an idea and have you no plans to relize this idea?

Tck13 avatar May 09 '17 07:05 Tck13

hi @Tck13

Thank you for your interest.

Skype doesn't have a go library, so I'll need to implement a lot myself (or wait until such a library pops up). Which only could happen when I have a lot of free time, maybe july/august.

So sorry, but unless someone else implements it, it won't be available soon. (and I don't make any promises for july/august :-)

42wim avatar May 09 '17 19:05 42wim

@42wim Wechat Enterprise 企业微信 would be excellent! Most of these services are blocked and/or unusable here in China for various reasons, but wechat Enterprise is severely lacking. I was hoping to write a bridge between our slack org and wechat so that our foreign teams can use slack and our chinese teams can use wechat, but then I found this excellent project. Unfortunately I have no Go experience.

There does seem to be two different libraries, (https://github.com/chanxuehong/wechat.v2/ and https://github.com/chanxuehong/wechat) but my understanding of Go and chinese is too poor to really dig in and try to figure it out myself. However, I do know that Wechat enterprise 企业微信 has a robust API, with full support for incoming and outgoing webhooks:

http://qydev.weixin.qq.com/wiki/index.php?title=%E9%A6%96%E9%A1%B5

A long shot, but let me know what you think.

nickolasclarke avatar May 11 '17 10:05 nickolasclarke

@nickolasclarke Thanks for the suggestion.

I see a couple of issues unfortunately.

  1. documentation is too much chinese for me.
  2. it needs a signup with a mobile phone. (I don't want to use this kind of service, so I can't test it)
  3. wechat seems to have a lot of red tape for creating and testing accounts.

So this is not something I'm going to implement, but I'm happy to accept code from someone for who those 3 things aren't an issue.

42wim avatar May 12 '17 20:05 42wim

How about Steam and TOX support?

I am not sure if they would work but thats the two go-libs i found so far: Steam --> https://github.com/Philipp15b/go-steam TOX --> https://github.com/kitech/go-toxcore

TomTheDragon avatar Jun 20 '17 10:06 TomTheDragon

@TomTheDragon steam looks feasible, got a poc running :-) You willing to test soon ?:) Haven't looked into tox yet

42wim avatar Jun 20 '17 22:06 42wim

@42wim sure, i really would like to test it :)

TomTheDragon avatar Jun 21 '17 22:06 TomTheDragon

@TomTheDragon it's in master now.

A couple of things:

Authentication

  • I only have it tested with 2FA enabled. If you have 2FA steamguard enabled you'll get a prompt to type in the 2FA code in when matterbridge starts.
  • Authcode by mail should also work, you can add that in the config or you'll get a prompt too. (not tested)
  • No steamguard enabled should just work. (not tested)
  • It works fine with your own account, but you better make a separate bot account if you really want to use this.

Channels

You cannot use channel names, you'll have to use the channel/chatids, a long number that you can find in the URL of your browser if you click on "enter this chat" room on a group page.

Please open a new issue for feedback/issues with the steam bridge.

[steam]
[steam.gamechat]
#login/pass of your bot.
#Use a dedicated user for this and not your own account!
#REQUIRED
Login="yourlogin"
Password="yourpass"

#steamguard mail authcode (not the 2FA code)
#OPTIONAL
Authcode="ABCE12"
[[gateway]]
  enable=true
  [[gateway.inout]]
  account="steam.gamechat"
  channel="12345678912345678"

 [[gateway.inout]]
 ..your other bridges ..

42wim avatar Jun 21 '17 23:06 42wim