Blog

Mão na Massa: Realizando Conferência com VERTO Communicator no FusionPBX

     

Este post,assim como vários outros futuros, tem a intenção de ser um passo a passo mão na massa. Portanto, não tem, a principio, a intenção de abordar e aprofundar no funcionamento da tecnologia em si, mas apresentá-la em pleno funcionamento.

  • Introdução 

A aplicação Verto Communicator foi desenvolvida pela empresa brasileira EvoluxBr em conjunto com desenvolvedores do próprio Freeswitch. Essa aplicação faz uso do mod_verto (Protocolo Verto) que é um endpoint do FreeSwitch. A documentação da integração do Verto Communicator com o Freeswitch é relativamente fácil de se encontrar nos meios digitais, entretanto quando envolve o FusionPBX é necessário abordarmos alguns passos específicos para chegarmos a um resultado satisfatório.

  • Objetivo

O objetivo principal é fazer com que duas sessões de Verto Communicator consigam realizar uma conferência com áudio e vídeo utilizando o FusionPBX como FrontEnd de Configuracao dos ramais envolvidos e gerenciando as Salas de Conferência.

  • Versões utilizadas

É extremamente recomendável que as versões utilizadas abaixo sejam utilizadas para que se consiga replicar o resultado obtido:

FusionPBX: 4.4.1
FreeSwitch: 1.6.2
Verto Communicator: 0.1 (Baixado do source do FreeSwitch 1.8.2)
 
  • Pré-requisitos mínimos
1-Instalação do Fusion 4.4.1 na distribuição do Debian 8 com IP Publico. VPS na Digital Ocean (1GRAM, 1vcpu, 25Gb HD)
 
2-Áudios e prompts em portugues-brasil já pré instalados e configurados
 
3-Instalação do Certificado SSL via LetsEncrypt (Serviço que oferece gratuitamente certicado SSL válido por 3 meses).
 
Futuramente irei criar um post específico para esse assunto, pois tem alguns passos e detalhes de questões de serviços relacionados a apontamentos de DNS que devem ser levados em conta. 
Entretanto, para quem quiser dar os primeiros passos, o pessoal da FusionPBX criou um script que torna essa tarefa uma "mão na roda":
 
cd /usr/src
cd /fusionpbx-install.sh.git/debian/resources
./letsencrypt.sh

Ao final da execução do script será possível acessar o FusionPBX com criptografia, é só certificar no browser:

 

  • Verificando a configuração do Verto no XML Editor do FusionPBX

O FusionPBX tem uma interface muito bacana quando o assunto é edição dos arquivos XML que é ponto fundamental para o FreeSwitch.

Menu>Advanced>XML Editor

  • Acessar a pasta autoload_configs

  • Clicar no arquivo verto.conf.xml

  • Verificar que o protocolo Verto roda nas portas TCP 8081 e 8082. Verificar que o Verto utiliza os codecs VP8 para video e Opus para audio. É possível incluir os codecs pcmu e pcma no lugar do opus, pois o mesmo utiliza muito recurso de CPU. Caso o FusionPBX esteja atrás de NAT, ajustar o parâmetro ext-rtp-ip com o IP Publico.

  • Comprovando que o certificado wss.pem (Esse é criado com o script LetsEncrypt) está na pasta indicada no arquivo XML acima. No caso: /etc/freeswitch/tls

  • Habilitar módulo VERTO (Sinalizacao) e RTC (Media)

Menu>Advanced>Modules

  • Habilitar codec Opus para funcionar o audio.

  • Verificar se os codecs VP8 e Opus estão ativos no Freeswitch

  • Evidenciando que o serviço Verto está UP

  • Liberando no Firewall-iptables a porta 8082

nano /etc/iptables/rules.v4

/etc/init.d/netfilter-persistent restart
/etc/init.d/fail2ban restart
iptables -nL
 
 
  • Criar um ramal 1008  no FusionPBX. Deve ser 1008 mesmo.

 

  • Alguns ajustes no Freeswitch
nano /etc/freeswitch.orig/directory/default.xml
 
Descomentar a segunda linha e salvar
 
 
  • Inserir Profile de Conferencia video-mcu-stereo

nano /etc/freeswitch/autoload_configs/conference.conf

Acessar o arquivo de configuracao
 
  • Criar um conference Profile (video-mcu-stereo) no FusionPBX com os mesmos parametros acima:

Passo mais trabalhoso!

Menu> Apps>Conference Profiles

  • Criar um Conference Center com a extensão 3501 e com PIN de 4 caracteres

Menu>Apps>Conference Centers

  • Criar uma Sala e ajustar os parâmetros conforme abaixo

  • Instalando o Verto Communicator
Obs: As telas estao com o freeswitch 1.6, considerar a versao 1.8
 
Baixando os pacotes para compilar o aplicativo:
 
cd usr/src/
cd /usr/src/freeswitch-1.8.2/html5/verto/verto_communicator
 
 
Alterar o script debian8-install.sh e colocar grunt build --force (Se nao colocar o "--force" serao gerados alguns warnings que impedem a compilação)
 
 
Executar o script:
 
./debian8-install.sh
 
Notar que o diretório dist foi criado
 
 
  • Criar um link na raiz do servidor web nginx e atribuir permissão
ln -s  /usr/src/freeswitch-1.8.2/html5/verto/verto_communicator/dist /var/www/html/vc
chown -R www-data:www-data vc
 
  • Criar uma outra instancia Web no NGinx, fora do root do FusionPBX

nano /etc/nginx/sites-available/fusionpbx

server {
        listen 8443;
        server_name fusionpbx;
        ssl                     on;
        ssl_certificate /etc/dehydrated/certs/pbxip.inoutglobal.xyz/fullchain.pem;
        ssl_certificate_key /etc/dehydrated/certs/pbxip.inoutglobal.xyz/privkey.pem;
        ssl_protocols           TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers             HIGH:!ADH:!MD5:!aNULL;
 
 
 
        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;
 
             location / {
 
                root /var/www/html;
                index index.html;
        }
}
 
Salvar o arquivo e reiniciar o nginx
 
service nginx restart
  • Liberar no Iptables o acesso a porta tcp 8443

 

  • Acessar a interface do Verto Communicator no Chrome ou Firefox

https://exemplo.domino.com.br:8443/vc

Colocar um Nome e Email qualquer e clicar em configurações

A senha, por default, é 1234. Trocar pela mesma senha definida na criação do ramal 108.
 
Tela do Verto Logada
 
 
Verificando Registro do Verto Communicator no Freeswitch
 
 
  • Chamando a sala de conferencia

 

O sistema irá solicitar as credencias. Entrar com o numero PIN da conferencia, nesse caso, 9730 é o moderador e 5516 é para o participante, via teclado. O Fusion irá solicitar também que se diga o nome do particiante.

 

Logs do Freeswith de um Verto Communicator logado com audio e video: https://pastebin.com/UsUMn9fK

Pronto! Agora é testar, abrir outra sessão e fechar conferencia.

  • Referências

Links:https://freeswitch.org/confluence/display/FREESWITCH/mod_verto

Livro: Mastering FreeSwitch: https://www.amazon.com.br/Mastering-FreeSWITCH-English-Anthony-Minessale-ebook/dp/B01B1EJ0YU/ref=sr_1_1?ie=UTF8&qid=1547905504&sr=8-1&keywords=mastering+freeswitch
 
Videos:

Veja também

Instalação de FusionPBX no LightSail

Porque escolher um PABX Virtual

Conheça as diferenças entre os PABX Convencional e Virtual

O que nós fazemos?