SER (SIP Express Router) es un poco duro de pelar a veces y nos causa más problemas de los deseados. Hay varios métodos básicos para tratar de detectar lo que pasa y poder solucionarlos.
1. Si no conseguimos que el servidor SER arranque correctamente y nos da algún error podemos mirar el archivo
/var/log/messages
donde se guardan las trazas de lo que ha pasado. Esto nos da una información importante sobre cual es el problema que tenemos.
También podemos intentar arrancar con "#/usr/local/sbin/ser -c" en lugar de "# /usr/local/serctl start" . Con esto las trazas se nos mostrarán en pantalla.
2. Si el servidor SER arranca de forma correcta pero parece funcionar mal podemos monitorizar lo que está pasando con:
/usr/local/sbin/serctl moni
3. Si el script de mysql ser_mysql.sh no funciona correctamente comprobar que tenemos correctamente instalado el cliente de mysql (además del servidor)
Algunos errores que se producen y su posible solución:
Problema
Posible solución
Starting SER : PID file /var/run/ser.pid does not exist -- SER start failed
Al intentar arrancar el servidor con /usr/local/sbin/serctl start
Hay que mirar en /var/log/messages a ver que ha pasado porque es un error muy general
ser: ERROR: load_module: could not open module </usr/local/lib/ser/modules/mysql.so>: libmysqlclient.so.15: cannot open shared object file: No such file or directory
Este error podemos verlo en /var/log/messages
Este error es un poco raro pero de fácil solución aunque no se si muy ortodoxa. Yo lo solucione así. Falta una libreria pero seguramente tengamos otra superior o inferior: Buscamos en /usr/lib y hacemos por ejemplo
# ln -s libmysqlclient.so.14 libmysqlclient.so.15
new connection(): Can´t connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Este error podemos verlo en /var/log/messages
Normalmente sucede que mysql.sock no está en ese directorio sino en /tmp/ se puede arreglar haciendo un link virtual
# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
submit_query(): Unknown column 'table version' in field list'
Este error podemos verlo en /var/log/messages
Este es un error muy curioso de compatibilidad entre ser 0.8.X y 0.9.x. Han cambiado el nombre de un campo de una tabla. Intentamos ejecutar la version 0.9.x pero con tablas de la 0.8.x
Solución: volver a ejecutar el script ser_mysql.sh de la vesrión 0.9.x
OJO: hacer copia de seguridad de las tablas si hay valores.
/usr/local/sbin/ser_mysql.sh: line 160: gen_ha1: command not found HA1 calculation failed
Al intentar ejecutar /usr/local/sbin/ser_mysql.sh create
Esto sucede si ejecutamos el script y no somos root. No vale con hacer sudo. Hace falta que estemos logueados como root. Si lo hacemos se soluciona el problema.
* Warning: no fifo_db_url given - fifo DB commands disabled
Este error podemos verlo en /var/log/messages
No es más que un warning. Podemos ignorarlo sin problemas. Pero podemos eliminarlo haciendo lo siguiente
Si tienes algún otro error que consigues arreglar me lo puedes mandar por email y lo incluiré aquí para el bien de todos. Y si estás muy desesperado por algún problema pues puedes escribir también aunque quizás no sepamos como solucionarlo.