3CX v16 is on the way, and we have great news about our app for Call Flow Designer developers. In the new release, CFD uses a new scripting “engine” integrated into the core of the 3CX server. Thanks to the execution of scripts in the core of the PBX, the performance of voice applications has increased significantly. In addition, this approach provides access to a variety of internal "advanced" functions of the SIP-core. As a result, you get an effective tool for creating even more functional voice applications.
Please note that the new Call Flow API and the corresponding CFD version will be available in
3CX v16 Pro (but not Standard) Update 1 (I-II quarter 2019). Therefore, if you plan to create new voice applications, wait for this version. By the way, this is one of the reasons to have a valid subscription to updates!
This article describes the capabilities of the future solution in order to prepare developers for the transition to new technologies.
Voice applications are tied to incoming rules
Voice applications no longer require a dedicated call queue. The script is tied to the incoming rule, allowing you to handle the call before it reaches the IVR, the Queue or the extension. This simplifies call processing and significantly reduces the number of applications in the PBX - now one application can handle calls to several incoming rules. In addition, when downloading or updating a voice application, you no longer need to restart the Queue service, interrupting the call center operation.
New Functional Call Control API
The new scripting interface offers more features of the 3CX core API. The following features have appeared:
- Track call progress. You can, for example, programmatically transfer calls if the user does not accept it at the scheduled time.
- Add additional information to the call that another processing script may use. For example, an incoming call enters the Callflow1 script, receives a user ID, and is sent to the Queue operator. After the conversation, the operator switches the call to Callflow2 to request additional information. The Callflow2 script uses the user ID from Callflow1.
- Change the name of the caller in the script. For example, the subscriber enters the Customer ID, after which his name is requested in the database. The script transfers the call to the Queue, replacing the user ID with its name from the database.

- Script operation on incoming rule and call transfer to IVR, depending on script results.
- Routing incoming calls, depending on which number they called, as well as the date and time of the call.
- Routing of calls to different Queues depending on the number of operators connected to them.
- Subscribers are checked against a database or an external web service and call routing is dependent on the result.
- Record voice input of the caller and send it as an e-mail attachment.
Using CFD to generate code
Using CFD, you can create an initial call processing script. CFD generates the corresponding code in C #, and then you can refine it in the Visual Studio system. Thus, you will use the familiar C #, but without writing a script from scratch.
Powerful outgoing dealer / outgoing dialing
New Call Flow API allows you to manage outgoing call calls. In 3CX v15.5, the dialer could not be controlled, and he did not return any call results. Now you can track the status of the call, record its result in the database, and then move on to the next call.

Please note that the extended functions of the dealer will not be available in the first version of the new CFD. Now there is a limitation: the dealers will not start work immediately after installing the application on 3CX - only a call to the application with the dialer starts dialing.
Existing CFD 15.5 Projects
Your
existing projects should be slightly modified to work on 3CX v16. In many cases, the changes will not even be necessary, but if some of the new features of the Call Control API are used, refinement will be needed. Open an existing project in the new CFD version, make changes and generate a new type script for 3CX v16.