The 3CX Voice Application Designer (VAD) is a powerful tool for creating voice applications quickly and easily, without needing to have great programming or telephony skills. These applications are deployed to the server where 3CX Phone System is installed, and are implemented as digital receptionists. Through the management interface it is possible to define the circumstances under which each of these applications is activated, eg for a specific PSTN line.
While creating these applications using the VAD is significantly easier than doing it programmatically, you can always make mistakes, and in these cases is necessary to make a correct diagnosis of the problem in order to resolve it.
First step: Make sure that the project was successfully deployed
It could happen for example that the project is deployed to a test 3CX server rather than the production 3CX server, and that when we make a call to the production, the callflow is not as expected. Therefore it is important to first make sure that the project is deployed on the correct server. For this it is necessary to check two things:
- That project callflows appear listed as digital receptionists in the 3CX management interface.
- That project files are installed on the 3CX Phone System server within the “%ProgramData%\3CX\Data\Http\Interface\ivr\ProjectName_BuildNumber” folder, where “Projectname” is the name of the project and “BuildNumber” is the build number automatically generated by the VAD while compiling the project. Inside this directory there should be the relevant files with extensions VXML, ASPX, WAV, MP3 and DLL.
If we find that the project was not correctly deployed, it will be necessary to verify that we are deploying to the correct server, and that settings are appropriate for the web server being used by the 3CX Setup (IIS, Abyss).
Second step: Verify there are no run-time errors
Once we are sure that the project was successfully deployed, we can verify errors at runtime. Log Messages are generated in the %ProgramData%\3CX\Data\Logs\3CXIvrServer.log file. If necessary it is also possible to raise the verbosity of the log messages to get more detailed information. This can be done by adjusting the values in the %ProgramData%\3CX\Bin\3CXLogger.ini file as in the following section:
Level = 8
Severity = Critical Error Trace Log
Format = $ShortDT|$ThreadID|$FileLine:
KeepBackup = 0
File = C:\Documents and Settings\All Users\Application Data\3CX\Data\Logs\3CXIvrServer.log
MaxFileSizeKB = 2048
Third step: Check for errors in the execution of code in the Web Server
By deploying the project in debug mode, or when using advanced components, the application generates code to run on the Web (ASPX pages). If errors occur during the execution of this code, they are recorded in log files located within the project directory (%ProgramData%\3CX\Data\Http\Interface\ivr\ProjectName_BuildNumber). You can use different log files, depending on when the error occurs. For example:
- Errors_Debug.log: This file contains the description of the errors occurred when generating debug information.
- Errors_WebInteraction.log: This file contains the description of the errors occurred when accessing a web server.
- Errors_WebServicesInteraction.log: This file contains the description of the errors that occurred when running a web service.
- Errors_SocketClient.log: This file contains the description of the errors that occurred when connecting to a socket server.
- Errors_Record.log: This file contains the description of the errors that occurred when uploading a recorded audio file to your project directory.
- Errors_FileManagement.log: This file contains the description of the errors that occurred when reading or writing files to disk.
- Errors_EMailSender.log: This file contains the description of the errors occurred when sending an e-mail.
- Errors_DatabaseAccess.log: This file contains the description of the errors occurred when trying to access a database (connection failures, authentication, or SQL Syntax errors).
- Errors_Cryptography.log: This file contains the description of the errors occurred while encrypting or decrypting information.
Taking all these points into consideration, it should be possible to diagnose any problems related to implementation of callflows created by 3CX Voice Application Designer.