Call Flow Designer for 3CX V20

I'm just not sure if CFD apps are available on Pro or if ENT is required for hosted environments...
This could of course, be an issue, but then they will just have to update to ENT if this is an issue; it isn't that much more to pay to have all functionalities anyway.
 
Hi,

I encountered an issue when upgrading CFD from V18 to V20. The concatenate command doesn't seem to be correctly identified in V20. Can somebody help? Here are the screenshots.

Screenshot_45.pngScreenshot_43.pngScreenshot_44.png
 
Hi @Gloria Larasati

Did you read this post from the first page, especially the part about variables in CFD v20 SQL statements?
 
Hi,

I encountered an issue when upgrading CFD from V18 to V20. The concatenate command doesn't seem to be correctly identified in V20. Can somebody help? Here are the screenshots.

View attachment 47119View attachment 47120View attachment 47121
Check this:

You need to change the CONCATENATE function to a static text containing references to parameters. Then add the values for each parameter in the grid below. This is to avoid SQL injection.
 
Hi,

I encountered an issue when upgrading CFD from V18 to V20. The concatenate command doesn't seem to be correctly identified in V20. Can somebody help? Here are the screenshots.

View attachment 47119View attachment 47120View attachment 47121
Given the complexity in your statement, I doubt you will be able to get this to work without the CONCAT function which, while I agree could cause a security risk, should still have an override for private networks that aren't using a public API and have assessed and accepted the risk (but I digress).

I would suggest that you create a stored procedure on the SQL side then just invoke it through an EXEC command in which you can easily pass the session ani variable and then let SQL do the parsing instead of the CFD. (Or just edit the code directly to do this and upload it). Their implementation of this (removal of concatenate without providing any change int EHR documentation not updated since 2021) leaves a lot to be desired but I found that trying to do much on the CFD side in terms if SQL is rendered useless by this update and you are better just calling a SP instead of trying to formulate SQL language in CFD.
 
Adjusting the SQL statement to work safely is extremely easy. No need for stored procedures. Just use the parameter in your query as explained above.
 
  • Like
Reactions: jed and Evolute IT
Adjusting the SQL statement to work safely is extremely easy. No need for stored procedures. Just use the parameter in your query as explained above.
Hi Everyone,

the solution "works". thank you for your support
 
We are encountering an issue when trying to upload an IVR project created using 3CX Call Flow Designer (CFD). Upon selecting the .zip file and attempting to upload, we receive the following error:


Error Message:
ScriptCode: Invalid value


Steps to Reproduce:


  1. Navigate to Call Flow Apps > Add Call Processing Script.
  2. Select "Upload a Call Processing Script project".
  3. Upload a .zip file containing the IVR project.
  4. Click OK and observe the error.

Troubleshooting Done:
✔ Verified that the .zip file contains all necessary CFD files.
✔ Confirmed that the .zip was generated correctly using the latest 3CX Call Flow Designer version.
✔ Attempted different IVR projects, but the same error persists.
✔ Tested on multiple browsers and systems, issue remains.


System Information:


  • 3CX Version: 3cx V20 Update 5
  • Call Flow Designer Version: V20
  • Hosting Environment: Google Cloud

Can anyone provide guidance on what might be causing this error? Any help is appreciated.


Note:

We have tried disabling components and when the main.cs lines reached 3810 lines and 340606 characters It uploaded successfully.


Then enabled a component and it stopped uploading after reaching 4670 lines and 430272 characters and we started facing this error.
 
We are encountering an issue when trying to upload an IVR project created using 3CX Call Flow Designer (CFD). Upon selecting the .zip file and attempting to upload, we receive the following error:


Error Message:
ScriptCode: Invalid value


Steps to Reproduce:


  1. Navigate to Call Flow Apps > Add Call Processing Script.
  2. Select "Upload a Call Processing Script project".
  3. Upload a .zip file containing the IVR project.
  4. Click OK and observe the error.

