Hi, I have trying to mute/unmute microphone during Microsoft Teams meetings. I have managed to to it by USB HID with Pro Micro (32u4) by sending mute short short (CTRL+SHIFT+M) thru Keyboard.press.
But this works only if Teams is the active window. Also, it is not possible to get mute status. Alternative way is use Telephony Page of HID with custom HID. It provides Mute LED also. In below links there are explanations for implementation. Skype for Business (SfB) has more explanation. Despite I tried to get the data.
Thank you for your prompt reponse. I reviewed the project. Similar to what I have done, it's using CTLR+SHIFT+M to (un)mute. On top, it's using WINKEY+1 short to make the Teams active window, if I'm working on another window (e.g. PowerPoint)
Actually, I looking for a solution to achieve below features:
Mic mute/unmute (even if Teams is not the active window)
Get mic mute status
Teams or Skype compatible headsets (e.g. Plantronics C320) are doing it thru HID.
PS. I requested MS to allow USB HID Telephony page for such purposes.
Did you manage to solve you problem? I am probably doing very simmilar project as yours.
By the Microsoft documentation there is a Teams Accessory Signali Protocol which is probably what we need, but Microsoft share it only to OEM manufacturers not hobbysts. I had tried to use Telephony HID interface, but for Teams it does not work.
This would require at least two components, a modification to the report sent by arduino micro (I've not read the telephony reference yet) and also and HID report descriptor to match the report. A third component is the output of mute status. I'm somewhat interested in such thing. Maybe after I finish grading all my final exam papers
There is a new USB HID Usage Table (v1.22) published. In new version, microphone control is added in Consumer Page (0x0C). It is intended for Game Recording & Broadcasting but it may work for conferencing applications maybe. ( I haven't deeply investigated yet)
Keyboard mute buttons affect the output device (e.g. speakers) so you can no longer hear what the caller is saying. Whereas the topic of this discussion is to mute the telephony mic so that the person on the other end of the call can't hear you cough or mutter nasty things about them.
To answer your question, mic mute is on the telephony Usage Page 0x0B. The mic mute button sends Usage ID 2F. The mic mute status led on the headset responds to Usage ID 09.
From my own testing it would appear that some programs, particularly Teams, will only respond to the headset models they have certified.
So to make this work the Arduino can't identify itself as a generic telephony device. Instead it will need to report as a known good model with appropriate Vendor ID. Jabara and Plantronics are probably good candidates.
It would be greatly appreciated if anyone can confirm they have a headset with a working mute button and/or mute led, and also post what model it is.
Edit: found a Reddit post saying the mute button works on Jabra Elite 75.