Closed calvinrw closed 4 years ago
This is most likely a LineageOS-specific issue, as I recently discovered that the microphone doesn't work as expected in other apps as well. Mixer and audio path-related problems are very common in LineageOS, so this is most likely the root cause.
Firstly, Riot developers, thank you for your continued hard work in this project.
While exploring the voice/video calling features of Riot and Matrix, I have encountered a possible bug in the current Riot client for Android.
Environment
Server (self-hosted) matrix-synapse 1.12.3 on Debian 9.12 coturn 4.5.1.1-1.1 on Debian 10.3
Client 1 (Mine) Motorola Moto Z3 Play Android 10 (LineageOS 17.0) Riot.im 0.9.10 (G-6f8ee3c4f) via Google Play
Client 2 (Mine) Motorola Moto X (2013; 1st generation) Android 6.0.1 (LineageOS 13.0) Riot.im 0.9.10 (G-6f8ee3c4f) via Google Play
Clients 3 and 4 Motorola Moto X (2014; 2nd generation) Android 5.1 (Stock ROM) Riot.im 0.9.10 (G-6f8ee3c4f) via Google Play
Expected behavior
When placing a voice or video call between users in Riot, both parties will be able to hear each other after the call connects.
Actual behavior
When a user places a voice or video call using Client 1 or Client 2, the call appears to connect successfully (call timer begins and video streams are shown if applicable), but the recipient of the call (Client 3 or Client 4) is unable to hear them; there is only one-way audio. Two-way video functionality works as expected.
Steps to reproduce
Or
In these instances, Clients 1 and 2 are interchangeable, as are Clients 3 and 4.
Details
Calls between Client 1 and Client 2 result in no audio whatsoever. In this case, some faint crackling/static can be heard on Client 1.
The above is consistently reproducible, and occurs when both clients are on the same LAN (via WiFi), and across the internet (with Client 1 switched over to 4G/LTE).
Riot.im has been fully uninstalled and reinstalled on Clients 1 and 2 to no effect. Enabling speaker phone mode or using a Bluetooth headset makes no difference. Both server VMs have been fully updated and rebooted during the course of testing as well. I have gone as far as editing build.prop in Client 1 to play with Fluence noice cancelling settings, which may or may not even be applicable to these model phones.
Calls between Client 3 and Client 4 work as expected; according to the owners of these devices, two-way audio and video works without any issues.
Other comments
My most interesting observation is that voice calls between Clients 1 and 2 have worked perfectly exactly twice, on different days. Once with both devices on the same LAN, and once with Client 1 on 4G. I have been unable to reproduce the conditions that made this possible.
To summarize, these are the audio paths that I've confirmed work: