Projecto de VoIP

Página do " Asterisk, the Open Source PBX".
Descarregar o "X-Lite Softphone" para Windows.
Descarregar o "X-Lite Softphone" para macOS.
Livro "Asterisk: The Future of Telephony", 2ª Edição.
Livro "Asterisk: The Definitive Guide", 3ª Edição.


FAQ do Projecto de VoIP

Pergunta: posso usar o Asterisk em Windows?
Resposta: 
É possível correr o Asterisk em Windows numa máquina virtual Linux.
No servidor do laboratório está o Ubuntu 18.04 LTS (Long Term Support) com o Asterisk v13.18.3. Nesta versão, chamadas de vídeo funcionam correctamente, mas a reprodução de vídeo gravado não funciona correctamente. Basta depois instalar os pacotes adequados do Asterisk. Para na máquina virtual ter simultaneamente acesso à Internet e comunicação em rede com o PC anfitrião Windows, recomenda-se a configuração de duas placas de rede virtuais: uma com "NAT" e uma com "Host-only Adapter".

Pergunta: Qual a melhor maneira de instalar o Asterisk em Linux?

Resposta: Em Ubuntu, com o comando "sudo apt-get update; sudo apt-get install asterisk" ou com um gestor de pacotes do Linux.

Pergunta: como posso arranjar mais ficheiros de som para o Asterisk?
Resposta1: nem todas as versões de Linux têm nos seus repositórios todos os pacotes de som disponibilizados com o Asterisk. Em http://downloads.asterisk.org/pub/telephony/sounds/  estão as versões mais recentes dos diferentes pacotes, que podem ser desarquivados manualmente para a directoria /usr/share/asterisk/sounds
Resposta2: o tradutor do Google sintetiza som com grande qualidade, em muitas línguas, carregando no botão do altifalante. É possível obter o ficheiro ficheiro mp3 correspondente, por exemplo em http://soundoftext.com/
Se o som do ficheiro mp3 ficar muito baixo, pode convertê-lo para outro formato. Por exemplo, instalando o "sox" com o comando "sudo apt-get install sox libsox-fmt-all" e convertendo com "sox ficheiro.mp3 ficheiro.gsm".
Atenção que se o ficheiro mp3 estiver em stereo, é necessário converter com a opção de misturar os 2 canais, com "sox ficheiro.mp3 ficheiro.gsm channels 1".
Resposta3: se tiver acesso à Internet, pode usar o tradutor do Google em tempo real com o script AGI disponível em http://zaf.github.io/asterisk-googletts/

Pergunta: como posso reproduzir os ficheiros de som e vídeo do Asterisk?
Resposta: a melhor forma é com o X-Lite e com o Asterisk. Os ficheiros de som .gsm também podem ser reproduzidos em Linux com o comando "play <ficheiro>" e em Windows com o VLC media player ou QuickTime player, por exemplo. Os ficheiros de som .wav podem ser reproduzidos com quase qualquer media player. Os ficheiros de vídeo .h263 podem ser reproduzidos com versões recentes do VLC media player (v3.x, por exemplo).

Pergunta: O Asterisk diz-me: (ficheiro) Not found (Permission denied).  Porquê? O ficheiro existe!
Resposta: Isso deve ser um problema de permissões de acesso ao ficheiro. Geralmente o Asterisk está a correr como utilizador "asterisk", pelo que o ficheiro deve ter permissão de leitura para todos os utilizadores, para que possa ser lido pelo Asterisk. As pastas devem ter permissão de leitura e execução (pesquisa de ficheiros) para todos os utilizadores. Se quiserem escrever num ficheiro, ou pasta, é necessário dar permissão de escrita a todos os utilizadores. Podem ser usados comandos do tipo:

sudo chmod 644 /path-to-file/filename.ext
sudo chmod 755 /path-to-file
sudo chmod -R a+r /path-to-file

O primeiro comando dá permissão de leitura a um ficheiro. O segundo dá permissão de leitura e pesquisa numa pasta. O terceiro dá permissão de leitura a todos os utilizadores a tudo o que estiver numa pasta e recursivamente para as subpastas dela.


