3CX.com.vxi'. Error ID 210

Discussion in 'CRM / Helpdesk / App Integration' started by kilo13, Dec 22, 2010.

Thread Status:
Not open for further replies.
  1. kilo13

    Joined:
    Dec 22, 2010
    Messages:
    14
    Likes Received:
    0
    I keep getting this code and a hang up after a loop around on a user input menu option. The option loops around getting a user input for a menu option. it goes for two loops no problem and on the second loop as it is about to play the response back on the person entry gets this code and then disconnects.
     
  2. VAD_Support

    VAD_Support Active Member

    Joined:
    Aug 6, 2009
    Messages:
    690
    Likes Received:
    0
    Hi,

    Can you upload the logs with the error? There should be more information in the 3CXIvrServer.log file. Also, please enable verbose log level in the configuration file "%ProgramData%\3CX\Bin\3CXLogger.ini":

    [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

    Thanks,
     
  3. kilo13

    Joined:
    Dec 22, 2010
    Messages:
    14
    Likes Received:
    0
    See the attached trace file
     

    Attached Files:

  4. VAD_Support

    VAD_Support Active Member

    Joined:
    Aug 6, 2009
    Messages:
    690
    Likes Received:
    0
    Hi,

    Thanks for sending the log. I couldn't find more details about the error. Can you please send me the file without the word "trace" in the name (3CXIvrServer.log)? Maybe it has the information I need. Also, can you post your project here or send it to me via a PM? Maybe I find what's going on looking at the project.

    Thanks,
     
  5. kilo13

    Joined:
    Dec 22, 2010
    Messages:
    14
    Likes Received:
    0
    Copy of the ivr log attached. I tried to do the request for the debug what you outlined but it shut down the entire system causing runtime errors forcing a backup and reinstall to get it up and running again properly this morning. However that being said, over the past couple of days I found the following;
    1.) The User defined component I had set up has a licence plate entry system with the play back of the letter or number wave file as separate User defined component with 36 if options for each letter and number(A-Z0-9).
    2.) Each time the person got to the fourth or fifth letter or number it would drop. At first I thought this was due to CONCATENATE of the character to the over all plate. Removed that but had the same problem.
    3.) I removed the user defined component and wrote using all the options directly with no user defined component and had success with the system allowing entry and concatenate to the plate unlimited with no system shut down.
    4.) I then returned the user defined component with the wave file and sure enough the system disconnected the call on the 4th and fifth entry. On debugging it showed that the call was dropped in the user defined component of the letters.
    5.) I am not sure but after much testing it appears that you are limited by the number of times that you can call a user defined component with in the call path. Which one I guess could expect as a person could create an infinite loop that would cause major problems , but ten calls to the same component is a little low for a shut down to occur.
     

    Attached Files:

  6. VAD_Support

    VAD_Support Active Member

    Joined:
    Aug 6, 2009
    Messages:
    690
    Likes Received:
    0
    Hi,

    Yes, you're right, the 3CX IVR is only able to execute aproximately 500 components in a single call, and I'm pretty sure that this is what you're experiencing. When you execute the callflow in debug mode, that number decreases because in debug mode there are more web requests to the web server, so the call could get dropped when you execute aproximately 250 components.

    The conditional component uses 1 execution for each branch, so if you need to take the last branch, you will be using 36 executions just there.

    Maybe one option could be changing the single Conditional component with 36 branches, with a tree of Conditionals, so the decision takes less web requests to execute. That way your callflow will be able to execute longer.

    Other thing you may try is moving some code (for example a loop) into a single ExternalExecutionComponent, and execute all that in a single component. You need to write a DLL in .NET for example, but that will make the callflow faster and will make far less web requests.

    I hope that the information above helps you.

    Best regards,
     
  7. kilo13

    Joined:
    Dec 22, 2010
    Messages:
    14
    Likes Received:
    0
    It helps in that I now understand the limitation of what I can do with the visual part. As to writing dll, I guess I will need to do some reading. What about the javascript can I pass a variable from menu input into the java script as the documentation seems to point only to respond to javascript creating a date which can be update a variable? ie switch statement
     
  8. VAD_Support

    VAD_Support Active Member

    Joined:
    Aug 6, 2009
    Messages:
    690
    Likes Received:
    0
    You can use javascript to perform computations, loops, etc, but you can't take different visual branches depending on a javascript switch. But, instead of a single conditional with 36 branches, you could create for example a first conditional with 2 branches, one for letters and other for numbers. Then, into each branch you could put another conditional, the first for letters between A to M, and the second from N to Z, and so on. This way you can play the right file with a few steps.
     
  9. kilo13

    Joined:
    Dec 22, 2010
    Messages:
    14
    Likes Received:
    0
    Are you saying that if component 36 branches prompts would all be initialized each time I loop say seven times so this would be considered 252 separate calls. If I understand what you are saying then that the two if branches numbers and letters would be called but only the number would be called if I go down that path for a total of 13 at seven loops for 91 separate calls to the server? Also that being said I am limited to 500 components in any given callflow what if I transfer to another call flow is that added on or considered separate?
     
  10. VAD_Support

    VAD_Support Active Member

    Joined:
    Aug 6, 2009
    Messages:
    690
    Likes Received:
    0
    The Conditional component evaluates conditions from left to right. So, if you have a Conditional component with 36 branches and the last branch is selected, then it will count 36 blocks executions. But if the first branch is selected, it will only count 1 block execution.

    Changing that big conditional with a tree of small conditionals reduces the average quantity of blocks executions.

    Transferring the call to another callflow will reset the counter, so it could be a possible solution to the problem.
     
Thread Status:
Not open for further replies.