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

RocketChat RN app for Android can't connect to some conferences with big amount of participants (starting with 20) #9060

Closed
ankar84 opened this issue Apr 22, 2021 · 8 comments

Comments

@ankar84
Copy link

ankar84 commented Apr 22, 2021

Description:

Hello!
I have that problem since RocketChat RN Application version 4.12 and only on Android.
Here is a issue in RocketChat RN app repo RocketChat/Rocket.Chat.ReactNative#2699
Previous versions of RocketChat RN application for Android (4.7 for example) don't have that problem.
iOS version of RocketChat RN application don't have that problem.
Jitsi Meet applications on same smatrphone don't have that problem.
I try two latest stable Jitsi Meet server versions - no luck.
I think it could be related to default TileView on mobile since some version of Jitsi Meet SDK (that prove that previous version on RCRN app don't have that problem - it opens in MainView).

Steps to reproduce:

  1. Create a big room. I do it with 70-80 tabs in my Chrome browser. 30-40 real participants are enough to replicate that problem
  2. Join that room in recent version of RCRN application (since 4.12)
  3. Other participants see that new participant from RCRN application connected
  4. Right after 1 minute other participants in room see that client is disconnected. In that moment client is still try to connect
  5. After some time RCRN application client gets network error overlay

Expected behavior:

RCRN application client should connect to big room even if it takes more then 1 minute

Actual behavior:

Here is like other participants see it (user with T in yellow circle it's a problem user from RCRN Android application)
jitsi-timeout
Here like client see it
https://youtu.be/ky_uN8LWUP0
Sometimes user can see room for a few seconds, but then call is finished for him. Maybe network error overlay not rendered somehow.
https://youtu.be/GmOt8i6Omvg

Server information:

  • Jitsi Meet version: Jitsi-Meet 2.0.5765
  • Operating System: Ubuntu 18.04

Client information:

  • Browser / app version: Rocket Chat ReactNative application version 4.13
  • Operating System: Android

Additional information:

I did try:
Increase bosh_max_inactivity = 120 in prosody config
Increase failure-reset-threshold = 2 minute in jicofo.conf
Increase initial-timeout = 120 seconds in jicofo.conf
Increase single-participant-timeout = 120 seconds in jicofo.conf

All without any luck.

I understand, that it is a bug of RCRN application for Android, but developers couldn't reproduce that bug on their environment for some reason, so I need to find another solution (for example increase some timeout on server side).
Of if some timeout in Jitsi SDK involved - please direct me where I can adjust it to my needs.

Maybe it can be adjusted here https://github.com/strophe/strophejs/blob/master/src/bosh.js#L160 - but how can I do it on my Jitsi deployment?

@saghul
Copy link
Member

saghul commented Apr 22, 2021

What's odd is that Jitsi Meet for Android doesn't have that problem, as you mentioned. The app is basically a thin wrapper for the SDK.

What SDK version does RCRN use?

@ankar84
Copy link
Author

ankar84 commented Apr 22, 2021

What's odd is that Jitsi Meet for Android doesn't have that problem, as you mentioned.

Indeed. But Jitsi Meet app is always on recent Jitsi SDK, I believe that why it work fine.

What SDK version does RCRN use?

I don't know for sure. Maybe 2.10.2. Yeah, I guess that PR update Jitsi SDK in RCRN to 2.10.2 and problem appeared first.
@diegolmello can you clarify that question, please

@saghul
Copy link
Member

saghul commented Apr 22, 2021

That version is really really old. I can't really justify the effort required to dig into such an old release.

@ankar84
Copy link
Author

ankar84 commented Apr 22, 2021

That version is really really old. I can't really justify the effort required to dig into such an old release.

I get it and understand you totally.
But my goal is to solve that issue. If not from RCRN side, then from Jitsi server side.

@saghul can you help me finding Jitsi server timeout to adjust so that buggy Android app can successfully connect to room?

@saghul
Copy link
Member

saghul commented Apr 22, 2021

See strophe.ping.js in the lib-jitsi-meet project, the timeouts are at the top of the file.

@ankar84
Copy link
Author

ankar84 commented Apr 22, 2021

See strophe.ping.js in the lib-jitsi-meet project, the timeouts are at the top of the file.

I think it is not what I want.
It's every 10 seconds ping https://github.com/jitsi/lib-jitsi-meet/blob/master/modules/xmpp/strophe.ping.js#L12
But I need something related to https://github.com/strophe/strophejs/blob/master/src/bosh.js#L160 in Jitsi server code.

@saghul
Copy link
Member

saghul commented Apr 22, 2021

Ah I see. I don't know that one, sorry.

@ankar84
Copy link
Author

ankar84 commented Apr 28, 2021

We figure out to fix our issue with tuning one time-out.
That wonderful post of @damencho lead us to bosh_max_inactivity time-out parameter of Prosody, but I set it in wrong config file (/etc/prosody/conf.avail/jitsi.company.com.cfg.lua), but it need to be configured in /usr/lib/prosody/modules/mod_bosh.lua file like this:

-- The number of seconds a BOSH session should remain open with no requests
local bosh_max_inactivity = module:get_option_number("bosh_max_inactivity", 120);

Now we increased participant connection time-out and all our RCRN Android users can join any big call (with pretty large connation time about 1,5-2 minutes)

Thanks for help, Damian and Saul!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants