signalapp / signalapp/Signal-Android
Bluetooth headset button does not answer or end Signal voice calls
Nobody has claimed this yet.
- Dominant language
- Kotlin
- Stars
- 29.4k
- Forks
- 6.9k
- PR merge metrics
- No merged PRs in 30d
Description
- I have searched open and closed issues for duplicates
- I am submitting a bug report for existing functionality that does not work as intended
- I have read https://github.com/signalapp/Signal-Android/wiki/Submitting-useful-bug-reports
- This isn't a feature request or a discussion topic
Bug description
Signal supports using Bluetooth headsets for voice calls. However, when an incoming Signal call rings and a bluetooth headset is paired and connected, pressing the multifunction button on the headset does not answer the Signal call. The call has to be answered manually from the phone screen, only then does the bluetooth set engage.
Even more surprisingly, pressing the multifunction button while a Signal call is in progress (and the BT set in use) has the effect of handing the call over to the regular earpiece - rather than the expected result of ending the call.
The same issue has been observed on Pixel 2 (stock 8.1) and on Nexus 5 (LineageOS 14.1).
Steps to reproduce
- receive a Signal call, having a bluetooth headset paired and connected
- try to answer the call from the bluetooth headset
Actual result: The call keeps ringing.
Expected result: The call is answered, similarly to regular phone call.
- while on a Signal call and speaking through a bluetooth headset
- try to hang up by pressing the button on the headset
Actual result: The call gets handed over to the earpiece.
Expected result: The call is ended.
Screenshots
Not relevant
Device info
Bluetooth headset: Aukey EP-B40 Bluetooth 4.1
Device: Google Pixel 2
Android version: Stock Android 8.1.0 - OPM2.171019.029
Signal version: 4.18.3
Link to debug log
Trying to pick up a Signal call by pressing the bluetooth button (nothing happens)
https://debuglogs.org/e98e666571435c9a13e6cac176ecdd4eda57ddd60a7127381c0c73625df697e0
Trying to end a Signal call by pressing the bluetooth button (call gets handed over to earpiece)
https://debuglogs.org/789eec7e8c8e1138cf86a1fe61ea803bcc1df35bbb80b4f21edc057eeb581b0a
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No source files or tests are named. Start by reproducing both Bluetooth-button behaviors and review the two linked debug logs, then trace the relevant Signal Android call-handling entry points. Done means the headset button answers incoming calls and ends active calls without switching audio to the earpiece.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- audio-video-rtc, mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100