matrix-wishlist
matrix-wishlist copied to clipboard
Teamspeak <==> Matrix Bridge
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.
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.
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.
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
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
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.