Debugging Asterisk
Una de las tecnicas mas importantes de aprender, tanto cuando se inicia con Asterisk como cuando ya se es un Guru
es saber extraer informacion y comprenderla, en el momento de un problema.
He escuchado a muchas personas hablar sobre el tema “tan escabroso” como tomar “trazas” en asterisk. Pero bueno muy humildemente les compartire los pasos que a mi me man funcionado de maravilla.
Prerequisito INDISPENSABLE:
Asterisk 1.4.30 en adelante.
Puede funcionar con versiones anteriores pero no garantizo la exactitud de la info a extraer.
Primero
Vamos a editar el archivo logger.conf que se encuentra el /etc/asterisk para activar el tomar trazados de la actividad. Tenemos que agregar la siguiente linea, con la palabra: “miDebugLog” esto pueden cambiarlo por cualquier otra cosa que quieran, este va a ser el nombre del archivo en donde se guardara la informacion . Un buen ejemplo podria ser : Problema_12345_full.log
logger.conf [logfiles] miDebugLog => notice,warning,error,debug,verbose,dtmf
Desde la linea de comando de Asterisk vamos a reiniciar el modulo del logger:
*CLI> core set verbose 15 *CLI> core set debug 15 *CLI> module reload logger
Si por algun motivo este archivo ya habia sido utilizado anteriormente para algun otro problema, pues lo mejor sera que se roten los logs:
*CLI> logger rotate
Dependiendo de el problema que tengan asegurese de activar el trazado en el canal correcto, puede ser SIP, IAX, IAX2.
Vamos a activar para SIP: Asterisk 1.4 y 1.6
*CLI> sip set debug on *CLI> sip set debug
Activar para IAX2: Asterisk 1.4 y 1.6
*CLI> iax2 set debug on *CLI> iax2 set debug
Luego de esto vamos a tratar de reproducir el problema….
Una vez que terminemos de tomar los datos que necesitamos recordemos de desactivar todo, para no toparnos con sorpresas mas adelante.
*CLI> core set verbose 0 *CLI> core set debug 0 *CLI> sip set debug off *CLI> iax2 set debug off
Ahora nuestro archivo con la data la podremos encontrar en /var/log/asterisk/miDebugLog.
Recordemos tambien desactivar el logger.conf comentando o borrando la linea que agregamos.
logger.conf [logfiles] ;miDebugLog => notice,warning,error,debug,verbose,dtmf
Ahora reiniciemos el logger como lo hicimos anteriormente
*CLI> module reload logger