Skip to content

Adam Hyde

  • Business
  • Personal
  • About Me
Raglan NZ, 2020
Latest posts

Tag: desktop sharing

Setting up Jitsi, Letsencrypt cert, and desktop sharing

Ok..Jitsi initial install is easy. Working out letsencrypt is soso documented but also easy, working out how to get desktop sharing working is barely documented.

Installing Jitsi-meet

Basically…do this to get Jitsi working:

https://github.com/jitsi/jitsi-meet/blob/master/doc/quick-install.md

It works as advertised for Ubuntu. Except, don’t use the stable sources. We couldn’t get them to work with conferences – we could only get 1 person in a meeting which…er… isn’t a meeting! So, instead use the unstable sources, which means don’t use this:

echo 'deb https://download.jitsi.org stable/' >> /etc/apt/sources.list.d/jitsi-stable.list

Use this:

echo 'deb https://download.jitsi.org unstable/' >> /etc/apt/sources.list.d/jitsi-unstable.list

Then follow the rest of the docs.

Not mentioned in the rest of the docs is this….you need to set up several sub-domains, namely:

conference.[your jitsi domain]
auth.[your jitsi domain]
focus.[your jitsi domain]
jitsi-videobridge.[your jitsi domain]

Make sure that if your Jitsi-meet is already using a subdomain (eg. jitsi.mydomain.com) that you add the above subdomains on top of that eg conference.jitsi.mydomain.com not conference.jitsi.com

Now…you need to change a few things. Open the file located at /etc/prosody/conf.d/[YOUR JITSI DOMAIN].cfg.lua, it should look something like this:

Component "jitsi-videobridge.[YOUR JITSI DOMAIN]" 
    component_secret = "sjhfss09" 

VirtualHost "auth.[YOUR JITSI DOMAIN]" 
    authentication = "internal_plain" 

Component "focus.[YOUR JITSI DOMAIN]" 
    component_secret = "Hjusk78is"

Change both secrets to a random string of the same length. The copy the first one to this file /etc/jitsi/videobridge/config where and uncomment the secret, eg:

# sets the shared secret used to authenticate to the XMPP server 
#JVB_SECRET=e355kYFm 
JVB_SECRET=sjhfss09

Do the same for the second secret by adding it to this file /etc/jitsi/jicofo/config, eg:

# sets the secret used to authenticate as an XMPP component 
#JICOFO_SECRET=Ifc7gffV 
JICOFO_SECRET=Hjusk78is

Thanks to Juan Gutierrez for working out the above changes to the files.

Letsencrypt

Also easy, except it doesn’t say anywhere how to do it. There is a nice script for it which is already present but you need to find it. On Ubuntu you can find it in /usr/share/jitsi-meet/scripts/

So to get it running do this (as root or using sudo):

cd /usr/share/jitsi-meet/scripts/
./install-letsencrypt-cert.sh

The script should just ask you for a valid email address. Follow the instructions and it ‘just works’. You*may* need to restart jitsi to do that try this:

/etc/init.d/jitsi-videobridge start

Then navigate to your domain prefixed by https and it should work.

Desktop Sharing

Ha..just when you thought it was so, so, easy! It’s actually pretty easy but it’s not well documented. Essentially you have to install an extension in your browser that allows desktop sharing permissions. However this is domain specific so you have to download the extension and configure it, then compile it and then load it into your extensions. This is true for Firefox and Chrome/Chromium. I haven’t tried for Firefox but the following works for Chrom(e)ium.

Visit this page – https://github.com/jitsi/jidesha – and clone the repo or download it as a zip.

Next, with your fav text editor open the file in the ‘chrome’ directory called manifest.json, it looks like this:

{
 "manifest_version": 2,
 "name": "Jitsi Desktop Streamer",
 "description": "A simple extension that allows you to stream your desktop into meetings with Jitsi Meet and Jitsi Videobridge.",
 "version": "0.1.6",
 "minimum_chrome_version": "34",
 "icons": {
 "16": "jitsi-logo-16x16.png",
 "48": "jitsi-logo-48x48.png",
 "128": "jitsi-logo-128x128.png"
 },
 "background": {
 "scripts": [ "background.js" ],
 "persistent": true
 },
 "permissions": [
 "desktopCapture"
 ],
 "externally_connectable": {
 "matches": [
 "*://meet.jit.si/*"
 ]
 }
}

You want to edit the last line:

 "*://meet.jit.si/*"

