<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 &eacute; ip din&acirc;mico.<br>
    <br>
    Como n&atilde;o posso gastar dinheiro num servi&ccedil;o de Dyn (DNS Din&acirc;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&ccedil;o de informa&ccedil;&atilde;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 &eacute; 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&ccedil;o de informa&ccedil;&atilde;o do
    IP (&eacute; claro que essa informa&ccedil;&atilde;o n&atilde;o &eacute; p&uacute;blica) <br>
    <br>
    No caso, os usu&aacute;rios que precisam informar o IP aprenderam que
    ligando de qualquer n&uacute;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&ccedil;o de callback tb, eu poderia ter usado tamb&eacute;m o
    callback para informar o IP, mas alguns usu&aacute;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 &uacute;til para quem esteja na mesma
    situa&ccedil;&atilde;o que eu.<br>
    <br>
    <br>
    Primeiro criei um novo contexto no asterisk, no caso estou dando o
    numero 102 para esse servi&ccedil;o, pode ser qualquer outro:<br>
    <br>
    <span jstcache="126"><big><big><tt>exten =&gt; 102,1,AGI(FalaIP.sh)</tt><tt><br>
          </tt><tt>exten =&gt; 102,2,Playback(goodbye)</tt><tt><br>
          </tt><tt>exten =&gt; 102,3,HangUp</tt><tt><br>
          </tt></big></big><br>
      Abaixo segue a j&oacute;ia da coroa:&nbsp; O script AGI abaixo descobre o IP e
      informa duas vezes: N&atilde;o ta enxuto, mas funciona que &eacute; uma
      maravilha:<br>
      <br>
      <tt><big>#!/bin/bash<br>
          <br>
          # Consume all variables sent by Asterisk<br>
          while read VAR &amp;&amp; [ -n ${VAR} ] ; do : ; done<br>
          <br>
          # Atende a liga&ccedil;&atilde;o<br>
          echo "ANSWER"<br>
          read RESPONSE<br>
          <br>
          # - Preferi usar o wget em vez do curl pq j&aacute; vem por padr&atilde;o em
          muito linux.<br>
          # - Quem ta informando o IP externo &eacute; o site ipecho.net, como
          tenho sites <br>
          # - na internet, atualmente eu fa&ccedil;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&ccedil;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 &oacute;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>