Las ultimas versiones de Issabel con Asterisk 16 (y creo que con Asterisk 13 también), vienen con ODBC activado. Este sistema permite hacer consultas a base de datos desde dialplan de manera bastante más sencilla que usando las funciones nativas de MySQL. Ejemplo:
exten => 2222,n,Set(NAME=${ODBC_SQL(SELECT name FROM users WHERE extension='${NUM}')})
Con eso haces la consulta del nombre en la tabla "users" de la base de datos "asterisk" y el resultado te lo deja en la variable de canal NAME. Una sola línea de dialplan contra varias y confusas de usar MYSQL.
Y lo bonito de ODBC es que puedes crear tus propias funciones que hagan cosas complicadas en SQL, y llamar a dichas funciones desde el dialplan. Este ejemplo usa la función "SQL" que incluímos en issabel dentro de /etc/asterisk/odbc/additional.conf, que se ve asi:
[SQL]
dsn=asterisk
readsql=${ARG1}
Pueden crearse funciones que conecten a otras bases de datos, y con secciones read y write, con lo que tu dialplan se puede ver mucho más "limpio", como ser:
exten => s,1,Set(SALDO=${ODBC_CONSULTASALDO(${CLIENTE})})
exten => s,n,Playback(su-saldo-es-de)
exten => s,n,SayNumber(${SALDO})
Me olvidaba dejar un link en voip-info con algo de info sobre estas funciones:
https://www.voip-info.org/asterisk-func-funcodbc/