Pergunta: Como manter valores de chamada para chamada? É necessário gravá-los em ficheiro ou numa base de dados?
Resposta: Pode-se assumir que o Asterisk está a correr em permanência e usar variáveis globais para manter valores de chamada para chamada. Para consultar a forma de definir e manipular variáveis globais, sugere-se consultar a secção "Using variable" p. 135 (p. 163 do pdf) e seguintes da 2a Edição do Livro do Asterisk, bem como a sintaxe com os comandos na consola do Asterisk "core show application Set" e "core show function GLOBAL".

Pergunta: como posso testar a ligação entre 2 telefones só com um único PC?
Resposta: É possível ter 2 softphones diferentes no mesmo PC, havendo partilha de microfone e altifalante. Não é possível partilhar a webcam, pelo que não dá para testar chamadas de vídeo. É possível ter 2 versões diferentes do X-Lite instaladas no mesmo PC (por exemplo a v3 e a v5).

Pergunta: como posso usar a agenda do X-Lite3 para enviar mensagens de texto?
Resposta: a agenda do X-Lite3 só funciona se correr o X-Lite3 em modo de compatibilidade com "Windows Vista (Service Pack 2)". Isso pode ser configurado nas propriedades do atalho do X-Lite3. Quando abrir a janela de mensagens dá o erro "The Microsoft DHTML Editor control is not properly registered on your machine. You can not send any message until it is registered. Please close your X-Lite first, then register your DHTML Editor control, or re-install Microsoft Internet Explorer to solve this problem". Instalando o "DHTML Editing Control for Applications Redistributable Package (x86)" disponível em: https://www.microsoft.com/en-us/download/details.aspx?id=8956 resolve o problema.

Pergunta: porque não oiço som no X-Lite, apesar de no log do asterisk aparecer que está a reproduzir um ficheiro de som?
Resposta: se não tiver microfone ou as permissões do windows 10 bloquearem o acesso ao microfone ao X-Lite, o X-Lite não consegue enviar um fluxo de som e por isso também não recebe fluxo de som. É necessário ligar um microfone e desbloquear o acesso das aplicações ao microfone no painel de controlo do windows (verifique https://privacy.microsoft.com/en-us/windows-10-camera-and-privacy).


Pergunta: porque é que às vezes não se recebe som dos telefones Cisco 7905G?
Resposta: os telefones Cisco 7905G não têm alta-voz propriamente dito, mas sim monitorização de som no seu altifalante. Se for activada a monitorização de som na tecla "SoundMonitor", o seu microfone é desligado. O fluxo de som continua a ser enviado, mas sem qualquer som.


Pergunta: quando faço uma chamada com vídeo, obtenho a mensagem "NOTICE[...][...]: res_rtp_asterisk.c:3767 ast_rtp_read: Unknown RTP codec 126 received from '...'". Como resolvo isto?
Resposta: Essa mensagem é apenas um aviso, não sendo um erro, pelo que pode ser ignorada. É causada por o X-Lite enviar pacotes RTP usando o codec 126 que não foi listado no SDP. São pacotes keep-alive, sendo uma funcionalidade não standard do X-Lite.

Pergunta: posso usar o servidor do laboratório fora do laboratório?
Resposta: sim, desde que o servidor esteja ligado. Recomenda-se a utilização do programa MobaXterm para login remoto.  Mas se estiver a usar uma rede doméstica com NAT, a informação de que o softphone está atrás de um NAT tem de ser indicada no ficheiro sip.conf com a linha "nat=yes", caso contrário não conseguirá receber os fluxos de áudio/vídeo.
Atenção que repetidas falhas de password resultam no seu endereço IP ser bloqueado durante 10 minutos pelo programa fail2ban http://www.fail2ban.org.

Pergunta: quando capturo o tráfego na interface host-only adapter, não me aparece o tráfego num dos sentidos (ou não aparece tráfego nenhum). Como resolvo?
Resposta: é um bug do host-only adapter em Windows que ocorre em alguns sistemas. A solução é instalar o Wireshark na máquina Linux onde está a correr o Asterisk e capturar aí o tráfego.

Pergunta: na opção 4 do menu do projecto de voz sobre IP é preciso tratar todos os casos possíveis?
Resposta: Na opção 4 do menu do projecto de voz sobre IP serão apenas testados códigos postais que dão apenas uma única rua, pelo só é necessário implementar este caso. Não é preciso tratar casos particulares em que se obtenham múltiplas ruas, nenhuma rua, número de lotes, ou outros formatos diferentes.
Isto foi adicionado à FAQ.

Attachments