VAD project in 3CX V14 aborts with "error.badfetch"

Status
Not open for further replies.

TWU

Customer
Joined
Jan 12, 2016
Messages
17
Reaction score
1
Hello,
after I updated from 3CX V12.5 to V14 my VAD project for callrouting aborts with "error.badfetch".
When I call the digital receptionist (extension 8520) internally, the VAD code works perfect, but when I call from outside (ISDN), the code execution interrupts and the error handler is executed, which transfers all calls to the reception.
It seems the code does not even start to execute, when called form external lines.
Error log:
START_CALLFLOW_EXECUTION: Main.flow - Build: 41
VARIABLE_CHANGED: project$_CurrentErrorDescription$=
VARIABLE_CHANGED: project$_CurrentErrorName$=error.badfetch
END_EXECUTION: Main.flow - - EH
END_EXECUTION: Main.flow - errorHandlerContainer1 - EH
END_EXECUTION: Main.flow - 0b4c203e-7058-4885-bd98-8d2c6fbb539c.error - EH
END_EXECUTION: Main.flow - - DH

Maybe this is caused by an http error 404, but I do not see why this can be different between internal and external calls, because the IIS log says:
2016-04-05 07:32:57 127.0.0.1 GET /ivr/VADRouting_Debug_41/Main_DebugInfo.aspx application.Main_NextComponentUri%24=&application.Main_NextDisconnectHandlerUri%24=&application.Main_NextErrorHandlerUri%24=&application.MenuResult_InvalidOption=InvalidOption&application.MenuResult_Timeout=Timeout&application.MenuResult_ValidOption=ValidOption&application.RecordResult_Completed=Completed&application.RecordResult_NothingRecorded=NothingRecorded&application.RecordResult_StopBySilence=StopBySilence&application.RecordResult_StopDigit=StopDigit&application.UserInputResult_InvalidDigits=InvalidDigits&application.UserInputResult_Timeout=Timeout&application.UserInputResult_ValidDigits=ValidDigits&application.project%24_CalledNumber=&application.project%24_CallerCompany=&application.project%24_CallerName=&application.project%24_CallerNumber=&application.project%24_CallerNumberWOZero=&application.project%24_CallerString=Incoming%20call%20from%20%25CallerName%25%2C%20%25CallerCompany%25%2C%20CallerNumber%3A%20%25CallerNumber%25%2C%20RoutingDestination%3A%20%25RoutingDestination%25%2C%20Starttime%3A%20%25STARTTIME%25%20-%20EndTime%3A%20%25ENDTIME%25&application.project%24_CurrentErrorDescription%24=&application.project%24_CurrentErrorName%24=&application.project%24_EndTime=&application.project%[email protected]&application.project%[email protected]&application.project%24_MinMatchNumbers=8&application.project%24_Password=*****%24fgH&application.project%24_PbxSipPort%24=5060&application.project%24_Reception=8000&application.project%24_RoutingDestination=8000&application.project%24_SMTPPort=25&application.project%24_SMTPServer=10.1.1.19&application.project%24_SQLDatabase=Phone_CallRouting&application.project%24_SQLServerName=10.110.5.129%5CSQL2008R2&application.project%24_SourceLength=0&application.project%24_StartTime=&application.project%24_Username=3CXUser&application.project%24_WorkingDirectory%24=C%3A%5CProgramData%5C3CX%5CInstance1%5CData%5CHttp%5CInterface%5Civr%5CVADRouting_Debug_41%5C&session.ani=072452557018&session.callid=From_072452557018_To_8520_Menu_8520_%230%2F318&session.dnis=8520 80 - 127.0.0.1 3CXIvrEngine/1.0+libwww/5.3.1 - 404 15 0 3

I also already added
<httpRuntime requestValidationMode=”2.0″ />
<pages validateRequest=”False” />
to the web.config file in the ivr subfolder.

Would kindly appriciate any ideas.

Thanks!
Thomas
 
Hi Thomas,

You're using quite a lot of variables, and the length of the query string is around 2048. I think that a possible cause of this could be that when you call from inside, the caller ID is just 4 digits, and when you call from outside it's larger, and that difference causes that the query string is larger than 2048 characters for external calls, and shorter for internal calls. That could cause that internal calls work and external don't. That 2048 limit is the default for IIS and here Microsoft explains that IIS will return 404 error in that case:
https://www.iis.net/configreference/sys ... uestlimits

In order to avoid this limitation in the query string, you need to change the web.config file into the ivr subfolder, adding the following parameters, for example to extend it to 32768:
Code:
<configuration>
   <system.webServer>
      <security>
         <requestFiltering>
            <requestLimits maxQueryString="32768" />
         </requestFiltering>
      </security>
   </system.webServer>
</configuration>
You might need to restart IIS after making this change.

Hope the information helps.

Kind regards.
 
  • Like
Reactions: elennaro
Thanks a lot for your fast and professional response!
I reduced the length of my variables and it is working fine now!
 
Do you know what the limit on the return string is? I am getting this error:
08:16:29.166|10352|(0):Error! Module '3CX.com.OSBinet'. Error ID 204. rc2
08:16:29.166|10352|(0):DocumentParser::FetchBuffer - could not open URL: udcValidateAccountNumber_MF_eceGetHoldStatus_DoIt.aspx
08:16:29.166|10352|(0):DocumentParser::FetchDocument - exiting with error result 2
08:16:29.166|10352|(0):Error! Module '3CX.com.vxi'. Error ID 203. uriudcValidateAccountNumber_MF_eceGetHoldStatus_DoIt.aspx
 
Status
Not open for further replies.

Latest Posts

Forum statistics

Threads
112,323
Messages
591,894
Members
165,472
Latest member
arneg