Troubleshooting Done:
✔ Verified that the .zip file contains all necessary CFD files.
✔ Confirmed that the .zip was generated correctly using the latest 3CX Call Flow Designer version.
✔ Attempted different IVR projects, but the same error persists.
✔ Tested on multiple browsers and systems, issue remains.


System Information:


  • 3CX Version: 3cx V20 Update 5
  • Call Flow Designer Version: V20
  • Hosting Environment: Google Cloud

Can anyone provide guidance on what might be causing this error? Any help is appreciated.


Note:

We have tried disabling components and when the main.cs lines reached 3810 lines and 340606 characters It uploaded successfully.


Then enabled a component and it stopped uploading after reaching 4670 lines and 430272 characters and we started facing this error.
It looks like your CFD project is quite big. You have lots of custom components, and this causes the the C# code is extremely large. 3CX is restricting the length of the C# code you can upload. If 3CX doesn't remove this limitation, something you could try is splitting your project in different apps, and transfer the call between them. Just an idea...
 
  • Like
Reactions: N_G and Evolute IT
It looks like your CFD project is quite big. You have lots of custom components, and this causes the the C# code is extremely large. 3CX is restricting the length of the C# code you can upload. If 3CX doesn't remove this limitation, something you could try is splitting your project in different apps, and transfer the call between them. Just an idea...
Thank you for your response.


@NicholasP_3CX has there been any recent limitation introduced in the 3CX v20 Update 5 for C# code? The same file was functioning perfectly in previous updates.


When can we expect this issue to be resolved?
 
Thank you for your response.


@NicholasP_3CX has there been any recent limitation introduced in the 3CX v20 Update 5 for C# code? The same file was functioning perfectly in previous updates.


When can we expect this issue to be resolved?
waiting for response.

Also ,Please confirm if there is any way we can directly place the code file on server?
Like we can upload the audio files on path /var/lib/3cxpbx/Instance1/Data/Ivr/Prompts/Callflows/<IVR_Name>

If there is such place please share the path.
 
waiting for response.

Also ,Please confirm if there is any way we can directly place the code file on server?
Like we can upload the audio files on path /var/lib/3cxpbx/Instance1/Data/Ivr/Prompts/Callflows/<IVR_Name>

If there is such place please share the path.
No, the code is stored in 3CX properties, i.e. inside the 3CX database, so you can only upload it through the console.
 
  • Like
Reactions: Evolute IT
Thanks for maintaining this app which is awesome and we use extensively
if you plan to release further updates, can you consider a minor QoL change on the date/time condition component, disabling the scroll wheel functionality on the dropdown menus?
if there's multiple entries and the box doesn't fit them all, scrolling down using the mouse wheel, if you happen to hover on a dropdown, it catches the scroll input and changes the entries. This has happened a few times and caused mistakes on our part

1746690253191.gif
 
Nice to see that my baby is still alive ;)


This is how you should use it:
View attachment 46776
Hello,

What about for a query like CONCATENATE("UPDATE dialer_accounts SET callstatus = 'Dialling', updated_at = current_timestamp WHERE phonenumber = '",getNextNumber.ScalarResult,"'") ?
 
Hello,

What about for a query like CONCATENATE("UPDATE dialer_accounts SET callstatus = 'Dialling', updated_at = current_timestamp WHERE phonenumber = '",getNextNumber.ScalarResult,"'") ?
You need to use parameters now, to avoid SQL injection. So your query should be something like:
"UPDATE dialer_accounts SET callstatus = 'Dialling', updated_at = current_timestamp WHERE phonenumber = @PhoneNumber"

Then add the parameter PhoneNumber and set it to the value getNextNumber.ScalarResult.
 
Too bad the main CFD Manual hasn't been updated in this regard - I spent hours this weekend figuring out how to use the Database Acsess Component in regards to the parameter syntax...

Would be helpful to have this updated soon:
https://www.3cx.com/docs/cfd-accessing-database/

So glad CFD made it into V20 ! Thank you thank you thank you. And congratulations to the baby Mr. dos Santos ;-). It's a beautiful baby.
 

Latest Posts

Forum statistics

Threads
111,929
Messages
589,783
Members
164,802
Latest member
SpacetelSupport