Jitsi — это система конференц-сервиса с открытым исходным кодом, основанная на WebRTC. Она в основном обеспечивает высококачественные, безопасные и масштабируемые бизнес-возможности видеоконференций!
Используйте схему архитектуры в руководстве по установке докера.
Используйте официальное руководство по установке(https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart),Никаких проблем, если установка прошла успешно.,И может плавно создавать и вводить интерфейс встречи человека.,Но возможно, он не сможет настроить функцию конференции для нескольких человек.,Из вопросов на github,Содержит много похожих вопросов,Когда в один конференц-зал входит более одного пользователя,Появится проблема «CONFERENCE FAILED: Conference.videobridgeNotAvailable» и «Failed» для выбора начального моста для участникаRegion=null».,Интерфейс Браузера постоянно обновляется.,И подобных вопросов много,Судя по ответам,В основном проблема с Конфигурацией видеомоста.,В результате jicofo не может обнаружить видеомост.,Конечно, я тоже столкнулся с этой проблемой,И настроив Конфигурацию,решил проблему,Основной процесс — обратиться к руководству по разработке.(https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-manual),Пройдите Конфигурацию каждого Служить еще раз.,Было обнаружено, что отсутствует действие добавления пользователя jvb типа xmppСлужить.,Но я не могу подтвердить, является ли это причиной,Сразу после этой операции,И после унифицированной модификации Конфигурационного файла,Эта проблема исправлена!
Добавьте пользователя xmpp:
Create conference focus user:
720 prosodyctl register focus auth.meet.test.com 7aKQ5Jdi
Create conference jvb user:
765 prosodyctl register jvb auth.meet.test.com i2AhIKMh
Дополнительное примечание: позже я перезапустил образ докера и обнаружил, что вышеуказанная ошибка возникла снова. Основная идея заключалась в том, что видеомост не был зарегистрирован на jicofo. С этой точки зрения выяснилось, что имя хоста было изменено, что привело к. видео-бридже не регистрироваться На просодии, после повторной модификации имени хоста проблема больше не возникает!
root@2e5ee1f22bc9:~# hostnamectl set-hostname meet.test.com
root@2e5ee1f22bc9:~# cat /etc/hosts
127.0.0.1localhost meet.test.com
Журнал ошибок внешнего интерфейса:
Logger.js:154 2020-06-05T10:05:38.484Z [conference.js] <ee._onConferenceFailed>: CONFERENCE FAILED: conference.videobridgeNotAvailable
журнал ошибок jicofo:
Jicofo 2020-06-05 07:30:48.710 INFO: [288] org.jitsi.jicofo.ChatRoomRoleAndPresence.log() Granted owner to 1234545555@conference.meet.test.com/8eec2e33
Jicofo 2020-06-05 07:30:48.710 INFO: [288] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Member 1234545555@conference.meet.test.com/8eec2e33 joined.
Jicofo 2020-06-05 07:31:00.449 INFO: [163] org.jitsi.jicofo.xmpp.FocusComponent.log() Focus request for room: 1234545555@conference.meet.test.com
Jicofo 2020-06-05 07:31:00.645 INFO: [288] org.jitsi.jicofo.ChatRoomRoleAndPresence.log() Chat room event ChatRoomMemberPresenceChangeEvent[type=MemberJoined sourceRoom=org.jitsi.impl.protocol.xmpp.ChatRoomImpl@4e08eda member=ChatMember[1234545555@conference.meet.test.com/3e66d08f, jid: null]@397481160]
Jicofo 2020-06-05 07:31:00.646 INFO: [288] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Member 1234545555@conference.meet.test.com/3e66d08f joined.
Jicofo 2020-06-05 07:31:00.646 WARNING: [288] org.jitsi.jicofo.bridge.BridgeSelectionStrategy.log() Failed to select initial bridge for participantRegion=null
Jicofo 2020-06-05 07:31:00.646 SEVERE: [288] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Can not invite participant -- no bridge available.
Jicofo 2020-06-05 07:31:00.646 WARNING: [288] org.jitsi.jicofo.bridge.BridgeSelectionStrategy.log() Failed to select initial bridge for participantRegion=null
Jicofo 2020-06-05 07:31:00.646 SEVERE: [288] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Can not invite participant -- no bridge available.
Jicofo 2020-06-05 07:31:01.103 INFO: [288] org.jitsi.jicofo.ChatRoomRoleAndPresence.log() Chat room event ChatRoomMemberPresenceChangeEvent[type=MemberLeft sourceRoom=org.jitsi.impl.protocol.xmpp.ChatRoomImpl@4e08eda member=ChatMember[1234545555@conference.meet.test.com/8eec2e33, jid: 8eec2e33-2efe-4c2b-8166-e1b999a46ddb@meet.test.com/6c310fe2-4beb-43de-a98b-cfae6b887bde]@1154352649]
Последняя версия пакета, установленная в системе:
root@2e5ee1f22bc9:/etc/prosody# dpkg -l | grep jitsi
ii jitsi-meet 2.0.4627-1 all WebRTC JavaScript video conferences
ii jitsi-meet-prosody 1.0.4127-1 all Prosody configuration for Jitsi Meet
rc jitsi-meet-tokens 1.0.4127-1 all Prosody token authentication plugin for Jitsi Meet
ii jitsi-meet-turnserver 1.0.4127-1 all Configures coturn to be used with Jitsi Meet
ii jitsi-meet-web 1.0.4127-1 all WebRTC JavaScript video conferences
ii jitsi-meet-web-config 1.0.4127-1 all Configuration for web serving of Jitsi Meet
ii jitsi-videobridge2 2.1-202-g5f9377b9-1 all WebRTC compatible Selective Forwarding Unit (SFU)
root@2e5ee1f22bc9:/etc/prosody#
Давайте сначала поговорим об основных службах, которые включает в себя Jitsi. В процессе установки основными службами являются:
1. Веб-сервис, размещенный на nginx;
2. служба xmpp;
3.конференц-сервис jicofo;
4. услуга видеомоста;
Схема архитектуры: источник (https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-manual).
Фактически текущий сервис jitsi-videobridge2 подключен к сервису просодии через 5222!
A Jitsi Meet installation can be broken down into the following components:
· A web interface(nginx)
· An XMPP server(prosody)
· A conference focus component(jicofo)
· A video router (could be more than one) (videobridge)
· A SIP gateway for audio calls
· A Broadcasting Infrastructure for recording or streaming a conference.
Веб работает через прокси-сервер nginx, файл конфигурации:
root@2e5ee1f22bc9:/etc/jitsi# vi /etc/nginx/sites-available/meet.test.com.conf
location = /config.js {
alias /etc/jitsi/meet/meet.test.com-config.js;
}
root@2e5ee1f22bc9:/etc/nginx# tail -f /var/log/jitsi/jicofo.log
root@2e5ee1f22bc9:~# tail -f /var/log/jitsi/jvb.log
Конфигурационный файл
root@2e5ee1f22bc9:/etc/jitsi# ll
total 4
drwxr-xr-x 5 root root 51 Jun 5 08:58 ./
drwxr-xr-x 1 root root 4096 Jun 5 08:16 ../
drwx------ 2 jicofo jitsi 81 Jun 5 09:52 jicofo/
drwxr-xr-x 2 root root 37 Jun 5 08:44 meet/
drwxr-x--- 2 jvb jitsi 172 Jun 5 09:05 videobridge/
три услуги
root@2e5ee1f22bc9:/etc/jitsi# service jitsi-videobridge2 status
root@2e5ee1f22bc9:/etc/jitsi# service jicofo status
root@2e5ee1f22bc9:/etc/jitsi# service prosody status
vi /etc/prosody/conf.avail/meet.test.com.cfg.lua
root@meet:/etc/jitsi# ps -ef|grep java
jvb 19769 java jitsi-videobridge
jicofo 8155 1 0 Jun05 ? 00:01:18 java
root@meet:/etc/jitsi# netstat -pan|grep java
tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 8155/java
tcp 0 0 127.0.0.1:56306 127.0.0.1:5222 ESTABLISHED 8155/java
tcp 0 0 127.0.0.1:56316 127.0.0.1:5222 ESTABLISHED 19769/java
tcp 0 0 127.0.0.1:33060 127.0.0.1:5347 ESTABLISHED 8155/java
udp 0 0 0.0.0.0:3905 0.0.0.0:* 8155/java
udp 0 0 0.0.0.0:5000 0.0.0.0:* 19769/java
udp 0 0 0.0.0.0:33854 0.0.0.0:* 19769/java
udp 0 0 0.0.0.0:50440 0.0.0.0:* 19769/java
udp 0 0 192.168.1.201:10000 0.0.0.0:* 19769/java
udp 0 0 11.12.117.210:10000 0.0.0.0:* 19769/java
udp6 0 0 :::5000 :::* 19769/java
unix 2 [ ] STREAM CONNECTED 7926045 19769/java
unix 2 [ ] STREAM CONNECTED 7784143 8155/java
unix 2 [ ] STREAM CONNECTED 7927656 19769/java
root@meet:/etc/jitsi# netstat -pan|grep lua
tcp 0 0 0.0.0.0:5280 0.0.0.0:* LISTEN 19744/lua5.1
tcp 0 0 127.0.0.1:5347 0.0.0.0:* LISTEN 19744/lua5.1
tcp 0 0 0.0.0.0:5222 0.0.0.0:* LISTEN 19744/lua5.1
tcp 0 0 0.0.0.0:5269 0.0.0.0:* LISTEN 19744/lua5.1
tcp 0 0 127.0.0.1:5222 127.0.0.1:56316 ESTABLISHED 19744/lua5.1
tcp 0 0 127.0.0.1:5280 127.0.0.1:53654 ESTABLISHED 19744/lua5.1
tcp 0 0 127.0.0.1:5347 127.0.0.1:33060 ESTABLISHED 19744/lua5.1
tcp 0 0 127.0.0.1:5280 127.0.0.1:53656 ESTABLISHED 19744/lua5.1
tcp 0 0 127.0.0.1:5222 127.0.0.1:56306 ESTABLISHED 19744/lua5.1
tcp6 0 0 :::5280 :::* LISTEN 19744/lua5.1
tcp6 0 0 :::5222 :::* LISTEN 19744/lua5.1
tcp6 0 0 :::5269 :::* LISTEN 19744/lua5.1
unix 2 [ ] DGRAM 7926001 19744/lua5.1
Основная проблема в том, что jicofo не обнаружил видеобридж, а как его обнаружить jicofo, действительно непонятно, если не смотреть на логику кода!
Однако, обратившись к настройке в руководстве по разработке, добавив пользователя jvb в службу просодии и перезапустив службы видеомоста и просодии, я обнаружил, что служба jicobo уже может нормально обнаруживать службу видеомоста!
Create conference focus user:
720 prosodyctl register focus auth.meet.test.com 7aKQ5Jdi
Create conference jvb user:
765 prosodyctl register jvb auth.meet.test.com i2AhIKMh
root@meet:/etc/jitsi# tail -f /var/log/jitsi/jicofo.log
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
Jicofo 2020-06-06 07:39:04.716 SEVERE: [427] org.jitsi.xmpp.component.ComponentBase.log() Ping timeout for ID: CqeOq-16955
Jicofo 2020-06-06 07:39:20.639 INFO: [242] org.jitsi.jicofo.xmpp.BaseBrewery.log() Removed brewery instance: jvbbrewery@internal.auth.meet.test.com/0a4788b1-a1e1-4413-a7c2-c3d0cb6cfe91a
Jicofo 2020-06-06 07:39:20.639 INFO: [242] org.jitsi.jicofo.xmpp.BaseBrewery.log() A bridge left the MUC: jvbbrewery@internal.auth.meet.test.com/0a4788b1-a1e1-4413-a7c2-c3d0cb6cfe91a
Jicofo 2020-06-06 07:39:20.639 INFO: [242] org.jitsi.jicofo.bridge.BridgeSelector.log() Removing JVB: jvbbrewery@internal.auth.meet.test.com/0a4788b1-a1e1-4413-a7c2-c3d0cb6cfe91a
Jicofo 2020-06-06 07:39:20.640 INFO: [85] org.jitsi.jicofo.bridge.JvbDoctor.log() Stopping health-check task for: jvbbrewery@internal.auth.meet.test.com/0a4788b1-a1e1-4413-a7c2-c3d0cb6cfe91a
Jicofo 2020-06-06 07:39:26.073 INFO: [242] org.jitsi.jicofo.xmpp.BaseBrewery.log() Added brewery instance: jvbbrewery@internal.auth.meet.test.com/0a4788b1-a1e1-4413-a7c2-c3d0cb6cfe91a
Jicofo 2020-06-06 07:39:26.073 INFO: [242] org.jitsi.jicofo.bridge.BridgeSelector.log() Added new videobridge: Bridge[jid=jvbbrewery@internal.auth.meet.test.com/0a4788b1-a1e1-4413-a7c2-c3d0cb6cfe91a, relayId=null, region=null, stress=0.00]
Затем снова откройте несколько браузеров и войдите в одну и ту же конференц-зал. Все функции вызова работают нормально, и браузер не завершается аварийно после постоянного повторного обновления!