mumble icon indicating copy to clipboard operation
mumble copied to clipboard

Option to auto-mute when another person is recording

Open ancarda opened this issue 3 years ago • 18 comments

Context When in a large channel with light-to-no-moderation, sometimes users will start recording without asking if anyone doesn't want to be recorded. When this happens, I typically mute myself / let go of the push-to-talk button.

Describe the feature you have in mind I would like an option somewhere in the settings to have Mumble auto-mute whenever someone in the channel begins recording.

Describe alternatives you've considered I'm not aware of any way to automate Mumble to do this, so I have been doing it manually.

Additional context None.

ancarda avatar Nov 22 '20 02:11 ancarda

Yep that seems like a useful thing to do. Though by default it shouldn't be active as it could potentially cause confusion if users are not aware that they have this feature enabled :point_up:

The changes required for this should be pretty minimal. Any chance you want to give it a go yourself? :)

Krzmbrzl avatar Nov 22 '20 12:11 Krzmbrzl

Recording is something that is done client side for client side purposes only. The only way you can know if someone is recording is if the other person decides to tell you or if their client program is programmed to tell you.

However why should their client program be programmed to tell you? It could be conceived of as a violation of user freedom or privacy for the other person to be forced to tell you they are recording you.

You could argue that recording others without their consent is a violation of their privacy or freedom. However, it is a complex issue, it could be used both for good or bad depending on the situation. Probably the relevant laws also vary by jurisdiction, in some places it may be legal and in others not.

But in any case why should it be Mumble's place to control this? Even if Mumble has a recording feature, it's not really something Mumble can control. How would you know if someone decides to do the recording with another program or with real life audio equipment? There is no way to know.

In general the principles of software freedom say that a program should serve the user, the user should know what the program is doing, the user should be allowed to do whatever he wants with the program, edit the code, etc. Auto-telling others that recording is being used would classify as a classical anti-user anti-feature.

Implementing such an anti-feature in a publicly available program like this with publicly available source code is an exercise in futility since obviously it could not be controlled, and if it could, it would be a rampantly anti-user, anti-freedom feature.

I have, however, never recorded someone without their permission in Mumble. Nor do I support this feature being used for any bad purpose.

Do IRC clients announce others that you are logging the room? Of course not.

Someone could record someone without permission in order to violate their privacy.

But someone could also record someone without permission to expose abuse and wrongful behavior.

Like with any tool: It can be used for good or bad.

To ban the tool, to restrain it, to do things like forced announcements that the tool is being used, is a pointless exercise. It will not necessarily impede bad behavior, it may impede good behavior, and it conflicts with principles of software that should serve the user.

trudnorx avatar Nov 30 '20 22:11 trudnorx

Doesn't Mumble already broadcast if a user starts recording using the Mumble client? :thinking:

Krzmbrzl avatar Dec 01 '20 09:12 Krzmbrzl

@Krzmbrzl In v1.3.3 in the notifications settings there's an entry "User recording state changed". When I record using the mumble client, all connected clients see a red circled icon next to my name in the users list and get a log entry that I start/stop recording. (The log message to self is anonymous, others see my nickname.)

Of course it's good that mumble does not (and it never should) try to spy on other programs for an attempt to detect whether other programs may be recording. It would be error-prone and futile.

I share @trudnorx's criticism about privacy though. Mumble client's internal recording feature did not sufficiently inform me before use, that other users would be notified about my action. There should be a disclaimer (ideally at the bottom of the recording dialog) until I click "Dismiss" or sth., that tells me "When you start or stop recording using mumble, other users will be notified so they can adapt their behavior if they desire." With this information, anyone who uses this feature can be considered to have explicitly chosen this publicly-visible method of recording exactly for this benefit, that others can adapt their behavior. And of course we should help them adapt automatically.

Considering our focus on gaming, we migt be able to help some law n00bs by adding to the disclaimer: "In some jurisdictions there may be restrictions on the act of recording itself, and/or the use of the recorded audio." Whether it helps them avoid breaking a law accidentially, or helps them feel extra gangster, is up to them.

mk-pmb avatar Jan 11 '21 05:01 mk-pmb

Personally I don't see a problem in not explicitly telling users that recording will notify other users since the act of recording itself is also a privacy critical task (for the other users in this case). Adding a disclaimer seems fine to me though, as making something like this more explicit is usually always better :+1: We'd be happy to accept a PR for that :)

I think the law disclaimer should read something like "Note that recording other users should never be done without their consent. Doing so is probably illegal, depending on your country's jurisdiction." Aka: Make it more clear that it not being illegal is probably uncommon and even if this is the case, it's not a good idea to do so nonetheless.

Krzmbrzl avatar Jan 11 '21 08:01 Krzmbrzl

Well, I got as far as adding the checkbox into the settings. I had some trouble hooking into the event for when a user is recording -- I think my lack of C++ and Qt knowledge is making it a little hard to proceed 😞

