Jitsi
Setting up Jitsi (optional)
To enable the video conference capabilities in ISLE, which are powered by Jitsi, you need to connect to a specified Jitsi server.
To setup a new Jitsi server, follow the instructions in their Quick Install guide. As of March 2020, installing Jitsi on Ubuntu 16.04 should work out of the box when following these instructions; other distributions or newer Ubuntu versions yield installation issues that have to be manually resolved.https://github.com/isle-project/isle-server/wiki/_new
Install
prosody
:
wget https://packages.prosody.im/debian/pool/main/p/prosody-trunk/prosody-trunk_1nightly747-1~xenial_amd64.deb
dpkg -i prosody-trunk_1nightly747-1~xenial_amd64.deb
- Install
jitsi-meet-tokens
via command
apt-get install jitsi-meet-tokens
Change the Prosody configuration to use JSON web tokens for authentication.
Make sure that the Prosody
app_id
andapp_secret
match correspondingappId
andappSecret
fields in thecredentials/jitsi.json
file of the cloned isle-server repository.Finally, the
server
field incredentials/jitsi.json
should be set to the FQDN of the Jitsi Meet instance.To change the default appearance of Jitsi meet, the
interface_config.js
file in/usr/share/jitsi-meet
should be updated. Refer to the version of the file inside theetc/jitsi-meet
folder of this repository for the Jitsi interface configuration used in ISLE.
Jibri for Jitsi Recordings + Live Streaming (optional)
The following video tutorial describes the steps involved in setting up one or more Jibri instances on other servers for recording Jitsi Meet sessions in ISLE:
https://jitsi.org/news/learn-how-to-live-stream-and-record-on-your-jitsi-meet-install/
Newer versions of Chrome require an additional step. From the Jibri README.md file:
Add chrome managed policies file and set CommandLineFlagSecurityWarningsEnabled to false. It will hide warnings in Chrome. You can set it like so:
mkdir -p /etc/opt/chrome/policies/managed
echo '{ "CommandLineFlagSecurityWarningsEnabled": false }' >>/etc/opt/chrome/policies/managed/managed_policies.json
Troubleshooting: In case of Java errors encountered the logs in /var/log/jitsi/jibri
, it is advised to install Java 8.
To set it as the default:
sudo update-java-alternatives --list
sudo update-java-alternatives --set java-1.8.0-openjdk-amd64
Setting up Jigasi with Asterisk/FreePBX for Dial-in & Dial-Out (optional)
If you need the ability for participants to dial into ongoing video calls via their phone or to invite attendees via phone, Jigasi in conjunction with a SIP (session initiation protocol) Provider may be used. Asterisk and FreePBX, a GUI sitting on top of it, constitute a good option.
The following series of tutorials called "Transparent Telephony" by Randall Degges provide a great overview of VOIP, how to setup Asterisk + FreePBX, and further background material:
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.ACCOUNT_UID=SIP\:<extension_id>@<host>:5060
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.PASSWORD=<base64_encoded_secret}
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.PROTOCOL_NAME=SIP
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.SERVER_ADDRESS=<host>
net.java.sip.communicator.impl.protocol.sip.acc1403273890647.USER_ID=<extension_id>@<host>
We write the code for our extension to the file /etc/asterisk/extensions_override_freepbx.conf
:
[ext-local]exten => 9999,1,Set(__RINGTIMER=${IF($["${DB(AMPUSER/9999/ringtimer)}" > "0"]?
${DB(AMPUSER/9999/ringtimer)}:${RINGTIMER_DEFAULT})})
exten => 9999,2(getmeeting),Playback(conf-getconfno)
exten => 9999,3,Read(Pin,beep,20)
exten => 9999,4,Verbose(result is: ${Pin})
exten => 9999,5,SayDigits(${Pin},m)
exten => 9999,6,AGI(jitsi_curling.sh,${Pin})
exten => 9999,7,Verbose(result is: ${JITSI})
exten => 9999,8,GotoIf($["${JITSI}" = "false}"]?invalidnum:joinmeeting)
exten => 9999,9(invalidnum),Playback(conf-invalid)
exten => 9999,10,Goto(getmeeting)
exten => 9999,11(joinmeeting),Set(HASH(__SIPHEADERS,Jitsi-Conference-Room)=${JITSI})
exten => 9999,12,Playback(auth-thankyou)
exten => 9999,13,playback(conf-placeintoconf)
exten => 9999,14,SayAlpha(${JITSI})
exten => 9999,15,Macro(exten-vm,novm,9999,0,0,0)
exten => 9999,16(dest),Set(__PICKUPMARK=)
exten => 9999,17,Goto(${IVR_CONTEXT},return,1)