La poderosa herramienta para la creación de aplicaciones de voz para 3CX, el 3CX Voice Application Designer (VAD), permite grabar el audio de la llamada y guardarlo en un archivo en disco. Pero la configuración por defecto del servidor web de 3CX podría hacer que la grabación del archivo en disco falle. En este artículo explicamos por qué sucede esto y cómo solucionarlo.
La aplicación generada por el VAD
Cuando el VAD compila una aplicación, transforma los diagramas de la aplicación diseñada en scripts de VoiceXML. Estos scripts son páginas web que se ejecutan en el servidor web de 3CX, y a medida que la llamada avanza, se va transicionando entre distintas páginas. Cada componente del diagrama puede ser transformado en una o dos páginas web.
El componente Record
Para grabar el audio de una llamada desde una aplicación creada con el 3CX Voice Application Designer es necesario utilizar un componente Record. Cuando configuramos a este componente para guardar la grabación en disco, el VAD genera dos páginas web para este componente. La primer página es la encargada de decirle al IVR de 3CX que grabe el audio en memoria. Luego el IVR de 3CX realiza un pedido HTTP POST hacia la segunda página generada, enviando al archivo de audio grabado como datos dentro de ese requerimiento.
El servidor web de 3CX
Ya sea que se utilice IIS o Abyss como servidor web, la configuración por defecto limita el tamaño de la información que puede recibirse en un pedido HTTP. Esta limitación tiene como objeto prevenir ataques de denegación de servicio que son causados, por ejemplo, por usuarios que envían archivos de gran tamaño al servidor para mantenerlo ocupado y que éste no pueda responder a los pedidos reales.
El valor por defecto de este límite es de 4MB, por lo que esto comienza a molestar cuando intentamos grabar audio de alrededor de 5 minutos de duración.
Cómo lo resolvemos
La solución es muy sencilla. Solo es necesario modificar un archivo de configuración para elevar este límite hasta un punto donde ya no nos moleste. Para hacer esto:
1) Abra el siguiente archivo de configuración con un editor de texto:
%ProgramData%3CXDataHttpInterfaceivrweb.config
2) Agregue el parámetro maxRequestLength asignando el valor deseado. Por ejemplo, para configurarlo en 16Mb y permitir grabaciones de hasta aproximadamente 20 minutos:
<configuration>
<system.web>
<httpRuntime maxRequestLength=”16384″/>
</system.web>
</configuration>
NOTA: el archivo de configuración tendrá muchos otros valores, aquí solo mostramos el parámetro a agregar y los elementos que lo contienen (configuration/system.web), para dar una referencia del lugar donde ubicarlo.



