Projecto de VoIP
Página do "Asterisk, the Open Source PBX".
Livro "Asterisk: The Future of Telephony", 2ª Edição.
Livro "Asterisk: The Definitive Guide", 3ª Edição.
FAQ do Projecto de VoIP
Pergunta: O Wireshark não me está a descodificar correctamente o tráfego RTP. Aparece-me como tráfego UDP. Como resolvo?Resposta: Parece ser um bug da versão 4.0.5 do Wireshark. Há duas formas de resolver: i) fazer downgrade do Wireshark para versão Old Stable Release 3.6.13; ii) seleccionar um pacote, clicar com o botão direito do rato e escolher no menu "Decode As" e mudar o "current" de "UDP" para "RTP".
Pergunta: Na consola do Asterisk aparece-me a mensagem "NOTICE[930]: chan_sip.c:10472 process_sdp: Received AVPF profile in audio offer but AVPF is not enabled, enabling: audio 7078 RTP/AVPF 9 0 8 3 18 96 97 98 101 99 100" e não ouço som no Linphone quando o corro a partir do meu PC, mas funciona bem se correr o Linphone dentro da máquina virtual. Como resolvo?
Resposta: Essa mensagem é normal e é apenas um aviso. "AVPF" significa "Audio-Video Profile with Feedback". Significa que foi pedido para activar as mensagens RTCP de feedback, e que foram activadas. Se não ouve o som a partir do seu PC, pode ter a ver com problemas de NAT. Pode ser de descomentar a linha 1015 do ficheiro sip.conf, ficando "icesupport = yes". Note que pode resolver o problema para o protocolo RTP, mas não para o protocolo RTCP.
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 Linphone 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, por exemplo. Os ficheiros de som .wav podem ser reproduzidos com
quase qualquer media player. Os ficheiros de vídeo não são reproduzidos correctamente nem no Asterisk nem num media player, devido a um bug no tratamento do vídeo das versões actuais do Asterisk. Se precisar de editar os sons, pode usar o Audacity.
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: Quando tento executar um AGI, obtenho o seguinte erro. Porquê e como resolvo?
$ ./teste.py
-bash: ./teste.py: /usr/bin/python3^M: bad interpreter: No such file or directory
Resposta: O caracter "^M" é um Carriage Return. O problema é que o ficheiro está em formato Windows, em que as linhas terminam com Carriage Return e Line Feed, enquanto em formato Linux as linhas terminam apenas com Line Feed. Pode converter o ficheiro para formato Linux com o comando:
$ dos2unix teste.py
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 variables" 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. Há uma versão do X-Lite antiga e gratuita, disponível em X-Lite v3. Pode usar um Linphone no Windows e um Linphone na máquina virtual, mas para que possam comunicar, será necessário pôr "directmedia=no" no sip.conf e dar o comando "sip reload" na consola do Asterisk.
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, 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 do softphone, não consegue enviar um fluxo de som e
por isso pode também não receber 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: 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.