mirror of
https://github.com/mumble-voip/mumble.git
synced 2026-03-03 00:46:56 -05:00
Support of variuous PTT hardware #2984
Labels
No labels
GlobalShortcuts
Hacktoberfest
accessibility
acl
asio
audio
bonjour
bsd
bug
build
certificate
ci
client
code
documentation
external-bug
feature-request
gRPC
github
good first issue
help wanted
help-needed
ice
installer
linux
macOS
needs-ckeck-with-latest-version
needs-more-input
overlay
positional audio
priority/P0 - Blocker
priority/P1 - Critical
priority/P2 - Important
priority/P3 - Somewhat important
priority/P4 - Low
public-server-registration
qt
recording
release-management
server
stale-no-response
stale-support
support
task
test
theme
translation
triage
ui
windows
wontfix
x64
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/mumble-mumble-voip#2984
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @nckpln on GitHub (Apr 16, 2025).
Context
There are plenty of PTT apps exist on a market mostly for mobile devices and they already have existing hardware which meant to be used in scenarios similar to Mumble. Most of that hardware has APIs and protocols which are open and well documented such as PTT mics, headsets and buttons for Zello, NuovoTeam, RealPTT.
Description
Add support for PTT hardware
Mumble component
Client
OS-specific?
No
Additional information
I did a quick prototype using my AinaPTT Remote-Speaker-Microphone. In essence its just a BT headset with a serial port for buttons data. Documented both on Zello and Aina websites
So the simple python sketch which reads serial input and simulates a hotkey press for Mumble woks as a charm =)
Would be great to implement it natively in Mumble app. I don't have experience with BLE stack so I don't know how much work is needed to add this, but serial port looks pretty simple and platform agnostic.
@Krzmbrzl commented on GitHub (Apr 16, 2025):
I am not aware of any standardized protocol for something like this. If there is indeed no standard protocol then this issue has a scope that is way to broad to be useful as it would be equivalent to "support all custom buttons found on any hardware".
That being said, if the buttons register to the OS as regular input events, then Mumble should already be able to bind them to shortcuts directly 🤔
@Hartmnt commented on GitHub (Apr 16, 2025):
Adding to this: In that case it could still be implemented using the Mumble plugin API by a downstream developer. It would just not be really viable for us to maintain it in the client itself.
@nckpln commented on GitHub (Apr 16, 2025):
Its kind of standardized in mobile world. Apps on iOS and Android can not have access to keyboard input in background. So they came up with two ways of doing it: bluetooth low energy (BLE) service and good old serial port over bluetooth. The second one should be quiet easy to support. As I mentioned its quiet a few apps for PTT over Internet, so Mumble can be really good opensource alternative for it if it can support existing hardware.
@nckpln commented on GitHub (Apr 16, 2025):
Oh that's a good idea! I haven't considered that one! =)
@Hartmnt commented on GitHub (Apr 16, 2025):
Yes, this is what it looks like from a users perspective. I think the question that @Krzmbrzl proposes is more like: Do the various hardware implementations of such devices use a common logic e.g same serial port, same baud rate, same protocol.
Or do they all do more or less the same thing, while using slightly different protocols.
The latter would be less viable for us to support as we would have to constantly add/remove update single implementations. If they all "speak exactly the same language", we could add this to Mumble without contemplating maintainability.
@nckpln commented on GitHub (Apr 17, 2025):
Zello is the biggest player on the market, so most of the hardware are compatible with it, and then the rest of the PTT apps are trying to be compatible with hardware for Zello, so they have to follow the same protocols. Here is a list of Zello officially supported accessories, but you can find much more unofficial stuff on Ebay/Amazon by searching smth like "zello bt ptt mic".
As I mentioned in the first message, Zello provides an extensive guide on a partner hardware integration, including SPP (Serial Port Profile). In essence it just sends fixed message on a button press and release events. Mumble app could just record it during button assignment process, the same way it does it with the regular keyboard input. Buy doing it there is no need to hard code those button messages.
The exact serial port assignment is the OS feature: COM* in Windows and /dev/rfcomm* in Linux, but it has to be user selectable in app anyway. The baud rate is standard 115200, but again can be specified by user.
I can have a look at BLE accessories, since most of dedicated PTT buttons use BLE and not SPP for energy saving purposes.
@erentar commented on GitHub (Oct 3, 2025):
Yes please