signalapp / signalapp/Signal-Android

Bluetooth headset button does not answer or end Signal voice calls

Open
#7,679 30 comments 5 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

acknowledged calling
Dominant language
Kotlin
Stars
29.4k
Forks
6.9k
PR merge metrics
No merged PRs in 30d

Description


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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.