to reflect the domain of your jitsi install eg

 "*://jitsi.myserver.org/*"

or whatever… don’t put in http or https or anything, just replace the domain information.

Now, you need to compile that extension. Follow these steps:

  1. If you open up your chrome browser go to (in the location bar) chrome://extensions
  2. check the box ‘developer mode’ if it is not already checked
  3. you will see a button ‘pack extension’ appear at the top, click this
  4. click the button next to ‘extension root directory’
  5. browser to and select he ‘chrome’ directory where you have that manifest.json file
  6. click ‘open’
  7. click ‘pack extension’

A new file ‘chrome.crx’ will appear.

Now you need to load that into your extensions, to do that you need to drag the chrome.crx file to the extensions page open in your browser. It will then just appear, by default it is enabled.

Now…you are almost there…you now have to go to your server and make a few changes. These all happen in one file, the jitsi meet config file. Open the file ‘/etc/jitsi/meet/[YOUR JITSI DOMAIN]-config.js’ with your fav text editor.

You need to change these lines:

  // The ID of the jidesha extension for Chrome.
 desktopSharingChromeExtId: 'put your Chrome extension ID here',
 // Whether desktop sharing should be disabled on Chrome.
 desktopSharingChromeDisabled: false,
 // The media sources to use when using screen sharing with the Chrome
 // extension.

By default, there will be no chrome extension ID and sharing is default turned off. Make sure desktopSharingChromeDisabled is set to false, and put your chrome extension ID in between single quotes after desktopSharingChromeExtId.

But… I hear you say…. what is my chrome extension ID? good question… to get this, go back to your browser and in the chrome://extensions you will see an id listed next to your jitsi-meeting extension. It will be a long string of numbers and letters next to the simple text ‘ID:’

Copy and paste that into the config between single quotes, no spaces and exclude the ‘ID:’ bit. Save and exit the config file. You shouldn’t have to restart Jitsi but if you feel like playing it safe restart as per above.

Navigate to your jitsi meeting and it should work under https, show the desktop sharing icon, and enable desktop sharing! Good luck! I’ll be testing out our install in the next weeks and will post here. Oh…if you wish to replace the default jitsi watermark on the top right then replace the file /usr/share/jitsi-meet/images/watermark.png with a transparent png.

screenshot-from-2017-08-22-16-25-20

(if anyone would like to walk me through how to do the same for Firefox I’d be grateful and I will also publish that info here.).

Update: Sept 3. Juan worked out how to get the extension in the chrome store. Was easy apparently but cost $25USD.

screenshot-from-2017-09-05-05-14-18

Now if you try our Jitsi and need to screenshare, then clicking on the screenshare icons redirects you to the above Coko plugin in the Chrome store.

If you found this post useful, repay it by taking the time to document a tricky issue you worked through so others can benefit from what you learned! (I’m forever grateful for the amazing stuff I’ve found online in some random blog somewhere that have helped me out of seemingly unique tech gotchas!).

Posted on August 21, 2017September 5, 2017Categories Uncategorized
Tags
Tags desktop sharingInstalling Jitsi-meetLetsencrypt
14 Comments on Setting up Jitsi, Letsencrypt cert, and desktop sharing

Newsletter

Check your inbox or spam folder to confirm your subscription.

Recent Posts

  • Scaling
  • Some folks that have used our calendar software
  • Push Button Export to JATS
  • First Journal Article Out from Kotahi
  • Book Sprints in Mozambique

Archives

  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • September 2017
  • August 2017
  • July 2017
  • June 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • June 2016
  • April 2016
  • February 2016
  • January 2016
  • November 2015
  • October 2015
  • September 2015
  • August 2015
  • July 2015
  • June 2015
  • April 2015
  • March 2015
  • November 2014
  • October 2014
  • September 2014
  • February 2013
  • January 2013
  • December 2012
  • November 2012
  • October 2012
  • May 2012
  • March 2012
  • November 2011
  • October 2011
  • September 2011
  • August 2011
  • July 2011
  • May 2011
  • April 2011
  • March 2011
  • November 2010
  • October 2010
  • September 2010
  • August 2010
  • July 2010
  • April 2008
  • December 2007
  • November 2007
  • August 2007
  • July 2007
  • February 2007
  • January 2007
  • December 2006
  • Business
  • Personal
  • About Me
adam@coko.foundation
All posts CC-BY-SA