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

Help neeeded to integrate auto-selection of headset for audio input and output #67

Closed
ghost opened this issue May 25, 2018 · 2 comments
Closed

Comments

@ghost
Copy link

ghost commented May 25, 2018

When using headsets, a particular troublesome UX issue is when the wrong input OR output device is used in the browser. This is a top support issue for all users so solving it can produce big benefits and savings.

At Jabra, we have recently addressed this issue by introducing code in our free to use MIT licensed web (Chrome) examples that autoselect the Jabra device for both input and output. For example, this playback example shows how to autoselect a Jabra audio device when it has been plugged in - regardless of what the system or browser has been set up to use as default. It uses new APIs that is currently only (fully) implemented by Chrome.

I would like to do something similar with Amazon connect, but I need help with some changes to the amazon connect API. Both help with making the optional changes as I am not that familiar with the details of the connect implementation and with making sure a PR is actually accepted and merged (as I noticed many useful external PRs that not getting merged (why?), so it makes little sense for me to try to do something that is not accepted). In particular I need help from Amazon with changes to softphone.js where the parts that needs change appear to be located.

As can be seen in the Jabra example source (example html, Jabra library with details), the task requires change to how user media streams is created, to inspect actual audio tracks and to modify a connected html element.

Specific needs that require Amazon connect API changes (see above mentioned example for details).

  1. Need to be able to fully control how user media streams is created in order to lookup hardware
    devices and control what input device is used. Specifically, I need to override fetchUserMedia (it is not enough to just override constraints as multiple custom steps are involved).

  2. Need access to MediaStreamTrack audio track instance in order to verify what device is actually used.

  3. Need access to an html element connected with the stream in order to set the output device used using the W3C Audio Output Devices API (the code mentions a "remote-audio" element - is that it ?).

@mschersten
Copy link
Contributor

+1 on UX issues with device selection. This is the biggest issue we run into, and it's especially difficult with a non-technical staff. The solution has been to go into Windows sound settings and disable everything but our Jabra headsets (with a USB tail).

This works OK when we have a lot of agents on staff and everyone has a headset on and is answering calls non-stop. However, during slower times when a single agent is answering sporadic calls, it requires that agent to have a headset on all the time just to hear the ringer. We would love to be able to play the ringer through the computer speakers (either in place of or in addition to the headset) and then play the call audio just through the headsets.

@ghost ghost mentioned this issue Oct 5, 2018
@seiyako
Copy link
Contributor

seiyako commented Apr 29, 2021

Hi, in the 1.6.3 release, we added audio device related APIs such as agent.setSpeakerDevice(), agent.setMicrophoneDevice(), and agent.setRingerDevice(). For embedded CCP users, you can pass a new parameter pageOptions: { enableAudioDeviceSettings: true } to initCCP API, which will add an audio device section to the Settings page.

@seiyako seiyako closed this as completed Apr 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants