Hasta hace poco tiempo, los archivos de audio a reproducir en una aplicación creada con el 3CX Voice Application Designer debían ser conocidos en tiempo de diseño. Es decir, al momento de diseñar la aplicación era necesario especificar los nombres completos de los archivos a utilizar, sin posibilidad de obtenerlos en forma dinámica. De este modo, aplicaciones que necesitaran reproducir un archivo por ejemplo obteniendo el nombre a partir de una base de datos, no eran posibles de realizar con esta herramienta.
Una de las nuevas funcionalidades agregadas recientemente al VAD permite la reproducción de archivos de audio determinando el nombre en tiempo de ejecución, utilizando expresiones, dando mucha más flexibilidad a la hora de escribir las aplicaciones.
En este artículo describiremos cómo hacer uso de esta nueva funcionalidad.
Nuevo tipo de prompt “Dynamic Audio file”
Esta nueva funcionalidad se encuentra implementada como un nuevo tipo de prompt: “Dynamic Audio file”. Al seleccionar este tipo de prompt, el nombre del archivo de audio se define mediante una expresión, y es posible utilizar el “Expression Editor” para crear la expresión deseada con facilidad.
Una vez agregado el prompt de este tipo, posicionándonos en el campo “AudioFileName” aparecerá el botón que nos permite abrir el editor de expresiones, como se muestra resaltado en la siguiente figura:
Allí podremos crear la expresión deseada con facilidad. La expresión creada debe retornar el nombre del archivo de audio, eventualmente como ruta al archivo relativa desde el directorio de trabajo de la aplicación. No deben utilizarse rutas al archivo absolutas. Si el archivo de audio se encuentra en la carpeta de audio del proyecto, entonces simplemente debe crear una expresión que retorne el nombre del archivo, sin especificar ninguna ruta.
Por ejemplo, si el archivo a reproducir se llama “Audio.wav” y el proyecto es desplegado en %ProgramData%3CXDataHttpInterfaceivrMyVadProject, la siguiente tabla muestra el valor que debe retornar la expresión para lograr encontrar el archivo en distintas ubicaciones:
|
Ubicación del archivo |
Valor retornado por la expresión |
| %ProgramData%3CXDataHttpInterfaceivrMyVadProject | Audio.wav |
| %ProgramData%3CXDataHttpInterfaceivrExternalAudio | ..ExternalAudioAudio.wav |
| %ProgramData%3CXExternalAudio | ……….ExternalAudioAudio.wav |





