<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Bom dia a todos da lista,<br>
<br>
Eu tenho um servidor asterisk que estou testando num link muito bom,
infelizmente esse link é ip dinâmico.<br>
<br>
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"<br>
<br>
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) <br>
<br>
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. <br>
<br>
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.<br>
<br>
A dica segue abaixo e pode ser útil para quem esteja na mesma
situação que eu.<br>
<br>
<br>
Primeiro criei um novo contexto no asterisk, no caso estou dando o
numero 102 para esse serviço, pode ser qualquer outro:<br>
<br>
<span jstcache="126"><big><big><tt>exten => 102,1,AGI(FalaIP.sh)</tt><tt><br>
</tt><tt>exten => 102,2,Playback(goodbye)</tt><tt><br>
</tt><tt>exten => 102,3,HangUp</tt><tt><br>
</tt></big></big><br>
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:<br>
<br>
<tt><big>#!/bin/bash<br>
<br>
# Consume all variables sent by Asterisk<br>
while read VAR && [ -n ${VAR} ] ; do : ; done<br>
<br>
# Atende a ligação<br>
echo "ANSWER"<br>
read RESPONSE<br>
<br>
# - Preferi usar o wget em vez do curl pq já vem por padrão em
muito linux.<br>
# - Quem ta informando o IP externo é o site ipecho.net, como
tenho sites <br>
# - na internet, atualmente eu faço essa consulta de um de
meus sites<br>
# - numa pagina php que retorna somente o ip tipo
xxx.xxx.xxx.xxx sem<br>
# - formatacao alguma<br>
<br>
ipexterno=`wget <a class="moz-txt-link-freetext" href="http://ipecho.net/plain">http://ipecho.net/plain</a> -O - -q `<br>
# informa ao log do asterisk que uma consulta foi feita<br>
VERBOSE "O IP Atual eh '$ipexterno'" ""<br>
<br>
# Dita as letras I,P para que a pessoa saiba que vem um
endereço IP em seguida<br>
echo 'SAY ALPHA "IP" ""'<br>
<br>
# Dita, numero a numero o ip com ponto. Sem ajuste algum, a
velocidade ficou ótima!<br>
echo 'SAY ALPHA "'$(echo $ipexterno)'" ""'<br>
<br>
# Repete novamente o IP Externo<br>
echo 'SAY ALPHA "IP" ""'<br>
echo 'SAY ALPHA "'$(echo $ipexterno)'" ""'<br>
<br>
# Termina o Script<br>
read RESPONSE<br>
exit 0</big></tt><br>
<br>
</span>
</body>
</html>