Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Element Call] Call Kit controls on the lock screen #3372

Closed
stefanceriu opened this issue Oct 7, 2024 · 5 comments
Closed

[Element Call] Call Kit controls on the lock screen #3372

stefanceriu opened this issue Oct 7, 2024 · 5 comments

Comments

@stefanceriu
Copy link
Member

Ideally starting and Element Call should integrate with CallKit and use the following behaviors:

  • lock screen button would lock the screen if the audio is redirected through the speakers
  • lock screen button would end the call if the audio is going through the headpiece
  • if audio is on the headpiece covering the "ear" area should turn off the display
  • lock screen controls should be available to mute the call, end it etc.
  • and all the other behaviors somebody would expect by default in a call on iOS

This was mostly working previously but, unfortunately, it changed with iOS 18 and ElementCall audio is no longer redirecting to the speaker, making the system believe the other behaviors are available e.g. ending the call when locking the screen.

The only solution we found for this to start working again was to correctly setup a CallKit session, something we weren't able to do previouly because of #3041 and the workarounds needed for that.

As such, the only option we have at our disposal at the moment is to remove the lock screen controls entirely and revisit them after we find out why the web side can't handle CallKit media sessions properly.

@ara4n
Copy link
Member

ara4n commented Oct 12, 2024

@stefanceriu what happens if you use a trivial widget that runs getUserMedia() with callkit enabled media, rather than full element call? In other words, is this going wrong at the webrtc or livekit layer?

@fkwp
Copy link
Contributor

fkwp commented Oct 15, 2024

@stefanceriu if its low hanging we can test with https://webrtc.github.io/samples/src/content/devices/input-output/

@stefanceriu
Copy link
Member Author

@stefanceriu if its low hanging we can test with https://webrtc.github.io/samples/src/content/devices/input-output/

Nice one, yeah, this one has the same exact problems. Unfortunately though it doesn't print out anything in the console as to why.

@ara4n
Copy link
Member

ara4n commented Oct 17, 2024

well, arse. does it fail on all possible AV settings? (e.g. is there any chance this is a MediaTrackConstraint problem?)

stefanceriu added a commit that referenced this issue Nov 7, 2024
- comes following the discussions on https://developer.apple.com/forums//thread/767949?answerId=812951022#812951022
- this removes the lock screen controls entirely and lets the rest of the app behave normally
@stefanceriu
Copy link
Member Author

Closing as per the excelent insights from https://developer.apple.com/forums//thread/767949?answerId=812951022#812951022

stefanceriu added a commit that referenced this issue Nov 8, 2024
- comes following the discussions on https://developer.apple.com/forums//thread/767949?answerId=812951022#812951022
- this removes the lock screen controls entirely and lets the rest of the app behave normally
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants