mumble-voip / mumble

Mumble is an open-source, low-latency, high quality voice chat software.
https://www.mumble.info
Other
6.26k stars 1.11k forks source link

[Feature] XMPP For Chat #5158

Closed seniorm0ment closed 2 years ago

seniorm0ment commented 3 years ago

So, I was thinking XMPP exists, could we not simply introduce the ability to connect a Mumble server's chat to use an XMPP server instead? Then users could have a sold persistent chat, with images and all other features. They can also go into any program that can talk with XMPP and they can view and chat with everything there as well. So Mumble is basically acting as just a chat client for the XMPP server.

Krzmbrzl commented 3 years ago

Wouldn't that require a server admin to additionally host an XMPP server or alternatively to connect his/her server to an existing XMPP server in order for Mumble to be able to send text messages?

Popkornium18 commented 3 years ago

If we implement a protocol like XMPP or Matrix in Mumble there would be no need for a separate server. Another benefit of this idea is that it would allow chatting with users from other Mumble servers. The chat could even be asynchronous. I like the idea, but it's probably a huge effort.

Krzmbrzl commented 3 years ago

Yeah of course if Mumble itself acted as a server for these messages we would not need a separate server but turning Mumble into a chat client for any of these standards seems to go way beyond Mumble's scope.

seniorm0ment commented 3 years ago

Well true, my idea behind having two seperate servers is the user can choose to use whichever implementation of XMPP they wish, then simply connect it to their Murmur server. While more complicated, it would allow more control and choice to the server host/user.

That being said, Mumble already does have chat functionality, I am not suggesting a full featured Discord clone here, but simply improving the usability of the chat system currently in place already a bit. I don't think it would be out of scope, people like to send messages, pictures, videos, etc. while talking, and the current chat impementation really isn't amazing for that even with the available plugins. Not to mention, the major ability to login to the XMPP chat from any device, with any client (supporting XMPP) to chat, without needing to connect to Mumble. It could offer users a way to direct message while offline, etc.

The only issue I see if how they would do it if they choose not to sign into an XMPP account. I'm thinking the Murmur host simply would act as a user, then users on the server (not logged into xmpp) would type and it would come from the Murmur server with their name after it or something along those lines. Would be limited, no dms etc. But it would essentially be like the chat is currently, just the Murmur host is acting as a XMPP user for multiple users if that makes sense. Maybe there's a better way though. Another option could be just to have second tab for XMPP chat tbh. Also I specified XMPP instead of Matrix as there were some pretty big recent issues regarding Matrix as far as privacy goes, I can provide a reference in an edit to this message.

Maybe this could be something implemented as a plugin?

Edit: https://github.com/libremonde-org/paper-research-privacy-matrix.org

Krzmbrzl commented 3 years ago

I definitely agree that the current chat system needs an overhaul.

You specified what could happen if a user doesn't want to sign up for XMPP. But what if the server admin doesn't want to do so? If text chat was completely switched to XMPP (or any external service for that matter where the Mumble server is not also acting as a server for the messaging system/protocol) then that would either mean that that admin would not be able to use Mumble or use it but only without text chat. Neither of these alternatives seems any good to me. We should not depend on external services like that.

That being said I do see the advantages such a system would offer. However if anything such a system could be used next to the existing Mumble chat unless Mumble was completely switched to using that system for text messages (acting as a server for that messaging protocol as well). The work required for the latter seems to be way too much though.

So essentially this only leaves the option of providing this functionality next to the existing chat functionality. That I would imagine getting pretty clunky and confusing as now there are two kinds of chat systems a user has to fiddle around with.

Maybe this could be something implemented as a plugin?

