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.
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.
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.
É 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)
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
- 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
- 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.
Pronto! Agora é testar, abrir outra sessão e fechar conferencia.
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: