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

_______________________________________________
KHOMP: completa linha de placas externas FXO, FXS, GSM e E1;
Media Gateways de 1 a 64 E1s para SIP com R2, ISDN e SS7;
Intercomunicadores para acesso remoto via rede IP. Conheça em www.Khomp.com.
_______________________________________________
ALIGERA – Fabricante nacional de Gateways SIP-E1 para R2, ISDN e SS7.
Placas de 1E1, 2E1, 4E1 e 8E1 para PCI ou PCI Express.
Channel Bank – Appliance Asterisk - Acesse www.aligera.com.br.
_______________________________________________
Para remover seu email desta lista, basta enviar um email em branco para 
asteriskbrasil-unsubscr...@listas.asteriskbrasil.org

Responder a