I think for this to work GUI support is required. That is currently not possible with plugins (unless the plugin was to provide its own GUI but at that point there doesn't seem to be an advantage over simply opening a separate XMPP client next to Mumble).

seniorm0ment commented 3 years ago

You specified what could happen if a user doesn't want to sign up for XMPP. But what if the server admin doesn't want to do so?

This question isn't clear to me, do you mean if the user doesn't want to act as a forwarder for users who aren't signed into XMPP? Well I'm not entirely sure. I don't think there's a way to anonymously allow users to chat on XMPP. That being said, the unintuitive solution would be to just have a seperate chat tab maybe for XMPP and Mumble. While not as streamline. Another option could be to merge the two, but it msy get confusing when looking at the XMPP chat from elsewhere. I really don't see why a host would be against serving as a forward to the XMPP server they're having their server connect to anyways though? And if they didn't want XMPP chat enabled on their server, it'd just be like how it currently is anyways. So I think just having the Murmur host act as a forwarder be the best bet. Maybe give the users a toggle option to not have their messages forwarded to the XMPP though if they don't want it would be a nice feature.

I don't understand your follow up point about if text chat was completely switched to XMPP. Anyways I already said I am against implementing XMPP directly without also leaving in an option to fallback to direct chat for hosts that don't want to use XMPP. Either way, I think having the Murmur host connect to an XMPP server that's hosted elsewhere (even if on the same server) would be a better option than having it built directly into Mumble, for the sake of minimalism, performance, and allowing easier portability and user choice.

The work required for the latter seems to be way too much though.

To have both the direct chat and an XMPP chat? I honestly fail to see that, It seems it would be easier (if not just as easy) to just create two tabs. One connects to XMPP, the other is Mumble chat. The other option would be to merge them (maybe color XMPP usernames, and keep Mumble names gray).

but at that point there doesn't seem to be an advantage over simply opening a separate XMPP client next to Mumble

I agree with your point about a seperate GUI, the point of this is to help users not need to install another program to do this. But allows them to do so if they want to. Personally I'd never use Mumble on mobile, but I'd be glad to use an XMPP client for chat on mobile 24/7. I'd also keep XMPP chat open on desktop even when Mumble is closed. But imoroving the text chat would appeal to users who want a more modern text chat experience. Imo this is a major drawback to why people don't use Mumble. They're pretty much "forced"" to use a seperate chat program. Incorporating XMPP would be a better move instead of a full redesign of the Mumble chat. And users who already use XMPP would be able to simply connect the Mumble chat to their XMPP client and view and chat anywhere instead of having two seperate chats (Mumble and XMPP). The issue really seems to be with the best way to implement it, but as I've said I think providing a seperate tab (or just merging it and color coding/put some pretext like "Mumble @Krzmbrzl: Hello") would be best.

Krzmbrzl commented 3 years ago

do you mean if the user doesn't want to act as a forwarder for users who aren't signed into XMPP?

No. I mean what if a server hoster doesn't want to connect their Mumble server to XMPP. If they don't want to send data elsewhere and also don't want to set up a local XMPP server. We should not force servers into using 3rdParty software.

With that premise it is impossible to completely switch to XMPP as far as I see it. The only solution to that would be to make Mumble also an XMPP server which we both agree is not a good option.

And then we are back to the dilemma of having two separate chat systems.

seniorm0ment commented 3 years ago

If the server host doesn't want to switch to XMPP, then they don't have to? They can leave it just how it is. Again, I never said I was for FORCING servers to use XMPP, but simply providing the integration nicely as it's an already established solid system that can be used.

Krzmbrzl commented 3 years ago

Okay so then we are back to the chat overhaul being completely separate to the XMPP option unless we want a clunky 2-system approach where there are different types of chats.

Then I would argue that the only advantage of implementing XMPP would be to have shared messages with other messengers. This however then probably happens at the cost of having to support all features XMPP offers within Mumble or add a way to discard messages that use unsupported features...

And then there is of course also the issue of data protection. As of now the text chat is not saved anywhere and as such we don't have to worry about data protection laws in that regard. With a persisten chat message like XMPP this would probably come into play :thinking:

seniorm0ment commented 3 years ago

Whether it's to replace Mumble's current chat system, or have as an alternative, that's not really my book to speak on. Personally if we're speaking between these two options, I'd rather Mumble replace it with XMPP rather than re-design Mumbles chat from ground up/add a bunch of new features, even if that means the Mumble server itself ends up including XMPP.

Then I would argue that the only advantage of implementing XMPP would be to have shared messages with other messengers.

This is a major factor, that should not be overlooked imo. It provides a variety of options to users on how, where, and when they can view that chat. Ontop of this, it puts no work on Mumble's shoulders to add support for chat on other platforms (in comparison to re-designing the chat, now if someone wants to view the chat elsewhere, they can't without creating an entirely new chat program that speaks to Mumble, just for Mumble.) Instead of simply imputting the XMPP information into their preferred clients.

The other benefits again being that it is already well established, has a solid security and privacy history, and already has quite a bit of support. It has all the features users could really want.

Data Protection

In what sense? This would be no different than users simply running the XMPP chat alone. Or any chat software for that matter. We are providing the software, it's FLOSS, I fail to see why we should have major issues in regards to data protection laws. That would be up to whoever is hosting the servers, how, and where they are hosting it. XMPP would in theory be an issue before we ourselves have issues, as we're simply using XMPP. Unless I am missing something here?

Two chats

Really the issue is if everyone will want to switch to XMPP, and is why I wanted to provide choice. I don't think a two chat system would be really clunky, if it's merged together. And if the server host themselves didn't want to use XMPP, again the chat would remain how it would now. But again, not my book to speak on.

