Home
User`s Manual
Contents
1. 7 We need a main menu with 3 options 1 Visa 2 Master 3 Amex so we are going to add a new option To perform this operation right click on the mainMenu component and execute the Add Option 3 menu command from the context menu E 3CX Voice Application Designer Beta CreditCard File Edit View Call Related ail User Input Y Prompt Playback P Record Transfer lo Disconnect Call Control Structures e Conditional AsB Variable Assignment HI Increment Variable l Decrement Variable 5 Loop 2 Exit Callflow Advanced al Cryptography E Database Access E Mail Sender S External Code Execution CA File Management RA Socket Client Web Interaction Web Services Interaction User Defined Components Error List Output Debug Oy Menu 3 Main Flow Start Page Main Diii pS A Option 1 mh Drag and drop components here Option 2 Mh Drag and drop components here EN Error Handler Flow Disconnect Handler Flow A Configure l Add Option 0 Add Option 4 Add Option 5 Add Option 6 Add Option 7 Add Option 8 Add Option 9 Add Option Add Option Collapse E 2 CreditCard SE Callflows 7 Main flow A aE Z Name mainMenu AllowB argeln True MaxRetryCount 3 Timeout 5 Options IsvalidOption_0 False IsYalidOption_1 True IsvalidOption_2 True IsValidOption_3 False IsValid
2. Input Properties InvalidDigitPrompts Those input properties can be set using the configuration form activated from the context menu at the designer or the link in the properties window Menu configuration Allow Barge In Timeout secs Max Retr Count Valid Options Screenshot 22 Menu configuration When the menu ends execution continues on one of its branches a valid option branch or the timeout or invalid option branch The menu component exposes the following output properties for further query e Result the result of menu execution It could be one of the following constant values MenuResult Timeout MenuResult InvalidOption or MenuResult ValidOption User Input This component collects information from the end user in the form of digits It handles the retry logic when the user enters an invalid digit fewer digits than expected or does not Page 30 30X 3CX Phone System for Windows www 3cx com enter anything at all Its execution finalizes when a valid input is entered by the user or all the retries have been used up This component has the following input properties AllowBargeln True to allow the prompts to be barged into False otherwise Number of retries allowed for timeout or invalid digits input Each one has its own retry counter For example setting this property to 5 may MaxRetryCount allow the user to enter invalid digits 4 times stay in silence another 4 times and when the inval
3. Has make llull oa Tie Management j i l E Diestristion ak FolDertimation 5 j MaCallme SU y Socket Eo i i Triei 20 Web Interaction Tima i E gl weh Servers Interaction User Delined Componeris TraneferMiode Bridge Conligune Moa ollTime Thee Hime thal the call is alowed to bast in seconds or Of rec im is imposed Orly wild for Eidos tranaher mode E bimn Flow Fy Ems Honde Flow i Disconnect Handler Flow Resty l Screenshot 9 The voice application Page 12 3CXK 3CX Phone System for Windows www 3cx com Building the project The callflow is ready Now we need to build it to a VXML script that can be used by 3CX Phone System The project can be built in two modes e Debug mode when the project is built in debug mode the generated output contains code that writes debug information files when a call is being processed These files can be retrieved later by this application to show the callflow behaviour graphically e Release mode when the project is built in release mode the generated output does not generate debug information files The execution of a generated application in release mode is more performing and is suggested for production environments In order to build the project execute the menu command Build gt Build All This option builds the project in both configurations debug and release The output window will show compilation progress and the Error List window will show any e
4. callflow CreditCardNumber Screenshot 30 Database Access configuration The Server Database DataSource User Name and Password input properties can be set using an expression The SQL Statement input property can contain variable parts In order to insert a parameter value into the SQL statement press the button on the right side of the text box and select the desired parameter Parameters can also be set using an expression In order to create an expression for a parameter press the ellipsis button on the last column of the grid Page 40 30X 3CX Phone System for Windows www 3cx com When the database access ends execution continues on the following component The database access component exposes the following output properties for further query which contain the processing result according to the type of the selected statement e QueryResult a table containing every row returned from the database The expression editor functions GET TABLE ROW COUNT and GET TABLE CELL VALUE allow scanning the whole table The first function returns the amount of records in the table so it can be stepped through with the Loop component The second function allows obtaining the cell value specifying the row and column numbers Indexes start at zero e NonQueryResult an integer value containing the number of rows affected e ScalarResult a string value containing the value returned from the data
5. InvalidDigitsPrompts and TimeoutPrompts properties for the Menu component Page 9 30X 3CX Phone System for Windows www 3cx com EA 3CX Voice Application Designer Beta SimpleExample File Edit View Build Debug Tools Help DO AAA AAA A sa dida ds BO OOO 100 224 20 E os Start Page MainFlow oi Dx Call Related Oy Menu al User Input Q Prompt Playback P Record C C Transfer lo Disconnect Call la 3 SimpleExample y MainFlow flow Control Structures e Conditional a a amp gt Ae8 Variable Assignment i Option 1 Option 2 Option 3 31 Increment Variable i 1 1 Decrement Variable Io i 5 Loop C C transferT oSales tl tensor ot on C C transterToOperator E oF x CR Exit Callflow Pol H E A Advanced aN x a Y aE Z al Cryptography a meneral Fy Database Access e True amp E Mail Sender fl hearts External Code Execution Name transferToSales 2 File Management Destination F Socket Client Meta gt 7 Web Interaction Transfer udio Web Services Interaction User Defined Components TransferMode Blind MainFlow Callflow execution path Confiqure Name Please specify the name of the component It has to be unique in the entire flow 3 Main Flow do Error Handler Flow Disconnect Handler Flow Error List Output Debug Screenshot 6 Configuring menu option actions 7 Now we co
6. Final Digit Timeout secs 2 Transfer Cryptography Database Access EMail Sender External Code Execution File Management Socket Client Web Interaction Min Digits Maz Digits Stop Digit Valid Digits 4 Digit 0 we Digit 1 se Digit 2 E igitPound 4 Digit 7 Digit 8 Digit 9 Web Services Interaction 2 Digit 3 C Digit 2 Digit 4 E Digit w Digit 5 bis Screenshot 38 Options Component Templates User Input Allow Barge In set it to True to allow the prompts to be barged into Max Retry Count the number of retries allowed First Digit Timeout secs the time to wait for the first digit before playing a timeout prompt in seconds or zero to use the default value Inter Digit Timeout secs the time to wait for subsequent digits before playing an invalid digits prompt in seconds or zero to use the default value Final Digit Timeout secs the time to wait for digits after MinDigits has been reached before returning the entered data in seconds or zero to use the default value Min Digits the minimum number of digits that must be entered by the user Max Digits the maximum number of digits that can be entered by the user Stop Digit specify the digit that the user must press in order to finalize the data entry Valid Digits indicate which digits will be considered as valid when they are entered by the user Cryptography Algorithm the algor
7. Option C Option Web Services Interaction Screenshot 37 Component options Menu Allow Barge In Set it to True to allow the prompts to be barged into Set it to False otherwise Timeout secs The time to wait for user input before playing a timeout prompt in seconds Max Retry Count the quantity of retry offers for invalid input or timeout Valid Options the list of valid options that are automatically added to the menu component when created Prompt Playback Allow Barge In set it to True to allow the prompts to be barged into Record Emit beep just prior to recording it indicates if a beep sound is played before recording Maximum Time secs the maximum duration to record in seconds Final Silence secs the interval of silence that indicates end of speech in seconds Terminate by DTMF if true any DIMF key will stop the recording Save to file if true the recorded audio will be saved to file Transfer Automatically load extensions from 3CX Phone System when configuration starts Set to true to automatically load extensions information from the 3CX Phone System when the configuration form is opened Page 50 30X 3CX Phone System for Windows www 3cx com User Input Options Er Projects Allow Barge In General Build Maz Retry Count 13 Recent Projecte B Component Templates Meru Inter Digit Timeout secs 3 Prompt Playback a Record First Digit Timeout secs 5
8. The list of prompts to play when the user does not enter any digit The same MinTryCount logic applies After playing the timeout prompt the main prompt will be played too initial or subsequent prompt TimeoutPrompts The list of prompts to play when the user enters invalid digits The same MinTryCount logic applies After playing the invalid digits prompt the main prompt will be played too initial or subsequent prompt Table 6 User Input component Input Properties InvalidDigitsPrompts Page 31 3CXK 3CX Phone System for Windows www 3cx com User Input configuration Allow Barge In Max Retry Count Inter Digit Timeout secs 3 First Digit Timeout secs 5 3 2 Final Digit Timeout secs Grammar Specify Grammar using the 3CX Phone System grammar format Specify Grammar manually Min Digits 10 Max Digits 20 Stop Digit DigitPound Valid Digits Digit 0 Digit 6 Digit 1 Digit 7 Digit 2 Digit 8 Digit 3 Digit 9 Digit 4 C Digit Digit 5 E Digit Screenshot 23 User input configuration When the user input ends execution continues on one of its branches Valid Input or Invalid Input The user input component exposes the following output properties for further query e Result one of the following values UserlnputResult Timeout the user didn t enter any digit in the last attempt UserlnputResult InvalidDigits the user entered
9. this callflow You can also configure an extension range here in case you need to deploy the callflow to many extensions at a time For example if you set this property to 851 then the callflow will be registered on that extension or you can set it to 851 859 to register the callflow in that 10 extension range PbxCallflowName it is the name that will be used to register this callflow in 3CX Phone System You will see this callflow in the 3CX management interface listed as a Digital Receptionist with this name To show the call flow double click on the callflow in the Project Explorer Adding components to the callflow E 3CX Voice Application Designer Beta SimpleExample File Edit View Build Debug Tools Help AAA LS m s did dd Start Page MainFlow CallRelated ATI ail User Input Kg Prompt Playback P Record CL Transfer lo Disconnect Call 3 SimpleExample gy MainFlow flow MainMenu A Control Structures e Conditional EF A v A A B Variable Assignment Option 1 Option 2 Option 3 Timeout or Invalid Option 31 Increment Variable i i E 1 Decrement Variable i Drag and drop H Drag and drop Drag and drop Drag and drop n 5 Loop components here components here components here components here Properties Window a O 4 Exit Callow PA A Advanced le A a Cryptography Name MainMenu A AllowBargeln Tru
10. O Javascript Expression O Variable VAD Expression VAD Expression Function LESS_THAN Expression callflow CurentRecord fA 5 fr Expression GET_TABLE_ROW_COUNTIcallflo ffx 7 i Screenshot 48 Creating an expression 7 To configure the second Expression press on the Expression Editor button and choose the corresponding values Expression Editor O Javascript Expression Variable 2 VAD Expression VAD Expression Function GET TABLE ROW COUNT ln Expression databaseQuery QueryResult ial ea Le Page 67 30X 3CX Phone System for Windows www 3cx com The following figure shows the resulting flow at this point Main QueryPayments Start Page r x Main Flow Le Error Handler Flow t Disconnect Handler Flow 8 Now we are going to configure the Loop component content We want to play a wav file for each retrieved payment From the Call Related Components section drag the Prompt Playback component and drop it into the Loop component Name it playPayment Configure the Prompts by pressing the r button and entering the following information Prompt Collection Editor Members PaymentPrompt properties MN ParmentPrompt Bs E Audio File Prompt Selb Payment war e E Prompt Mame PaymentPrompt aaa aeoe 9 Now from the Control Structures Components section drag the Variable Assignment component and drop it after the playPayment component From the Properties wi
11. PerformPayment comp E Quer Payments comp RequestCreditCardHumber comp Folders Ca Master 43 Masher comp Misa 43 Visa comp Screenshot 15 The project explorer The Project Explorer allows performing the following actions e Save the Project or file e Rename the Project folder or file e Close the Project or file e Create a new folder callflow or component e Add an existing callflow or component e Remove an existing folder callflow or component e Build and deploy the Project Each of those actions can be performed by selecting the option in the context menu or using shortcut keys Files and folders can be moved to other locations within the Project using drag and drop If the VAD cannot find a file or folder referenced by the Project it is showed in red font with a hint indicating that the file or folder is missing Properties Window The Properties window shows information of the currently selected object If the component contains actions they are shown too so that they can be quickly executed For example the Conditional component contains an Add Branch action which allows adding child conditional branches easily Page 22 3CXK 3CX Phone System for Windows www 3cx com io x EE El Callflow ActhvatonE stensior 851 ActvationE stensior 851 PboxCallflowName Main File Name Main flow Wanablezs Collection O Misc Hame The name of the file Screenshot 16 The properties window
12. a complete set of editing functions including multilevel undo and redo commands for cutting copying pasting and deleting components commands for enabling disabling expanding and collapsing components and zoom level and navigation tools It also allows printing flows previewing the output before printing The VAD IDE is composed by the main designer work space in the centre of the dialog and a set of docking panels When a Project is created or opened a new tabbed document is shown containing the Start Page The Start Page contains common tasks to be performed on a Project like opening files creating callflows or components or building or deploying the Project Another tabbed document is shown each time you create a call flow The Designer At the centre of the 3CX VAD is the actual designer which is shown when you open or create a project or component The designer consists of one or more tabs with Call flows A Call flow is a sequence of built in or user defined components You can drag components from the toolbox and drop them into the designer in the Page 16 3CXK 3CX Phone System for Windows www 3cx com desired position Once a component has been placed into the designer the user can change its properties using the Properties Window or the configuration form There is also a Start page which lists common tasks Navigating within the designer The designer contains buttons below the vertical scroll bar on the right side
13. added automatically to the toolbox 7 It allows performing actions when a condition is Conditional acl Encrypts decrypts data using DES or TripleDES h ROARY algorithms and compute MD5 hash EE els Executes SQL statements on SQL Server Oracle and ODBC databases E Mail Sender Sending emails Executes external code located in libraries or JavaScript source code File Management Allows reading and writing data from file Allows establishing of TCP an UDP connections sending data through the connection and optionally wait for a response from the remote endpoint Web Interaction Allows performing of Web requests Web Services Interaction Allows executing of simple Web Services User Defined Components These are components created by the user that Def a t are automatically added to the toolbox Table 3 Component description External Code Execution Socket Client For further information about all the components of the VAD please refer to Chapter Components Page 21 3CXK 3CX Phone System for Windows www 3cx com Project Explorer Window This docking bar allows you to easily explore the whole Project Each Project is composed by callflows and user defined components which can be grouped into folders The entry point of a call is always a callflow Project Explorer js E fa CreditCard gt Main Project F Lallllows C Main flop Callflows Components Amex CAE tnexcan6 Components Cormor 3
14. are constant string values and do not require quotes Parameter values can be set using an expression In order to create an expression for a parameter press the ellipsis button on the last column of the grid Be aware that in order to enter constant values you need to add quotes For example write Some Text instead of Some Text Page 43 3CXK 3CX Phone System for Windows www 3cx com When the external code execution ends execution continues on the following component The external code execution component exposes the following output properties for further query e ReturnValue contains the value returned by the function or method called File Management This component allows reading or writing text files The reading operation is performed line by line It is possible to specify the index of the first line to be read starting at zero and the amount of lines to be read It also can be set that all the lines are read until reaching the end of the file The writing operation allows opening the file in three modes Append Create and Open The Append mode allows adding text at the end of the file The Create mode allows creating the file if it does not exist or truncate it if it already exists so it always starts with an empty file The Open mode allows opening the file as it is and write to it since the first character overriding what was on it The data to be written is the information that i
15. for the Visa folder and choose New Component Name it Visa comp e Right click on the Common folder and choose New Component Create the following components PerformPayment comp QueryPayments comp and RequestCreditCardNumber comp 2 Now we are going to add the components to the main menu options of the Main callflow e From the User Defined Components Section choose the Visa component that corresponds to the first menu option and drag it into the Option_1 Then from the Properties Window select the User Component recently added and change the component name with Visa e Repeat this to insert Master and Amex components into Option_2 and Option_3 respectively Remember to modify their names from the Properties Window 3 Now we are going to configure the Timeout or Invalid option branch From the Call Related Components section drag the Transfer Component and drop it into the Timeout or Invalid option branch From the Properties window select Transfer Page 62 30X 3CX Phone System for Windows www 3cx com name and type transterToOperator The following figure shows the resulting callflow ES Detabasa Arcek gt E Ha Sends 15 External Code Esecution H D7 x 2 File Management 25 Socket Cieni i PF web Interaction eb Emme Interaction Project User beheed Components Man Corl and LE ares Phdonfiguetion 5405 Foiaina hip oca SARA AA ip Diem Preliurdosd iets bp localhost Sac
16. i escorial its latin 4 Getting started Creating a simple cCallflOW ccccccooccnnnncnnnnccnccononnconnnnconononanccnnnncnnnnnnnns 6 gs o A ans leroy asda es emia 6 Greatng TINS O C errie e a a e a a 6 creating a callo a e e a ee ae 7 Adding components tO me callo Wa eos 8 Building the project ooccccccccconconccccnonnonnnnnonconcnononnnonnononnncnnnnnnnnncnnnnnrnnnnnnnnnnnnnnnnnonannnnnnnnss 13 Deploying the project to 3CX Phone System ss iiris a aait 13 PINS GINO OS PPP 06 Uo0O Pz o nn ae sienatiaeneoiuctaaetichaaananet 13 Creating a deployment package ooooonccccnncccccccnonccnnnnononnnnncnnnnnnnonnnnancnnnnnononnnnnnnnnnnnnnns 14 Executing Your VOICE applicato Menard A NA cs 14 3CX Voice Application Designer WorkSpace ooooonncccnncccccccoonncnnnnnonononannnonnnnnnnnnnnnnnnnnnnnnnnnans 16 MTroduciO Nte dan esau r 16 Te DESNO triana 16 Navigating within the desigNer ccccccoonncnncccconnnnccononcnnnononancnnnonnnnnrnnnonnnnnnnnnnnnnnnnnnnnnnanoss 17 Types Or CAM TOWS A AAA A AA AA RC 17 ida e EEE O 20 Components 1 OCIDOX mts adri baila 21 Fables Component descripuOn rca rd daa td 21 P ject Explorer WINGOW scaena a ias 22 Properties WiINdOW gandan aa a ds 22 ENON EISEWINCO Wai a 23 QUIPput WINCOW nia A ae TS 24 Debug WIN Wii aa 24 COMPONEN ron odi 25 HATO CIICTION a dao 25 POMPE TYDE Surreal a a a a a a 25 The Expression EGutor cccccccccccsseeeceesececeeeseecceese
17. in order to execute the contained components Table 13 Loop component Input Properties When the loop ends execution continues on the following component The loop component does not expose any output property after its execution Exit Application This component allows exiting the current callflow also disconnecting the call It has no special input properties and does not expose any output property after its execution Page 37 3CXK 3CX Phone System for Windows www 3cx com Advanced Components Advanced m2 i Cryptography ligt Database Access E E Mail Sender External Code Execution Ed File Management E Socket Client Web Interaction Web Services Interaction Screenshot 28 Advanced components Cryptography This component allows executing cryptographic algorithms The supported algorithms are DES and TripleDES for both encrypting and decrypting and the MD5 algorithm that performs hash calculation DES and TripleDES algorithms allow encrypting text using a known key Then they perform the decryption using the same key The hash calculation is a one way algorithm and the original value cannot be obtained again The hash calculation is used to validate passwords The stored information is the hash that was calculated for the original text that was entered by the user and the validation is performed comparing the hash values When the DES algorithm is used the key must be an 8 characters String On the o
18. line to read Lines to read Readtoendoffie Tue A Write Append final CA LF Screenshot 33 File Management configuration The First line to read Lines to read Read to end of file and Content to write input properties can be set using an expression When the file management ends execution continues on the following component The file management component exposes the following output properties for further query e EOF Reached indicates it the end of the file has been reached when Action is Read e Result contains the text that has been read from the file when Action is Read Socket Client This component allows sending and receiving data using TCP or UDP protocols The destination server and port are specified with the information to be sent If the property WaitForResponse is set it waits for a response from the server otherwise it closes the socket immediately after the information is sent This component has the following input properties Property Description ConnectionType The type of the connection to establish TCP or UDP Host The server host name or IP address The port number where the server is listening for incoming connections Port The data to send to the server WaitForResponse True to wait for a response after sending the data False otherwise Table 19 Socket Client component Input Properties Those input properties can be set using the configuration fo
19. of the designer which allow customizing the view AR AA NES Fits the designer to the screen size RA E Allows activating or deactivating the Print Preview mode for the current designer Allows changing the zoom level for the current designer Allows to change the pointing device in order to navigate through the designer in the following ways E Zoom in the Zoom In magnifying glass cursor let the user zoom in by clicking the current designer Zoom out the Zoom Out magnifying glass cursor let the user zoom out by clicking the current designer Navigation tool the Navigation Tool hand cursor let the user grab and shift the view of a flow in the current designer Default the Default arrow cursor let the user switch from the other cursors back to the default arrow cursor Table 1 Navigation tools within the designer Types of call flows There are three kinds of flows The Main Flow The execution path in normal conditions The call will visit each component in the main flow as long as no error occurs When an error occurs execution continues goes to the error handler flow When the call gets disconnected execution continues on the disconnect handler flow of the document Call related components cannot be used in the disconnect handler flow Page 17 30X 3CX Phone System for Windows www 3cx com Start Page Main Amex QueryPayments X n maintlenu Option_1 i Option_2 Option_3 Timeout_or_Invalid_Op
20. the callflow highlighting the first executed component with a yellow background and showing the initial variable values in the Debug Window Page 55 30X 3CX Phone System for Windows www 3cx com 3CX Voice Application Designer CreditCard fa le PX Ele ER View Bud Debug look Hep e 3 oy k gt o cS 9 z a 1004 Enana Code Executor Y Fia Margaret Bp Socket Cher DP Web Inimachon Wed Seevices interacton Call Related amp Disconnect Cal f Timecwt_ot_invaid_Opton ey Menu yy y y 4 Proengt Playback e hansie T operator Record A s LE Reqs Nune PE Una v A gt E MainFlow de Eno Hardie Flow Osconnect Hares Flow From_101_To 999 Mena 999 10 0 Bs gt DetabsseServer localhost gt Detabareharne CredeCand Emor Lat Output Debug Ready 4 Variables updated during the last step are shown in red color Initially all variables are showed in red color because that is the first assigned value From 101 To 999 Menu 999 0 2 f 5 The available debug command buttons are enabled automatically in the main menu and the main toolbar after the execution of each step 6 Pressing the Step Into Button Ste the callflow execution continues to the next component This menu command is available when the currently executing component is a User Defined Component or a component with child branches For example when you are executing a menu component Page 56 30X 3C
21. the desired variable For example the following figure shows the configuration of the Server field Expression Editor O Javascript Expression 2 Variable VAD Expression Vanable selection en RecordCount ew TestName P Initialize T est _ Testh ame eB MenuResult E InvalidO ption E Timeout E WalidOption d a project 7 DatabaseName e DatabasePassword a METE a Database ser ame A The Project needs to have the variables DatabaseServer DatabaseName DatabaseUserName and DatabasePassword They are defined in the Properties Window when the Project is selected in the Project Explorer 5 In order to assign a value to a parameter click the m button and use the Expression Editor to create the desired expression The following figure shows the resulting flow at this point Page 66 30X 3CX Phone System for Windows www 3cx com Start Page Main QueryPayments xX Lg databaseAccessCo sgr mponentl ES Main Flow 5 Error Handler Flow Disconnect Handler Flow 6 We want to loop through the retrieved payments so we will add a Loop component From the Control Structures Components section drag the Loop component and drop it after the databaseQuery component From the Properties window change the name of the recently added component to loopPayments and the Condition pressing the Cul button On the Expression Editor enter the following information Expression Editor
22. AciprostionE wens BRD SS Socket Cieri PoiCalilca dl ame Main P wet Interac B Fila de Web Sensice Internction _ aie gt Weer Dohmod Component a Mier aaa Eb Mame The name of Hees file gt E Man Flew E Enoc Hande Fle Gi Dirconnect Handler Flow ror let Cutt Debug Peo Screenshot 4 Creating a call flow When the project is created an empty Main callflow is automatically created too A new tab will open on which you can drag the components that will form your call flow Each callflow will be created with three basic properties which can be edited from the properties Window ActivationExtension The extension number on which the application will register this callflow in 3CX Phone System when the project is deployed in release mode You will be able to call this extension from any extension in 3CX to execute this callflow You can also configure an extension range here in case you need to deploy the callflow to many extensions at a time For example if you set this property to 851 then the callflow will be registered on that extension or you can set it to 851 859 to register the callflow in that 10 extension range Page 7 30X 3CX Phone System for Windows www 3cx com ActivationExtensionDebug The extension number where the application will register this callflow in 3CX Phone System when the project is deployed in debug mode You will be able to call this extension from any extension in 3CX to execute
23. Aye dE Ferunt maent eden oca HVA JE Guyen Potier localhozl dE Rometta Manabi Collecion dB vea Name p Tia mars of ther prope Main Flew dy Esos Handa Fleer i Citcornect Hard Flor Error list Output Debug Pete 4 Now we are going to add a message to be played at the end of the Main callflow From the Call Related Components section drag the Prompt Payback Component to the Main callflow and drop it at the end of the callflow From the Properties window modify the component name to goodBye The following figure shows the resulting callflow pet Woriabls Arsye f Tal or Ire Cipher a f a z 141 Increment Vignate f j j 15 Vien comp Li Discrarreed Vaiba i Loco i i ice bene oO pension E Calo Ahearn k pa i Pa SS e AB Comptograpity EP Ostabase Access 5 E E Mad Senda Estemal Code E mntak E oF xj E File Managereri 01 7 Socket Cieri gt de El General AP web Intersection D ih Web Sanaat Interach n Eishied Tus o Usa DoinidConponanti E Prompt Plapback Hane goodie TY Amex Filet angen Tun TE Master Pesrmpita Lolli dE Peto area A dP aiian 13 PequeatlredtCardumber Eva Mame Pess sneciy the nama of the component 11 haa ba be raga m ihe enine Iya E Main Flow fp Eier Harde Flow 0 Disconnect Handler Flor Screenshot 46 The main call flow Page 63 30X 3CX Phone System for Windows www 3cx com The Main callflow is ready Now we need to design the created User Co
24. Error List Window Error List A 9 Warnings 4 0 Messages Description File Number Type 11 Error Loop building block loopBuildingBlock1 has ane New _Main_2_Callflow x 13 Error Loop building block loopBuildingBlock1 has ane Main_2_Callflow flow 14 Error FilePath is empty at external code execution buildin UDBB2_2 udbb O 15 Error URI is empty at web interaction building block web UDBB2_2 udbb O 8 Error Prompt Playback building block promptPlaybackB UDBB1 udbb x 9 Error FilePath is empty at external code execution buildin UDBEB2 udbb v Error List Output Build failed Screenshot 17 The Error list window The error list window is used to display messages during the build process Those messages can be of three types e Errors the Project could not be built because of errors in the configuration of one or more of the components The output could not be generated The user must correct the errors first e Warnings this is something that could be wrong but the output can be generated The user should pay attention to this message and verify if he must perform some corrective action e Messages this is information that may be considered by the user but it is not an error and the output can be generated Every message includes information related to the component to review including the file location Double clicking or pressing lt Enter gt on a message the file referred by
25. Handler Flow Page 58 30X 3CX Phone System for Windows www 3cx com Sample Application Introduction In this chapter we are going to create a voice application and go through all the steps involved in making the application As an example we are going to create a simple Credit Card system allowing querying and performing payments We will show how to reuse components to reduce complexity We will also show how error handling works and how to configure it properly The following figure describes the Callflow diagram that we will create Main Menu VISA a aa a a LAA TED QueryPayment PerfomPayment COMPONEN COMPONENT Figure 1 Example Callflow diagram Creating and configuring the Callflow Creation of the Project and the Main Callflow 1 File gt New Project Select the folder where you want to create the Project and enter the name Credit Card Page 59 30X 3CX Phone System for Windows www 3cx com 2 Press Save in order to create the Project 3 We are now going to create a new Folder within the Project where all the Callflows will be stored From the Project Explorer right click on the name of the Project CreditCard Choose New Folder and name it Callflows rape 4 jep Pia 7 Tim hdr ds For a i LL an 5 i m E pE de Emp El Faldea aF jaiii Haire Call a So El Misc we chee Y Arb Seraya Infection Miner Didivad Components Hane Th rubies cal thes Files l Er
26. Haragereari 4 r Pa Seeka ien E i E read a wet risia A Prompls i Web Senses Interach n irii rores Collect Ler Defined Components Ires np Coleco 45 vlbregquent rong Collectoa Timsah Collection mane El Timscut 13 Parana serent Fra Teeaa F LE dueP yen Fria ad 864 a bla licita rra F Zl E Ure Input ll Hare Alban True Hadie oi J Name Pleats dpat the name al the comporen le has 7 to Be urges ri the arita Fhe f Man Flor ig Er Horda Flows iB Dorong Harde Flows Diver List Capat bug Ready 3 If the user inputs a valid amount we want to save the information to the database and play a prompt message to the user 3 1 For the Valid Input branch from the Advanced Components section drag the Database Access component and drop it into this branch Select the recently added component and from the Properties window press Configure 3 2 Input the following information Database Access configuration Database Type Serer Database DataS ource User Name Password Statement Type Timeout secs SAL Statement insert into PAYMENTS DESCRIPTION AMOLUT CREDIT _C4AD NUMBER values Telephony payment 214 404 Parameters 3 3 Now we are going to add the message to be played if the payment is successfully saved to the database From the Call Related Components Page 70 30X 3CX Phone System for Windows www 3cx com section drag the Prompt Playback co
27. ICX with a software based PBX for Windows f e fit p User s Manual 3CX Voice Application Designer Version 14 Copyright 2006 2015 3CX Ltd http www 3cx com E mail info 3cx com Information in this document is subject to change without notice Companies names and data used in examples herein are fictitious unless otherwise noted No part of this document may be reproduced or transmitted in any form or by any means electronic or mechanical for any purpose without the express written permission of 3CX Ltd 3CX Phone System for Windows is copyright of 3CX Ltd 3CX is a registered trademark and 3CX Phone System for Windows and the 3CX logo are trademarks of 3CX Lid in Europe the United States and other countries Version 14 Last updated 10 11 2015 Table of Contents TOCUICT OPI aia adds 1 What is 3CX Voice Application Designer oooccccccnoncnnnccnnnncccnonoonncnnnnnonnnanncnnnnnononnnnnnennnnnnns 1 SS tans ta tarnccama N cdl sianinaredbedeetaweaantemadenss 1 TENIAN cri A AA A A 2 Document CONV CMUOMNS 2 Installing 3CX Voice Application Designer oooooncccnccccccconnccnnnncnonononncnnnnnnonnnnncnnnnnnnnnnnnnnnnnnnnnnss 3 System RequitemeniS vencio secado catolico roo iaa 3 PALIN Se UDua smelstlentelavaddisaluteievaiaieasetudicaniteesaes 3 Activating 3CX Voice Application Designer ccccccccoconcccnnncccconoonncnnnnncnonnnanncnononononannncnnnnnnnss 3 Gontiguring Phone SyStemlOCATION
28. Option_4 False IsvalidOption_5 False IsValidOption_6 False Lot slid tio 7 Ealan Configure Add Option O Add Option 3 Add Option 4 Add Option 5 Add Option 6 Add Option Add Option 8 Add Option 9 Add Option Add Option Name Please specify the name of the component lt has to be unique in the entire flow Ready Screenshot 44 Adding a menu option Page 61 3CXK 3CX Phone System for Windows www 3cx com 8 Before going on with the Main callflow we are going to create some folders that will let us store the components Using the command to create a New Folder right click on the Project Explorer and choose New Folder lets create the following folders inside de CreditCard Project CreditCard gt Callflows gt Components Amex Master Visa Common 9 Now we are ready to create the User Components that will implement each one of the main menu options Configuring the Main Callflow Now we must create the User Components 2 CreditCard amp Callflows y Main flow amp Components 3 H Amex 43 Amex comp Common PerformPayment comp QueryPayments comp RequestCreditCardNumber comp amp Master 48 Master comp Vi OB Visa 43 Visa comp Screenshot 45 Creating the user components 1 From the Project Explorer e Right click on the Amex folder and choose New Component Name it Amex comp e Repeat for the Master folder and name it Master comp e Again
29. X Phone System for Windows www 3cx com ee e ee ee ee ee ee ee ee ee ee ee ee eee ee ee ee eee eee MainFlow ae Callflow execution path E Option 1 E ion pa opm Timeout_or_Inwalid_ Option NE 1 Eo Hey E _ EM A ban Flow EX Error Handler Flow Disconnect Handler Flow Screenshot 40 Step into command 7 Pressing the Step Over Button will cause the callflow execution to continue to the next component at the same level as the current component This menu command is available when the currently executing component is not the last one in the designer E 8 Pressing the Step Out Button the callflow execution continues in the next component in the parent component level For example pressing the Step Out Button when the currently executing component is a menu branch the execution continues at the component located after the parent menu component The Step Out Button is enabled until the last executed component is reached 9 Pressing the Stop Debugging Buttoni e the debugging process is stopped 10 If any error occurs the callflow execution continues in the Error Handler Flow ErrorHandlerFlow Execution path when an error ocurrs F Main Flow Si Error Handler Flow Disconnect Handler Flow Page 57 3CXK 3CX Phone System for Windows www 3cx com 11 If the call is disconnected the callflow execution continues in the Disconnect
30. able values while a callflow is being debugged Variables changed during the execution of the last step are shown in red color while unchanged variables are shown in black color Page 24 3CXK 3CX Phone System for Windows www 3cx com Components Introduction Components are the basic building blocks of a call flow and perform basic actions such as playing of a prompt recording a call asking for user input and so on There are two types of components one with branches such as the Menu component or without like the Disconnect Call component The Properties window shows input properties for the selected component Some components have variables which are exposed after execution as output properties The public properties of user defined components can be used as input and output A If a red sign appears at the right corner of a component the component has invalid property values Click on it to get an explanation Prompt Types Many VAD components use prompts in order to perform the desired operation When a component has a prompt collection each prompt can be of the following types e Audio file The prompt is stored in a wav or mp3 file and the file name is selected from a file list e Dynamic Audio file The prompt is stored in a wav or mp3 file and the file name is dynamically created using an expression e Recorded Audio The prompt is stored as a RecordComponent Audiold variable containing audio recorded
31. an invalid digit or less than MinDigits in the last attempt UserlnputResult ValidDigits the user entered valid digits between MinDigits and MaxDigits optionally terminating the input with the StopDigit e Buffer the digits entered by the user including the StopDigit if it was entered by the user Prompt Playback This component allows playing a list of prompts Each prompt of the list can be of the types described in Prompt Types This component has the following input properties Property Description AllowBargeln True to allow the prompts to be barged into False otherwise The list of prompts to play when the component is executed Table 7 Prompt Playback component Input Properties When the prompt playback ends execution continues to the following component The prompt playback component does not expose any output properties after its execution Page 32 3CXK 3CX Phone System for Windows www 3cx com Record This component records audio from the caller Before recording the list of prompts specified is played to the end user If the Beep property is set a beep is played to the user after the prompts and before starting recording The recording continues until MaxTime is reached a silence is detected with FinalSilence length or the end user presses a DIMF key when the TerminateByDtmf property is set The recorded audio can be automatically saved to a file This component has the following input propert
32. an value as a result Can have from 2 to 20 parameters Performs a logical OR between every parameter returning a Boolean value as a result Can have from 2 to 20 parameters NOT Receives a single Boolean parameter and returns another Boolean that is the negation of the provided parameter Receives two parameters of any type and returns a Boolean EQUAL ae indicating if they are equal NOT EQUAL Receives two parameters of any type and returns a Boolean indicating if they are not equal GREAT THAN PECENE two parameters of any type and returns a Boolean indicating if the first is greater than the second GREAT THAN OR EQUAL RECEIVES two parameters of any type and returns a Boolean indicating if the first is greater than or equal to the second LESS THAN PERRE wo parameters of any type and returns a Boolean indicating if the first is less than the second LESS THAN OR EQUAL RECEIVES two parameters of any type and returns a Boolean indicating if the first is less than or equal to the second CONCATENATE Concatenates every string parameter and returns the resulting string Can have from 2 to 20 parameters Receives two parameters The first is a string to cut The LEFT second is the number of characters to cut Returns a string that is the first N characters of the original string Receives three parameters The first is a string to cut The second is the start position where the cut must start using a MID zero based index The third
33. base E Mail Sender This component allows sending of e mail messages This component allows using authenticated connections with user name and password specifying the sender and different addresses types To CC or BCC determining the subject and mail body and attaching files This component has the following input properties The username to use when connecting to the SMTP Server The password to use when connecting to the SMTP Server The SMTP Server name or IP address A Boolean value to specify if the connection to the SMTP EnableSSL Server must be done using SSL or not The e mail address to use in the from field of the message The e mail address to use in the to field of the message The priority of the e mail message True to silently ignore missing attachment files on runtime False to cause a runtime error when that condition occurs IgnoreMissingAttachments Attachments The list of attachments to send with the e mail message Table 16 E Mail Sender component Input Properties Those input properties can be set using the configuration form activated from the context menu at the designer or the link in the properties window Page 41 30X 3CX Phone System for Windows www 3cx com EMail Sender configuration SMTP Serer project SmtpServer User Name project User ame Ez Password project Password From infotdeszample com To ohnitesample com EL E BCC 5 Subject Test subjec
34. component Page 18 30X 3CX Phone System for Windows www 3cx com Start Page Main Amex QueryPayments Y X A nc aS ih i a The Disconnect Handler Flow if the call gets disconnected in a callflow when the disconnect handler flow ends its execution the whole execution ends On the other hand if the call gets disconnected on a user defined component document when the disconnect handler flow ends its execution execution continues on the parent document disconnect handler flow The behaviour is similar as used for error handling In this case the call is disconnected For example a call arrives starts executing Callflow1 which calls Component which calls Component2 If the connection is disconnected there the disconnect handler of Component2 is executed then the disconnect handler of Componenti is executed and finally the disconnect handler of Callflow1 is executed The main flow is not executed again for this call Start Page Main Amex QueryPayments X ai easiest el AS Disconnect Handler for Main f Main Flow 5 Error Handler Flow t Disconnect Handler Flow Page 19 3CX 3CX Phone System for Windows The following table clarifies these concepts Event description Error handled on error handler flow Error not handled on the error handler flow Connection disconnected Www 3cx com User defined Callflow document component document Whole execution ends after executing the local error
35. cript COM o E T e e external code to execute V ip r The path to the file or library to execute Only valid when ExternalCodeType is JavaScript or DotNetLibrary The type of the object to create Only valid when ExternalCodeType is ObjectType DotNetLibrary or COM When working on a NET library this is the class name including the namespace When working on a COM component this is the ProgID FilePath The name of the method or plain function to execute When is DotNetLi M j f Moda ExternalCode Type is DotNetLibrary or GOM an object of type ObjectType will be created and the method will be executed on that object instance A list of parameters used when invoking the function or method Each parameter can be a constant value a variable or an expression The name of each parameter is informative and is not used to validate against the function or method to call Table 17 External Code Execution component Input Properties Parameters Those input properties can be set using the configuration form activated from the context menu at the designer or the link in the properties window External Code Execution configuration External Code Type JavaScript Library File Object Type Parameters Screenshot 32 External Code Execution configuration The Library File is selected from a drop down list The list contains every library file or JavaScript document in the Libraries folder of the project Parameter names
36. e Socket Client Connection Type the type of the connection to establish TCP or UDP Server Host the server host name or IP address Port the port number where the server is listening for incoming connections Wait for response from server indicates if the component needs to wait for a response from the server after sending the data Web Interaction e HTTP Request Type the type of the HTTP request GET or POST Timeout secs The time to wait while trying to connect to the Web Server before returning the Server Timeout condition in seconds Zero means to wait forever Web Services Interaction Timeout secs The time to wait while trying to connect to the Web Service before returning the Server Timeout condition in seconds Zero means to wait forever Page 53 3CXK 3CX Phone System for Windows www 3cx com Debugging Introduction The VAD allows debugging of callflows following the execution path graphically and watching variable values changes step by step When a call activates a callflow built in debug mode a debug information file is generated containing variable values and the execution path That file can be opened later by the VAD in order to debug the callflow Building in Debug mode In order to debug a callflow you must build the project in debug mode After getting a successful debug build you must deploy the debug configuration to 3CX Phone System Now every call processed by the project
37. e EQ Database Access X MaxRetryCount 3 amp E Mail Sender Timeout 5 External Code Execution E Options CA File Management W Socket Client Web Interaction Web Services Interaction User Defined Components IsValidOption_0 False IsvalidOption_1 True IsValidOption_2 True IsfalidOption_3 True IsvalidOption_4 False IsvalidOption_5 False IsvalidOption_6 False Is alidOption_ False IsValidQption_8 False IsvalidOption_9 False IsvalidOption_Pc False IsvalidOption_St False E Prompts Collection J InvalidDigitPromp Collection SubsequentPron Collection TimeoutPrompts Collection v Configure Add Option 0 Add Option 4 Add Option 5 Add Option 6 Add Option 7 Add Option 8 Add Option 9 Add Option Add Option InitialPrompts The list of prompts to play the first time the menu is executed E Main Flow EN Error Handler Flow Disconnect Handler Flow Error List Output Debug Ready Screenshot 5 Adding components Once you have created the callflow you can drag and drop components from the toolbox to the designer In this example we ll add a Menu component 1 From the toolbox on the left hand side select the component Menu 2 Now drag it onto one of the options of the call flow Drag it onto Drag and drop component here You will see Menu component written when you have dragged it on to the correct location Page 8 30X 3CX Phone System for Windows www 3cx com 3 Now giv
38. e ecg Cincher lla ES Maie ity gaighle Assignment Tiea ot irak O pon 45 Maio cong 41 biene Variable E o A E Wei 4 1 i Deserermer Y pri able r 4 Loop EEK ranaieT opena poy ENE Lal _ x 3 Advanced a Lipps apy PP a Ge Database Acces A _ AAA yh tena Code Execution B Callllow Fide Mar rama Achyshont viens 051 z in Brisio ens 851 TP Socket Cieri PhoCalfiowHame Main CA web Inter actor El File e Web Sensices Interaction Mare Maan inw r gt Um Coheed Come rant Caller br Number Typa nsenphon Fiz Error Uist Gup Debug Res Screenshot 1 The voice application designer The 3CX Voice Application Designer is a visual design tool that allows you to easily create voice applications Voice applications are programs that interact with the user via the phone and then perform certain logic For example you could create a voice application that asks for a caller to input a customer number which is then verified against a database Based on customer number a call can be routed to a certain queue Because the 3CX Voice Application Designer is entirely visual little telephony or programming knowledge is required How does it work Using the 3CX Voice Application Designer you visually create your application Each application consists of a number of building blocks called components For example Menu Prompt playback User input are a few of the most common com
39. e the component an appropriate name In this case we ll name it MainMenu 4 By default each call flow starts with 2 options We re going to add a third option Right click with your mouse anywhere in the designer window and select Add Option 3 Note When the Menu component is added to the designer it will have its properties set to the template you have in Tools gt Options gt Component Templates gt Menu You may change the Menu component properties from the Properties windows or its configuration form The configuration form can be opened by double clicking the component or in the context menu displayed when you right click on it 5 To change the menu prompt edit the InitialPrompts property from the Properties window The Prompt Collection Editor will be shown There you may add an AudioFilePrompt and select an audio file from the drop down list This list shows the names of the files you have in the audio folder of the project You need to record the prompt and copy the file to that folder in order to get it listed here Audio files can be wav or mp3 format Prompt Collection Editor Members MainkienuPrompt properties A MainMenuPrompt E A E Audio File Prompt AE ManMenuPrompti way E Prompt Mame HM ainkd enuPrompt sai eno 7 6 You may want to add prompt messages to play when the user enters an invalid option or does not input anything You can do that by changing the
40. eessanseesseass 53 SOCKET GIENE oerion a E aaa deci A 53 WeED Inlerac 1 q osaman na 53 Web Services Interaction rt 53 DEPON Okoro o lle lille 54 is HO oae a a aT 54 Building th DEDUG Modes esc seattle r len a 54 Callow debugging es Led need at e ath cal ne 54 Sample Application AKAA 59 os O O as 59 Creating and configuring the CallflOW coooccnnnccnnnccncononnnnnnncnnnnnonncnnnnnnnononaannnnnns 59 Creation of the Project and the Main CallflOw ooocccccccccccconnncnnccnnonoanncnonnnnnnos 59 Gontiguiing the Mal GallllOW zii Ad 62 Configuring User Components vVarlables ooocccccccccccoconnccnnnncnnononnnonnnononnnannnnnnnnnnnos 64 Designing User Components lia 65 Designing QueryPayments Component ccccceeseececcseeeeceecceeeeeeseeseaeeeesseaseeeeesaaaess 65 Designing Perfor mMPayMe nl ccccscccccssseeccseeeeeessececsaeeeeseeeeessuseeeseaeeeessageeesseeseesaess 69 Designing RequestCreditCardNumber component 0ccsceeeeeeeeeeeeeeeeeeeeeeaenseeeeeeess 72 Error Handler for the Visa COMPONEN1 cccccsseecccceeeeeceeeceeeeeeeeesseeeeeeseseaeeeeeesaaaeeeesaaaess 74 30X 3CX Phone System for Windows www 3cx com Introduction What is 3CX Voice Application Designer Sy Hrs I Use Input E Protant Pluck jF Record E Ameiconp Cet Tiaras E Common gt i Petia ane rreg 5 Decorreci Cal Quer maeri comp Conbad Siructurcs Haque sedi ae
41. enshot 7 Transfer configuration 11 Drag and drop a transfer component onto the valid option area Now double click on the transfer component The transfer configuration dialog will appear 12 Now click on the Expression editor button which is the fx button next to the destination field The Expression editor will appear Page 11 30X 3CX Phone System for Windows www 3cx com Expression Editor O Javascript Expression Variable O VAD Expression Variable selection See askForDestination e MainMenu po Result ae MenuResult e gt InalidO ption Es Timeout S Valid ption ae Recordhesult ll Completed Gs Nothinghecorded Ey StopBy Silence Screenshot 8 The expression editor 13 To make an outbound call to the selected destination select the Buffer property of the askForDestination component EA 3CX Voice Application Designer Rela SimpleExzample fle cde wew guld pug Took helo te eae Pe eee ae oe ee en ee oe EE e Dircommect Cal gt Control Strucbures d Concitinnal Aab Variable Assignment 11 Insemenl Venable 21 Decemert Vanable pre i pka i 5 Loop i q q I ku aJ x i b t q qe a E Est Callos A Advanced i i ae 21 I I a Coppangeagty i i E General a Dallas Sur i i i Sapen r H r l z E 1 I nabbed ALR 2 hal sence E CC marsie Totais Pig i 1 E ansia peros O Transfer 7 Esteenal Coda Erection E EE
42. er constant values you need to add quotes For example write Some Text instead of Some Text The Destination input property can be set choosing an existing extension from 3CX Phone System Page 34 3CXK 3CX Phone System for Windows www 3cx com When the transfer ends execution continues on the disconnect handler flow as the call is disconnected from the voice application Disconnect Call This component disconnects the current call It has no special input properties and does not expose any output property after its execution Control Structures Components Control Structures A Conditional AeB Variable Assignment at Increment ariable H Decrement arable Loop Om Exit Callflows Screenshot 26 Control Structure Components Conditional This component allows performing an action when a condition is met The execution path is selected between many branches This component has no special input properties and does not expose any output property after its execution In order to add a branch the user must execute the Add Branch command in the Properties window or the context menu Each branch has a Condition input property That property is an expression that must be evaluated to true in order to execute the branch Branches are evaluated from left to right so the user can change the order with the Move left and Move right commands Only one branch can be executed and it will be the
43. ervices It performs a web request using the POST method to the specified URI and WebServiceName for example htip www example com ExampleWebsServiceName using the provided parameters This component has the following input properties Page 47 30X 3CX Phone System for Windows www 3cx com The URI where the web service is located WebServiceName The name of the method to invoke The time to wait while trying to connect to the Web Service before Timeout returning the Server Timeout condition in seconds Zero means to wait forever The list of parameters to send when invoking the web method Each met parameter can be a constant value a variable or an expression The name of each parameter is the name of the field that will be sent to the web service as form data Table 21 Web Services Interaction component Input Properties Those input properties can be set using the configuration form activated from the context menu at the designer or the link in the properties window Web Services Interaction configuration URI Web Service Name Timeout secs 30 Web Service Parameters Screenshot 36 Web Services Interaction configuration The URI and Web Service Name input properties can be set using an expression Web Service Parameter names are constant string values and do not require quotes Web Service Parameter values can be set using an expression When the web services interaction ends execution c
44. eseaeeecseuseeeseaseeessaeeessageeessegseessseeenes 27 Gall Related COMPONENTS ta ti iio 29 Menu 29 UA AP E E 30 ic A sees 32 ROCO A A earn den Seat ete eet tae tne Nea eee ect cet tear tence ec tesa 33 o ane ara tea Att aeraatie Pact waar de ncea tacaiees An nada citcarara duieaneeteaitnsetley sa ainnase 34 Disco mec alado inca 35 Control Structures COMPONENTES oocccccccccccccnoncconnncnonononnncnnnnnnononnnnnnnnnnnnonnnnnnnnnnnnnnnnnannnnnnnns 35 SA e te aa ee ee ce 35 Variable Assim ici ide 35 Merement Variablo aa 36 Decroment Valla ia eaves 37 Loop 37 EXIT ADIGA OM oia 37 Advanced COMPOneniS ize castemacecsicusnacernigedisaelnacudent a e a AA ances ceca 38 Ann A 38 Database ACCESS iran a E a Manta ieee ties 39 Wall SENSE APA eN o O 41 Extemal Code ExXccullO aid dd 42 File Management 44 o a nana tenhGeseaubeieeasswceieeate 45 WWD Interact ais 46 Web Services Interact 47 User Defined COMpPON8NES ooocccnnccccccccconccnnnncnnnnnnoncnnnnnnnonnnnnnnnnnnnnonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnans 49 Default Component Opio Suri ii a a iia 49 Menu 50 di a A O er OMe ene Meee eer cee mee renee 50 RECON ON 50 Tans 1 PC OO a a bes ieleaiicediaat oad 50 Usted o o 51 ODIO TADA anio a a 51 PAV SC CS pace enters S A IE cease nate tain sacar ee Psat elected emi ates 52 E Mail Gender orru a 52 External C ode EXECUION arerin a a a a E austin 53 File Management cccccscccccssseccceceecsseeeceeseecceuseeessaeeecsaeeecseaseessseeessse
45. first which has a Condition that evaluates to true The Condition at the last branch is optional If it is set it must be met in order to execute the branch If it is not set the branch executes if all previous branches didn t If the last branch has a Condition it is possible that no branch gets executed at all if every Condition evaluates to false Variable Assignment This component allows assigning a new value to an existing variable The selected variable must be read write in order to be assigned This component has the following input properties Property Description The name of the variable It must be an existing variable defined at VariableName i Project scope callflow scope or a public property of a component Page 35 3CXK 3CX Phone System for Windows www 3cx com The Variable Selector Form allows selecting a variable between all the available ones The value to assign to the variable The Expression Editor Form allows composing complex expressions more easily The user can choose to use a Javascript Expression a variable or a VAD Expression where each parameter is a new expression and can be edited using a new Expression Editor instance Variables are selected from a list that shows every available variable in the current scope read only and read write variables For more details about all the Expression available functions see The Expression Editor Table 10 Variable Assignment component Inpu
46. from the end user e Text To Speech Audio The audio is automatically created from text A When using a Dynamic Audio file prompt the expression that creates the file name must return a string containing the file path relative to the working directory You must not use absolute file paths here If the audio file is located in your project Audio folder then you just need to refer to it by its name no special path information is required For example if your project is being deployed to ProgramData 3C X Data Htip Interface ivr MyVadProject and your audio file is located at ProgramData 3CxX Data Http Interface ivr ExternalAudio Audio wav then the expression must return ExternalAudio Audio wav Page 25 SOX 3CX Phone System for Windows www 3cx com When using a Text To Speech Audio Prompt you need to configure different settings The Format can be set to Text or SSML The Text property contains the text to convert to speech in one of two different formats When you set the Format property to Text the Text property will be treated as an expression that returns plain text and that text will be converted to speech When you set the Format property to SSML the Text property will be treated as an expression that returns SSML Speech Synthesis Markup Language The essential role of the SSML markup language is to give authors of synthesizable content a standard way to control aspects of soeech output such as pronunciat
47. gt lt webServices gt lt system web gt lt configuration gt User Defined Components User defined components are automatically added to the toolbox They can be used to group common functionality reduce diagram complexity and as a localized error or disconnect handler Public properties exported by these components are automatically shown in the Properties window The user can assign an expression to those properties in order to customize the component behaviour Be aware that in order to enter constant values you need to add quotes For example write Some Text instead of Some Text The component can internally update properties values so they can be used as component output too Default Component options You can change the default options of the various components from the Tools gt Options menu The configured values will be used when dragging a component from the toolbox and dropping it into the designer Page 49 3CX 3CX Phone System for Windows www 3cx com Options E Projects General Build Timeout secs 5 Allow Barge In Recent Projects Max Retry Count 3 Component Templates Menu Prompt Playback Record Transfer User Input Cryptography Database Access EMail Sender External Code Execution File Management Socket Client Web Interaction Valid Options Fl Option 0 Option 1 Option 2 C Option 3 C Option 4 C Option 5 C Option 6 C Option 7 C Option 8 C Option 9 C
48. handler flow Whole execution ends after executing the local error handler flow Whole execution ends after executing the local disconnect handler flow Table 2 Error and disconnect handling behavior The Docking panels Execution continues on the parent document main flow after executing the local error handler flow Execution continues on the parent document error handler flow after executing the local error handler flow Execution continues on the parent document disconnect handler flow after executing the local disconnect handler flow The docking panels contain important functions that allow you to set properties and more for your project gt Components Call Related A Menu dili User Input ck Prompt Playback y Record EL Transfer o Disconnect Call l Control Structures Conditional a8 Variable Assignment 31 Increment Yariable al Decrement Variable Loop gf Exit Callflowy Advanced ra i Cryptography F Database Access E E Mail Sender External Code Execution Ed File Management Eh Socket Client P Web Interaction Web Services Interaction User Defined Components 43 Amex 13 Master 13 PerformPayment 13 QuenyPayments 3 RequestCreditCardhumber 3 Visa Screenshot 14 The components toolbox Page 20 30X 3CX Phone System for Windows www 3cx com Components Toolbox The toolbox contains a set of built in components Each user defined component is also
49. he user to enter an invalid option 4 times stay in silence another 4 times and when the invalid input count or timeout count reaches 5 the menu component will finish its execution ment The time to wait for user input before playing the specified timeout prompt in seconds Page 29 3CXK 3CX Phone System for Windows www 3cx com Specify what happens when the user presses N It could be a valid or IsValidOption_N an invalid option Valid options appear as branches in the designer InitialPrompts The list of prompts to play the first time the menu is executed The list of prompts to play subsequent times The SubsequentPrompts list contains the MinTryCount property and the list of prompts to play when the try count is greater than or equal to SubsequentPrompts MinTryCount For example setting MinTryCount 3 means to use InitialPrompts the first and the second time and use this prompts after that You may specify more subsequent prompts each one starting at a different MinTryCount The list of prompts to play when the user does not enter any digit The same MinTryCount logic applies After playing the timeout prompt the main prompt will be played too initial or subsequent prompt TimeoutPrompts The list of prompts to play when the user enters an invalid digit The same MinTryCount logic applies After playing the invalid digit prompt the main prompt will be played too initial or subsequent prompt Table 5 Menu component
50. ication Designer Beta CreditCard File Edit view Build Debug Tools Help AS E E CallRelated ByMew afl User Input Y Prompt Playback P Record C C Transfer lo Disconnect Call Control Structures e Conditional AsB Variable Assignment Bil Increment Variable HII Decrement Variable 5 Loop A Exit Callflow gt Advanced a Cryptography Fy Database Access amp E Mail Sender Extemal Code Execution E File Management RA Socket Client P Web Interaction EN Web Services Interaction User Defined Components Error List Output Debug Option 1 Drag and drop components here Main Flow SS ne Option 2 i Drag and drop components here EN Error Handler Flow Disconnect Handler Flow Timeout or Invalid Option it Drag and drop components here la 4 CreditCard E Callflows y Main flow Name mainMenu AllowB argeln True MaxRetrylount 3 Timeout 5 E Options lsYalidOption_0 False IsYalidO ption_1 True IsvalidOption_2 True IsValidOption_3 False IsValidOption_4 False IsValidOption_5 False IsvalidOption_6 False Ia ishdO tico 7 Calan Configure Add Option 0 Add Option 3 Add Option 4 Add Option 5 Add Option 6 Add Option 7 4dd Option 8 Add Option 9 Add Option 4dd Option Name Please specify the name of the component It has to be unique in the entire flow Ready Screenshot 43 Modifying the name
51. id input count or timeout count reaches 5 the user input component will finish its execution FirstDigitTimeout The time to wait for the first digit before playing the specified timeout prompt in seconds The time to wait for subsequent digits before playing the specified InterDigitTimeout joa ae ce g invalid digits prompt in seconds The time to wait for digits after MinDigits has been reached before returning the entered data in seconds MinDigits The minimum quantity of digits that must be entered by the user MaxDigits The maximum The maximum quantity of digits that can be entered by the user of The maximum quantity of digits that can be entered by the user that can be entered by the user StopDigit cae the digit that the user must press in order to finalize the data FinalDigit Timeout hen th N IsValidDigit_N Specify whai happens when the user presses N It could be a valid or an invalid digit InitialPrompts The list of prompts to play the first time the user input is executed The list of prompts to play subsequent times The SubsequentPrompts list contains the MinTryCount property and the list of prompts to play when the try count is greater than or equal to SubsequentPrompts MinTryCount For example setting MinTryCount 3 means to use InitialPrompts the first and the second time and use this prompts after that You may specify more subsequent prompts each one starting at a different MinTryCount
52. ies If true a tone is emitted just prior to recording The list of prompts to play before recording available prompt types Prompts l are described in Prompt Types The maximum duration to record in seconds FileName The value can be an expression The name of the file where the recording must be saved Only valid when SaveToFile evaluates to true The value can be an expression Table 8 Record component Input Properties FileName These input properties can be set using the configuration form activated from the context menu at the designer or the link in the properties window Record configuration Emit beep just prior to recording Terminate by OT HEF Save to file File Marne Screenshot 24 Record configuration The Save to file and File Name input properties can be set using an expression In order to create an expression for those properties press the Expression Editor Button on the right side of the text box Be aware that in order to enter constant values you need to add quotes For example write Some Text instead of Some Text When the recording ends execution continues to the next branch Audio Recorded or Nothing Recorded The record component exposes the following output properties for further query Page 33 3CXK 3CX Phone System for Windows www 3cx com e Result the recording result RecordResult NothingRecorded no audio recorded RecordResult StopDig
53. ion volume pitch rate etc For more information read the SSML recommendation htip www w3 org TR speech synthesis The VoiceName property allows you to change the default voice used to convert the text to soeech The VAD uses the Microsoft Speech Synthesizer included with the Operating System If you install additional voices you can set the voice name here in order to use it If you need to know what voices you have installed on your server go to Control Panel gt Speech Recognition gt Text to Speech The Voice Selection list will show the available options By default Microsoft Anna will be available If you need additional voices this article explains how to add them http www ehow com how 6967571 add text speech voices html The Volume property lets you control the volume of the voice Valid values are between 0 and 100 The Rate property lets you control the audio speaking rate Valid values are between 10 extremely slow speech and 10 extremely fast speech Prompt Collection Editor my Tet ToSpeechAudioPrompt properties H my TextToSpeechAudioPrompt CEE Name E El Text to Speech Audio Prompt Format Tert Text Hello world Voice Name Volume 100 Page 26 3CXK 3CX Phone System for Windows www 3cx com A The Text To Speech Audio Prompt is only available on licensed installations The Expression Editor Many input properties can be set using an expression In this case the input field will co
54. is the number of characters to cut Returns a string that is the specified substring of the Original string Receives two parameters The first is a string to cut The RIGHT second is the number of characters to cut Returns a string that is the last N characters of the original string Receives three parameters The first is a string where the replacement must be made The second is the text to find in REPLACE are order to replace The third is the text to replace with Returns a string with the replacements specified Receives three parameters The first is a string where the replacement must be made The second is the regular REPLACE _REG_EXP expression used to find text in order to replace The third is the text to replace with Returns a string with the replacements specified UPPER Receives a single string parameter and returns another string that is the original string with upper case LOWER Receives a single string parameter and returns another string that is the original string with lower case NOW Receives no parameters and returns the current date and time LEN Receives a single string parameter and returns its length as a number Page 28 30X 3CX Phone System for Windows www 3cx com ME A MO Sums every numeric parameter and returns the result Can SUM have from 2 to 20 parameters Returns the negative number of the single numeric parameter received ipli h It MULTIPLY Multiplies every numeric pa
55. it recording was stopped by a DTMF key press RecordResult StopBySilence recording was stopped by a final silence RecordResult Completed recording was stopped by reaching the maximum audio length e Duration the duration of the recorded audio in seconds e Size the size of the recorded audio in bytes e StopDigit the DTMF digit pressed by the user when Result RecordResult StopDigit e Audiold a variable containing the audio which can be used to play it back to the user Transfer This component allows transferring the call The transfer can be done only in blind mode The call is automatically disconnected from 3CX Phone System and transferred to the specified destination This component has the following input properties The destination number where the call must be transferred The value Destination can be an expression so you may for example transfer the call to a number entered by the user in a User Input component Table 9 Transfer component Input Properties Those input properties can be set using the configuration form activated from the context menu at the designer or the link in the properties window Transfer configuration Screenshot 25 Transfer component configuration The Destination input property can be set using an expression In order to create an expression for that property press the Expression Editor Button on the right side of the text box Be aware that in order to ent
56. it is automatically opened The VAD offers the possibility to filter the list of messages by pressing the button of the desired message type Page 23 30X 3CX Phone System for Windows www 3cx com Output Window Output Oy oo Build process started for project CreditCard in debug mode IN E Deleting previous files and folders from the output folder Compiling file Main flow C T emp GAD CreditCard Callflows M ain flow Audio file C Temp GAD_Test_Components CreditCard Audio G oodbye way specified in component goodBye was not found Audio file C T emp GA4D_Test_Components CreditCard 4udio 5 MainMenu way specified in component mainMenu was not found Compiling file Amex comp C T emp GAD CreditCard Components 4mex 4mex comp Audio file C Temp GAD_Test_Components CreditCard Audio S oryNotReady wav specified in component sorryNotReady was not found Screenshot 18 The Output window The output window shows the actions performed by the compiler during the build process For example the VAD informs when the build process begins the build mode Debug or Release when a file compilation begins etc Debug Window Debug o F sl Name Value e session Y ani 101 9 callid From_101_To_999_Menu_999_ 0 0 PA dnis 399 9 DatabaseServer localhost DatabaseName CreditCard Error List Output Debug Screenshot 19 The Debug window The debug window shows vari
57. ithm to use DES TripleDES or MD5 hash Format encoding format for encrypted or hash bytes Page 51 3CX 3CX Phone System for Windows www 3cx com Key the key to use with DES and TripleDES algorithms Database Access Options Database Type Sal erver General Es Build Server Recent Projects l Database Component Templates Menu DataSource Prompt Playback Record User ane Transfer User Input Cryptography Statement Type Query Password Database Access EMail Sender Timeout secs 30 External Code Execution File Management Socket Client Web Interaction Web Services Interaction x e Screenshot 39 Options Component Templates Database Access Database Type the type of the database SQL Server Oracle or ODBC Server the database server name or IP address Only valid when Database Type is SQL Server Database the name of the database to use when connecting to the database server Only valid when Database Type is SQL Server Datasource the datasource to use when connecting to the database server Only valid when Database Type is Oracle or ODBC UserName the user name to use when connecting to the database Password the password to use when connecting to the database Statement Type the type of the statement Query NonQuery or Scalar Timeout secs the wait time before terminating the attempt to execute an SQL statement and generating an error Zero means
58. ity you can create a package with all the necessary files to deploy your project locally to another server To do this 1 Execute the menu command Build gt Create Deployment Package Select the desired configuration between Debug and Release Select the output folder i e the folder where the package will be created Press the OK button to create the package Copy the entire output folder to the destination 3CX server ee es oy In the destination 3CX server execute the DeployVADProject exe program to deploy locally After the deployment has been completed you will see the callflows registered in 3CX Phone System as Digital Receptionists and you will be able to manage them as usual Executing your voice application When deploying a project each callflow is registered in 3CX Phone System with an extension number The extension number is configured in the ActivationExtension or ActivationExtensionDebug property for the callflow Be sure not to use an extension number that already exists In 3CX Phone System Voice Application Designer callflows are treated as Digital Receptionists You can choose when a callflow is activated in the same way you Page 14 30X 3CX Phone System for Windows www 3cx com decide that a Digital Receptionist is activated for example when an inbound call arrives from a PSTN line or when a user presses a digit on another Digital Receptionist After deployment you will see each callflow listed under the Digi
59. lt LU al 4 The buffer will be stored into the CreditCardNumber public output property 5 If the user does not enter a valid credit card number we will play a prompt message and disconnect the call 5 1 From the Call Related Components section drag the Prompt Playback component drop it into the Invalid Input branch and name it sorry 5 2 From the Call Related Components drag the Disconnect Call component and drop it into the Invalid Input branch The following figure shows the resulting flow for the RequestCreditCardNumber component I 3 X Voice Application Designet Ge pie yew Gat pebuy oos tiep ee A ACA A ad 2 2 0 223 Q X Startpage Main PerformPayment RequesttredtCardsumber i CallRetated a f Menu F 3 wu se Inoue HequesiCredaCaraNumber de Por Peras J Record OC Tante amp Disccrract Cal Control Structures L Condions Aa Venable Asognmert St Incarecerd Varistie ii Doremon V orate Loop 2 Ga Catiow Advora ii Cyptogacty Dersbase Access EF Mal Sardu gt Eder Code Executor rw Fle Monagerert ES Socket Chere 9 Web interaction Nome Regqees CiedtCerdN ums Varabies Collection Web Services Imeracnen Name Tha ravine of the file 1 Mar Flees EN Enoe Manche Flow Disconnect Harter Flows Ready We have configured the RequestCreditCardNumber component Page 73 SOX 3CX Phone System for Windows www 3cx com Err
60. mponent drop it into the Valid Input branch and configure the name and the Prompts T Upa Ingul aji Promega Plaptack E rex E Beca H ameccom EL Tiana E Connon Feju merani comp ff osonres Cal Quy arent Cente Shue Einprafadi anunn o db Careia p Hee kiki ia i baitai iiig iyan EAER B is aIl Uren ape P Via coro E 1 Decramend Variable aby Lee ot ict Calles Adhere a Erich UE Dabare Access lt gt BE Mal Sedes E Esteirial Coca Escultor E atx File Management ie a ea nal Gubir Fr Collectan da P eb Interaction TinscuProrpt Collection ever Darth liigi grai D Tim More Defined Componente FinalligiTimecut 2 Frimen A 1 amex kimika me 3 TE Hae El Urei Impr Peron spren Harel inpulilacrur TE 0 prenda Abel angela Taunt Hii huri Ei E Fapa T iac anun Yia Hamr Pleate ipho fre pase ol he comporerd li at Eco ba urep mi Che ardia coa i Liar Flaw E Erni Harada Flor i Cio Haraha Flow 4 If the user does not input a valid amount we just play a prompt and disconnect the call 4 1 From the Call Related Components section drag the Prompt Playback component and drop it into the Invalid Input branch and name it sorry 4 2 From the Call Related Components drag the Disconnect Call component and drop it into the Invalid Input branch The following figure shows the resulting flow for the PerformPayment component Main QueryPayments RequestCreditCardNumber PerformPa
61. mponents A Remember that you may move callflow and component files by dragging and dropping them in the new location in the Project Explorer Configuring User Components variables Now we are going to configure the user component s variables 1 We will begin with RequestCreditCardNumber component This component will ask for a credit card number and will be used by Visa Master and Amex components lt needs to return the credit card number entered by the end user so we need a public variable to store it Variable Collection Editor Members CreditCardNumber properties IN CreditCardNumber J z A 4 E Variable Name CreditCardNumber Accessibility Readwrite MERETE Screenshot 47 Variables Click on the Variables button from the Properties window Click the Add button Configure it as shown 2 Now we are going to configure the QueryPayments component This component will query a database in order to get a list of payments The CurrentRecord variable will allow us to loop through that list Configure the following variables Variable Collection Editor Members CreditCardNumber properties A A 11 CurrentRecord e 24 E Variable Name CreditCardN umber Accessibility Readwirite Initia alue Remove Page 64 30X 3CX Phone System for Windows www 3cx com and Variable Collection Editor Members CurrentRecord properties O CreditCardNumber A ELA E Variable Name C
62. n all the available ones Table 11 Increment Variable component Input Properties VariableName Page 36 3CXK 3CX Phone System for Windows www 3cx com When the increment variable ends execution continues on the following component The increment variable component does not expose any output property after its execution Decrement Variable This component allows decrementing an existing numeric variable integer float or currency The selected variable must be read write in order to be decremented This component has the following input properties The name of the variable to decrement It must be an existing numeric variable integer float or currency defined at Project scope callflow scope or a public property of a component The Variable Selector Form allows selecting a variable between all the available ones Table 12 Decrement Variable component Input Properties VariableName When the decrement variable ends execution continues on the following component The decrement variable component does not expose any output property after its execution Loop This component allows executing a group of components while a condition is met The components contained into the Loop component are executed from O to N times If the condition is not met the first time those components are not executed at all This component has the following input properties Condition An expression that must be evaluated to true
63. nal Code Execution 2 File Management Ba Socket Client lt Error List Output Debug Ready Screenshot 3 Creating a project The first step is creating the project To do this 1 Click File gt New gt Project 2 Enter a project name and location and click Save Page 6 30X 3CX Phone System for Windows www 3cx com 3 The project will be created with default properties If you need to change them select the project in the Project Explorer Then the Properties window will show its properties and let you change them The application will create a folder to store audio files for the project another folder to store library files for the project and another folder to create deployment packages It will also create a folder to generate the output of the building process in debug and release modes The project will be created according to the default properties for a project You can change this from Tools gt Options gt Projects gt General Creating a callflow Eat Ml y pa Dalat aAa i a SSS a ed CallHelabed e 1 Simple smple z Mara Aira ha 31 Menu 1 a Y Promot Playback aa f Areni CC Tranter Drag ered dop bime al geri es Control Structures es gt Loni LA grid Amigas Mitts he 1 Discreta V pri able a Loop oF E Colitis Adana i Cryptogeapity a x ES Database dl T A E EMi Sonda a id E tena Code Execution B Callow af File Manson Activation densas 151
64. ndow change the recently added component name to Page 68 30X 3CX Phone System for Windows www 3cx com incrementRecordNumber On the Expression Editor enter the following information Expression Editor O Javascript Expression O Variable VAD Expression YAD Expression D m Hades Ai ok J toa Ar We could use an Increment Variable component to do this but this is just to show how to create a more complex expression 10 Configure the Variable Name by clicking on the a button and choosing the following value from the Variable Selector Variable Selector a Pa callflows Cs o CurentRecord We have completed the configuration of the QueryPayments component Designing PerformPayment 1 From the Project Explorer window double click on the PerformPayment component in order to open it 2 We want the user to enter the payment amount so we need to ask for it using a User Input component 2 1 From the Call Related Components section drag the User Input component and drop it into the flow Page 69 30X 3CX Phone System for Windows www 3cx com ia Menu 8 User Input Bh a a Components E Prune Plata j gf Are FF Apad Ara Dor Elite mi ani e Paion american if Titers O Deal aprentnconp Control Siuh Mepa miea gt Condiicral El actos O ee cans Le Jimera Vigie j vn TT aa Vanil Slew Ea alii Auhia piegas gf Database Ac 4 F E Ha ende ix a Fle
65. nfigured the simple menu and we need to add the components that will be executed when any of the options is activated Let s assume we want to transfer to the Sales department if the user presses 1 To do this drag and drop a Transfer component from the Toolbox to the designer under the Option 1 branch 8 Change the name of the transfer component 9 Double click on the component and select the sales extension as the destination Repeat this procedure for option 2 transfer to Help Desk and timeout or invalid option transfer to the operator Page 10 SOX 3CX Phone System for Windows Www 3cx com EA 3CX Voice Application Designer Beta SimpleExample File Edit View Build Debug Tools Help Lr bel AED oF x Call Related Ey Menu di Prompt Playback P Record Transfer o Disconnect Call Control Structures e Conditional AsB Variable Assignment 34 Increment Variable 3 1 Decrement Variable 5 Loop 2 Exit Callflow Advanced al Cryptography EQ Database Access amp E Mail Sender External Code Execution CA File Management W Socket Client P web Interaction Web Services Interaction User Defined Components L Error List Output Debug Start Page E Main Flow A Error Handler Flow Disconnect Handler Flow Lo A K miia hita i MainFlow E o Ff x oe al SimpleExample Sy MainFlow flow os asl Hia 8 14 i IsValidDigit Star False A E E ai Ma
66. ntain a icon on the right Click that button to open the expression editor Expression Editor O Javascript Expression Variable gt VAD Expression Variable selection es callflows ca Test ame El e MenuResult Es Invalidi ption Es Timeout Es Validi ption E Z project DatabaseName DatabasePassword Databases erver Database ser ame Testlycleld Teztld Screenshot 20 The expression editor An expression can be a Javascript Expression a variable or a Voice Application Designer Expression Variables can be defined at many levels e Project level variables defined at this level can be used across the Project by any callflow or user defined component They are global variables that can be used for example to share data between callflows and user defined components e Callflow level these variables are visible within the callflow but cannot be seen by any child component e User defined component level these variables can be public or private Public variables are visible by the parent callflow or component and can be used to set parameters and customize the component behavior Private variables are only visible internally at the user defined component A Variables can be also read only or read write The list of available functions to use in a VAD Expression is as follows Page 27 3CXK 3CX Phone System for Windows www 3cx com Performs a logical AND between every parameter returning a Boole
67. ontinues on the following component The web services interaction component exposes the following output properties for further query e Result contains the root element content extracted from the XML returned by the web service If the return value is a complex XML this property will contain the complex XML except the removed root element In simple xml web services the answer is usually a plane value into the root element of the response this component is designed to be used when executing simple xml web services Page 48 3CXK 3CX Phone System for Windows www 3cx com AX In previous versions the URI and WebServiceName properties were constant string values and now they have been changed to be expressions in order to give them more flexibility When the VAD opens a file saved with a previous version it will automatically convert the constant value to an expression After saving the project with this version of the VAD you will not be able to open it again with previous versions If you re creating the web service using the NET framework and need to access it remotely for example 3CX Phone System running on computer A and the web service running on computer B then you will need the explicitly enable the HTTP POST protocol in the web config file This can be done adding the following settings lt configuration gt lt system web gt lt webServices gt lt protocols gt lt add name HttpPost gt lt protocols
68. or Handler for the Visa Component As an example we are going to configure the Error Handler Flow for the Visa component 1 From the Project Explorer window open the Visa component by double clicking on it Then select the Error Handler Flow from the tabs located at the bottom of the designer Er yei Voice Apphcalkan De inner Beta Lreditlard Related E i it 5d iik iP wach SE Ae Tea tom s tara SoH T pr A Snr Sao oor if Daonra Lal Dus meri comp Uani haaa Raja cal ab te Cirata E Marte dl Viable Anorenent dE dd art org F E n ri Vie tome Decsamrerd Unable Enema Coda Dsscut n Ed Fils hlari oa Socket Chant AP wah ret hori ih Web Save A Mon Delined Compormts IE Arnes E Manin E Pola aed LE Duy Payments LE Requests diumba H dl Branch Deccnption Piste ipeciv the deccnpter of the try I Main Flor fp Eror Harder Flow 0 Ditcomnect Harir Fiw Error Lt Capu Debug Bady We will configure the error handler for database access errors transferring the call to an operator in the event of such an error 2 1 On the Error Handler object right click and select the Add Branch menu command Now we are going to configure the components for this branch First from the Properties window modify the Error Type for the Error Handler Branch to error databaseaccess Then from the Components section drag and drop the Transfer Component into this branch Now
69. or Windows www 3cx com Getting started Creating a simple callflow Introduction In this chapter we ll explain how to create a simple callflow and deploy it to 3CX Phone System The idea of this chapter is to give an overview of how to work with the VAD After you are able to build a simple application you can then familiarize yourself with the more advanced components and build more complex applications In this chapter we will build a callflow which will offer a simple menu For Sales press 1 for Helo Desk press 2 to make an outbound call press 3 or hold on and an operator will assist you The concepts used in this section are explained in detail in the following chapters Creating the project File Edit View Build Debug Tools Help W i y juis r uk Ha ebk 4 mn E i E T gt AMI DE AA Xi SX a e ds e CSS X 22 0 Components a Ff x Start Page Project Explorer Call Related SimpleAitender A Menu tt ht hrs Mo e Emb Calflows a m seje 25 Attender flow aili User Input 7 E Prompt Playback IF Record C E Transfer 2 New Callow le Disconnect Call New Component Control Structures Properties Window Conditional A B Variable Assignment Et Increment Variable 1 3 Decrement Variable Build amp Deploy aoe 5 Loop di Debug Build Name SimpleAitender Exit Callflow mm Sip Port 5060 Advanced es Collection fe Cryptography ligt Database Access E Mail Sender Exter
70. our license by going to the Tools gt Activate License Page 3 30X 3CX Phone System for Windows www 3cx com oneee License Key Customer Details Company Contact Name E Mail Enter your license key Company Contact Name E mail Telephone Country and Reseller Name and click on Activate to activate your license This information will be sent to our license key server and your license key and installation will be activated After activating your license in order to use the Text to Speech functionality you will have to restart the 3CX Voice Application Designer Configuring Phone System location E Projects Projects Default Folder C Users EmestoDocuments y General i Recent Projects E Component Templates gt Text To Speech i Cryptography Database Access EMail Sender i Edemal Code Execution 2 File Management Socket Client Web Interaction i Web Services Interaction Screenshot 2 Options Projects General Page 4 30X 3CX Phone System for Windows www 3cx com After you have installed 3CX VAD you need to specify the location where you will save your projects 1 Go to Tools gt Options from the main menu Here you can configure general application parameters not related to a specific Project 2 Configure Project Default Folder this is the default folder used to save the projects when a user opens or creates a new Project Page 5 30X 3CX Phone System f
71. ponents Each component has particular configuration options When you have put together your voice application it is as a project This project is then uploaded to 3CX Phone System Using a digital receptionist or a DID number you can then link to your voice application In that way callers can be directed to your application either directly or via a menu From within Page 1 3CXK 3CX Phone System for Windows www 3cx com voice applications you can link back to call queues extensions digital receptionists and so on Terminology The 3CX Voice Application Designer or VAD uses a number of terms e Project your actual application composed of callflows and components e Callflow a particular interaction with a caller i e a group of actions formed by a group of components For example asking for a user s customer number e Components the basic building blocks of a call flow such as play a menu get user input and so on The main difference between callflows and components is that callflows can be the starting point of a call while components cannot Components are always a part of a callflow or a more complex component e Custom Component You can create custom components with custom functionality Document conventions The following conventions have been established to improve reading comprehension It is used to highlight key words or concepts Bold It is used to ttis used to identify the names of the produc
72. r when DatabaseType is Oracle or ODBC Page 39 30X 3CX Phone System for Windows www 3cx com The SQL statement to execute including placeholders for variable SqlStatement parameters DatabaseType The type of the database It could be SqlServer Oracle or ODBC The type of the statement Use Query to execute an SQL statement that returns rows Use NonQuery to execute an SQL statement that StatementType doesn t return rows for example INSERT DELETE UPDATE etc Use Scalar to execute an SQL statement that returns a single value for example SUM COUNT etc The wait time before terminating the attempt to execute an SQL statement and generating an error A value of O indicates no limit and should be avoided because an attempt to execute an SQL statement could wait indefinitely The list of parameters to use with the SQL statement Table 15 Database Access component Input Properties Timeout Those input properties can be set using the configuration form activated from the context menu at the designer or the link in the properties window Database Access configuration Database Type Server project Databases erver Database project Database ame DataSource User Name project Database ser ame 2 8 358 Password project D atabasePassword Statement Type Query Timeout secs 30 SOL Statement select DESCRIPTION AMOUNT from PAYMENTS where CREDIT CARD NUMBER i 0 Parameters Value
73. rameter and returns the result Can have from 2 to 20 parameters DIVIDE Receives two numeric parameters and returns first NEGATIVE second ABS Returns the absolute positive number of the single numeric parameter received GET TABLE ROW COUNT Returns the number of rows of the table received The table is the result of a database query Receives three parameters The first is the variable containing the table the result of a database query The second is the row identifier using a zero based index The third is the column identifier using a zero based index Returns the value of the cell from the specified table at the specified row and column Table 4 Expression Editor Available functions GET_TABLE_CELL_VALUE Call Related Components Call Related fh Menu ajli User Input dk Prompt Playback FP Record E Transfer fe Disconnect Call Screenshot 21 The Call Related Components Menu This component configures a single digit menu It handles the retry logic when the user enters an invalid option or does not enter anything Its execution finalizes when a valid option is selected or if all retries have been performed This component has the following input properties AllowBargeln True to allow the prompts to be barged into False otherwise Number of retry offers for invalid input or timeout Each one has its own retry counter For example setting this property to 5 may allow MaxRetryCount t
74. rm activated from the context menu at the designer or the link in the properties window Page 45 30X 3CX Phone System for Windows www 3cx com Socket Client configuration Connection Type is Server Host readHosth ame 0_Farameter alue Fort read cpPort 0_Parameteryalue Data to send ABCDE Walt for response from server Screenshot 34 Socket Client configuration The Server Host Port and Data to send input properties can be set using an expression When the socket client ends execution continues on the following component The socket client component exposes the following output properties for further query e Response contains the server response if the WaitForResponse property was set Web Interaction This component simulates a Web browser requesting a web page to a server lt allows using the GET or POST methods by encoding the specified parameters as it corresponds This component has the following input properties RI The URI where the request must be sent Th f the HTTP R Availabl GET HttpRequestType li of the equest Available values are G and The time to wait while trying to connect to the Web Server before Timeout returning the Server Timeout condition in seconds Zero means to wait forever A list of parameters used when performing the request Each parameter can be a constant value a variable or an expression The name of each parameter is the name of the field
75. ror Lit Guip Ditas Ready Screenshot 41 Creating a new folder for the call flows 4 Now we are going to move the automatically created Main callflow into the recently created folder To do this drag it and drop it into that folder 5 We need to add the main menu to the callflow Double click on the callflow file From the Call Related Components section click and drag the Menu component and drop it at the beginning of the Main Callflow EA WEN Voice Application Destpner Bete CreditCard Hf Laer Irgu eh Peomat Plaphack dable Arper Timed or irreal Dpi 13 tre sent Y rbd E J E Decoement Variable Dc nd Sek dd o if Loop components hare component heme E Eni Calo Advanced fib Coyptograpty E E Daaba Access El E Mal Serje d et e Exteel Code Execution Pare meruComponenal 2 Fie Management Dehaen Add Option 0 Add nion 3 Add Ty Socker Chane pe a olor Ad Grn agi OP feb Interscten u de web Pernice intetct n gt Ura Defined Components Mame Pieabe tpeciy the narra of the component It has r do be unka n ee ore bir i Man Fiw de Ema Haris Flew DA Diciro Harr Flos Screenshot 42 Adding a menu component Page 60 Www 3cx com 3CX 3CX Phone System for Windows 6 Now we will modify the name of the added menu component Select the menuComponenti component and from the Properties windows modify the name property with mainMenu HA 3CX Voice Appl
76. rror warning or important message that you might need to see Deploying the project to 3CX Phone System Direct mode Once you successfully built the project in some configuration debug or release you need to deploy it The project is deployed to the local 3CX installation Deploy Project Configuration Debug Build Select Tenant Screenshot 10 The Deployment Dialog To deploy execute the menu command Build gt Deploy The deployment dialog will appear allowing you to select the desired configuration release debug build If you re deploying to a 3CX Virtual Server multi tenant the list of available tenants will be automatically enabled Press the Deploy button to start Page 13 30X 3CX Phone System for Windows www 3cx com Copying file Root_ExtemalCode Execution Bool Test vamnl a Gres Screenshot 11 Deploying your voice application After the deployment has been completed you will see the callflows registered in 3CX Phone System as Digital Receptionists You can use the 3CX management interface to choose when to activate each callflow for example when an inbound call arrives from the PSTN Creating a deployment package Sometimes deploying the project to 3CX Phone System in direct mode is not possible For example if you re developing the voice application for a customer In these cases you may need to use the Create Deployment Package functionality With the Create Deployment Package functional
77. s callflows will generate a debug information file which can be imported latter by the VAD in order to graphically show you the execution path and variable values In this chapter we will use the CreditCard sample application as an example We will make a call and import the debug information file into the VAD in order to debug the callflow To build the Project in Debug mode 1 Open the Project 2 From the main window of the 3CX Voice Application Designer choose the command Build gt Debug Build 3 Once you got a successful debug build you can execute the main window menu command Build gt Deploy Deploy Project Select Tenant 4 The Deploy Project dialog will appear Select Debug Build Then click Deploy We are ready to make the call and start debugging the callflow Callflow debugging To debug a call you need to call the voice application so that it will be executed in debug mode Then follow the next steps Page 54 30X 3CX Phone System for Windows www 3cx com 1 From the main window toolbar press the Start Debugging Button select Debug Information File Available Debug It nformation Files 0101 Tests Manual ManualhecordT est 2009 06 30 13 20 45 x Cs 2 The debug information file will be displayed with the date and time the call was started and the callflow executed Select the desired debug information file and click OK 3 The VAD loads the file information and starts debugging
78. s stored in the Content property If the AppendFinalCrLf property is set Carriage Return and Line Feed characters are added at the end of the line This component has the following input properties Use Append to append data at the end of the file when Action is OpenMode Write Use Create to open a new file or truncate an existing one Use Open to open an existing file Action The action to perform It could be Read or Write The path absolute or relative from the deployment web server to the file to read or write Content The text to write to the file Only valid when Action is Write True to append a final CR LF after writing to the file False otherwise APRANG INANE Only valid when Action is Write FileName The number of lines to read from the file Only valid when Action is LinesToRead Read FirstLineToRead The zero based index of the first line to read from the file Only valid when Action is Read ReadToEnd Overrides LinesToRead reading until the end of file is reached Only valid when Action is Read Table 18 File Management component Input Properties Those input properties can be set using the configuration form activated from the context menu at the designer or the link in the properties window The configuration form for the File Management component is showed in the following figure Page 44 30X 3CX Phone System for Windows www 3cx com File Management configuration Action Read First
79. select the Transfer component and from the Properties window modify the name to transferToOperator Then change the destination with the proper operator number Page 74 30X 3CX Phone System for Windows www 3cx com r HA With A fi plc Athi There ge ret Gurren conga e RR eeg a E Menta 4 Haie comp E Daaba Accent E E Mal Sender E Eternal Code Esscubon A File Management GE Socket Chert AP Web Intrracior de Web Services Interaction dE Qus amends 3 Peque rada aci rtve Hame The name ol ths Fil Man Flow E Eno Handa Flow 0 Dincornect Harda Few 5 If any database access error occurs in the Visa component or any of its children components PerformPayment or QueryPayments the call will be transferred to the operator We have configured the Error Handler for the Visa component Page 75
80. t E Body This ts the information pou need n callflow Thelnformation Friority Normal Ignore Missing Attachments Attachments AE d i Cancel Screenshot 31 Email configuration The SMTP Server EnableSSL User Name Password From To CC BCC Subject and Body input properties can be set using an expression The name of the attachment to send is a constant string value does not require quotes Attachment files can be determined using an expression In order to select the expression for the attachment file in the server press the ellipsis button on the last column of the grid When the e mail sender ends execution continues on the following component The e mail sender component does not expose any output property after its execution External Code Execution This component allows executing code located in a JavaScript file a COM component or a NET library When used to execute code in a JavaScript file the user must specify the name of the function to call and the list of parameters to use When used to execute code in a COM ActiveX component or NET library the VAD creates an instance of the specified object and invokes the specified method on that instance using the list of parameters provided This component has the following input properties Page 42 30X 3CX Phone System for Windows www 3cx com The t f th t de t te JavaS
81. t the names of the product is used to establish SS code file names classes and or Courier Type DB tables Not applicable It is used to remark a paragraph that contains additional information that should be considered Page 2 30X 3CX Phone System for Windows www 3cx com Installing 3CX Voice Application Designer System Requirements The 3CX Voice Application Designer requires the following e Windows 7 Windows 8 Windows 8 1 Windows 2008 R2 server Windows 2012 Server or Windows 2012 R2 Server e NET Framework version 4 0 or higher e 1 Gigabyte Memory or higher Pentium 4 processor or up e 3CX Phone System standalone version 12 5 or up Run set up The following steps describe how to install the 3CX Voice Application Designer in your computer e Run set up by double clicking on the set up file Click Next to start installation e Select the installation location and choose to install the application for the current user or every user in the computer 3CX Voice Application Designer will need a minimum of approximately 15 MB of free hard disk space You will need to reserve additional space to store projects Click Next to continue e Click Next to confirm the installation Setup will now copy all files to the destination folder To complete the install click Close Activating 3CX Voice Application Designer lf you have purchased 3CX Voice Application Designer then you can activate y
82. t Properties Those input properties can be set using the configuration form activated from the context menu at the designer or the link in the properties window Variable Assignment configuration Variable Name a Screenshot 27 Variable Assignment configuration form The Variable Name input property can be set using the Variable Selector form In order to select a variable using the Variable Selector form press the Browse Button on the right side of the text box The Expression input property must be set using an expression In order to create an expression for that property press the Expression Editor Button on the right side of the text box Be aware that in order to enter constant values you need to add quotes For example write Some Text instead of Some Text When the variable assignment ends execution continues on the following component The variable assignment component does not expose any output property after its execution Increment Variable This component allows incrementing an existing numeric variable integer float or currency The selected variable must be read write in order to be incremented This component has the following input properties The name of the variable to increment It must be an existing numeric variable integer float or currency defined at Project scope callflow scope or a public property of a component The Variable Selector Form allows selecting a variable betwee
83. tal Receptionist section X Server Manager Digital Receptionist Manage Add View Settings Help gt M7 System Status gt ef Add Digital Receptionist for Dole Pecestora Dj Delete Digital Receptoniat a as Vita Een Hamsa Prompt RedreciHi5 EM WebRTC Gateway me AA i rn Webmeeting f 800 Wake wo DA Vth el preg tee pry HO int 801 Mar Sinus WR HO y oF SIP Trunks 803 Wai ge Up Gusi NA JOGE VAD Calo H El PSTN Gateways B Wake Lip Caliback IWR IEX VAD Calfioy HO inbound Rules ast Atisrcher JEX MAD Caife no gt Y OutBound Rules B52 Mim Dto JCX VAD Cadtiow HO a PA HOL Qui of office IVA CMeeChoned wiv HO a Ring Groups rf Call Queues Screenshot 12 Voice applications are listed as digital receptionists Now you have built and deployed your voice application you are ready to try it out Simply ring the extension that you have assigned to the voice application Page 15 30X 3CX Phone System for Windows www 3cx com 3CX Voice Application Designer Workspace Introduction jee parale T c pericos 5 rema Code secuen s Flo Margene hp Socket Chert AP Web Interaction DU Web Services Intersections Ure Dehnerd Components UBD Repsi durt Hame Th rama gf tha iii E Mn Fire Sp Eng Hare Flew Gh Uriona Hines Fleer Dugu Debug Error List A Screenshot 13 The 3CX VAD Workspace In this chapter we describe the workspace of the 3CX Voice Application Designer The designer has
84. that will be sent to the web server query string or form data Table 20 Web Interaction component Input Properties Parameters Page 46 3CXK 3CX Phone System for Windows www 3cx com Web Interaction configuration URI HTTP Request Type GET Timeout secs 30 HTTP Request Parameters Screenshot 35 Web interaction configuration The URI input property can be set using an expression HTTP Request Parameter names are constant string values and do not require quotes HTTP Request Parameter values can be set using an expression When the web interaction ends execution continues on the following component The web interaction component exposes the following output properties for further query e HttpStatusCode Contains the HTTP status code returned by the web server The number 200 OK means that the request was processed successfully e Content When HttpStatusCode 200 this property contains the response from the web server as a string A In previous versions the URI property was a constant string value and now it has been changed to be an expression in order to give it more flexibility When the VAD opens a file saved with a previous version it will automatically convert the constant value to an expression After saving the project with this version of the VAD you will not be able to open it again with previous versions Web Services Interaction This component allows executing simple xml Web s
85. ther hand for the TripleDES algorithm the key must be a 16 or 24 characters String The result of the encryption and the MD5 hash calculation is a bytes array The VAD needs to encode the bytes array in order to store them as a String There are two possible encoding formats Hexadecimal and Base64 The hexadecimal format consists of the representation of each byte as two characters that represent the byte value in hexadecimal from 00 to FF The Base64 format is used to encode the bytes according to that worldwide known format http en wikipedia org wiki Base64 The text to be processed can be a constant value or taken from a variable or an expression that returns a String This component has the following input properties Algorithm The algorithm to use It could be DES TripleDES or HashMD5 The encoding format to use in order to transform the encrypted stream into text When encrypting data this is how the result is codified When decrypting data this is how the input text arrives It could be Hexadecimal or Base64 TripleDES It could be Encrypt or Decrypt when Algorithm is DES or TripleDES It must have a length of 8 Page 38 30X 3CX Phone System for Windows www 3cx com Property Description a characters for DES and 16 or 24 characters for TripleDES Text The text to encrypt decrypt or compute hash The value can be an expression Table 14 Cryptography component Input Properties Those input proper
86. ties can be set using the configuration form activated from the context menu at the designer or the link in the properties window Cryptography configuration Algorithm AS 4 Action Kep M Screenshot 29 Cryptography configuration The Text input property can be set using an expression When the cryptography algorithm ends flow execution continues on the following component The cryptography component exposes the following output properties for further query e Result stores the processing result encoded according to the specified encryption algorithm or the MD5 hash calculation Database Access This component allows performing operations on SqlServer Oracle or any other database with ODBC drivers It allows executing three different kinds of statements Query NonQuery and Scalar The Query statements return a list of records as result For example SELECT FROM TABLE The NonQuery statements perform an insert or modification and return the amount of affected records For example INSERT VALUES VALUE1 INTO TABLE The Scalar statements perform data search but return a unique value For example SELECT COUNT FROM TABLE This component has the following input properties Property Description The database server name or IP address Only valid when DatabaseType is SqlServer The database to use when connecting to the Server Only valid when Database DatabaseType is SqlServer Serve
87. to wait forever E Mail Sender SMTP Server the SMTP server name or IP address EnableSSL true to connect to the SMTP server over SSL false otherwise UserName the user name to use when connecting to the SMTP server Password the password to use when connecting to the SMTP server From the e mail address to use in the from field of the message Page 52 3CXK 3CX Phone System for Windows www 3cx com To the e mail address to use in the to field of the message It can be a comma separated list CC the e mail address to use in the cc field of the message lt can be a comma separated list BCC the e mail address to use in the bcc field of the message It can be a comma separated list Subject the subject of the e mail message Body the body of the e mail message Priority the priority of the e mail message Ignore Missing Attachments True to silently ignore missing attachment files on runtime False to cause a runtime error when that condition occurs External Code Execution e External Code Type the type of the external code to execute JavaScript DotNetLibrary or COM File Management Open Mode the mode in which the file must be opened Use Append to append data at the end of the file when Action is Write Use Create to open a new file or truncate an existing one Use Open to open an existing file Action the action to perform Read or Writ
88. ton eC transfer To Operator q q J E 1E r Ye d H ee i H Ji t E vt E 1 et i A t H i H f i it E visa i LE Master yt a 0 gii a Y Wt JM i Main Flow Sa Error Handler Flow Disconnect Handler Flow tesco AAA The Error Handler Flow if an error occurs in a callflow this error handler flow ends the execution A user defined component is always executed from a callflow or another user defined component containing it So when an error occurs while executing a callflow the error handler of the callflow is executed and then the call is finalized But when an error occurs while executing a user defined component the error handler of the user defined component is executed and then the error handler of its parent is executed and so on until executing the error handler of the callflow that received the call It behaves like a stack unwind executing every error handler upwards until one handles the error Then the main flow of the parent is executed For example a call arrives starts executing Callflow1 which calls Componenti which calls Component2 If an error occurs there the error handler of Component2 is executed for example not handling the error then the error handler of Component is executed for example handling the error here and finally execution continues on the main flow of Callflow1 because the error was handled on a children
89. urrentRecord Accessibility Readwrite Initialalue 0 3 It s time for the PerformPayment component Follow the instructions on the previous step and configure the following variable Variable Collection Editor Members CreditCardNumber properties IT CreditCardNumber E AJ 4 E Variable Name CreditCardNumber Accessibility Readwirite Initia alue Designing User Components In the following steps we are going to design each user component Designing QueryPayments Component 1 From the Project Explorer window double click on the QueryPayments component in order to open it 2 From the Advanced Components section drag the Database Access component into the main flow Select the added component and from the Properties window click Configure 3 Input the following information Page 65 30X 3CX Phone System for Windows www 3cx com Database Access configuration Database Type Server project DatabaseServer Database project D atabaseN ame DataSource User Name project D atabaseU serN ame Password project DatabasePassword Statement Type Query Timeout secs 30 SOL Statement select DESCRIPTION AMOUNT from PAYMENTS where CREDIT_CARD_NUMBER 0 Parameters Value callflow CreditCardN umber 4 To assign a variable to one of the fields of the form press the Expression Editor Button on the right side of the field and choose
90. xDigits 15 j q orsta walid Input j Invalid Input H MinDigits 7 1 y StopDigit DigitPound i Drag and drop Drag and drop B General t HEE components here components here H Description U Enabled True i E Grammar a Grammar E Prompts InitialPrompts Collection InvalidDigitPromp Collection SubsequentProrr Collection TimeoutPrompts Collection E Timeout FinalDigitTimeou 2 FirstDigitTimeout 5 InterDigitTimeoul 3 E User Input Name askForDestinati AllowB argeln True MaxRetrylount 3 3 v Configure InterDigitT imeout The time to wait for subsequent digits before playing the specified invalid digits prompt in seconds Set it to zero to use platform default value Ready 10 For option 3 we are going to make things a little more interesting We will ask for a destination number and then transfer to that number To ask for the destination number we will use a User Input component Drag and drop it under the Option 3 branch Change the component name and configure the message prompt to use Specify that valid digits are numbers from 0 to 9 and other digits are invalid star and pound Also set MinDigits and MaxDigits to a reasonable value for example between 3 and 5 When the user enters a valid input we need to transfer the call to the specified destination Otherwise we ll transfer the call to the operator Transfer configuration ask ForDestination Buffer Scre
91. yment xX A An me t t t We have configured the PerformPayment component Page 71 30X 3CX Phone System for Windows www 3cx com Designing RequestCreditCardNumber component 1 From the Project Explorer window double click on the RequestCreditCardNumber component in order to open it 2 We need to ask the credit card number to the end user so we need to use a User Input component 2 1 From the Call Related Components section drag the User Input component and drop it into the flow 3 l the user enters a valid credit card number we just want to store it to a public output property so our parent will be able to retrieve it 3 1 For the Valid Input branch from the Control Structures Components section drag the Variable Assignment component and drop it into this branch From the Properties window change its name to storeCreditCardNumber Configure the Expression by clicking on the E button an setting the following information Expression Editor Javascript Expression 2 Variable VAD Expression Vanable selection 4 StopBySilence Sp StopDigit E LA requestCreditCard oa fq Result ll Ex FRESIA E A Userlnputhesult Es InvaldDigits E Timeout E ValidDigits 3 2 For the Variable Name press the ll button and choose the following variable Page 72 30X 3CX Phone System for Windows www 3cx com Variable Selector es callflowy lt
Download Pdf Manuals
Related Search
Related Contents
Manuel d`utilisation - Portail de l`Agriculture wallonne Information – Vorgehen bei Lausbefall AVERTISSEMENTS kurihara195_08 [1095KB pdfファイル] IBM System x x3650 M3 Copyright © All rights reserved.
Failed to retrieve file