[AsteriskBrasil] DICA doida para asterisk com IP Dinâmico, funciona
suporte em apexmic.com.br
suporte em apexmic.com.br
Quinta Novembro 14 09:35:38 BRST 2013
Bom dia a todos da lista,
Eu tenho um servidor asterisk que estou testando num link muito bom,
infelizmente esse link é ip dinâmico.
Como não posso gastar dinheiro num serviço de Dyn (DNS Dinâmico) e ficar
todo instante que o link cai ou muda o IP tendo que descobrir o novo ip,
indo no gerenciador de dominio DNS do meu site e recriando a entrada "A"
Resolvi criar um serviço de informação de IP pelo asterisk. Como o
asterisk se registra novamente assim que a rede volta, ele ta conectado
com um novo IP e assim, qualquer um que ligar no numero voip da empresa
é atendido pela URA que pede o ramal a ser digitado, Em vez de digitar o
ramal, a pessoa que precisa do novo IP para reconfigurar o softphone
digita o numero do serviço de informação do IP (é claro que essa
informação não é pública)
No caso, os usuários que precisam informar o IP aprenderam que ligando
de qualquer número de telefone para o numero voip do asterisk e
digitando o ramal 102 (numero sugestivo que dei para este email) o
asterisk vai informar o IP externo e desligar.
Eu tenho um serviço de callback tb, eu poderia ter usado também o
callback para informar o IP, mas alguns usuários resolveram usar esse
recurso de maneira indevida, por isso, devido a politica interna, o
callback foi temporariamente suspenso.
A dica segue abaixo e pode ser útil para quem esteja na mesma situação
que eu.
Primeiro criei um novo contexto no asterisk, no caso estou dando o
numero 102 para esse serviço, pode ser qualquer outro:
exten => 102,1,AGI(FalaIP.sh)
exten => 102,2,Playback(goodbye)
exten => 102,3,HangUp
Abaixo segue a jóia da coroa: O script AGI abaixo descobre o IP e
informa duas vezes: Não ta enxuto, mas funciona que é uma maravilha:
#!/bin/bash
# Consume all variables sent by Asterisk
while read VAR && [ -n ${VAR} ] ; do : ; done
# Atende a ligação
echo "ANSWER"
read RESPONSE
# - Preferi usar o wget em vez do curl pq já vem por padrão em muito linux.
# - Quem ta informando o IP externo é o site ipecho.net, como tenho sites
# - na internet, atualmente eu faço essa consulta de um de meus sites
# - numa pagina php que retorna somente o ip tipo xxx.xxx.xxx.xxx sem
# - formatacao alguma
ipexterno=`wget http://ipecho.net/plain -O - -q `
# informa ao log do asterisk que uma consulta foi feita
VERBOSE "O IP Atual eh '$ipexterno'" ""
# Dita as letras I,P para que a pessoa saiba que vem um endereço IP em
seguida
echo 'SAY ALPHA "IP" ""'
# Dita, numero a numero o ip com ponto. Sem ajuste algum, a velocidade
ficou ótima!
echo 'SAY ALPHA "'$(echo $ipexterno)'" ""'
# Repete novamente o IP Externo
echo 'SAY ALPHA "IP" ""'
echo 'SAY ALPHA "'$(echo $ipexterno)'" ""'
# Termina o Script
read RESPONSE
exit 0
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20131114/29824856/attachment.htm
Mais detalhes sobre a lista de discussão AsteriskBrasil