Cómo utilizar variables JSON en el dialplan de Asterisk
Nuestro amigo Diogo Serra nos enseña un proyecto muy interesante para trabajar con variables en el dialplan. Consiste en una función que interpreta una cadena JSON obtenida tras consultar un servicio web (utilizando la función CURL o similar) y lo convierte en variables de canal, permitiendo hacer uso de ellas en nuestro dialplan.
Aquí podéis ver una idea básica de esta función:
exten => s,n,set(json=${CURL(http://api.dataprovider.com/somefunction?param=value)})
exten => s,n,set(myvariable=${JSONELEMENT(json,path/to/element)})
La función CURL devuelve una cadena JSON del tipo: {«nombre»:»Elio Rojano», «role»:»usuario»} y con la función JSONELEMENT podemos preguntar por los campos del JSON y asignarlo a variables de canal que pueden ser utilizadas en nuestro dialplan.
Gracias a esta función (que tiene ya su tiempo) y que está disponible en Github, podemos crear dialplan algo más complejos de los habituales y personalizados para determinados usuarios consultando esta información en servicios web que serán las que nos devuelvan el JSON adecuado en cada momento.
Más información: https://github.com/drivefast/asterisk-res_json