mumble-voip / grumble

Alternative Mumble server
http://mumble.info/grumble
Other
273 stars 88 forks source link

WebRTC #33

Open hrvylein opened 5 years ago

hrvylein commented 5 years ago

I recently stumbled upon grumble after I searched the web for a self hosted discord alternative. Are there any plans to add WebRTC to this server with some kind of authentication and a Rest API? I'd love to add the frontend part as another FOSS project, to have a server that can be accessed by the Mumble client and additionally from the web browser like discord. Mumble has (despite of community features like seperate communities, stickers etc.) everything a single server would need: voicerooms and chat. I know there are projects like https://github.com/Johni0702/mumble-web but this isn't the same as you'd need a proxy-server. Other projects like https://github.com/DungeonChat/Dungeon.Server never made it past project creation.

rubenseyer commented 5 years ago

The features merged in 1d0ca25 and pending approval in #26 should allow you to use mumble-web without a proxy server. Feel free to ask me questions about the implementation. Of course, due to both client-and server-side limitations only a rather basic feature set is supported but it is enough for a simple use case.

You can read through some of the discussion in issues and pull-requests to get a feel for ideas regarding some of these web-oriented features. All parties have been busy (myself included) so there hasn't really been much progress made for a while now.

hrvylein commented 5 years ago

I indeed read the discussion about the config system before I opened the issue but didn't connect it to WebSockets. As far as I understand the discussion you are leaving conformity to murmur in some areas. I'm familiar with go as I used it for a high capacity rest api for another project but never worked with data streams like this server does. If I'd come up with a solution for community features similiar to discord, you think it would be possible to merge them in grumble? Development on this server and grumble-web seems more fluent than in the native mumble client and maybe this could lead to a self hosted discord alternative somewhere before mid 2019.

rubenseyer commented 5 years ago

What gets merged is up to the maintainers, but I am still interested in the web vision I had in my original pull request.

I think the goal is to not diverge too much from murmur and at least reach feature parity, so my original long-term goal after the config system was to implement gRPC and expose a subset of that through the HTTP server. RPC is pretty much required to support any kind of major use case.

WebRTC etc. would require diverging from murmur or extending the Mumble protocol, and is considerably less straightforward. WebSockets are pretty lightweight anyway - the bad parts are worse background performance and bad certificate UX.

Because of browser WS limitations regarding certificates there will be need for some sort of application layer authentication API anyway in the future to allow full feature parity over WS.

(As an aside, Let's Encrypt integration via the HTTP server is on the roadmap. Current status of that has been "when I get around to it" for a while.)