Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: Ringtones and calls on different audio devices #618

Open
gamerxD1998 opened this issue Jan 15, 2024 · 9 comments
Open

Feature request: Ringtones and calls on different audio devices #618

gamerxD1998 opened this issue Jan 15, 2024 · 9 comments
Labels
enhancement New feature or request

Comments

@gamerxD1998
Copy link

Hello,

currently there is no way to let mattermost calls use a connected headset while ringtones are played via speakers.
A lot of voice communication software like the 3cx softphone and skype let you do this.
Got a few complaints from my coworkers because this is not possible and use(d) it on the other mentioned tools.

Would love to see this implemented if possible.

@streamer45 streamer45 added the enhancement New feature or request label Jan 15, 2024
@streamer45
Copy link
Collaborator

@gamerxD1998 To confirm, you are looking for the ringing notification sound to be routable to a specific audio output device same as we allow this for the audio coming from calls?

So UX wise this could be achieved with an additional sound device picker here:

image

I am assuming this would be a client specific setting because devices are not necessarily shared from one client to another (e.g. web, desktop, mobile).

@gamerxD1998
Copy link
Author

Yes, that's exactly what I meant.

It should be obvious that it would be a client setting as it is device related.

Your idea with the extra audio output device selector would do the job perfectly.
Everyone at my workplace uses the desktop app (+ sometimes mobile phone where this feature isn't that important for us) which should give the most flexibility from a development view. Not sure if that could even work in browsers

@streamer45
Copy link
Collaborator

Understood, @cpoile @matthewbirtch thoughts on the above?

@matthewbirtch
Copy link
Contributor

Understood, @cpoile @matthewbirtch thoughts on the above?

I'm not against the idea, but I'm not sure it would be a widely used feature in terms of priority. It would be fairly simple from a UX standpoint to add another dropdown input to choose the preferred output specifically for ringing though.

@cpoile
Copy link
Member

cpoile commented Jan 16, 2024

I can imagine this would open up a bag of edge-cases: like what happens when you select a device in the settings panel, but then later that device is unplugged or disconnected by error? Or if you change your sound settings for the system (mute or remove or switch to another device or change the system default) -- does that affect this? (Would it affect this setting automatically without us knowing?) The problem is that the setting is buried in a setting panel and will the user know this is where the issue is coming from when they don't hear the ringing (or the ringing gets played somewhere unexpected or at a too-loud volume)? If it's played too loud (hurting hearing, annoying coworkers, damaging speakers?), would quickly changing the system-level volume control change the ringing volume level? Probably not if it's not the system default... So how would you?
If those can be solved, then we could do it if there's desire for it.

@kaksikanaa
Copy link

This would be very nice!!!

Big problem for the remote workers that do not have the luxury to always wear a comfortable BT headset is to hear the ringtone when they should. Great solution would be to have a option to get ringtone to the PC loudspeaker but to have option to talk to the normal headset which is plugged in to the PC by wire for example.

While I agree that there are several guestions in this, like cpoile has pointed out, it would be nice to achieve somekind of compromise where the main responsibility are on the user and if any conlict occurs at any time, the sound device settings could be reverted to any available default devices the system provides. I think that the users can handle sound levels etc. okay.

@Judx
Copy link

Judx commented Jan 17, 2024

I believe this could be achieved with MediaDevices interface

For example enumerateDevices() returns online output devices with identification number. This identification number with label could be used to change the output of the ring tone:

    const selectedDeviceId = '...';
    navigator.mediaDevices.enumerateDevices().then(audioDeviceInfos)
    .then((audioDeviceInfos) => {
        const index = audioDeviceInfos.findIndex(device => device.label == selectedDeviceId);
        audio.setSinkId(audioDeviceInfos[index].deviceId);
        audio.play();
    })
   .catch(fallbackToDefault);
}

@Judx
Copy link

Judx commented Jan 17, 2024

I can imagine this would open up a bag of edge-cases: like what happens when you select a device in the settings panel, but then later that device is unplugged or disconnected by error? Or if you change your sound settings for the system (mute or remove or switch to another device or change the system default) -- does that affect this? (Would it affect this setting automatically without us knowing?) The problem is that the setting is buried in a setting panel and will the user know this is where the issue is coming from when they don't hear the ringing (or the ringing gets played somewhere unexpected or at a too-loud volume)? If it's played too loud (hurting hearing, annoying coworkers, damaging speakers?), would quickly changing the system-level volume control change the ringing volume level? Probably not if it's not the system default... So how would you? If those can be solved, then we could do it if there's desire for it.

1. What happens when you select a device in the settings panel, but then later that device is unplugged or disconnected by error?
-> We could fallback to default device

3. If you change your sound settings for the system (mute or remove or switch to another device or change the system default), does that affect this setting?
-> Yes, any output device should eventually be controlled by system. Output devices can be controlled separately in every OS.

4. Would changing system sound settings affect this setting automatically without us knowing?
-> Yes, see 3.

5. Will the user know that the issue of not hearing the ringing (or the ringing getting played somewhere unexpected or at a too-loud volume) is coming from this setting, considering it is buried in a settings panel?
-> We could show notification if following happens: selected output device is not available, is muted. and add separate device control UI.

6. If the ringing is played too loud (potentially hurting hearing, annoying coworkers, damaging speakers), would quickly changing the system-level volume control change the ringing volume level?
-> Yes, see 3.

7. How would you handle the situation where the ringing volume is too loud and it's not controlled by the system default volume?
-> User is responsible for volume in any output, default or not.

@alantheblack
Copy link

Apologies from a newbie but I'd like to endorse this request which I believe wouild be highly beneficial.
The company I work for is highly invested in GoogleMeet and we're all conversant with nominating default audio communication devices so we can use headsets plugged in but still maintain other audio outputs.
Recently we trialled Mattermost for a project across several sites and had a few complaints about users not being able to get incoming call ringtones while the headsets were plugged into laptops.
As an end user I think this is essential.
I note little activity in this thread but am keen to know of any progress.
Cheers :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

7 participants