element-hq / element-hq/element-ios
Cannot connect voice calls when using cellular data
- Dominant language
- Swift
- Stars
- 1.8k
- Forks
- 544
- PR merge metrics
- PR metrics pending
Description
**Describe the bug**
Users on the same matrix server on iOS cannot receive voice calls when using cellular data. WiFi connected devices function normally.
**To Reproduce**
### Element Desktop/Web call to iOS on Wifi
Works as expected
### Element Desktop/Web video call to iOS on Wifi
Works as expected
### Element Desktop/Web call to iOS on 4G cellular data
1. iPhone receives incoming call notification
2. Answer call on phone
3. Element Desktop reports that the call has been joined by iOS user
4. Element iOS app freezes. The call cannot be hung up. The only button which "works" is switching the audio device. All other buttons do nothing.
5. App requires to be force closed and reopened
### All iOS ---> Element
Tests have the same results as above
### iOS on 4G <---> Element Web on a federated server (matrix.org)
Interestingly enough, when connecting to a user on another server, the audio call works as expected, even on cellular data. To be clear, this is between one user one user on matrix.org calling a second on my personal server.
**Expected behavior**
I expect that voice calls between users on the same matrix server should be able to connect regardless of whether the iOS users are on cellular data or wifi
**Screenshots**

(Note that this "Reminder Bot" is not actually a bot, but a user account which I am testing from)
**Desktop (please complete the following information):**
- OS: Windows 10
- Browser: Brave
- Version: 1.24.85 Chromium: 90.0.4430.212 64 bit
Also using Element Desktop for Windows
- Version (previously latest stable, now 0.0.1-nightly.2021051301)
**Smartphone (please complete the following information):**
- Device: iPhone Xs
- OS: iOS 14.4.2
- Browser stock browser
**Additional context**
Using the [spantaleev/matrix-docker-ansible-deploy](https://github.com/spantaleev/matrix-docker-ansible-deploy/) playbook for matrix setup. Server is sitting behind a reverse proxy.
Matrix Synapse server_version: 1.33.2
Python: 3.8.10
Coturn enabled: +/- (tried both)
Fallback to matrix.org TURN +/- (tried both)
Not sure if it is related to #3054 or not?
----
Thanks for your time
Contributor guide
Research direction
No source file or test entry point is named. Start by reproducing the same-server iOS cellular-data call and compare it with WiFi and the federated matrix.org case, then inspect the call flow implicated by the freeze. Done means voice calls connect and remain controllable on cellular data, including hang-up.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ios, swift
- Domain
- audio-video-rtc, mobile-dev, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100