[SR-Users-ES] [Kamailio-Users-ES] Lectura de base de datos con openser

Iñaki Baz Castillo ibc en aliax.net
Mar Mayo 5 20:28:03 CEST 2009


El Martes, 5 de Mayo de 2009, Laura10 escribió:
> Hola,
> estoy realizando la consulta de una base de datos desde opensips, con las
> siguientes líneas de configuración en el fichero opensips.cfg:
> route[3]
> {
>         avp_db_query("SELECT estado FROM ejemplo2", "$avp(s:estado)");
>         if (!avp_check("$avp(s:estado)","re/(0|1)/g"))
>                 {
>                 sl_send_reply("606", "Not Acceptable");
>                 exit;
>                 }
>         else if ($avp(s:estado)=="0")
>                 {
>                 sl_send_reply("480","Temporarily Unavailable");
>                 exit;
>                 }
> }
>
> A esta ruta se accede cada vez que llega un INVITE. El campo estado en la
> base de datos de mysql ejemplo2 esta declarado como TINYINT(1).
> El problema que tengo es que siempre se queda en el primer if, aunque el
> valor que este en la base de datos sea 0 o 1, entonces no sé si estoy
> realizando la lectura mal o si el tipo TINYINT se lee de alguna otra
> manera.

"Creo" que al almacenar el resultado de la query en un AVP de tipo "s" el 
valor se almacena como string (que no estoy muy seguro), y entonces no sé si 
tu expresión regular funciona.

Prueba primero a imprimir el resultado de dicho AVP:

  avp_db_query("SELECT estado FROM ejemplo2", "$avp(s:estado)");
  xlog("L_INFO", "avp(s:estado) = $avp(s:estado)\n");


> Además me gustaría saber si hay alguna forma de saber cuál es el
> valor que se almacena en $avp(s:estado).

Sí, lo de antes :)


-- 
Iñaki Baz Castillo <ibc en aliax.net>



More information about the SR-Users-ES mailing list