Skip to content

Conversation

@siebeg-ideal
Copy link

Removes the setActive call in getAudioInputs.

Activating the AudioSession is, as far is I can see, unnecessary for retrieving input devices and causes unwanted side effects when no call is active:

  • Seems to trigger a "fake" interaction on HandsFree devices. Bluetooth headsets start “zooming”, car handsfree systems show an active call that cannot be ended from the car UI (since it’s not managed by CallKeep).
  • Audio interruption: Takes over the session and pauses background audio from other apps.

In our setup, we call getAudioRoutes whenever didChangeAudioRoute is triggered to update the UI based on available routes. On iOS, several audio route change events occur during a call, including right after a call ends. We noticed that when ending a call via Bluetooth controls in a car (standard HandsFree, not CarPlay):

  • The call ends correctly: the car UI clears the interaction and CallKeep reflects no active calls.
  • Immediately after, a second “phantom” call appears in the car UI which cannot be ended from the Bluetooth controls.
    This behavior seems to happen because activating the AudioSession causes the HandsFree system to create a "virtual" call interaction whenever the session becomes active.

@siebeg-ideal
Copy link
Author

Another user also commented about this issue on the original PR:
#462 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant