Conferência de Vídeo Jitsi

:discourse2: Resumo Jitsi Video Conference permite incorporar chamadas de vídeo do Jitsi em posts do Discourse.
:hammer_and_wrench: Link do Repositório https://github.com/discourse/discourse-jitsi
:open_book: Novo nos Temas do Discourse? Guia para iniciantes sobre o uso de Temas do Discourse

Instale este componente de tema

Recursos

  • administradores podem usar sua própria instância do servidor Jitsi
  • adiciona um ícone na barra de ferramentas do editor (pode ser limitado apenas ao pessoal administrativo nas configurações do componente)
  • exibe um botão com um ícone e um rótulo configuráveis nos posts


Configurações

Nome Descrição
mostrar no menu suspenso de opções Quando desmarcado, o ícone é mostrado na barra de ferramentas do editor.
disponível apenas para a equipe
domínio do Jitsi Apenas o domínio (sem protocolo, sem barra final).
jitsi script src URL do arquivo javascript da API externa. Se você alterar isso, também precisará adicionar a URL à configuração do site ‘content security script src’.
ícone do botão Insira o nome do ícone FontAwesome 5 a ser exibido no botão do Jitsi.
botão de chat Integrar com o Discourse Chat
ocultar botões do iframe Ocultar a opção de configurações do iframe para os usuários; as configurações padrão abaixo serão usadas
iframe padrão para mobile Ativar o modo iframe por padrão para dispositivos móveis
iframe padrão para desktop Ativar o modo iframe por padrão para desktop
posição do botão de chat Posição do botão dentro da janela de chat
ícones svg Se estiver usando um ícone personalizado, adicione-o também neste campo (além de ‘button_icon’ acima
Tradução Padrão
composer_title Discourse Jitsi
room_label ID da sala Jitsi
button_text_label Rótulo do botão
launch_jitsi Iniciar Conferência de Vídeo
modal.room_field_description Insira um ID para sua sala (ou deixe vazio para usar um ID gerado aleatoriamente).
modal.insert Inserir
modal.cancel Cancelar
modal.title Adicionar Integração Jitsi
modal.mobile_iframe Mostrar em um iframe em dispositivos móveis
modal.desktop_iframe Mostrar em um iframe em dispositivos desktop

:discourse2: Hospedado por nós? Componentes de tema estão disponíveis para uso em nossos planos Standard, Business e Enterprise.

43 curtidas

Olá, obrigado por este post e pelo plugin. Removi alguns de meus posts do outro tópico para evitar confusão. Já instalei e tenho testado o componente.

Não vejo um Discourse Preview ao redigir uma videoconferência em um novo post.
Você vê uma prévia?

2 curtidas

Legal! @downey, poderíamos tentar isso usando seu servidor Jitsi? Não tenho um agora, mas talvez queira configurar um.

Estava tendo dificuldades com uma chamada familiar no GoToMeeting e ficaria interessado em experimentar algo novo que seja simplesmente incorporado em um tópico do Discourse. Ainda melhor se for com o Jitsi!

1 curtida

Há alguma preocupação em usar o servidor que o Jitsi fornece gratuitamente?

1 curtida

Existe alguma preocupação em usar o servidor que o Jitsi oferece gratuitamente?

Temos testado e funciona bem para cerca de 10 pessoas. O desempenho se torna inutilizável com mais de 20 participantes, então você precisaria executar sua própria instância para chamadas de grupos maiores, além de integrações com Slack e Etherpad.

4 curtidas

Isso me lembra que o motivo pelo qual nossos testes com o Jitsi foram interrompidos é porque o Jitsi solicita que usuários móveis instalem um aplicativo, pelo menos no iOS. Estamos avaliando novamente o BigBlueButton, que funciona através do navegador em dispositivos móveis e desktop.

Estou me perguntando se @pmusaraj teria interesse em verificar a API deles para ver quanto, ou se algum, do trabalho feito neste componente poderia funcionar também por lá…

6 curtidas

Ajuda o fato de seus usuários também poderem ligar? A propósito, o aplicativo para iOS é excelente, além de ser totalmente de código aberto e, pelo que sei, muito fácil de usar. Notei que o aplicativo é basicamente uma réplica do aplicativo Zoom para iOS e Android, que quase todo mundo que conheço utiliza.

2 curtidas

Quero dizer, se tenho a escolha entre uma videoconferência que funciona nativamente e outra que requer um aplicativo, provavelmente vou evitar instalar o aplicativo adicional.

3 curtidas

É meio que (não totalmente) como pedir a todos que desejam ter qualquer conversa usando o Discourse como plataforma para usar o meta. :slight_smile:

Sim, isso é verdade, e eu não pensei nas implicações de usar uma interface móvel incorporada ao Discourse dessa maneira.

Também tenho ouvido coisas boas sobre o BBB, especialmente para eventos mais no estilo “webinar”. Uma integração para ele também seria boa :slight_smile:

Pelo que sei, é o contrário: o Zoom copiou muita da UI/UX do Jitsi e de outras ferramentas de videoconferência ao longo dos anos.

6 curtidas

Apenas para constar, estou recebendo um erro ao configurar o componente do tema para usar minha própria instância do Jitsi instalada. A sintaxe normal da URL da sala funciona bem, mas, por algum motivo, estou obtendo um erro 404 ao tentar usar o botão. Infelizmente, não terei tempo nesta semana para solucionar o problema…

3 curtidas

@pmusaraj, obrigado pelo componente!

Há alguma maneira de adicionar um gerador de palavras aleatórias para a criação de salas? Ou talvez um timestamp/epoch? Toda vez que crio uma sala no Discourse, travo mentalmente. :slight_smile:

3 curtidas

“Artistas comuns copiam, grandes artistas roubam” — no início do dia, o que o usuário vê é o produto atual, não a sua história.

Quanto melhora o desempenho do Jitsi com sua própria instância? Eu achava que, uma vez estabelecida a chamada, a comunicação fosse ponto a ponto.

Precisamos de uma solução que consiga lidar com grupos grandes e, no estado atual (usando meet.jit.si), estou achando a qualidade muito baixa, mesmo para chamadas individuais com frequência.

O Jitsi é apenas peer-to-peer em configurações 1:1. Grupos maiores são roteados através do servidor.

Mesmo instâncias dedicadas auto-hospedadas que testamos esgotam a capacidade bastante rapidamente.

1 curtida

Talvez eles devessem oferecer uma opção de hospedagem paga, além da opção de autohospedagem… isso poderia ajudá-los a identificar problemas no software em escala :thinking:

3 curtidas

Acredito que o principal problema é que, para implantações de qualquer escala, o jitsi-videobridge realmente precisa de um host dedicado, com o componente jitsi-meet instalado separadamente. O primeiro é o servidor de streaming, enquanto o meet fornece apenas a interface do usuário.

Infelizmente, o caminho de instalação mais seguido pela maioria das pessoas é a implantação semi-automatizada em um único host. A instalação rápida deles ocorre inteiramente dentro do Docker e é muito simples.

A instalação manual detalhada, que permite implantar os componentes separadamente, tende a afastar rapidamente qualquer iniciante.

9 curtidas

Não consigo fazer isso funcionar, mesmo usando o servidor padrão meet.jit.si. Independentemente do ID da reunião que inserir, aparece apenas uma caixa cinza em vez da videoconferência.

1 curtida

Tem algo no console?

Olá, Tobias, está funcionando aqui (com Chrome e Firefox), versão 2.5.0 beta2, poucos plugins, servidor Jitsi fresco de +/- 48h atrás … :face_with_raised_eyebrow:

Estou tentando implementar JWT agora, mas pode ser que eu esteja um pouco acima da minha cabeça :exploding_head:, e também estava me perguntando se não seria melhor importar o external_api.js de settings.meet_jitsi_domain em vez de https://meet.jit.si?

aqui: https://github.com/pmusaraj/discourse-jitsi/blob/master/javascripts/discourse/initializers/insert-jitsi.js.es6

2 curtidas

Hmm… muitos erros no console. Isso está acontecendo na minha instância pessoal e em um novo site de teste hospedado que acabou de ser criado. Estou usando o servidor padrão meet.jit.si e não fiz nenhuma alteração nas configurações do componente de tema.

Ainda não tenho meu próprio servidor Jitsi e pensei que funcionaria sem problemas…

clique para ver
Logger.js:154 2020-04-11T19:21:21.250Z [modules/util/JitsiLocalStorage.js] <new <anonymous>>:  DOMException: Falha ao ler a propriedade 'localStorage' de 'Window': Acesso negado para este documento.
    at new <anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:29:197547)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:29:197486)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:29:197742)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:54:98101)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:24:101984)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:29:222225)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:24:213733)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:29:196138)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:24:154819)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:63:41390)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:54:53082)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:54:55490)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:54:165081)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:54:166745)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:126:292708)
    at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:126:323867)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at Module.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:222:80217)
    at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
    at https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:908
    at https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:919
o @ Logger.js:154
(anonymous) @ JitsiLocalStorage.js:42
(anonymous) @ JitsiLocalStorage.js:77
(anonymous) @ app.bundle.min.js?v=3962.622:29
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:54
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:24
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:29
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:24
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:29
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:24
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:63
n @ bootstrap:19
(anonymous) @ AuthHandler.js:1
(anonymous) @ app.bundle.min.js?v=3962.622:54
n @ bootstrap:19
(anonymous) @ connection.js:1
(anonymous) @ app.bundle.min.js?v=3962.622:54
n @ bootstrap:19
(anonymous) @ conference.js:1
(anonymous) @ app.bundle.min.js?v=3962.622:126
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:222
n @ bootstrap:19
(anonymous) @ bootstrap:83
(anonymous) @ app.bundle.min.js?v=3962.622:1
Show 2 more frames
Logger.js:154 2020-04-11T19:21:21.252Z [features/local-recording] <Object._loadMetadata>:  Falha ao analisar item do localStorage.
o @ Logger.js:154
_loadMetadata @ SessionManager.js:170
(anonymous) @ SessionManager.js:152
(anonymous) @ SessionManager.js:435
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:24
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:29
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:24
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:29
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:24
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:63
n @ bootstrap:19
(anonymous) @ AuthHandler.js:1
(anonymous) @ app.bundle.min.js?v=3962.622:54
n @ bootstrap:19
(anonymous) @ connection.js:1
(anonymous) @ app.bundle.min.js?v=3962.622:54
n @ bootstrap:19
(anonymous) @ conference.js:1
(anonymous) @ app.bundle.min.js?v=3962.622:126
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:222
n @ bootstrap:19
(anonymous) @ bootstrap:83
(anonymous) @ app.bundle.min.js?v=3962.622:1
Logger.js:154 2020-04-11T19:21:21.309Z [index.web] <HTMLDocument.<anonymous>>:  (TIME) documento pronto:	 432.6749999891035
react-dom.production.min.js:187 DOMException: Falha ao ler a propriedade 'localStorage' de 'Window': Acesso negado para este documento.
    at Oe._initStorage (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:16:45149)
    at Oe.componentDidMount (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:16:44779)
    at Oe.componentDidMount (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:24:223947)
    at Gs (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:94889)
    at t.unstable_runWithPriority (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:192:3884)
    at fi (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:41540)
    at Ws (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:90890)
    at Ps (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:78509)
    at fc (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:105337)
    at hc (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:105412)
    at https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:106607
    at Bs (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:80044)
    at _c (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:106592)
    at Object.render (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:109864)
    at HTMLDocument.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:222:80940)