If I see two major reasons why people avoid Mumble, it's the lack of video chat (which ofc is a different issue), and the poor text chat.

Krzmbrzl commented 3 years ago

That would be up to whoever is hosting the servers, how, and where they are hosting it.

Yeah that is correct but in the end this is still important for us as we advertise Mumble as privacy-friendly and as an application that does not collect any data on users. If we add something like XMPP and make it mandatory (be completely switching to it) this will break what we have advertised. In so far it is also our concern whether or not any data protection laws might be involved.

seniorm0ment commented 3 years ago

Mumble doesn't collect data on any users, however all users still have to put total trust in their server host to not mine data or do anything malicious. That really can be done with or without XMPP, it can be done now it's not difficult to log messages if the host wanted. While I agree there is concern that if XMPP is forced, then yes stuff will be logged. It really just depends on how we implement stuff, either way this isn't exactly an issue with Mumble collecting data. This is a choice left up to the server host.

Krzmbrzl commented 3 years ago

The major difference that I see is that with Mumble you only have to trust a single host (potentially yourself) whereas with XMPP you might end up having to trust another host for taking care of your messages as the XMPP might not run on the same server as Mumble.

seniorm0ment commented 3 years ago

A warning could he suffice, however yes I understand your point. However having it not built in means the server host can run it on the same server as Mumble, or on another server they own, (or use someone elses, which would correlate with your concern). That being said, this is still not really a problem with mumble, just that trusting the host(s) running it.

Krzmbrzl commented 3 years ago

That being said, this is still not really a problem with mumble, just that trusting the host(s) running it.

Well with that I don't agree. The whole privacy thing is one of Mumble's core features after all. Thus imo we can't just put all responsibility for it on the server admin. Instead we should strive to make it as easy as possible to stay privacy-friendly. And replacing the chat with something that (let's be realistic) will probably end up running on yet another server and for which one has to register (at least as far as I have understood) and which saves your messages whether you want it or not is certainly quite a big change in that regard.

All of that makes me think that it really is not a good idea to replace the current chat with XMPP unless we turn Mumble itself into an XMPP server itself. I guess I'll have to have a look at the XMPP standard to check how complicated that protocol is. From what I have read so far it is XML-based which sounds like a convenient starting point...

Krzmbrzl commented 2 years ago

We talked about this in our team and came to the conclusion that we do not consider this as something that we want to integrate into Mumble. Overall we don't see enough advantages to justify the required effort (and in fact there are even disadvantages).

shodanx2 commented 2 years ago

Hello, long time mumble user here Just wanted to chime in because this was what I was looking for, Me and my friends use mumble for voice chat but we don't have a "home" for everything else. We use a facebook group, but it's not exactly what we want.

In particular we want XMPP "presence" notification, persistent rich media chat and maybe even file sharing.

But also I didn't really want to explain and convince all of my friend to install a separate XMPP client on all of their computers and phones.

I figured, maybe if my mumble server and client could act as an all-in-one that is already deployed.

I'm not entirely sure what XMPP is capable of, I assume it's all the discord stuff except selfhosted and private. (Never used discord myself)

I'm really trying to avoid having to install yet another resident program on all of our computers. We do have a steam group chat that could do everything (except mumble voice comms are more reliable, lower latency, still very annoying to have such a hodge podge of parallel software) .......

Popkornium18 commented 2 years ago

If you are looking for a privacy focused, open source, web-based alternative to facebook chat then check out https://element.io/. No need to install anything on PC, there's apps for iOS/Android, and you could even self-host an instance and chat with people on other instances. No idea how hard that would be though.

seniorm0ment commented 2 years ago

I think his point is he wants to use Mumble, but wishes it simply had the features of what XMPP or Matrix have, so he and his group doesn't need to use both Mumble and Matrix/XMPP, but instead just Mumble. I understand this, because this is exactly how I feel. As I originally stated I really feel the implementation of XMPP (or Matrix if we really want) integrated into Mumble in some way, would be a good idea. It'd give the ability to not need our own protocol, be privacy and security friendly, and provide users with a lightweight option and finally use Mumble as a "platform" rather than JUST for voice (and essentially basic irc chat). I can think of multiple ways this could be integrated, I still fail to see the issues around it completely.

I do not know how many people I've talked to, who have stated they would love to use Mumble, but the fact that they really have to use alternative software alongside it for video chat, and messaging (because it isn't great), I'd run out of fingers if I was counting.

Popkornium18 commented 2 years ago

I got that, but this Feature Request was closed, so there is next to no chance of this being implemented. So that's why I suggested the (IMO) next best thing, since Facebook Group isn't what they want to use.

adastx commented 8 months ago

You could use matterbridge to bridge Mumble and XMPP.