I've been learning C++ and Qt in my spare time, but perhaps someone could pair program with me on IRC?

ancarda avatar Jan 11 '21 09:01 ancarda

@ancarda you can join our IRC dev-channel (#mumble-dev on Freenode, or simply via Matrix: https://matrix.to/#/!VNUpYnUPdhTAqagvUu:matrix.org?via=matrix.org&via=ohea.xyz) You can also create a WIP / draft pull request so we can give feedback on the code directly :point_up:

Krzmbrzl avatar Jan 11 '21 13:01 Krzmbrzl

Doing so is probably illegal

I'd have second thoughts about hosting our source code in my own repo if it contains such over-generalized strong opinions. There's a good reason why some countries limit law advice to people specially educated for the purpose. Wording it "probably", to me seems way too convinced for a shot in the dark.

mk-pmb avatar Jan 11 '21 15:01 mk-pmb

We can't make this too long and if we just state that this is perhaps illegal, I think we might as well leave it out as imo that won't have the desired effect on the target audience that you mentioned :shrug: But I guess in the end I don't mind either way and would accept it in the way that it is contained in any potential PR.

Krzmbrzl avatar Jan 11 '21 17:01 Krzmbrzl

Suggestion based on our IRC discussion: "In many countries it's usually illegal to secretly record people." It's a short wording that also circumvents delving into the scale between mere knowledge and the various flavors of consent.

mk-pmb avatar Jan 11 '21 19:01 mk-pmb

Hmmm... As for the auto-muting feature itself, it sounds like a very specific feature designed for a very specific group of users. I'm not even sure if it should be included in the official binary. I have noticed that we have a plugin platform #3743 waiting for being merged. Would it look better if a plugin that can auto-mute users being designed, rather than directly cook this feature in the official release?

Also, concerning recording others privately, AFAIK Zoom does display a "Recording" icon by the side of users who are recording. I think it should be a tradition of voice chat software to notify users if someone is recording. But anyway, people can just use pymumble to write a simple bot that secretly records everything or just put a hardware tape recorder against the speaker, whatever. There's no way one can really prevent it.

TerryGeng avatar Jan 17 '21 07:01 TerryGeng

Given that recording is cooked into the client itself, I would consider it to be logical to also cook this feature into the client rather than a plugin. But I also wouldn't mind if this ended up being a plugin (I mean I am happy about any plugin that gets written with my new framework ^^)

Krzmbrzl avatar Jan 17 '21 10:01 Krzmbrzl

@Krzmbrzl I was planning to work on this issue for my first Open Source contribution. Do you have any tips as to where to start?

juanrodl avatar Jan 24 '22 22:01 juanrodl

Code-wise a good read at the beginning should be https://github.com/mumble-voip/mumble/blob/master/docs/dev/TheMumbleSourceCode.md

Then more specific to this issue in particular: The recording state is broadcast by the server (already - you don't have to implement that) as part of the UserState Protobuf message: https://github.com/mumble-voip/mumble/blob/d55bb99ce1ba604a82ab1fc4d7191cebed78d169/src/Mumble.proto#L222 which is handled here: https://github.com/mumble-voip/mumble/blob/d55bb99ce1ba604a82ab1fc4d7191cebed78d169/src/mumble/Messages.cpp#L448-L451 Triggering the local user's mute status can be done via https://github.com/mumble-voip/mumble/blob/d55bb99ce1ba604a82ab1fc4d7191cebed78d169/src/mumble/MainWindow.h#L331-L334

In case you are not yet familiar with GitHub as a platform, you might also want to have a look at this post.

Let me know if you have any further questions

Krzmbrzl avatar Jan 25 '22 07:01 Krzmbrzl

🤔 Again, I feel like we shouldn't stuff Mumble with all kinds of random features... This one sounds too specific and not sure it would be helpful for a lot of other people IMO.

TerryGeng avatar Jan 25 '22 14:01 TerryGeng

I'd prefer a plugin for the muting as well.

mk-pmb avatar Jan 25 '22 15:01 mk-pmb

@juanrodl I'll leave the decision up to you. Since the recording feature is already part of Mumble itself, I don't see a problem with integrating this feature into Mumble itself as well. However, it is also possible to implement this as a plugin (see also https://github.com/mumble-voip/mumble/blob/master/docs/dev/plugins/README.md). In order to implement it, we'd have to extend the current plugin API a bit with an additional callback function that is triggered once someone changes their recording state. But that shouldn't be too hard to do either.

Krzmbrzl avatar Jan 25 '22 15:01 Krzmbrzl

we'd have to extend the current plugin API a bit with an additional callback function that is triggered once someone changes their recording state.

This seems desirable anyways.

mk-pmb avatar Jan 25 '22 15:01 mk-pmb