DNS error for registration provoca que no se puedan hacer llamadas entre extensiones

451 views
Skip to first unread message

JC

unread,
Jul 5, 2007, 8:35:54 AM7/5/07
to asterisk-es
Hola al grupo,

He montado un sistema asterisk 1.4.6 con una tarjeta RDSI Billion, una
cuenta SIP con voipStunt y un par de teléfonos SIP para empezar a
trastear.

Todo me funciona bien cuando funciona Internet, pero si provoco la
caida del ADSL (saco el cable del router), como en la cuenta SIP de
voipStunt tengo en el users.conf la linea "host = sip.voipStunt.com"
comienza a hacer consultas al DNS que no puede resolver porque no hay
conexión con Internet y no se puede hacer ni recibir ningún tipo de
llamada ni siquiera entre extensiones ni por la RDSI ni nada.

El mensaje que sale es "chan_sip.c:7317 transmit_register : Probably a
DNS error for registration ........"

La cuestión es que tengo puesto en sip.conf srvlookup=no pero no me
soluciona nada, en cambio si en la definición de la cuenta SIP cambio
el host=sip.voipstunt.com por su dirección IP correspondiente todo
funciona bien aunque se caiga el ADSL, pero claro hay proveedores que
pueden cambiar su IP con asiduidad por lo que no es un método
práctico.

Gracias por vuestra ayuda.

JC

Dock

unread,
Jul 5, 2007, 4:24:44 PM7/5/07
to asterisk-es
Hola JC la solución para esto es crear un DNS cache te paso los pasos
DNS

YUM

yum -y install bind bind-libs caching-nameserver bind-chroot

despues:

chkconfig named on
service named start

despues en el archivo /etc/resolv.conf:

search localdomain
nameserver 127.0.0.1
nameserver xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx

donde las xxx, son las DNS de los ISP

Esto te sirve mientras no busques resolver alguna dirección nueva, te
resuleve las que tiene en cache
Bueno saludos y espero que te solucione el problema.

Cristian Luna
Analista de Sistemas

JC

unread,
Jul 6, 2007, 7:44:01 AM7/6/07
to asterisk-es
Gracias, por tu respuesta Cristian.

He realizado pruebas en lugar de con bind que me parece excesivo para
un dns-cache sólo, con dnsmasq (uso Debian) y la verdad es que aunque
mejora no lo soluciona totalmente.

El caso es que cuando se cae la conexión con Internet y Asterisk
necesita hacer un re-registro SIP, se hace una petición al DNS y éste
(dnsmasq en mi caso) le devuelve lo que tiene en caché durante un
tiempo muy corto, pero luego hace forwards a los siguientes DNS que
tiene en resolv.conf y es ahí cuando se corta todo. Estoy investigando
dnsmasq a ver si hay modo de forzar la respuesta de cache cuando no se
pueda hacer forward a los DNS externos, ya comentaré.

Lo que no entiendo muy bien es por qué Asterisk maneja este tema así,
cuando lo lógico sería que si no puede hacer una consulta a DNSs para
habilitar un canal SIP, debería deshabilitar ese canal y listo y no
bloquear todos los peers incluidas extensiones.

¿No es ésto un bug?

Si alguien con más experiencia que yo, quiere aportar algo lo
agradecería.

JC


Paco Brufal

unread,
Jul 12, 2007, 5:00:46 AM7/12/07
to asterisk-es
On 6 jul, 13:44, JC <jocad...@gmail.com> wrote:
> Lo que no entiendo muy bien es por qué Asterisk maneja este tema así,
> cuando lo lógico sería que si no puede hacer una consulta a DNSs para

Es un bug del asterisk. Cuando no tiene acceso a un DNS todo el SIP se
queda flipado y no responde, no sé si con IAX ocurre lo mismo...

Iñaki Baz Castillo

unread,
Jul 12, 2007, 6:05:06 AM7/12/07
to aster...@googlegroups.com

Yo no lo habría explicado mejor, se queda "flipao" XDDD

Ahora en serio, a ver si lo resuelven. En su día investigué el bug y me
pareció que simplemente explicaban la causa y delegaban (echaban la culpa) a
Linux y su resolución de nombres bloqueante o noséqué.


--
Iñaki Baz Castillo
i...@in.ilimit.es

Elio Rojano

unread,
Jul 12, 2007, 4:47:52 PM7/12/07
to aster...@googlegroups.com
¿¿¿Resolución de nombres bloqueantes????
No querrás decir que se superaba el límite de ficheros abiertos que trae de serie Linux al intentar hacer conexiones al exterior??? :)

¿A alguno se le ha ocurrido instalar Asterisk en una red sin conexión a internet? Pues funciona. :)


El día 12/07/07, Iñaki Baz Castillo <i...@in.ilimit.es> escribió:

JesusR

unread,
Jul 12, 2007, 5:48:31 PM7/12/07
to asterisk-es
Hola,


On 12 jul, 22:47, "Elio Rojano" <hel...@gmail.com> wrote:
> ¿¿¿Resolución de nombres bloqueantes????
> No querrás decir que se superaba el límite de ficheros abiertos que trae de
> serie Linux al intentar hacer conexiones al exterior??? :)

Desgraciadamente, el libresolv estándar de linux (y de muchos otros
sistemas unix) es bloqueante (síncrono) lo que quiere decir que cuando
un proceso intenta hacer una resolución de nombres (vía
gethostbyname() por ejemplo) el proceso se queda bloqueado hasta que
reciba una respuesta del libresolv. Así que efectivamente, asterisk
puede bloquearse mientras intenta hacer una resolución de nombres.


> ¿A alguno se le ha ocurrido instalar Asterisk en una red sin conexión a
> internet? Pues funciona. :)

Funciona siempre que:

- Uses direcciones ip en lugar de hostnames
- Dispones de un dns interno que te resuelve tus propios hostnames
- Los hostnames están en el /etc/hosts

Saludos
JesusR.
http://www.jerocu.net


Elio Rojano

unread,
Jul 12, 2007, 6:06:53 PM7/12/07
to aster...@googlegroups.com
Y después de esta respuesta magistral que digo???

Gracias. :)



El día 12/07/07, JesusR <jer...@gmail.com > escribió:

Raúl Alexis Betancor Santana

unread,
Jul 12, 2007, 7:45:53 PM7/12/07
to aster...@googlegroups.com
El Thursday 12 July 2007 22:06:53 Elio Rojano escribió:
> Y después de esta respuesta magistral que digo???

Pues ... (sigue más abajo)

> El día 12/07/07, JesusR <jer...@gmail.com> escribió:
> > Hola,
> >
> > On 12 jul, 22:47, "Elio Rojano" <hel...@gmail.com> wrote:
> > > ¿¿¿Resolución de nombres bloqueantes????
> > > No querrás decir que se superaba el límite de ficheros abiertos que
> > > trae
> >
> > de
> >
> > > serie Linux al intentar hacer conexiones al exterior??? :)
> >
> > Desgraciadamente, el libresolv estándar de linux (y de muchos otros
> > sistemas unix) es bloqueante (síncrono) lo que quiere decir que cuando
> > un proceso intenta hacer una resolución de nombres (vía
> > gethostbyname() por ejemplo) el proceso se queda bloqueado hasta que
> > reciba una respuesta del libresolv. Así que efectivamente, asterisk
> > puede bloquearse mientras intenta hacer una resolución de nombres.

Para eso está libadns que la usan muchos programas que tienen ese "problema",
reconozcamolo, Asterisk tiene mucho "marketing bonito" delante, pero las
tripas dan ASCO, cantidad de partes del código parecen escritas por un alumno
de primero de carrera.
Yo participo también en el proyecto Callweaver y utilizo Asterisk, pero lo
primero es lo primero, reconocer las "chapuzillas" ;-)

De todas formas la resolución de nombres puede desactivarse en Asterisk,
porque a no ser que vayas a usar ENUM, para poco más te hace falta la
resolución de nombres.

> > > ¿A alguno se le ha ocurrido instalar Asterisk en una red sin conexión a
> > > internet? Pues funciona. :)
> >
> > Funciona siempre que:
> >
> > - Uses direcciones ip en lugar de hostnames
> > - Dispones de un dns interno que te resuelve tus propios hostnames
> > - Los hostnames están en el /etc/hosts

A ver ... nadie va a usar hostnames en vez de IP's sin tener un servidor DNS o
el archivo hosts correctamente configurado, quien lo haga es un suicida.

Los terminales se registran por IP, no por DNS y usar como "host=" algo que no
se a "dynamic" me parece una tontería, que no tiene sentido más allá de un
burdo intento de limitar a un usuario a que se conecte desde una IP concreta,
porque llegados al caso, si usar un "host=nombreequipo" en vez
de "host=dynamic" y nombreequipo cambia de ip de forma dinámica ... ¿no sería
lo mismo que haber puesto "dynamic"?

