- Introduction
- Why Use Jitsi Meet on Windows?
- System Requirements
- Step-by-Step Installation Guide
- Step 1: Download Jitsi Meet
- Step 2: Install Jitsi Meet
- Step 3: Launch Jitsi Meet
- Step 4: Create or Join a Meeting
- Configuring Jitsi Meet on Windows
- Audio and Video Settings
- Chat and User Interface
- Troubleshooting Common Issues
- Problem: Can’t Connect to the Meeting
- Problem: Poor Audio/Video Quality
- Problem: Unable to Launch Jitsi Meet
- Wrap-Up
Thinking of setting up Jitsi Meet on your Windows system? Well, you’re in luck! Here’s a nifty guide to help you get everything sorted out quickly and without a hitch.
Introduction
Jitsi Meet is your go-to for seamless video conferencing. Whether it’s work catch-ups, online classes, or virtual hangouts with friends, Jitsi’s got you covered. Through this guide, you’ll learn how to get Jitsi up and running on your Windows setup without breaking a sweat.
Why Use Jitsi Meet on Windows?
Opting for Jitsi Meet for your video calls offers a bunch of perks:
- Free and Open Source: It’s all there for you without a price tag. Open-source means the community can enhance it.
- Privacy Focused: Your data stays yours. Jitsi only stores information if you decide to host it yourself.
- Ease of Use: Simple setup and straightforward meeting access mean anyone can handle this, techie or not.
By choosing Jitsi, you keep your video chats secure and reliable.
System Requirements
Before diving in, make sure your Windows setup fits the bill. Here’s what’s needed:
- Operating System: Windows 10 or 11
- Processor: Dual-core or better
- RAM: At least 4 GB for decent performance; 8 GB’s even better
- Network: A good internet connection, 1 Mbps upload/download at least
Double-check those specs to ensure smooth sailing during calls.
Step-by-Step Installation Guide
Equipped with the ‘why’ and ‘what’, it’s time to roll up those sleeves and tackle the install process.
Step 1: Download Jitsi Meet
- Head over to the Jitsi Meet official download page.
- Hit that “Download” button for the Windows version.
- Save it somewhere easy to find, like your desktop.
Step 2: Install Jitsi Meet
- Find the
.exe
file you just got and double-click it. - Follow the on-screen prompts. Choose your favorite spot to install if asked.
- Once that’s done, Jitsi Meet should be good to go on your computer.
Step 3: Launch Jitsi Meet
- Start Jitsi Meet from the desktop shortcut or your start menu.
- Check out the main interface, and you’re ready to start or hop into a meeting.
Step 4: Create or Join a Meeting
- For hosting, type a unique room name in the box and hit “Go.”
- Joining? Enter the room name given and click “Join.”
Configuring Jitsi Meet on Windows
To get the best out of Jitsi Meet, tweaking a few settings might be your cup of tea.
Audio and Video Settings
- Click the settings gear at the bottom right.
- Test and select your desired camera and mic. It’s your choice!
- Adjust video quality as needed for a killer experience.
Chat and User Interface
Tweak chat settings to make your group’s interaction smooth:
- Toggle chat visibility on or off.
- Options for background visibility are there for you.
- Choose a virtual background if you’re feeling fancy.
Troubleshooting Common Issues
Sometimes things hiccup, but don’t stress—solutions are here.
Problem: Can’t Connect to the Meeting
- Solution: Double-check that internet connection of yours. Strong = smooth video calls.
Problem: Poor Audio/Video Quality
- Solution: Make sure no other apps are hogging your bandwidth. Close the extras.
Problem: Unable to Launch Jitsi Meet
- Solution: Check if your system is up to the challenge. Reinstall if you keep hitting snags.
Wrap-Up
Getting Jitsi Meet going on Windows is a breeze. With this play-by-play, installing and tweaking the software should have you dialed in for quality video chats.
Experiment with features and tailor settings until it’s just how you like it!
Ready to kick off your Jitsi Meet experience? Download now and start connecting easily with everyone around you.
FAQ
Jitsi Meet is a free, open-source video conferencing software that allows users to host meetings without an account.
It offers easy installation, high-quality video, and complete privacy as it’s self-hosted.
Yes, Jitsi Meet is designed with security features including encryption to ensure privacy.
Yes, Jitsi Meet can be integrated with several applications via its API.
Common issues can often be resolved by checking your internet connection and software updates.
Download and Install
- Visit the Jitsi Download page
- Click on the “Microsoft Windows Installers (32-bit version).” If you know that you have 64-bit Windows you can click on the “64-bit version” instead.
- Start the process by clicking “Run”
- When the installer starts it takes a moment to check for available space and then shows the welcome screen. Click “Next” to continue
- Check “I accept the terms in the License Agreement” and click “Next”
- Click “Next” to continue
- Create Shortcuts: Leave the items checked to create shortcuts to Jitsi in the Start Menu and on the Desktop. You can also choose to have Jitsi start automatically when you log in. Associate Protocols: Leave “SIP” and “XMPP” checked in order to let Jitsi take calls and chat sessions when you click on special web links. You may be familiar with links for web pages that start with
http://
. Any links that start withsip:
orxmpp:
will open in Jitsi. Click “Next” to continue. - Click “Install”. Windows may display a warning to let you know that software is being installed. Press “Yes” to continue.
- The installation takes a few minutes, but eventually it lets you know that it completed the installation. Click “Finish”
- Jitsi will launch automatically. But to open it in the future, double click on the Jitsi shortcut on the desktop
First Use
- The first time you run Jitsi, you may get a warning from your firewall. If you click “Cancel” Jitsi can still communicate through public servers such as Google Chat, Facebook, and Yahoo Messenger. However, clicking “Allow access” enables an advanced feature known as registrarless SIP accounts
- Jitsi lets you log into several chat accounts at once. Fill out the username and password for the accounts you already have. If you don’t have any accounts with the providers listed, create a new account by clicking on one of the “Not registered yet” links.
After filling in the username and and passwords for the accounts you want to use, click “Sign in.” - Wait a moment for Jitsi to connect. When the status changes to “Online”, you are ready to chat!
- If you sign in to Facebook, you may have an extra step. See Set up Facebook Chat, “Troubleshooting”
Необходимость взаимодействовать с коллегами в условиях удалённой работы потребовала оперативно развернуть систему видеоконференций, чтобы заменить очные совещания.
В этой заметке будет описано то, как установить Jitsi Meet — полнофункциональную и абсолютно бесплантую систему для организации ВКС.
Разработчики поддерживают пакеты только для ОС, основанных на Debian. В качестве серверной ОС будет выступать Ubuntu 18.04.4 LTS.
Проверим наличие обновлений и установим имеющиеся.
apt update && apt upgrade -y
Установим корректный часовой пояс для нашего сервера
dpkg-reconfigure tzdata
Переходим к установке самого ПО. Добавим ключ безопасности и адрес официального репозитория
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add - echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list
Обновим список досупных пакетов и установим Jitsi Meet
apt update && apt install -y jitsi-meet
Если в системе не установелен apache или nginx, то будет установлен nginx, кроме этого в процессе установки будет запрошен сертификат, который будет использоватсья для безопсного соединения с сервером. Это может быть как купленный у поставшика сертифика, так и полученный от Let’s Encrypt.
Если будет использоваться сертификат от Let’s Encrypt, то в процессе установку нужно выбрать использовать самоподписанный сертификат. В конце установки будет указано расположение скрипта для генерации сертификата.
Вот и всё! Установка закончена. Всё быстро и просто. Можно перейти по адресу свежего сервера https://meet.oldfag.ru и увидеть главную страницу Jitsi Meet. Всё,что нужно для начала видеоконференции — придумать название комнаты и нажать кнопку ОК.
Функционал, необходимый для организации ВКС у нас есть, но в текущей конфигурации нашим сервером может воспользоватсья любой посетитель из глобальной сети.
Добавим авторизацию в Active Directory. Только авторизованные пользователи будут иметь права модератора, анонимные посетители будут иметь права только присоединиться к существующим собраниям.
Ядром системы является XMPP-сервер Prosody, он и будет авторизовывать пользователей. Установим необходимые дополнительные пакеты
apt install -y prosody-modules
Создадим файл конфигурации для подключения к Active Directory
nano /etc/prosody/conf.avail/ldap.cfg.lua
со следющим содержанием
authentication = 'ldap2' ldap = { hostname = 'oldfag.ru', bind_dn = 'CN=ldap_sync,CN=Users,DC=oldfag,DC=ru', bind_password = 'userpassword', user = { basedn = 'DC=oldfag,DC=ru', filter = '(&(objectClass=user)(memberof=CN=Пользователи ВКС,CN=Users,DC=oldfag,DC=ru))', usernamefield = 'sAMAccountName', namefield = 'cn', }, }
К ВКС будут иметь доступ не все пользователи домена, а только те, которые состоят в группе Пользователи ВКС.
Добавим ссылку на созданный файл в каталоге /etc/prosody/conf.d/, который используется для хранения конфигурационных файлов
ln -sf /etc/prosody/conf.avail/ldap.cfg.lua /etc/prosody/conf.d/
В основном конфигурационном файле сервера изменим метод авторизации
nano /etc/prosody/conf.avail/meet.oldfag.ru.cfg.lua
в секции VirtualHost «meet.oldfag.ru» нужно изменить строку с
authentication = "anonymous"
на
authentication = "ldap2"
Сохраняем изменния в файле и перезапускаем сервис
systemctl restart prosody
Теперь к серверу могут подключиться только авторизованные пользователи.
Для того, чтобы добавить возможность анонимного подключения к созданным конференциям нужно в основной конфигурационный файл prosody (/etc/prosody/conf.avail/meet.oldfag.ru.cfg.lua) добавить ещё один виртуальный хост, добавив в конец файла ещё одну секцию
VirtualHost "guest.meet.oldfag.ru" authentication = "anonymous" c2s_require_encryption = false
Создавать dns-запись для guest.meet.oldfag.ru не нужно, это виртуальный хост, который используется только внутри prosody.
После этого отредактируем файл конфигурации самого Jitsi Meet
nano /etc/jitsi/meet/meet.oldfag.ru-config.js
изменив строку
на
anonymousdomain: 'guest.meet.oldfag.ru',
тут же укажем необходимость указать имя при подключении, раскомментировав строку
requireDisplayName: true,
а так же отключим звук у пользователей при подключении
startWithAudioMuted: true,
Теперь добавим в файл конфигурации jicofo необходимость требовать авторизации, с сохранением анонимного доступа для внешних пользователей.
nano /etc/jitsi/jicofo/sip-communicator.properties
и добавим строку
org.jitsi.jicofo.auth.URL=XMPP:meet.oldfag.ru
Сохраним изменения и перезапустим сервисы
systemctl restart prosody && systemctl restart jicofo
Чтобы избежать зумбомбинга нужно при создании конференций указывать для них пароль доступа, тогда, даже угадав имя конференции анонимный пользователь не сможет присоединиться к ней.
Конференцию не обязательно создавать с главной страницы сервиса, можно просто создать ссылку вида https://meet.oldfag.ru/whatever. Когда по ней перейдёт первый авторизованный пользователь, будет создана конференция с именем «whatever».
По умолчанию, при установке Ubuntu фаервол отключен, что недопустимо для системы, смотрящей в публичные сети. Поэтому посленим шагом настройки будет добавление необходимых правил и включение фаервола.
ufw allow ssh ufw allow http ufw allow https ufw allow in 10000/udp ufw enable
Добавление функции записи конференций описано в другой статье блога.
Jitsi is a collection of open-source projects that you can use to easily develop and implement secure video conferencing solutions. At the heart of Jitsi are two sections called Jitsi Video bridge and Jitsi Meet, which allow you to set up video conferencing on the Internet. While other projects in this collection provide users with other features such as audio, connection (Dial-in), multiple recording, and playback. Jitsi started out as a tool for connecting people via audio and video on the Internet. However, over the course of a decade, the project became something much bigger. In this article, we are going to teach you to step by step How to Install Jitsi Meet on Windows 10 RDP. You can visit the packages available in Eldernode if you need to purchase a Windows VPS server.
Table of Contents
Unlike other video conferencing technologies, the Jitsi Video bridge, the beating heart of Jitsi, sends video and audio to everyone attending rather than blending. The result is a relationship with less latency and better quality. Scalability will be easier and cheaper if you use your own service. Jitsi is fully compliant with the free Web communications standard WebRTC.
Jitsi also supports advanced video routing concepts such as multiple playbacks, bandwidth estimation, scalable video coding, and more. It should note that Jitsi is coding using the Java programming language and the so-called Native.
In this article, we are going to introduce and express some of the features of Jitsi Meet in the first step. Then we will teach you how to Install Jitsi Meet on Windows 10 RDP. Please join us.
What is Jitsi Meet
Jitsi is a suite of free and open-source multipurpose voice applications (VoIP), video conferencing, and instant messaging for web, Windows, Linux, Mac OS, iOS, and Android applications.
The Jitsi project was formerly known as the SIP Communicator. As WebRTC grew, the project team’s focus shifted to the Jitsi Video bridge to allow multidirectional web video calling. The team later added Jitsi Meet. Jitsi Meet is a complete video-conferencing application that includes web clients for Android and iOS operating systems.
Jitsi also used Meet.jit.si, a version of Jitsi Meet hosted by Jitsi for free use in the community. This software has received support from various institutions such as the NLnet Foundation, the University of Strasbourg, and the Alsace region.
In the next section, we will mention some of the features of Jitsi Meet. Then we will teach you how to install Jitsi Meet on Windows 10 RDP.
Jitsi Meet Features
In this section, we want to introduce some of the features of Jitsi Meet. These features include:
– Simple work with software
– High power, speed, and security
– Unlimited file upload
– Make video conferencing calls
– Establish direct multimedia communication using the ICE protocol
– Powerful encryption
– File transfer for XMPP, AIM / ICQ, Windows Live Messenger, YIM
– Encrypt messages with OTR
– IPv6 support for SIP and XMPP
– Audio and video calls for SIP and XMPP using H.264, H.263, or VP8 for video encryption
– Support for group video calls
– Free, open-source, and WebRT compatible
Install Jitsi Meet on Windows 10 RDP
After you are fully acquainted with Jitsi Meet in the previous sections, now we want to teach you to step by step how to install Jitsi Meet. To do this, just follow the steps below.
In the first step, you need to go to the Jitsi website and download Jitsi.
Then go to the place where you downloaded the file. Double-click it to begin the Jitsi installation process. In the window that opens, click on Run.
Click on Next.
On the License Agreement page, click I accept… the and then click Next.
In the next step, select the path where you want Jitsi to be installed and click Next.
In this section, you must select the settings you want and click Next again.
Note: Leave “SIP” and “XMPP” checked in order to let Jitsi take calls and chat sessions when you click on special web links.
Now you have to click on Install to start installing Jitsi:
*
Finally, click Finish to complete the Jitsi installation process.
How to use Jitsi Meet on Windows 10 RDP
After you have successfully completed the steps mentioned to install Jitsi meet, now we want to teach you how to use this software.
As you can see in the image below, Jitsi lets you log into several chat accounts at once. Fill out the username and password for the accounts you already have. If you don’t have any accounts with the providers listed, create a new account by clicking on one of the “Not registered yet” links. After filling in the username and passwords for the accounts you want to use, click “Sign in.”
Once you have created your account, you will need to wait for Jitsi to connect. When the status changes to “online“, you will be ready to chat.
Conclusion
Jitsi is a collection of open-source projects that allow you to build and deploy secure video conferencing solutions. Jitsi Meet has many features and is constantly being added, some of which have been mentioned. In this article, we also tried to teach you How to Install Jitsi Meet on Windows 10 RDP.
Время на прочтение14 мин
Количество просмотров58K
Это первая статья, в которой я расскажу, как поднять свой собственный сервер видеоконференций Jitsi-meet. Я планирую выпустить три статьи на эту тему:
- Свой сервер видеоконференций Jitsi.
Jitsi и все необходимые службы работают на одном сервере + сервис Jibri (для записи видеоконференций на отдельном сервере). - Свой высоконагруженный сервис видеоконференций Jitsi.
Jitsi и все необходимые зависимые службы работают на разных серверах для получения высокой производительности. - Свой мессенджер Matrix-synapse в связке с Jitsi-meet.
Настройка Matrix на своем сервере и объединение с Jitsi для видеозвонков.
В данной статье я расскажу, как поднять собственный сервер видеоконференций jitsi-meet. Для нормального функционирования мне пришлось собирать информацию по крупицам, общаться с разработчиками данной утилиты, перечитать всю документацию и облазить кучу форумов. Тут я собрал все в один мануал на русском.
В моем случае схема была немного другой, потому что у меня сервер Jitsi и Jibri находятся за NAT, в качестве которого стоит сервер с debian 9 и на котором есть внешний и внутренний IP. Сервисы Jitsi и Jibri также можно разместить на одном сервере, но тогда на него будет большая нагрузка и, следовательно, серверу надо дать больше ресурсов. Ниже я дам мануал, который составил, собирая свою службу (на три сервера), но каждый может преобразовать его под себя в зависимости от верований и убеждений, ну и возможностей конечно.
Итак, подготовительный этап прост и известен каждому, кто «умеет в linux». А если не знаком, то в этих ваших интернетах полно инструкций по развёртыванию linux-системы. Мы же поднимем с вами три debian 9 (jitsi-meet последней стабильной версии больше не поддерживается в debian 9, так что используйте debian 10) сервера (можно использовать другой дистрибутив, просто адаптировав мануал).
Еще одно немаловажное требование — большинство команд надо делать от привилегированного пользователя, поэтому на сервере (на каждом сервере) сразу получим root-права.
# sudo -i
или
# su - root
Сразу хочу отметить тот факт, что сервер под Jibri должен быть без GUI (графического интерфейса) иначе Jibri, который имеет свой xorg, будет конфликтовать и откажется работать (долгие танцы с бубном помогут уладить их конфликт, но зачем все усложнять!?).
NAT-сервер
Если мы будем использовать NAT-сервер, тогда нам нужно настроить на нем безопасность и перенаправление, а для этого мы обратимся к iptables (хотя тут опять-таки дело вкуса). Создаем скрипт, которым настроим iptables:
# touch iptables_rules.sh
Дальше открываем файл, вставляем и корректируем под свои значения:
iptables_rules.sh
#! /bin/bash
IPT="iptables"
## Внешний интерфейс
WAN=ens224
WAN_IP=ВАШ_внешний_IP
## Внутренний интерфейс
LAN1=ens192
LAN1_IP=ВАШ_внутренний_IP
LAN1_IP_RANGE=192.168.0.0/24
LAN2=IP_Jitsi
## Очищаем все цепочки перед применением новых правил
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X
## Блокируем весь трафик, который не соответствует ни одному из правил
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
## Разрешаем весь трафик в локалхост и локальной сети
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -i $LAN1 -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A OUTPUT -o $LAN1 -j ACCEPT
## Этот блок разрешает icmp-запросы (пинговать сервер) (опционально)
$IPT -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
## Открываем доступ в интернет самому серверу
$IPT -A OUTPUT -o $WAN -j ACCEPT
#$IPT -A INPUT -i $WAN -j ACCEPT
## Разрешаем все установленные соединения и дочерние от них
$IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
## Защита от наиболее распространенных сетевых атак. (опционально)
## Отбрасываем все пакеты без статуса (опционально)
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP
## Блокируем нулевые пакеты (опционально)
$IPT -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
## Закрываемся от syn-flood атак (опционально)
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP
## Запрет доступа с определенных IP (опционально)
#$IPT -A INPUT -s ipaddres -j REJECT
## Разрешаем доступ в интернет из локальной сети
$IPT -A FORWARD -i $LAN1 -o $WAN -j ACCEPT
## Запрещаем доступ из интернета в локальную сеть (опционально)
#$IPT -A FORWARD -i $WAN -o $LAN1 -j REJECT
## Чтобы в локальной сети был интернет включаем nat
$IPT -t nat -A POSTROUTING -o $WAN -s $LAN1_IP_RANGE -j MASQUERADE
##Должен быть включен ip forwarding
## Разрешаем ssh (порт 22 - это порт по умолчанию для ssh соединения, если вы его меняли, то обязательно значение 22 надо заменить своим, иначе будет потерян доступ к серверу)
$IPT -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT
## Перенаправление трафика на сервер JITSI
$IPT -A FORWARD -i $WAN -d $LAN2 -p tcp -m tcp --dport 80 -j ACCEPT
$IPT -A FORWARD -i $WAN -d $LAN2 -p tcp -m tcp --dport 443 -j ACCEPT
$IPT -A FORWARD -i $WAN -d $LAN2 -p udp -m udp --dport 10000 -j ACCEPT
$IPT -t nat -A PREROUTING -i $WAN -p tcp --dport 80 -j DNAT --to $LAN2
$IPT -t nat -A PREROUTING -i $WAN -p tcp --dport 443 -j DNAT --to $LAN2
$IPT -t nat -A PREROUTING -i $WAN -p udp --dport 10000 -j DNAT --to $LAN2
$IPT -t nat -A POSTROUTING -j MASQUERADE
Сохраняем и закрываем файл.
После этого надо сделать файл исполняемым и запустить:
# chmod +x iptables_rules.sh
# ./iptables_rules.sh
Правила мы установили, однако после перезагрузки сервера они пропадут. Для того, чтобы применить их перманентно, выполним следующее:
# iptables-save > /etc/iptables-conf/iptables_rules.ipv4
Откроем файл и вставим в конец файла правило для восстановления настроек:
# vim /etc/network/interfaces
post-up /sbin/iptables-restore < /etc/iptables-conf/iptables_rules.ipv4
Ну, и, естественно, надо разрешить пересылку пакетов, открываем файл:
# vim /etc/sysctl.conf
Находим строку и раскомментируем (если стоит «0», то меняем на «1»)
net.ipv4.ip_forward = 1
Применяем правила:
# sysctl -p
Настраиваем сервер Jitsi
Первый сервер готов, и мы переходим ко второму серверу — Jitsi. Тут опять надо разрешить пересылку пакетов — открываем файл:
# vim /etc/sysctl.conf
Находим строку и раскомментируем (если стоит «0», то меняем на «1»)
net.ipv4.ip_forward = 1
Применяем правила:
# sysctl -p
Установим необходимые утилиты:
# apt-get update
# apt-get install -y ufw iftop htop wget net-tools vim
Далее настроим ufw (нам нет нужды прописывать похожие правила как на предыдущем сервере, а достаточно просто открыть некоторые порты):
# ufw allow 22
# ufw allow 80/tcp
# ufw allow 443/tcp
# ufw allow 10000/udp
# ufw enable
Будет запрошено подтверждение, вводим «y» (порт 22 — это порт по умолчанию для ssh соединения, если вы его меняли, то обязательно значение 22 надо заменить своим, иначе будет потерян доступ к серверу).
Далее необходимо настроить имя хоста:
# hostnamectl set-hostname jitsi.mydnsname.com
Стоит отметить, что для полноценного использования Jitsi-meet необходимо доменное имя и белый IP, к которому привязано имя.
Переходим к установке.
# apt install gnupg2 -y
# echo 'deb https://download.jitsi.org stable/' >> /etc/apt/sources.list.d/jitsi-stable.list
# wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | apt-key add -
# apt-get install -y apt-transport-https
# apt-get update
Если у вас еще не установлен веб-сервер, то самое время это сделать. Выберите сами apache2 или nginx, и go:
# apt-get -y install nginx (apache2)
# apt-get -y install jitsi-meet
В процессе установки будет запрошен IP сервера или его dns имя. Если сервер должен работать с мобильными приложениями, то должно быть dns имя и ssl сертификат. Далее утилита спросит про сертификат ( первый вариант применим для автоматического подписания сертификата, при условии что IP адрес белый и есть dns-имя, второй – если уже есть сертификат, но тогда надо будет еще указать пути, где лежат сертификаты). Важное замечание: для подключения андроид устройств нужно добавить третий сертификат и прописать к нему путь в apache/nginx.
По завершению установки мы перейдем к настройке.
Как уже и говорил, надо добавить еще один ssl-сертификат для устройств android. Для этого мы в конфигурацию добавим путь к этому сертификату (скажу сразу, что у вас пути могут отличаться, если вы делали это другим способом). Открываем файл конфигурации (apache2 или nginx):
Apache2:
# vim /etc/apache2/saites-avalieble/example.org.conf
Добавляем строку (внимательно смотрим пути и подставляем свои значения):
SSLCertificateChainFile /etc/ssl/example.org/SectigoRSADomainValidationSecureServerCA.crt
Должно получиться так:
SSLProtocol TLSv1 TLSv1.1 TLSv1.2
SSLEngine on
SSLProxyEngine on
SSLCertificateFile /etc/ssl/jitsi.dnsname.com/jitsi.dnsname.com.crt
SSLCertificateChainFile /etc/ssl/jitsi.dnsname.com/SectigoRSADomainValidationSecureServerCA.crt
SSLCertificateKeyFile /etc/ssl/jitsi.dnsname.com/jitsi.dnsname.com.key
SSLCipherSuite "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA256:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EDH+aRSA+AESGCM:EDH+aRSA+SHA256:EDH+aRSA:EECDH:!aNULL:!eNULL:!MEDIUM:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED"
SSLHonorCipherOrder on
Header set Strict-Transport-Security "max-age=31536000"
Сохраняем и закрываем файл.
Nginx:
# vim /etc/nginx/sites-available/jitsi.dnsname.com.conf
# Mozilla Guideline v5.4, nginx 1.17.7, OpenSSL 1.1.1d, intermediate configuration
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m; # about 40000 sessions
ssl_session_tickets off;
add_header Strict-Transport-Security "max-age=63072000" always;
ssl_certificate /etc/ssl/jitsi.dnsname.com/fullchain.pem;
ssl_certificate_key /etc/ssl/jitsi.dnsname.com/privkey.pem;
root /usr/share/jitsi-meet;
Сохраняем и закрываем файл.
Для nginx мы не указываем отдельный сертификат, а объединяем два сертификата в один:
# cat /etc/ssl/jitsi.dnsname.com/jitsi.dnsname.com.crt /etc/ssl/jitsi.dnsname.com/SectigoRSADomainValidationSecureServerCA.crt >> /etc/ssl/jitsi.dnsname.com/fullchain.pem
Проверить цепочку сертификатов можно тут.
Let’s Encrypt
Для создания сертификата let’s encrypt выполним следующее:
Идем в /etc/nginx/sites-available/jitsi.dnsname.com.conf и комментируем первую строку (для apache2 меняем путь).
server_names_hash_bucket_size 64;
# apt install -y python3-certbot-nginx && certbot --nginx -d dnsname.com
Обратите внимание, что данный сертификат валидный везде и бесплатный, но выдается он только на три месяца. После его надо обновить.
После выпуска сертификата обратно раскомментируем
server_names_hash_bucket_size 64;
Далее настраиваем систему. Добавляем туда следующее (отметим, что в локальный адрес прописываем адрес сервера Jitsi, а в публичный — белый IP, у нас это IP адрес первого сервера):
# vim /etc/jitsi/videobridge/sip-communicator.properties
org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=<Local.IP.Address>
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=<Public.IP.Address>
Комментируем следующую строку:
org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES
Далее для поддержания конференции на большое количество людей (более 100) добавляем следующие строки в файл:
# vim /etc/systemd/system.conf
system.conf
DefaultLimitNOFILE=65000
DefaultLimitNPROC=65000
DefaultTasksMax=65000
Сохраняем и закрываем файл.
Далее:
# apt-get -y install jigasi #optional
# systemctl daemon-reload
# systemctl restart jitsi-videobridge2
# cat /proc/`cat /var/run/jitsi-videobridge/jitsi-videobridge.pid`/limits
Настраиваем сервер Jibri
Теперь нам осталось только поднять сервер с Jibri. Это опционально и нужно только для того, чтобы иметь возможность транслировать конференцию или вести запись конференции.
Jibri можно поставить рядом с Jitsi на одном сервере, но тогда на сервер будет идти бОльшая нагрузка. Мы сделаем это на отдельном сервере, но практически те же самые шаги надо предпринять, чтобы поднять Jibri рядом с Jitsi.
И так, приступим.
Тут опять надо разрешить пересылку пакетов, открываем файл:
# vim /etc/sysctl.conf
Находим строку и раскомментируем (если стоит «0», то меняем на «1»)
net.ipv4.ip_forward = 1
Применяем правила:
# sysctl -p
На следующем шаге нам необходимо убедиться, что модуль обратной связи доступен и работает:
# echo "snd-aloop" >> /etc/modules
# modprobe snd-aloop
# lsmod | grep snd_aloop
Далее установим стабильную версию Google Chrome:
# curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add
# echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list
# apt-get -y update
# apt-get -y install google-chrome-stable
Создадим директорию и пропишем политики:
# mkdir -p /etc/opt/chrome/policies/managed
# echo '{ "CommandLineFlagSecurityWarningsEnabled": false }' >> /etc/opt/chrome/policies/managed/managed_policies.json
Скачаем и установим chromedriver:
# CHROME_DRIVER_VERSION=`curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE`
# wget -N http://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip -P ~/
# unzip ~/chromedriver_linux64.zip -d ~/
# rm ~/chromedriver_linux64.zip
# mv -f ~/chromedriver /usr/local/bin/chromedriver
# chown root:root /usr/local/bin/chromedriver
# chmod 0755 /usr/local/bin/chromedriver
Установим зависимости и необходимые пакеты:
# apt-get install ffmpeg curl alsa-utils icewm xdotool xserver-xorg-input-void xserver-xorg-video-dummy
Теперь устанавливаем Jibri:
Если установка на сервер Jitsi
# apt-get install -y jibri=8.0-121*
Установка на отдельный сервер
# wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -
# sh -c "echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list"
# apt-get update
# apt-get install -y jibri=8.0-121*
Далее необходимо добавить Jibri в группы пользователей:
# usermod -aG adm,audio,video,plugdev jibri
Java8
Для работы Jibri (версии ниже 8.0-137-g260cee3-1) необходима Java 8:
# wget -O - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add -
# add-apt-repository https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/
# apt-get update
# apt-get install -y adoptopenjdk-8-hotspot
Нужно настроить Java 8 по умолчанию для Jibri. Для этого открываем файл и заменяем слово «java» на полный путь:
# vim /opt/jitsi/jibri/launch.sh
/usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/java
Если версия Jibri 8.0-137-g260cee3-1 и выше, то пункт с Java 8 пропускаем, там уже все автоматом установится (Java 11). Выбрать нужную версию пакетов можно тут
Для хранения видео нам надо отвести на сервере специальную директорию. Для этого мы создадим отдельную директорию (по желанию можно создать другую директорию, ее надо будет указать в конфигурации):
# mkdir /srv/recordings
Дадим Jibri права на нее и сделаем владельцем:
# chown jibri:jibri /srv/recordings
Далее мы настроим Jitsi-сервер для того, чтобы он знал о существовании Jibri и дадим все необходимые настройки и разрешения. Если сервис Jibri на отдельном сервере, тогда переходим на сервер Jitsi.
Начнем с конфигурации Prosody. Открываем файл и вставляем в конец файла с подстановкой своих значений:
# vim /etc/prosody/conf.avail/jitsi.dnsname.com.cfg.lua
jitsi.dnsname.com.cfg.lua
-- internal muc component, meant to enable pools of jibri and jigasi clients
Component "internal.auth.jitsi.dnsname.com" "muc"
modules_enabled = {
"ping";
}
storage = "memory"
muc_room_cache_size = 1000
VirtualHost "recorder.jitsi.dnsname.com"
modules_enabled = {
"ping";
}
authentication = "internal_plain"
Теперь создадим учетные записи для пользователей «jibri» и «recorder» (пароли, которые мы тут установим, понадобятся нам далее):
# prosodyctl register jibri auth.jitsi.dnsname.com PAsswDJibRI
# prosodyctl register recorder recorder.jitsi.dnsname.com PaSSwdReCORD
Следующим нашим действием станет прописывание конфигурации Jicofo. Откроем и добавим в файл следующие строки:
# vim /etc/jitsi/jicofo/sip-communicator.properties
jicofo/sim-communicator-properties
org.jitsi.jicofo.jibri.BREWERY=JibriBrewery@internal.auth.jitsi.dnsname.com
org.jitsi.jicofo.jibri.PENDING_TIMEOUT=90
Далее настроим Jitsi-meet. Добавим/раскомментируем строки в файле:
# vim /etc/jitsi/meet/jitsi.dnsname.com-config.js
config.js
fileRecordingsEnabled: true,
liveStreamingEnabled: true,
hiddenDomain: 'recorder.jitsi.dnsname.com',
Хочу обратить внимание, что следующий шаг необходимо выполнить только в том случае, когда сервис Jibri находится на отдельном сервере.
Ранее мы уже установили на сервере Jitsi ufw и открыли порты 22, 80, 443. Сейчас нам надо открыть еще порт 5222, для этого:
# ufw allow 5222/tcp
Теперь вернемся на сервер Jibri и добавим в файл jibri.conf следующую конфигурацию (не забываем подставлять свои значения, тут же нам надо указать и пароли для «jibri» и «recorder»):
# vim /etc/jitsi/jibri/jibri.conf
jibri.conf
jibri {
// A unique identifier for this Jibri
// TODO: eventually this will be required with no default
id = ""
// Whether or not Jibri should return to idle state after handling
// (successfully or unsuccessfully) a request. A value of 'true'
// here means that a Jibri will NOT return back to the IDLE state
// and will need to be restarted in order to be used again.
single-use-mode = false
api {
http {
external-api-port = 2222
internal-api-port = 3333
}
xmpp {
// See example_xmpp_envs.conf for an example of what is expected here
environments = [
{
name = "prod environment"
xmpp-server-hosts = ["jitsi.dnsname.com"]
xmpp-domain = "jitsi.dnsname.com"
control-muc {
domain = "internal.auth.jitsi.dnsname.com"
room-name = "JibriBrewery"
nickname = "jibri-nickname"
}
control-login {
domain = "auth.jitsi.dnsname.com"
username = "jibri"
password = "PAsswDJibRI"
}
call-login {
domain = "recorder.jitsi.dnsname.com"
username = "recorder"
password = "PaSSwdReCORD"
}
strip-from-room-domain = "conference."
usage-timeout = 0
trust-all-xmpp-certs = true
}]
}
}
recording {
recordings-directory = "/srv/recordings"
# TODO: make this an optional param and remove the default
finalize-script = "/path/to/finalize_recording.sh"
}
streaming {
// A list of regex patterns for allowed RTMP URLs. The RTMP URL used
// when starting a stream must match at least one of the patterns in
// this list.
rtmp-allow-list = [
// By default, all services are allowed
".*"
]
}
chrome {
// The flags which will be passed to chromium when launching
flags = [
"--use-fake-ui-for-media-stream",
"--start-maximized",
"--kiosk",
"--enabled",
"--disable-infobars",
"--autoplay-policy=no-user-gesture-required",
"--ignore-certificate-errors"
]
}
stats {
enable-stats-d = true
}
webhook {
// A list of subscribers interested in receiving webhook events
subscribers = []
}
jwt-info {
// The path to a .pem file which will be used to sign JWT tokens used in webhook
// requests. If not set, no JWT will be added to webhook requests.
# signing-key-path = "/path/to/key.pem"
// The kid to use as part of the JWT
# kid = "key-id"
// The issuer of the JWT
# issuer = "issuer"
// The audience of the JWT
# audience = "audience"
// The TTL of each generated JWT. Can't be less than 10 minutes.
# ttl = 1 hour
}
call-status-checks {
// If all clients have their audio and video muted and if Jibri does not
// detect any data stream (audio or video) comming in, it will stop
// recording after NO_MEDIA_TIMEOUT expires.
no-media-timeout = 30 seconds
// If all clients have their audio and video muted, Jibri consideres this
// as an empty call and stops the recording after ALL_MUTED_TIMEOUT expires.
all-muted-timeout = 10 minutes
// When detecting if a call is empty, Jibri takes into consideration for how
// long the call has been empty already. If it has been empty for more than
// DEFAULT_CALL_EMPTY_TIMEOUT, it will consider it empty and stop the recording.
default-call-empty-timeout = 30 seconds
}
}
Теперь нам осталось только перезапустить систему. Для этого введем следующие две команды: первую на сервере Jitsi, а вторую — на Jibri соответственно (если оба сервиса стоят на одном сервере, то обе команды ввести на одном сервере):
# systemctl restart jitsi-videobridge2 prosody jicofo
# systemctl enable --now jibri
Вот и готово. Теперь можно перейти в браузере на jitsi.dnsname.com запустить конференцию и включить ее запись. Видеофайлы можно найти на сервере Jibri в директории /srv/recordings. Забрать их с сервера можно множеством способов, я оставлю это на ваш полет фантазии, подскажу лишь несколько:
- Настроить проброс портов (если сервер Jibri вы поставили за NAT), затем подключиться к серверу, например через WinSCP, и стянуть файл себе. То же самое можно сделать, только без проброса портов, если Jibri не за NAT и имеет внешний IP.
- С помощью утилиты scp.
Сообщество Jitsi. Тут же взял мануал для Jibri.
Сервера поднимал тут и тут. Еще использую сервера здесь, данный хостинг имеет большое разнообразие локаций по приемлемым ценам.
Благодарю за внимание!
Благодарю Алексея, Дарью и Владислава за внесенные правки.
Свой мессенджер Matrix-synapse в связке с Jitsi-meet. Часть 3
Jitsi-meet: авторизация по JWT-токену