turt2live / matrix-wishlist

Bridges, bots, and other tooling requested by community members
55 stars 2 forks source link

Teamspeak <==> Matrix Bridge #128

Open colonelkrud opened 6 years ago

colonelkrud commented 6 years ago

TeamSpeak Matrix Bridge

What is Teamspeak (TS3)

TeamSpeak is a proprietary voice-over-Internet Protocol (VoIP) application for audio communication between users on a chat channel, much like a telephone conference call. Users typically use headphones with a microphone. The client software connects to a TeamSpeak server of the user's choice, from which the user may join chat channels. The target audience for TeamSpeak is gamers, who can use the software to communicate with other players on the same team of a multiplayer game. Communicating by voice gives a competitive advantage by enabling players to keep their hands on the controls.

Wikipedia

Why

TS3 has always focused on providing lightweight, secure, and powerful audio communications. Unfortunately it lacks a modern chat platform. I believe TS3 and matrix can compliment each other very nicely. There is also a UI modernization in the works.

How

There are two concepts for implementing a TS3 bridge: A Bot or a custom client. The Bot implementation would have a single bot account per bridged room which would pass messages from TS3 to matrix and back. This would help avoid the bridge eating room slots on the TS3 server. Audio could be passed through a conference call. This would likely be the easier of the two solutions and would require administration of both the TeamSpeak server and the matrix server.

The custom client implementation would use the SDK to make a fully featured TS3 and Matrix client. TS3 logins are managed by TeamSpeak on their cloud service: myTeamSpeak.com The custom client solution would have to address the issue of user account management for two services. Perhaps the accounts could be completely separate and simply require the user to login to both services. The custom client might not even have to use a matrix server to communicate with the TeamSpeak Server. This would mean the user could connect to any TeamSpeak and/or Matrix server without administrative actions.

Update

This seems to be the way forward. Using an existing synapse bridge framework and the python ts3 project seems to be the easiest way to go forward. We would need to keep track of users in some persistent way that is not dependent on the teamspeak nickname. Other than that, a simple text chat is possible. We could even implement file sharing - not as important but we can do it.

quantumgc commented 6 years ago

It is possible to build a basic text-only bridgebot using the TS3 server query interface. I've run some brief tests using this and might make a proof of concept in the coming days.

coolultra1 commented 3 years ago

The query interface is a thing, yes. It requires administrative access to the Teamspeak server though and does not support audio.

Just using being a full-fletched Teamspeak-Client would eat up lots of resources more, support audio and not require administrative access, though.

What do you think, this should be using? @colonelkrud

muelleel commented 2 years ago

There also exists an Java Ts3 Open Source client: https://github.com/Manevolent/ts3j This could be helpful - you can control it directly over code, not too much bloat, easy to use - but obviously not officially supported

colonelkrud commented 2 years ago

There also exists an Java Ts3 Open Source client: https://github.com/Manevolent/ts3j This could be helpful - you can control it directly over code, not too much bloat, easy to use - but obviously not officially supported

This would be more in line with the discord bridge and might be the best way forward. It has been a little while since I last dig into a TS3 bridge. I will take another look at everything over the next couple of weeks.