четверг, 1 ноября 2018 г.

Setup Jitsi Meet videoconference server



Недавно я наткнулся на интересный проект видеоконференций Jitsi Meet. Проект с открытым исходным кодом небезизвестной Atlassian. Проект использует WebRTC, ZRTP. Публичный сервер https://meet.jit.si/ готов к работе "из коробки". Но если это open source, почему не должен сразу заработать на другом сервере? Не так просто. На проверку этот типичный open source как и все остальные нужно "допиливать напильником" в нескольких местах.

Итак, оригиналы руководств и "допиливание" под Linux:

Установка и первоначальная настройка: https://github.com/jitsi/jitsi-meet/blob/master/doc/quick-install.md

Добавление безопасности: https://github.com/jitsi/jicofo#secure-domain
Для заведения пользователя используем prosodyctl:
# prosody register [user_name] [site_domain] [password]

Далее - веселее, у сервера мы поправим баги установщика и настраиваем под себя. Все файлы желательно перед изменением сохранить в папке резервного копирования.

Для Debian (вроде только у него такая бага в установке) нужно поправить название сгенерированного сертификата Letsencrypt:
# cd /etc/jitsi/meet
# mv ./[your_site].cert [your_site].crt

Чтобы приложение Jitsi Meet Electron "увидело" что на Вашем сервере стоит Jitsi API, потребуется сделать символическую ссылку, примерно следующее (Debian):
# cd /usr/share/jitsi-meet
#  ln /usr/share/jitsi/libs/external_api.min.js /usr/share/jitsi/external_api.js

В итоге в браузере должно открываться: https://[your_site]/external_api.js
Потом скачаете под свою ОС Jitsi Meet Electron (https://github.com/jitsi/jitsi-meet-electron/releases/) и сможете подключаться к своему серверу (укажите  URL в настройках Вашего приложения). Вроде мобильные приложения и без этого фикса заработают. В "настольных" у организатора появится возможность удаленно управлять (при согласии участника) рабочим столом участника конференции.

Google Chrome: как собрать под свой домен и добавить в Chrome/Chromium расширение: https://github.com/jitsi/jidesha

Хотите править настройки сервера? Вот исходник с подробными комментариями: https://github.com/jitsi/jitsi-meet/blob/master/config.js
У Вас надо идти в папку установки и править:
# cd /etc/jitsi/meet
# vi [site_name].js

Вот что там есть интересного:

  • Раскомментировать это для стриминга приложения (видео из плеера) в конференцию:
// desktopSharingFrameRate: {
// min: 5,
// max: 5
// },
// Optional desktop sharing frame rate options. Default value: min:5, max:5.
Например, Вам нужно 15 кадров в секунду минимум и 25 максимум, установите min и max соответственно.
На момент публикации Desktop Sharing в настольном Jitsi Meet Electron не читал настройку desktopSharingFrameRate сервера, но она отлично работает в браузерах.
  • Настроить Ваше расширение для Chrome:
desktopSharingChromeExtId: null,
// The ID of the jidesha extension for Chrome.
Соберете расширение и запишите вместо null хэш вашего.

Личный опыт человека: https://www.adamhyde.net/setting-up-jitsi-letsencrypt-cert-and-desktop-sharing/