Visualização (WebRTC)

Este capítulo descreve a configuração da visualização como participante WebRTC. No capítulo Participante SIP, é explicada a integração dos participantes.

Aviso importante: O WebRTC só funciona por meio de HTTPS e certificado válido. Caso contrário, uma conexão de voz não será estabelecida.

Estação de Sinalização

Um telefone na visualização não pode ser alcançado por meio de toque. Portanto, a chamada deve ser sinalizada separadamente via Mensagens ou sino físico. Em seguida, o usuário pode estabelecer uma conexão de voz com a contraparte por meio de uma chamada da visualização.

Para receber o sinal, um comando pode ser enviado diretamente pela contraparte por meio da interface TCP/UDP- ou HTTP, se esta for suportada. Alternativamente, uma chamada recebida pode ser reconhecida por meio da interface Asterisk AMI ou com um evento de plano de discagem Evento. Esta última variante é a mais simples de implementar.

Configuração

Diferente de um Telefone, a configuração do endereço da visualização é criada automaticamente pelo servidor. Portanto, não é necessário configurar endereços SIP.

Para usar um telefone na visualização, este é inserido em uma Página por meio do plugin Biblioteca. Quando a configuração do telefone estiver completa e o sistema telefônico Asterisk tiver sido iniciado com sucesso, o botão de ação flutuante (FAB) será exibido no canto inferior direito da visualização. Este permite que o usuário estabeleça uma conexão.

A configuração VoIP da telefonia está dividida em duas partes. A configuração dos servidores para a visualização é feita na Interface de Rede ou no Acesso Remoto. Todas as configurações para o sistema telefônico são feitas na Infrastructure sob Rede Telefonia. As configurações são semelhantes, portanto, cuidado deve ser tomado ao fazer as configurações. Normalmente, as mesmas configurações também são usadas se o servidor estiver na mesma rede. Por padrão, as configurações da telefonia são distribuídas para todas as conexões de rede.

Uso Global

Para que a visualização possa estabelecer uma conexão de voz em todo o mundo, os Pacotes UDP WebRTC devem chegar ao sistema telefônico interno. Se você estiver na mesma rede ou estabelecer uma conexão via VPN, os pacotes chegam diretamente ao servidor e a comunicação funciona. A situação é diferente quando a visualização é acessada de outra rede. Nesse caso, o endereço IP do servidor não pode mais ser alcançado. Existem duas soluções para isso:

  • Servidor STUN: Este resolve cada IP NAT e disponibiliza esses endereços para a visualização. Esta então tenta estabelecer uma conexão com cada um desses endereços IP.
  • Servidor TRUN: A conexão de voz é estabelecida diretamente via TURN. Ou seja, a comunicação é redirecionada para o TURN.

Todas as informações sobre configuração podem ser encontradas no capítulo Servidores STUN e TRUN.

Teclado

Na aba direita da configuração do Telefone, pode-se definir um Teclado para a visualização. Aqui está um exemplo de um teclado numérico normal:

!1;!2;!3
!4;!5;!6
!7;!8;!9
[icon:material/emergency]:*;!0;!#

Ou o uso de um destravador de porta:

[icon:material/door_open] [txt:Open]:*1234#

Cada dígito é separado por ponto e vírgula por linha. Se um conteúdo for deixado em branco, a tecla correspondente será pulada. Cada tecla pode conter um texto individual. O texto é simplesmente escrito antes do código usando dois pontos. Também são suportados os placeholders [icon:] e [txt:] para traduções. Um ponto de exclamação antes do texto aumenta o tamanho da fonte do teclado. Se apenas o código for usado, este não será transmitido. Se uma linha vazia for inserida, uma nova tabela é iniciada.

Importante: Cada código é exibido em texto claro na visualização e pode ser facilmente lido.

Caracteres válidos são 0-9, A-D, * e #. Também é possível inserir uma pausa usando vírgula (,). Para pausas mais longas, repita a vírgula várias vezes.

Resolução de Problemas

Para verificar se uma conexão externa realmente pode ser estabelecida, recomenda-se usar o console do navegador Chrome. Este pode ser acessado pela URL chrome://webrtc-internals/.

Na seção ICE candidate grid, por exemplo, os requisitos dos endereços IP podem ser exibidos.

Problemas Conhecidos

  • Em dispositivos iOS mais antigos, não é possível estabelecer uma conexão se o aplicativo web for usado em modo de tela cheia (PWA). Status 01.10.2019 (iOS13.1).
  • Em alguns dispositivos iOS, o volume pode ser muito baixo. Aperte duas vezes no microfone (comutação de voz) para aumentar o volume.
  • Não é possível estabelecer uma conexão sem HTTPS, pois a maioria dos navegadores exige uma conexão de voz segura.