element-hq / element-hq/element-ios
Inability to handle audio/video calls interferes with other devices
Nobody has claimed this yet.
- Dominant language
- Swift
- Stars
- 1.8k
- Forks
- 544
- PR merge metrics
- PR metrics pending
Description
There are plenty of issues related to how bad riot-ios is when it comes to audio/video calls.
Nothing has changed with regards to this - riot-ios is the worst app one could possible use for such a thing.
This issue is about something else -- riot-ios being so crippled, that its mere existence on the network causes disturbance for other, better-written clients.
As documented in another issue (https://github.com/vector-im/riot-android/issues/3246), I'm trying to initiate a call from a riot-android user's device to myself. I can theoretically answer the call from riot-ios (haha, you wish!) and riot-web.
As soon as riot-ios gets a push notification about the call, it would do something silly and trip up the whole call, disconnecting it with a "the user failed to pick up" error.
That call is perfectly answerable from riot-web each and every time.. But only as long as the riot-ios device is taken off the network (put into Airplane mode). Killing the app does not work, because it seems like the push notification triggers it anyway.
Turning off the Integrated calls checkbox in riot-ios does not seem to help, but it does at least show some error when you open the riot-ios app:
Failed to set remote offer sdp: Failed to set remote video description send parameters.
Perhaps that's helpful for figuring out what's wrong and why these 2 devices cannot talk to one another. Fixing this would be nice but.. the real and more disturbing issue is that riot-ios does something which aborts the whole call.. with no way to tell it not to do it. That's not playing nice at all..
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the cross-device call failure with an iOS device receiving a push notification while the call is answered in riot-web, and compare it with the Integrated calls setting and the reported remote video description error. Trace the iOS call and push-notification handling; done means the iOS device no longer aborts a call that another client can answer.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- audio-video-rtc, mobile-dev
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 18/100