Jitsi-meet desktop electron app can't connect to self hosted server

Hi

After setting up a server, when i try to connect the chatroom with the jitsi desktop it doesn’t connect. I was able to connect once after re trying 10 times i guess.
I have installed Jitsi-meet-x86_64.AppImage on my Linux Mint 19.3 from here
On the desktop client application setting i have set my server URL.
The input box has a exclamation warning sign on right, i don’t know what does that mean.
Also i could not find any log file to look at if there is any error in connection on my computer.

Virtual Server specs are
CPU 2 core
RAM 1GB
SSD 30GB
Bandwidth 1Gbps

I have a internet connection of 5Mbps.
While everything work fine on browser and my android phone, but can’t connect with desktop client.

Have you tried entering a different URL from a public server like https://meet.jit.si to see if that works?

Is /external_api.js made available by your webserver? AFAIK this is required for the Electron app to work as it loads Jitsi in an iFrame. In addition its recommended to setup authentication if you expose /external_api.js.

1 Like

Thanks finally i was able to connect. i have exposed /external_api.js and a authentication has been set…

for auth
in /etc/prosody/conf.avail/my.domain.com.cfg.lua
VirtualHost “my.domain.com
authentication = “internal_plain”
in /etc/jitsi/jicofo/sip-communicator.properties
org.jitsi.jicofo.auth.URL=XMPP:my.domain.com

prosodyctl adduser user@my.domain.com

for nginx
http {
—some stuff—
server {
location /external_api.js {
alias /usr/share/jitsi-meet/libs/external_api.min.js;
}
}
}

Thats all i need right??

Looks good to me. You should be prompted to authenticate whenever you are creating a new meeting. However, you will need to add a guest domain if you want to allow other, unauthenticated users to join your meetings.

Thanks i’ll do that…

Hi,
I have the same question you had. Can you help me a bit by elaborating on your answer?

I have the jitsi web-rtc meetings working on my server (and all permissions are public except that the nginx requires an htpasswd).
I wanted to use a desktop client but I cannot connect and see the yellow exclamation mark.

Which configuration files do I need to change in order to be able to use the desktop app with my server?
What does it mean to “expose /external_api.js”? The closes thing I can find is a file called /usr/share/jitsi-meet/libs/external_api.min.js on the server.

Thank you for any guidance,
c.

sure i’ll be happy to help you

you can check this youtube tutorial https://www.youtube.com/watch?v=IQRwtUamHQU

wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -
sudo sh -c "echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list"
sudo apt-get -y update
sudo apt-get -y install jitsi-meet
/usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

#####for authentication
nano /etc/prosody/conf.avail/meet.yourdomain.com.cfg.lua
anonymous--> internal_plain

nano /etc/jitsi/jicofo/sip-communicator.properties 
org.jitsi.jicofo.auth.URL=XMPP:meet.yourdomain.com

####account creation
prosodyctl adduser user@yourdomain.com

####for guest joining
nano /etc/prosody/conf.avail/yourdomain.com.cfg.lua
at bottom add 
VirtualHost "guest.yourdomain.com"
  authentication = "anonymous"
  c2s_require_encryption = false

nano /etc/jitsi/meet/yourdomain.com-config.js
and enable
anonymousdomain: 'guest.yourdomain.com', 

#########################

In order to use this application with your own Jitsi Meet installation it is necessary to enable the External API. Your server must serve a external_api.js file at the root of the installation.
nano /etc/nginx/nginx.conf
http {
// some stuff....
  server {
      location /external_api.js {
          alias /usr/share/jitsi-meet/libs/external_api.min.js;
      }
  }
// some other stuff..
}

systemctl restart prosody
systemctl restart jicofo
systemctl restart jitsi-videobridge2
systemctl restart nginx
2 Likes

This is great. Thank you so much!

quick note:
it should be
prosodyctl adduser user@meet.yourdomain.com instead of user@yourdomain.com
it should be
anonymousdomain: 'guest.meet.yourdomain.com' instead of anonymousdomain: 'guest.yourdomain.com'

and also, I edited
/etc/nginx/sites-enabled/meet.yourdomain.conf instead of /etc/nginx/nginx.conf, and added the external_api.js part to the
server { listen 80;
section and the
server { listen 4444 ssl http2;
section.

it seems to work, but my mobile clients still keep disconnecting with an error… I’ll have to keep futzing.
Update: all good now :smiley:
Note: I needed
anonymousdomain: 'guest.meet.yourdomain.com', instead of anonymousdomain: ‘guest.yourdomain.com’`.

Just be careful with those subdomains :slight_smile:

My bad… yeah if you are planning on a sub domain meet then it should be meet.yourdomain.com

Anyway you got the point. :slight_smile:

For mobile client open up server’s UDP ports from 10000 to 20000

You network connection could be a problem. if the app can’t connect & download the meeting within 10s, it will raise an error.

Hey @danielpham,

is there a way to change the 10s timeout on the client side?

Thank you for your help!

Best regards,

Nico

1 Like

You may need to clone the desktop source code then modify the time out https://github.com/jitsi/jitsi-meet-electron/blob/master/app/features/conference/components/Conference.js#L154

Then hit build…