Skip to content

feat(call): Check camera and microphone before joining a call - #2792

Draft
karlitschek wants to merge 2 commits into
feat/haptics-reactions-widgets-call-adaptationfrom
feat/call-preflight-check
Draft

karlitschek wants to merge 2 commits into
feat/haptics-reactions-widgets-call-adaptationfrom
feat/call-preflight-check

Conversation

@karlitschek

Copy link
Copy Markdown
Member

Starting a call from the chat first shows a short check:

  • preview of the front camera (video calls)
  • microphone level meter
  • current audio output (e.g. AirPods, speaker)
  • buttons to join with camera or microphone turned off

The choice is handed over to the call view controller. The check is skipped when the participant may neither publish audio nor video, and can be turned off in the check itself or in Settings (Check camera and microphone before calls). Answering an incoming call is not affected. The level meter records to a temporary file that is deleted right away, and the audio session is deactivated before CallKit takes over.

Notes

Testing

  • App and all extensions build for the simulator (Xcode 27.1)
  • New unit tests UnitCallPreflightTest
  • The combined branch with all features also builds in Release for generic/platform=iOS (iPhone, iPad, Mac "Designed for iPad") and for watchOS hardware
  • Not yet tried by hand with a real account and device, hence the draft.

馃 Generated with Claude Code

karlitschek and others added 2 commits October 25, 2026 21:16
Starting a call from the chat now first shows a short check:

- a preview of the front camera (for video calls)
- a level meter, to see that the microphone picks up the voice
- the current audio output, e.g. AirPods or the speaker
- buttons to join with the camera or the microphone turned off

The choice is handed over to the call view controller, which joins
with audio or video disabled accordingly. The check is skipped when
the participant may neither publish audio nor video, and can be turned
off right in the check or in Settings ("Check camera and microphone
before calls"). Answering an incoming call is not affected.

The level meter records to a temporary file that is deleted right away,
and the audio session is deactivated again before CallKit takes over.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Frank Karlitschek <karlitschek@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Frank Karlitschek <karlitschek@users.noreply.github.com>
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