Skip to content

FCE-3912 Keep iOS call audio working after audio-session changes and CallKit hold - #617

Merged
Magmusacy merged 3 commits into
mainfrom
fce-3912-callkit-hold
Oct 22, 2026
Merged

Magmusacy merged 3 commits into
mainfrom
fce-3912-callkit-hold

Conversation

@Magmusacy

Copy link
Copy Markdown
Collaborator

Description

  1. Bumps react-native-webrtc to iOS: keep call audio after audio session changes and CallKit hold fishjam-react-native-webrtc#102: FishjamWebRTC 124.0.2.4 restarts the audio unit when something else stops it, and CallKitManager switches WebRTC audio off while a CallKit call is held.
  2. Removes fishjam-chat's held handler, which called stopMicrophone() on hold and startMicrophone() on resume.

Motivation and Context

Fixes iOS call audio going silent after another library deactivates the audio session, or after a CallKit call is held and resumed.

The held handler broke resume on its own: startMicrophone() creates a new track but doesn't publish it, so the other side heard silence after the call was resumed. Hold is now handled natively.

Documentation impact

  • Documentation update required
  • Documentation updated in another PR
  • No documentation update required

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to
    not work as expected)

@linear

linear Bot commented Oct 9, 2026

Copy link
Copy Markdown

FCE-3912

@Magmusacy
Magmusacy requested a balanced review from Copilot October 22, 2026 11:11
@Magmusacy
Magmusacy marked this pull request as ready for review October 22, 2026 11:11

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The focused removal matches the linked native hold-handling contract, with no unresolved findings in the reviewed change.

No open issues 🎉

What changed in this PR

Removes fishjam-chat’s JavaScript hold handler so native CallKit handling can preserve iOS call audio across hold and resume, consistent with the linked native fix.

Changes:

  • Removes microphone stop/start calls on held events, avoiding creation of an unpublished microphone track on resume.
  • Leaves hold-related audio control to the native implementation.
File Description
examples/​mobile-client/​fishjam-chat/​app/​room/​[roomName].tsx Removes the JavaScript CallKit hold handler.

Review effort: Balanced

@Magmusacy
Magmusacy requested a review from czerwiukk October 22, 2026 11:13
@Magmusacy
Magmusacy merged commit 91b9fe2 into main Oct 22, 2026
3 of 4 checks passed
@Magmusacy
Magmusacy deleted the fce-3912-callkit-hold branch October 22, 2026 11:17
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.

3 participants