Muchas veces los problemas en las instalaciones viene derivados de un "exceso
de celo" por parte del administrador, que no suele estar de más, pero que
otras veces no hace más que generar problemas.

--
Saludos.

Raúl Alexis Betancor Santana
Dimensión Virtual S.L.

JesusR

unread,
Jul 13, 2007, 4:11:59 AM7/13/07
to asterisk-es
Hola,

> > > > ¿¿¿Resolución de nombres bloqueantes????
> > > > No querrás decir que se superaba el límite de ficheros abiertos que
> > > > trae
>
> > > de
>
> > > > serie Linux al intentar hacer conexiones al exterior??? :)
>
> > > Desgraciadamente, el libresolv estándar de linux (y de muchos otros
> > > sistemas unix) es bloqueante (síncrono) lo que quiere decir que cuando
> > > un proceso intenta hacer una resolución de nombres (vía
> > > gethostbyname() por ejemplo) el proceso se queda bloqueado hasta que
> > > reciba una respuesta del libresolv. Así que efectivamente, asterisk
> > > puede bloquearse mientras intenta hacer una resolución de nombres.
>
> Para eso está libadns que la usan muchos programas que tienen ese "problema",
> reconozcamolo, Asterisk tiene mucho "marketing bonito" delante, pero las
> tripas dan ASCO, cantidad de partes del código parecen escritas por un alumno
> de primero de carrera.


Sí, está libadns y otras pero la realidad es que asterisk usa
libresolv y los threads se bloquean mientras resuelven :)

Respecto al código, basta ver el chan_sip.c :-/


> De todas formas la resolución de nombres puede desactivarse en Asterisk,
> porque a no ser que vayas a usar ENUM, para poco más te hace falta la
> resolución de nombres.

Mmmmm... puedes usar resolución de nombres para más cosas... registros
SRV por ejemplo. Bien usados son muy útiles.


> > > > ¿A alguno se le ha ocurrido instalar Asterisk en una red sin conexión a
> > > > internet? Pues funciona. :)
>
> > > Funciona siempre que:
>
> > > - Uses direcciones ip en lugar de hostnames
> > > - Dispones de un dns interno que te resuelve tus propios hostnames
> > > - Los hostnames están en el /etc/hosts
>
> A ver ... nadie va a usar hostnames en vez de IP's sin tener un servidor DNS o
> el archivo hosts correctamente configurado, quien lo haga es un suicida.

Este mundo está lleno de suicidas digitales :)

Saludos
JesusR.
http://www.jerocu.net

angel

unread,
Jul 12, 2007, 11:11:55 PM7/12/07
to aster...@googlegroups.com
Hola

Flipao? 0_0 ? 
¿a que se refieren con flipao?
Saludos
-- 
Angel Roma

..."Email redactado con Thunderbird Portable v2 - En"

               .$$$$$$$$$$$$$$$=..
            .$7$7..          .7$$7:.
          .$$:.                 ,$7.7
        .$7.     7$$$$           .$$77
     ..$$.       $$$$$            .$$$7
    ..7$   .?.   $$$$$   .?.       7$$$.
   $.$.   .$$$7. $$$$7 .7$$$.      .$$$.
 .777.   .$$$$$$77$$$77$$$$$7.      $$$,
 $$$~      .7$$$$$$$$$$$$$7.       .$$$.
.$$7          .7$$$$$$$7:          ?$$$.
$$$          ?7$$$$$$$$$$I        .$$$7
$$$       .7$$$$$$$$$$$$$$$$      :$$$.
$$$       $$$$$$7$$$$$$$$$$$$    .$$$.
$$$        $$$   7$$$7  .$$$    .$$$.
$$$$             $$$$7         .$$$.
7$$$7            7$$$$        7$$$
 $$$$$                        $$$
  $$$$7.                       $$  (TM)
   $$$$$$$.           .7$$$$$$  $$
     $$$$$$$$$$$$7$$$$$$$$$.$$$$$$
       $$$$$$$$$$$$$$$$.



Iñaki Baz Castillo

unread,
Jul 16, 2007, 4:25:30 AM7/16/07
to aster...@googlegroups.com
El Friday 13 July 2007 05:11:55 angel escribió:
> Hola
>
> Flipao? 0_0 ?
> ¿a que se refieren con flipao?
> Saludos

En jerga barriobajera viene a decir algo así como "atontao". :)

Reply all
Reply to author
Forward
0 new messages