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

My Android app cannot enter the meeting #233

Open
Noah1991 opened this issue Apr 25, 2024 · 14 comments
Open

My Android app cannot enter the meeting #233

Noah1991 opened this issue Apr 25, 2024 · 14 comments

Comments

@Noah1991
Copy link

I have set up a Jitsi Meet service locally using Docker, and I've mapped the domain name to my local IP on my PC. Accessing it via HTTPS in the PC's browser works fine without any SSL security warnings. When I connect my Android device to the PC's hotspot, accessing it through the browser works normally as well. However, I'm unable to join meetings using the SDK-Android-Demo.

Here is the log of the demo.

2024-04-25 18:06:52.103 401-401 Timeline net.jitsi.sdktest I Timeline: Activity_launch_request time:30661405
2024-04-25 18:06:52.113 401-401 OrientationModule net.jitsi.sdktest D onActivityPaused
2024-04-25 18:06:52.126 401-401 OrientationModule net.jitsi.sdktest D onActivityCreated
2024-04-25 18:06:52.127 401-544 ViewContentFactory net.jitsi.sdktest D initViewContentFetcherClass
2024-04-25 18:06:52.127 401-544 ContentCatcher net.jitsi.sdktest I ViewContentFetcher : ViewContentFetcher
2024-04-25 18:06:52.127 401-544 ViewContentFactory net.jitsi.sdktest D createInterceptor took 0ms
2024-04-25 18:06:52.129 401-401 DecorView[] net.jitsi.sdktest D getWindowModeFromSystem windowmode is 1
2024-04-25 18:06:52.129 401-401 DecorView net.jitsi.sdktest D old windowMode:0 new windowMode: 1 isNeedToChangeCaptionView false
2024-04-25 18:06:52.129 401-401 DecorView net.jitsi.sdktest D createDecorCaptionView windowingMode:1 mWindowMode 1
2024-04-25 18:06:52.137 401-401 OrientationModule net.jitsi.sdktest D onActivityStarted
2024-04-25 18:06:52.138 401-401 OrientationModule net.jitsi.sdktest D onActivityResumed
2024-04-25 18:06:52.148 401-401 unknown:ReactContext net.jitsi.sdktest W initializeMessageQueueThreads() is called.
2024-04-25 18:06:52.151 401-678 ReactNativeJS net.jitsi.sdktest I Running "App
2024-04-25 18:06:52.168 401-401 DecorView[] net.jitsi.sdktest D onWindowFocusChanged hasWindowFocus false
2024-04-25 18:06:52.169 401-401 DecorView net.jitsi.sdktest I showOrHideHighlightView: hasFocus=false; winMode=1; isMrgNull=true
2024-04-25 18:06:52.173 401-679 JitsiMeetSDK net.jitsi.sdktest I [features/full-screen] Setting full-screen mode: false
2024-04-25 18:06:52.183 401-679 JitsiMeetSDK net.jitsi.sdktest W [features/base/sounds] PLAY_SOUND: no sound found for id: RECORDING_OFF_SOUND
2024-04-25 18:06:52.193 401-401 DecorView[] net.jitsi.sdktest D onWindowFocusChanged hasWindowFocus true
2024-04-25 18:06:52.193 401-401 DecorView net.jitsi.sdktest I showOrHideHighlightView: hasFocus=true; winMode=1; isMrgNull=true
2024-04-25 18:06:52.208 401-401 DecorView[] net.jitsi.sdktest D getWindowModeFromSystem windowmode is 1
2024-04-25 18:06:52.208 401-401 DecorView net.jitsi.sdktest D old windowMode:1 new windowMode: 1 isNeedToChangeCaptionView false
2024-04-25 18:06:52.208 401-401 DecorView[] net.jitsi.sdktest D updateDecorCaptionStatus displayWindowDecor is false
2024-04-25 18:06:52.228 401-401 ReactNative net.jitsi.sdktest I [GESTURE HANDLER] Initialize gesture handler for root view com.facebook.react.ReactRootView{6eaac7a V.E...... ......ID 0,0-2560,1504 #47}
2024-04-25 18:06:52.287 401-695 JitsiMeetSDK net.jitsi.sdktest I Using AudioDeviceHandlerGeneric as the audio device handler
2024-04-25 18:06:52.288 401-695 JitsiMeetSDK net.jitsi.sdktest I AudioDeviceHandlerGeneric Available audio devices: [EARPIECE, SPEAKER]
2024-04-25 18:06:52.288 401-695 JitsiMeetSDK net.jitsi.sdktest I AudioMode Update audio route for mode: 0
2024-04-25 18:06:52.290 401-401 JitsiMeetSDK net.jitsi.sdktest D AudioDeviceHandlerGeneric Audio devices added
2024-04-25 18:06:52.301 401-695 AudioManager net.jitsi.sdktest I In setSpeakerphoneOn(), on: false, calling application: net.jitsi.sdktest
2024-04-25 18:06:52.302 401-695 AudioManager net.jitsi.sdktest I In setBluetoothScoOn(), on: false, calling application: net.jitsi.sdktest
2024-04-25 18:06:52.303 401-695 AudioManager net.jitsi.sdktest I In stopBluetoothSco(), calling application: net.jitsi.sdktest
2024-04-25 18:06:52.304 401-695 JitsiMeetSDK net.jitsi.sdktest I AudioDeviceHandlerGeneric Available audio devices: [EARPIECE, SPEAKER]
2024-04-25 18:06:52.304 401-695 JitsiMeetSDK net.jitsi.sdktest I AudioMode Update audio route for mode: 0
2024-04-25 18:06:52.309 401-401 DecorView[] net.jitsi.sdktest D getWindowModeFromSystem windowmode is 1
2024-04-25 18:06:52.310 401-401 DecorView net.jitsi.sdktest D old windowMode:1 new windowMode: 1 isNeedToChangeCaptionView false
2024-04-25 18:06:52.310 401-401 DecorView[] net.jitsi.sdktest D updateDecorCaptionStatus displayWindowDecor is false
2024-04-25 18:06:52.336 401-695 AudioManager net.jitsi.sdktest I In setSpeakerphoneOn(), on: false, calling application: net.jitsi.sdktest
2024-04-25 18:06:52.337 401-695 AudioManager net.jitsi.sdktest I In setBluetoothScoOn(), on: false, calling application: net.jitsi.sdktest
2024-04-25 18:06:52.338 401-695 AudioManager net.jitsi.sdktest I In stopBluetoothSco(), calling application: net.jitsi.sdktest
2024-04-25 18:06:52.342 401-695 JitsiMeetSDK net.jitsi.sdktest I AudioMode Updating audio device list
2024-04-25 18:06:52.343 401-695 JitsiMeetSDK net.jitsi.sdktest I AudioMode Updating audio device list
2024-04-25 18:06:52.446 401-695 JitsiMeetSDK net.jitsi.sdktest I Using AudioDeviceHandlerGeneric as the audio device handler
2024-04-25 18:06:52.446 401-401 JitsiMeetSDK net.jitsi.sdktest D AudioDeviceHandlerGeneric Audio devices added
2024-04-25 18:06:52.446 401-695 JitsiMeetSDK net.jitsi.sdktest I AudioDeviceHandlerGeneric Available audio devices: [EARPIECE, SPEAKER]
2024-04-25 18:06:52.446 401-695 JitsiMeetSDK net.jitsi.sdktest I AudioMode Update audio route for mode: 0
2024-04-25 18:06:52.447 401-679 JitsiMeetSDK net.jitsi.sdktest I [features/base/net-info] Network changed {"isOnline":true,"details":{"isConnectionExpensive":false,"txLinkSpeed":286,"rxLinkSpeed":286,"linkSpeed":286,"subnet":"255.255.255.0","ipAddress":"192.168.137.181","frequency":2437,"strength":99,"bssid":"02:00:00:00:00:00"},"networkType":"wifi"}
2024-04-25 18:06:52.450 401-679 JitsiMeetSDK net.jitsi.sdktest I [features/app] appNavigate to https://www.benboma.xyz:8443/110
2024-04-25 18:06:52.462 401-695 AudioManager net.jitsi.sdktest I In setSpeakerphoneOn(), on: false, calling application: net.jitsi.sdktest
2024-04-25 18:06:52.463 401-695 AudioManager net.jitsi.sdktest I In setBluetoothScoOn(), on: false, calling application: net.jitsi.sdktest
2024-04-25 18:06:52.463 401-679 JitsiMeetSDK net.jitsi.sdktest I [features/base/connection] No connection found while disconnecting.
2024-04-25 18:06:52.463 401-695 AudioManager net.jitsi.sdktest I In stopBluetoothSco(), calling application: net.jitsi.sdktest
2024-04-25 18:06:52.463 401-695 JitsiMeetSDK net.jitsi.sdktest I AudioDeviceHandlerGeneric Available audio devices: [EARPIECE, SPEAKER]
2024-04-25 18:06:52.463 401-695 JitsiMeetSDK net.jitsi.sdktest I AudioMode Update audio route for mode: 0
2024-04-25 18:06:52.464 401-679 JitsiMeetSDK net.jitsi.sdktest I [features/app] Loaded SDK undefined
2024-04-25 18:06:52.477 401-695 AudioManager net.jitsi.sdktest I In setSpeakerphoneOn(), on: false, calling application: net.jitsi.sdktest
2024-04-25 18:06:52.478 401-695 AudioManager net.jitsi.sdktest I In setBluetoothScoOn(), on: false, calling application: net.jitsi.sdktest
2024-04-25 18:06:52.478 401-695 AudioManager net.jitsi.sdktest I In stopBluetoothSco(), calling application: net.jitsi.sdktest
2024-04-25 18:06:52.480 401-695 JitsiMeetSDK net.jitsi.sdktest I AudioMode Update audio route for mode: 0
2024-04-25 18:06:52.494 401-695 AudioManager net.jitsi.sdktest I In setSpeakerphoneOn(), on: false, calling application: net.jitsi.sdktest
2024-04-25 18:06:52.495 401-695 AudioManager net.jitsi.sdktest I In setBluetoothScoOn(), on: false, calling application: net.jitsi.sdktest
2024-04-25 18:06:52.495 401-695 AudioManager net.jitsi.sdktest I In stopBluetoothSco(), calling application: net.jitsi.sdktest
2024-04-25 18:06:52.497 401-695 JitsiMeetSDK net.jitsi.sdktest I AudioMode Updating audio device list
2024-04-25 18:06:52.497 401-695 chatty net.jitsi.sdktest I uid=10491(net.jitsi.sdktest) pool-2-thread-1 identical 1 line
2024-04-25 18:06:52.497 401-695 JitsiMeetSDK net.jitsi.sdktest I AudioMode Updating audio device list
2024-04-25 18:06:52.555 401-679 JitsiMeetSDK net.jitsi.sdktest E [features/base/lib-jitsi-meet] Failed to load config from https://www.benboma.xyz:8443/config.js?room=110 Error(TypeError){"message":"Network request failed","stack":"index.android.bundle:129:8060\nindex.android.bundle:580:496\[email protected]:29:681\[email protected]:42:3861\nindex.android.bundle:42:676\[email protected]:42:2511\[email protected]:42:647\nvalue@[native code]"}
2024-04-25 18:06:52.695 401-401 OrientationModule net.jitsi.sdktest D onActivityStopped
2024-04-25 18:06:52.697 401-401 OrientationModule net.jitsi.sdktest D onActivitySaveInstanceState
2024-04-25 18:06:53.091 401-679 JitsiMeetSDK net.jitsi.sdktest I [features/base/dialog] The conference will be reloaded after 10 seconds.

The link "https://www.benboma.xyz:8443/config.js?room=110" can be accessed normally using the default browser on my Android phone.

@Noah1991
Copy link
Author

The SSL certificate being used is a free certificate from DigiCert, and it has 6 months left until expiration.

@saghul
Copy link
Member

saghul commented Apr 25, 2024

I am unable to access that domain. Is it up?

@Noah1991
Copy link
Author

By modifying the local hosts file to point the domain name to an IP address within the local network, I'm aiming to make the SSL certificate within the local network trusted.

@Noah1991
Copy link
Author

The server deployment version is stable-9364.

@saghul
Copy link
Member

saghul commented Apr 25, 2024

It's hard to tell without being able to test it. Android is complaining it cannot connect to it. This could be because the full chain cert is not presented, for example. Or because a self-signed cert is used.

@Noah1991
Copy link
Author

The certificate being used is trusted, and this domain name mapped to the certificate on a public network service is recognized normally. Additionally, after mapping it to a local IP, Chrome also considers the connection secure, recognizing the certificate as trusted.

You can try modifying your hosts file locally to point a domain name to your local IP address and then attempt to access it using the Android client.

@Noah1991
Copy link
Author

And the local network is connected to the public network, not isolated.

@saghul
Copy link
Member

saghul commented Apr 25, 2024

Not sure what your network scenario is, but the SDK uses okhttp unde the hood, and it's not liking the certificate.

@damencho
Copy link
Member

What does https://whatsmychaincert.com/ say about your deployment? Do you have the full chain in there?

@saghul
Copy link
Member

saghul commented Apr 25, 2024

The problem is that URL doesn't seem to be accessible from the outside so it errors.

@Noah1991
Copy link
Author

I'll start by summarizing my configuration and actions:
1、 A laptop capable of creating a WiFi, and an Android smartphone.

2、A public domain name is needed, and you'll also need to apply for a CA certificate for that domain name. The certificate authority (CA) issuing the certificate is DigiCert.

3、On the laptop, run the Jitsi Meet service using Docker. Modify the .env file to set PUBLIC_URL to your domain name. Import the cert.crt and cert.key files associated with the domain name into the config/keys/ directory. Then, run the Jitsi Meet service.

4、Modify the hosts configuration on your laptop to point the domain name to your local IP address. The hosts file is located at C:\Windows\System32\drivers\etc.

For example:

Open the hosts file located at C:\Windows\System32\drivers\etc\hosts using a text editor like Notepad.
Add a new line at the end of the file with the following format: your_local_ip domain_name
Save the hosts file after making the changes.
Replace your_local_ip with the actual IP address of your laptop and domain_name with the domain name you want to map to your local IP address.

5、At this point, if you access the domain name "https://your_domain:8443" in your computer's browser, the connection should be trusted.

6、When you connect your Android phone to the WiFi created by the computer, both the computer and the phone are on the same local network. At this point, the phone's browser can also access the Jitsi Meet service using the domain name. There's no need to modify the hosts file on the phone because the phone is connected to the WiFi created by the computer, so its requests pass through the computer and are forwarded, making the hosts modification on the computer sufficient.

7、After everything is set up, install the Jitsi Meet demo app on your Android phone. Then, modify the server address in the app to your domain name: "https://your_domain:8443".

The domain name and certificate I used locally were purchased from a professional organization, and they can be deployed on the public network for others to access. I've just utilized them within the local network.

@Noah1991
Copy link
Author

Not sure what your network scenario is, but the SDK uses okhttp unde the hood, and it's not liking the certificate.

I've also tried running another service locally and developed an Android app using OkHttp to access the service's API. It can access the service normally without any HTTPS-related warnings.

@saghul
Copy link
Member

saghul commented May 6, 2024

I don't know what to tell you. It's not possible for us to replicate your use case.

@Noah1991
Copy link
Author

Noah1991 commented May 7, 2024

I have given up on this approach and currently use webview to load the iframe so Android can use it. Thank you for your patient answer

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

3 participants