Cómo diagnosticar problemas de aplicaciones generadas con el 3CX Voice Application Designer
El 3CX Voice Application Designer (VAD) es una poderosa herramienta que permite crear aplicaciones de voz en forma rápida y sencilla, sin necesidad de contar con grandes conocimientos de programación o telefonía.
Estas aplicaciones son desplegadas al servidor donde se encuentra instalado 3CX Phone System, y son ejecutadas como recepcionistas digitales. A través de la interfaz de administración es posible definir en qué circunstancias se activa cada una de estas aplicaciones, por ejemplo para determinadas líneas PSTN.
Si bien crear estas aplicaciones es significativamente más sencillo que hacerlo programáticamente, siempre es posible cometer errores, y en estos casos es necesario hacer un diagnóstico correcto del problema para poder corregirlo.
Primer paso: asegurarse que el proyecto fue desplegado correctamente
Podría suceder por ejemplo que el proyecto es desplegado involuntariamente a un servidor 3CX de pruebas, y que cuando hacemos una llamada al de producción no encontramos al callflow. Por esto es importante asegurarnos en primer lugar de que el proyecto se encuentra desplegado en el servidor que queremos. Para esto es necesario verificar 2 cosas:
- Que los callflows del proyecto aparezcan listados como recepcionistas digitales, en la interfaz de administración de 3CX.
- Que los archivos del proyecto se encuentren en el servidor donde está instalado 3CX Phone System, dentro del directorio %ProgramData%\3CX\Data\Http\Interface\ivr\ProjectName_BuildNumber, donde “ProjectName” es el nombre del proyecto y “BuildNumber” es el número de build generado automáticamente por el VAD al compilar el proyecto. Dentro de este directorio deberían estar los archivos de extensión VXML, ASPX, WAV, MP3 y DLL.
Si encontráramos que el proyecto no fue desplegado correctamente, será necesario verificar que estemos intentando hacerlo al servidor correcto, y que los parámetros de despliegue sean los adecuados para el servidor web que utilice la instalación de 3CX (IIS, Abyss o Cassini).
Segundo paso: verificar errores en tiempo de ejecución
Una vez que estamos seguros que el proyecto fue desplegado exitosamente, podemos verificar posibles errores en tiempo de ejecución. Las anotaciones de este tipo son generadas en el archivo %ProgramData%\3CX\Data\Logs\3CXIvrServer.log. Puede resultar conveniente subir el nivel de log de este archivo para que se genere información más detallada. Esto puede hacerse ajustando los valores que aparecen en el archivo %ProgramData%\3CX\Bin\3CXLogger.ini en la siguiente sección:
[3CXIvrServer\Logger\Outputs\LogFile]
Level=8
Severity=Log Error Critical Trace
Format=$ShortDT|$ThreadID|$FileLine:
KeepBackup=0
File=C:\Documents and Settings\All Users\Application Data\3CX\Data\Logs\3CXIvrServer.log
MaxFileSizeKB=2048
Este archivo puede mostrar la descripción de errores de javascript, los cuales resultan bastante comunes al utilizar variables en el proyecto.
Tercer paso: verificar errores en la ejecución de código en el servidor web
Al desplegar el proyecto en modo debug, o utilizar componentes avanzados, la aplicación genera código a ejecutarse en el servidor web (páginas ASPX). En caso de producirse errores durante la ejecución de este código, éstos son anotados en archivos de log ubicados dentro del directorio del proyecto (%ProgramData%\3CX\Data\Http\Interface\ivr\ProjectName_BuildNumber). Pueden utilizarse distintos archivos de log, dependiendo del momento en que se produce el error. Por ejemplo:
- Errors_Debug.log: este archivo contiene la descripción de los errores ocurridos al generar la información de debug.
- Errors_WebInteraction.log: este archivo contiene la descripción de los errores ocurridos al acceder a un servidor web.
- Errors_WebServicesInteraction.log: este archivo contiene la descripción de los errores ocurridos al ejecutar un web service.
- Errors_SocketClient.log: este archivo contiene la descripción de los errores ocurridos al conectarse con un servidor de sockets.
- Errors_Record.log: este archivo contiene la descripción de los errores ocurridos al subir un archivo de audio grabado al directorio del proyecto.
- Errors_FileManagement.log: este archivo contiene la descripción de los errores ocurridos al leer o escribir archivos en disco.
- Errors_ExternalCodeExecution.log: este archivo contiene la descripción de los errores ocurridos al ejecutar código externo (javascript, COM o .NET).
- Errors_EMailSender.log: este archivo contiene la descripción de los errores ocurridos al enviar un e-mail.
- Errors_DatabaseAccess.log: este archivo contiene la descripción de los errores ocurridos al intentar acceder a una base de datos (errores de conexión, de autenticación, o en las sentencias SQL escritas).
- Errors_Cryptography.log: este archivo contiene la descripción de los errores ocurridos al encriptar o desencriptar información.
Verificados todos estos puntos debería ser posible diagnosticar cualquier problema relacionado con la ejecución de callflows del 3CX Voice Application Designer.