• V20: 3CX Re-engineered. Get V20 for increased security, better call management, a new admin console and Windows softphone. Learn More.

VAD to Call Flow Designer

Status
Not open for further replies.

3CX 1138

Joined
May 14, 2018
Messages
3
Reaction score
0
Hello,

I have an old (VAD Project) .vadProj that I need to convert to Call Flow Designer (.cfproj) to allow an upgrade to the newest version of 3CX and all the great features that come with that.

When I open the .vadProj in Call Flow Designer it appears to convert everything okay (makes .baks and cfdproj file) but when I build I get lots (hundreds) of errors like this:

Error CS1056 Unexpected character '$'

That's referencing the C# project created in the output folder. I don't want to fix the C# project because surely when I change the flow it will recreate the same problem.

  1. The build errors are just syntax errors, is there some setup of .net core I've missed? All I did was run the Call Flow Designer installer so far.
  2. If the answer to 1 is no, what's my best next move, rebuild from scratch as a new Call Flow Designer project? It's fairly complex.
  3. The old VAD Project calls a .net framework (IE not .net core) DLL that I share with a WPF application - so the business rules done on the phone can be replicated in the app. Do I need to rewrite that dll for core?

Thanks in advance.
 
Hello @3CX 1138,

Migrating a VAD project to the new CFD can be very easy, or it might require some work, depending on the features you use. For example, if you were using any Javascript expression, you will need to manually change that to C#. That can't be automatically done by the tool.

Most components are automatically migrated. However, in your case you will need to do manual changes on your new CFD project. In any case, it's better to work on the migrated project than starting from scratch, as most of the job will be done by the CFD when it migrates the old project. You must not edit the C# output project created by the tool, in order to fix the compilation errors you need to work on the CFD project. That output project might be helpful to understand where the errors are, but it will be recreated everytime you build from the CFD, so making changes to it is not the way to go.

Regarding your DLL, please note that the CFD can't load a DLL. The Launch External Code component now only lets you specify a C# source file. You can't specify a DLL there. So you will need to change that. You will need to create a C# file that loads your DLL using .NET Core code. Your DLL can be .NET Framework if it will be loaded in Windows only. If you need to run the app on Linux, then you will need to migrate your DLL as well...

Kind regards.
 
In case it wasn't clear by Ernesto's comment, your external code c# library needs to be rewritten to be .net core.
 
Thanks voiptoys, edossantos,

I think I get it, and looking at it now all the build errors on the csproj (Unexpected character '$', Expected ;) are related to calling objects from the dll and that's just not supported anymore, so why would it create valid C# :)

On the C# file calling my dll (whether that's .net core or not) is there a way to add a reference in the c# project to the dll via the Call Flow Designer or do I need to call via reflection from my C# file?

Simlarly if I just convert my original dll into .net core c# files then add them to the .cpfproj, are all cs files compiled or just the ones referenced explicitly in CFD? Am I best just creating one big c# file with all my classes?


 
On the C# file calling my dll (whether that's .net core or not) is there a way to add a reference in the c# project to the dll via the Call Flow Designer or do I need to call via reflection from my C# file?
You can't add a reference, and 3CX will not load any DLL even if you put them in the same folder where the 3CX Queue Manager is running from. You need to load the assembly from your C# code. Please check this thread having a similar issue:
https://www.3cx.com/community/threa...ow-designer-app-to-mysql-dll-not-found.56080/

Simlarly if I just convert my original dll into .net core c# files then add them to the .cpfproj, are all cs files compiled or just the ones referenced explicitly in CFD? Am I best just creating one big c# file with all my classes?
All the files that you put into the "Libraries" folder will be included and compiled in your CFD app. So you can split your code in multiple files, and then just call one from a Launch External Script component.
 
Great, thanks Ernesto.
 
Status
Not open for further replies.

Getting Started - Admin

Latest Posts

Forum statistics

Threads
141,630
Messages
748,955
Members
144,746
Latest member
gamingpro2131
Get 3CX - Absolutely Free!

Link up your team and customers Phone System Live Chat Video Conferencing

Hosted or Self-managed. Up to 10 users free forever. No credit card. Try risk free.

3CX
A 3CX Account with that email already exists. You will be redirected to the Customer Portal to sign in or reset your password if you've forgotten it.