element-hq / element-hq/element-ios

Inability to handle audio/video calls interferes with other devices

Open
#2,638 2 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.