Blog sobre temas como: Asterisk, VoIP, Mikrotik, Wireless, Web, Publicidad, …
8 Jul
Ya me ha ocurrido un par de veces, tal y como se ha comentado en varias listas, que no termina de levantar el módulo SIP de Asterisk si perdemos la conexión a Internet y hay definida una o más líneas SIP.
Esto lo podemos evitar montando un servidor de nombre (BIND) con cacheo en la propia máquina de Asterisk. Suponiendo que trabajamos con CentOS, el proceso sería más o menos así:
yum -y install bind bind-libs caching-nameserver bind-chroot
chkconfig named on
service named start
Ahora editamos el fichero /var/named/chroot/etc/named.conf para añadir los reenviadores (servidores DNS externos, que en nuestro ejemplo será los de opendns.com) dentro de la sección options:
forwarders {
208.67.222.222;
208.67.220.220;
};
Por último, editamos el fichero /etc/resolv.conf para decirle a la máquina que se consulte a sí misma y lo dejamos así:
search localdomain
nameserver 127.0.0.1
Reiniciamos el servicio de DNS:
service named restart
Ya habríamos terminado, pero hay que tener en cuenta que hay que dejar pasar unas horas….
2 Responses for "Asterisk, líneas SIP y caida de Internet"
He probado está solución y no consigue registrarse cuando se va y vuelve la configuración de asterisk, yo lo que he realizado es lo siguiente,
Un scrip que cada minuto (lo he puesto en un cron) chequea si está bien registrado si no está registrado hace un reload del sistema, se podría hacer un reload when convenient pero así me funciona bien.
Ademas de ver cuando se cae la conexión ya que tengo un log, la levanta y funciona en el 98% de los casos
Scrip
#!/bin/sh
fecha=`date +%d/%m/%Y\ %H:%M:%S`
log=/var/log/`date +%Y%m%d.log` # el directorio de LOG tiene que tener permisos de escritura para el usuario que lance el script
echo $fecha - Comprobando conexión a voztelecom >> $log
/usr/sbin/asterisk -rx “sip show registry” > /var/log/testvoztele
cat /var/log/testvoztele | grep “Request Sent”
resultado=$?
if [ $resultado = 0 ]; then
fecha=`date +%d/%m/%Y\ %H:%M:%S`
echo $fecha - Reboot asterisk >> $log
fecha=`date +%d/%m/%Y\ %H:%M:%S`
/usr/sbin/asterisk -rx “reload”
echo $fecha - Reboot OK >> $log
fi
Pues normalmente esto me ha dado problemas a la hora de hacer reload. Se me queda intentado resolver el HOST.
Leave a reply