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.65k stars 618 forks source link

Skype Support #470

Closed ylluminate closed 2 years ago

ylluminate commented 6 years ago

The only option I've seen thus far for Skype <-> Mattermost is https://sameroom.io/, but landing in at $49-99+ is a bit cost prohibitive for smaller teams or teams who don't use it heavily enough to rationalize such an expense. Strangely enough, this is a pretty critical service. I've been trying to migrate some clients to a more sane environment, but there are a number of (larger) companies that just will not budge from Skype, even though the like the idea of moving to a more structured system like Mattermost.

From what I understand as per Issue #28, @jheiselman in response to @54, Skype's going to need some special tooling. Apparently there's "no official API and the only SDK has to use the Microsoft's BotFramework platform. Further, their SDK is C# or Node.js only. Someone would have to take time to port it to Go."

Any additional thoughts or details on this topic wrt what we'd need to do in a loose order?

I've popped up a question to see if anyone has any thoughts surrounding the situation.

ylluminate commented 6 years ago

Looks like there's a REST API: https://docs.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-connector-api-reference?view=azure-bot-service-3.0

jheiselman commented 6 years ago

The REST API appears to be one-way. It allows posting to a conversation, but not reading from it. From a high level, I could only see a legit integration working via a separate process:

  1. Use the BotFramework SDK to create a Skype bot that also listens on a websocket.
  2. Agree on a data exchange format
  3. Add a new feature to matterbridge that can connect to this websocket and send/receive data using the agreed upon format

It appears that Microsoft may have planned for this use case with the DirectLine API.

Tjird commented 6 years ago

Is this maybe usefull? https://github.com/strongo/bots-framework

jheiselman commented 6 years ago

@Tjird this library promises a lot, but implements very little. It has support for Telegram, Viber, and Facebook Messenger and says that you have to bring support for whatever other platforms you want yourself. It looks like the only portion of the code that appears to claim to handle Skype is nothing more than an incoming webhook handler, so even that would only handle messages coming into the bot and not handle anything going back out to Skype.

The best and probably only hope for Skype support would be to voice your desire in the issue that ylluminate created in the Micrsooft/BotBuilder Github (that Microsoft has since closed saying that they have no plans to do).

Xuanwo commented 4 years ago

Maybe we can add support via https://github.com/infracloudio/msbotbuilder-go ?

Xuanwo commented 4 years ago

And skpy uses undocumented APIs to interacte with the Skype (which works for now)

Xuanwo commented 3 years ago

https://github.com/infracloudio/msbotbuilder-go looks work