La @ react-dom.production.min.js:187
Ga.n.callback @ react-dom.production.min.js:200
Hi @ react-dom.production.min.js:125
Bi @ react-dom.production.min.js:125
Gs @ react-dom.production.min.js:239
t.unstable_runWithPriority @ scheduler.production.min.js:20
fi @ react-dom.production.min.js:113
Ws @ react-dom.production.min.js:230
Ls @ react-dom.production.min.js:206
(anonymous) @ react-dom.production.min.js:114
t.unstable_runWithPriority @ scheduler.production.min.js:20
fi @ react-dom.production.min.js:113
gi @ react-dom.production.min.js:114
mi @ react-dom.production.min.js:113
Bs @ react-dom.production.min.js:208
_c @ react-dom.production.min.js:272
render @ react-dom.production.min.js:273
(anonymous) @ index.web.js:25
react-dom.production.min.js:114 Uncaught DOMException: Falha ao ler a propriedade 'localStorage' de 'Window': Acesso negado para este documento.
    at Oe._initStorage (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:16:45149)
    at Oe.componentDidMount (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:16:44779)
    at Oe.componentDidMount (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:24:223947)
    at Gs (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:94889)
    at t.unstable_runWithPriority (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:192:3884)
    at fi (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:41540)
    at Ws (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:90890)
    at Ps (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:78509)
    at fc (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:105337)
    at hc (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:105412)
    at https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:106607
    at Bs (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:80044)
    at _c (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:106592)
    at Object.render (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:109864)
    at HTMLDocument.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:222:80940)
gi @ react-dom.production.min.js:114
mi @ react-dom.production.min.js:113
Bs @ react-dom.production.min.js:208
_c @ react-dom.production.min.js:272
render @ react-dom.production.min.js:273
(anonymous) @ index.web.js:25
react-dom.production.min.js:187 TypeError: Não é possível ler a propriedade 'dispatch' de undefined
    at Oe.componentWillUnmount (BaseApp.js:100)
    at react-dom.production.min.js:187
    at Ra (react-dom.production.min.js:189)
    at Ua (react-dom.production.min.js:195)
    at Gs (react-dom.production.min.js:235)
    at t.unstable_runWithPriority (scheduler.production.min.js:20)
    at fi (react-dom.production.min.js:113)
    at Ws (react-dom.production.min.js:230)
    at Ls (react-dom.production.min.js:206)
    at react-dom.production.min.js:114
    at t.unstable_runWithPriority (scheduler.production.min.js:20)
    at fi (react-dom.production.min.js:113)
    at gi (react-dom.production.min.js:114)
    at mi (react-dom.production.min.js:113)
    at Bs (react-dom.production.min.js:208)
    at _c (react-dom.production.min.js:272)
    at Object.render (react-dom.production.min.js:273)
    at HTMLDocument.<anonymous> (index.web.js:25)
La @ react-dom.production.min.js:187
Ga.n.callback @ react-dom.production.min.js:200
Hi @ react-dom.production.min.js:125
Bi @ react-dom.production.min.js:125
Gs @ react-dom.production.min.js:239
t.unstable_runWithPriority @ scheduler.production.min.js:20
fi @ react-dom.production.min.js:113
Ws @ react-dom.production.min.js:230
Ls @ react-dom.production.min.js:206
(anonymous) @ react-dom.production.min.js:114
t.unstable_runWithPriority @ scheduler.production.min.js:20
fi @ react-dom.production.min.js:113
gi @ react-dom.production.min.js:114
mi @ react-dom.production.min.js:113
I @ scheduler.production.min.js:16
H @ scheduler.production.min.js:18
C @ scheduler.production.min.js:13
BaseApp.js:100 Uncaught TypeError: Não é possível ler a propriedade 'dispatch' de undefined
    at Oe.componentWillUnmount (BaseApp.js:100)
    at react-dom.production.min.js:187
    at Ra (react-dom.production.min.js:189)
    at Ua (react-dom.production.min.js:195)
    at Gs (react-dom.production.min.js:235)
    at t.unstable_runWithPriority (scheduler.production.min.js:20)
    at fi (react-dom.production.min.js:113)
    at Ws (react-dom.production.min.js:230)
    at Ls (react-dom.production.min.js:206)
    at react-dom.production.min.js:114
    at t.unstable_runWithPriority (scheduler.production.min.js:20)
    at fi (react-dom.production.min.js:113)
    at gi (react-dom.production.min.js:114)
    at mi (react-dom.production.min.js:113)
    at Bs (react-dom.production.min.js:208)
    at _c (react-dom.production.min.js:272)
    at Object.render (react-dom.production.min.js:273)
    at HTMLDocument.<anonymous> (index.web.js:25)
1 curtida