├── samples
├── Menu
│ ├── Audio
│ │ ├── Timeout.wav
│ │ ├── Welcome.wav
│ │ └── InvalidInput.wav
│ ├── Menu.cfdproj
│ └── Main.flow
├── PlayDigits
│ ├── Audio
│ │ ├── 0.wav
│ │ ├── 1.wav
│ │ ├── 2.wav
│ │ ├── 3.wav
│ │ ├── 4.wav
│ │ ├── 5.wav
│ │ ├── 6.wav
│ │ ├── 7.wav
│ │ ├── 8.wav
│ │ ├── 9.wav
│ │ ├── beep.wav
│ │ ├── Timeout.wav
│ │ ├── InitialPrompt.wav
│ │ ├── InvalidInput.wav
│ │ └── SubsequentPrompt.wav
│ ├── PlayDigits.cfdproj
│ ├── README.md
│ ├── PlayDigits.comp
│ └── Main.flow
├── Survey
│ ├── Audio
│ │ ├── timeout.wav
│ │ ├── welcome.wav
│ │ ├── good_bye.wav
│ │ ├── question_1.wav
│ │ ├── question_2.wav
│ │ ├── question_3.wav
│ │ ├── invalid_input.wav
│ │ ├── question_3_pre_recording.wav
│ │ └── question_3_post_recording.wav
│ ├── README.md
│ └── Survey.cfdproj
├── LoopMenu
│ ├── Audio
│ │ ├── timeout.wav
│ │ ├── invalid_option.wav
│ │ ├── main_menu_message.wav
│ │ ├── sub_menu_message.wav
│ │ ├── main_menu_initial_prompt.wav
│ │ ├── sub_menu_initial_prompt.wav
│ │ ├── main_menu_subsequent_prompt.wav
│ │ └── sub_menu_subsequent_prompt.wav
│ ├── README.md
│ └── LoopMenu.cfdproj
├── CreditCard
│ ├── Audio
│ │ ├── timeout.wav
│ │ ├── invalid_digit.wav
│ │ ├── validation_error.wav
│ │ ├── enter_credit_card_number.wav
│ │ ├── enter_credit_card_expiration.wav
│ │ └── enter_credit_card_security_code.wav
│ ├── CreditCard.cfdproj
│ └── README.md
├── OutboundDialer
│ ├── Audio
│ │ └── beep.wav
│ ├── NumbersToCall.txt
│ ├── Libraries
│ │ ├── CallIndexHolder.cs
│ │ └── CheckExtensionsState.cs
│ ├── OutboundDialer.cfdproj
│ └── MainDialer.dialer
├── TextToSpeech
│ ├── Audio
│ │ └── beep.wav
│ ├── TextToSpeech.cfdproj
│ └── Main.flow
├── UserInput
│ ├── Audio
│ │ ├── Timeout.wav
│ │ ├── InitialPrompt.wav
│ │ ├── InvalidInput.wav
│ │ └── SubsequentPrompt.wav
│ ├── UserInput.cfdproj
│ └── Main.flow
├── Authentication
│ ├── Audio
│ │ ├── Valid.wav
│ │ ├── timeout.wav
│ │ ├── invalid_digit.wav
│ │ ├── validation_error.wav
│ │ ├── enter_customer_id.wav
│ │ └── enter_customer_pin.wav
│ ├── Authentication.cfdproj
│ └── README.md
├── PredictiveDialer
│ ├── Audio
│ │ └── beep.wav
│ ├── PredictiveDialer.cfdproj
│ └── MainDialer.dialer
├── TimeBasedRouting
│ ├── Audio
│ │ └── beep.wav
│ ├── README.md
│ ├── TimeBasedRouting.cfdproj
│ └── Main.flow
├── DatabaseAccess
│ ├── Audio
│ │ ├── Success.wav
│ │ ├── Timeout.wav
│ │ ├── pcm1608m.wav
│ │ ├── InvalidPIN.wav
│ │ ├── InitialPrompt.wav
│ │ ├── InvalidInput.wav
│ │ ├── SubsequentPrompt.wav
│ │ ├── ValidationError.wav
│ │ └── file_example_WAV_1MG.wav
│ ├── README.md
│ ├── DatabaseAccess.cfdproj
│ └── Main.flow
├── PhoneSupportPortal
│ ├── Audio
│ │ ├── beep.wav
│ │ ├── timeout.wav
│ │ ├── welcome.wav
│ │ ├── invalid_digit.wav
│ │ ├── enter_customer_id.wav
│ │ ├── main_menu_options.wav
│ │ ├── transfer_to_sales.wav
│ │ ├── enter_customer_pin.wav
│ │ └── transfer_to_help_desk.wav
│ ├── Libraries
│ │ └── TextFileValidator.cs
│ ├── PhoneSupportPortal.cfdproj
│ ├── ValidateDataWebService.comp
│ ├── ValidateDataDB.comp
│ ├── ValidateDataCsvFile.comp
│ ├── ValidateDataXmlFile.comp
│ └── Main.flow
├── EmailSender
│ ├── Audio
│ │ └── RecordYourMessage.wav
│ ├── README.md
│ ├── EmailSender.cfdproj
│ └── Main.flow
├── CRMLookup
│ ├── README.md
│ └── CRMLookup.cfdproj
├── Callback
│ ├── README.md
│ ├── Callback.cfdproj
│ ├── StoreCallback.comp
│ └── CallbackDialer.dialer
├── DateTimeRouting
│ ├── DateTimeRouting.cfdproj
│ ├── README.md
│ └── Main.flow
└── OrderByPhone
│ ├── README.md
│ ├── CreateDatabase.sql
│ └── source
│ ├── OrderByPhone.cfdproj
│ ├── ContactLookup.comp
│ ├── ItemChangeQuantity.comp
│ └── ItemAddNotification.comp
├── tutorials
├── 1. Creating a Call Flow
│ ├── Audio
│ │ ├── CFDintro.wav
│ │ ├── CFDtimeout.wav
│ │ ├── CFDinvalidinput.wav
│ │ ├── CFDtransfersales.wav
│ │ ├── CFDtransfersupport.wav
│ │ └── CFDtransferoperator.wav
│ ├── Output
│ │ └── Release
│ │ │ └── CFD1.zip
│ ├── CFD1.cfdproj
│ └── Main.flow
├── 2. Modifying a Call Flow
│ ├── Audio
│ │ ├── CFDintro.wav
│ │ ├── CFDtimeout.wav
│ │ ├── CFDinvalidinput.wav
│ │ ├── CFDtransfersales.wav
│ │ ├── CFDtransferoperator.wav
│ │ └── CFDtransfersupport.wav
│ ├── Output
│ │ └── Release
│ │ │ └── CFD_2.zip
│ └── CFD 2.cfdproj
├── 3. Expanding an Existing Project
│ ├── Audio
│ │ ├── CFDintro.wav
│ │ ├── CFDtimeout.wav
│ │ ├── CFDinvalidinput.wav
│ │ ├── CFDtransfersales.wav
│ │ ├── CFDtransferoperator.wav
│ │ └── CFDtransfersupport.wav
│ ├── Output
│ │ └── Release
│ │ │ └── CFD_3.zip
│ ├── CFD 3.cfdproj
│ ├── Main.flow
│ └── Sales_Option.comp
├── 4. Adding more Intelligence to your Call Flow
│ ├── Audio
│ │ ├── CFDintro.wav
│ │ ├── CFDtimeout.wav
│ │ ├── CFDinvalidinput.wav
│ │ ├── CFDtransfersales.wav
│ │ ├── CFDtransfersupport.wav
│ │ └── CFDtransferoperator.wav
│ ├── CFD4
│ │ ├── Audio
│ │ │ ├── CFDintro.wav
│ │ │ ├── CFDtimeout.wav
│ │ │ ├── CFDinvalidinput.wav
│ │ │ ├── CFDtransfersales.wav
│ │ │ ├── CFDtransfersupport.wav
│ │ │ └── CFDtransferoperator.wav
│ │ ├── CFD4.cfdproj.xml
│ │ ├── Main.flow
│ │ └── Sales_Option.comp
│ ├── Output
│ │ └── Release
│ │ │ └── CFD4.zip
│ ├── CFD4.cfdproj
│ ├── Main.flow
│ └── Sales_Option.comp
├── 5. Verifying users’ input by refining the validation and digit playback
│ ├── Audio
│ │ ├── CFDintro.wav
│ │ ├── CFDtimeout.wav
│ │ ├── CFDinvalidinput.wav
│ │ ├── CFDtransfersales.wav
│ │ ├── CFDtransferoperator.wav
│ │ └── CFDtransfersupport.wav
│ ├── Output
│ │ └── Release
│ │ │ └── CFD5.zip
│ ├── CFD5.cfdproj
│ ├── Read_Digits.comp
│ ├── Main.flow
│ └── Sales_Option.comp
└── README.md
└── README.md
/samples/Menu/Audio/Timeout.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Menu/Audio/Timeout.wav
--------------------------------------------------------------------------------
/samples/Menu/Audio/Welcome.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Menu/Audio/Welcome.wav
--------------------------------------------------------------------------------
/samples/PlayDigits/Audio/0.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/0.wav
--------------------------------------------------------------------------------
/samples/PlayDigits/Audio/1.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/1.wav
--------------------------------------------------------------------------------
/samples/PlayDigits/Audio/2.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/2.wav
--------------------------------------------------------------------------------
/samples/PlayDigits/Audio/3.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/3.wav
--------------------------------------------------------------------------------
/samples/PlayDigits/Audio/4.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/4.wav
--------------------------------------------------------------------------------
/samples/PlayDigits/Audio/5.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/5.wav
--------------------------------------------------------------------------------
/samples/PlayDigits/Audio/6.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/6.wav
--------------------------------------------------------------------------------
/samples/PlayDigits/Audio/7.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/7.wav
--------------------------------------------------------------------------------
/samples/PlayDigits/Audio/8.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/8.wav
--------------------------------------------------------------------------------
/samples/PlayDigits/Audio/9.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/9.wav
--------------------------------------------------------------------------------
/samples/Survey/Audio/timeout.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Survey/Audio/timeout.wav
--------------------------------------------------------------------------------
/samples/Survey/Audio/welcome.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Survey/Audio/welcome.wav
--------------------------------------------------------------------------------
/samples/LoopMenu/Audio/timeout.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/LoopMenu/Audio/timeout.wav
--------------------------------------------------------------------------------
/samples/PlayDigits/Audio/beep.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/beep.wav
--------------------------------------------------------------------------------
/samples/Survey/Audio/good_bye.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Survey/Audio/good_bye.wav
--------------------------------------------------------------------------------
/samples/CreditCard/Audio/timeout.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/CreditCard/Audio/timeout.wav
--------------------------------------------------------------------------------
/samples/Menu/Audio/InvalidInput.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Menu/Audio/InvalidInput.wav
--------------------------------------------------------------------------------
/samples/OutboundDialer/Audio/beep.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/OutboundDialer/Audio/beep.wav
--------------------------------------------------------------------------------
/samples/PlayDigits/Audio/Timeout.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/Timeout.wav
--------------------------------------------------------------------------------
/samples/Survey/Audio/question_1.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Survey/Audio/question_1.wav
--------------------------------------------------------------------------------
/samples/Survey/Audio/question_2.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Survey/Audio/question_2.wav
--------------------------------------------------------------------------------
/samples/Survey/Audio/question_3.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Survey/Audio/question_3.wav
--------------------------------------------------------------------------------
/samples/TextToSpeech/Audio/beep.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/TextToSpeech/Audio/beep.wav
--------------------------------------------------------------------------------
/samples/UserInput/Audio/Timeout.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/UserInput/Audio/Timeout.wav
--------------------------------------------------------------------------------
/samples/Authentication/Audio/Valid.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Authentication/Audio/Valid.wav
--------------------------------------------------------------------------------
/samples/PredictiveDialer/Audio/beep.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PredictiveDialer/Audio/beep.wav
--------------------------------------------------------------------------------
/samples/Survey/Audio/invalid_input.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Survey/Audio/invalid_input.wav
--------------------------------------------------------------------------------
/samples/TimeBasedRouting/Audio/beep.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/TimeBasedRouting/Audio/beep.wav
--------------------------------------------------------------------------------
/samples/Authentication/Audio/timeout.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Authentication/Audio/timeout.wav
--------------------------------------------------------------------------------
/samples/CreditCard/Audio/invalid_digit.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/CreditCard/Audio/invalid_digit.wav
--------------------------------------------------------------------------------
/samples/DatabaseAccess/Audio/Success.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/DatabaseAccess/Audio/Success.wav
--------------------------------------------------------------------------------
/samples/DatabaseAccess/Audio/Timeout.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/DatabaseAccess/Audio/Timeout.wav
--------------------------------------------------------------------------------
/samples/DatabaseAccess/Audio/pcm1608m.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/DatabaseAccess/Audio/pcm1608m.wav
--------------------------------------------------------------------------------
/samples/LoopMenu/Audio/invalid_option.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/LoopMenu/Audio/invalid_option.wav
--------------------------------------------------------------------------------
/samples/PhoneSupportPortal/Audio/beep.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PhoneSupportPortal/Audio/beep.wav
--------------------------------------------------------------------------------
/samples/PlayDigits/Audio/InitialPrompt.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/InitialPrompt.wav
--------------------------------------------------------------------------------
/samples/PlayDigits/Audio/InvalidInput.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/InvalidInput.wav
--------------------------------------------------------------------------------
/samples/UserInput/Audio/InitialPrompt.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/UserInput/Audio/InitialPrompt.wav
--------------------------------------------------------------------------------
/samples/UserInput/Audio/InvalidInput.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/UserInput/Audio/InvalidInput.wav
--------------------------------------------------------------------------------
/samples/DatabaseAccess/Audio/InvalidPIN.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/DatabaseAccess/Audio/InvalidPIN.wav
--------------------------------------------------------------------------------
/samples/LoopMenu/Audio/main_menu_message.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/LoopMenu/Audio/main_menu_message.wav
--------------------------------------------------------------------------------
/samples/LoopMenu/Audio/sub_menu_message.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/LoopMenu/Audio/sub_menu_message.wav
--------------------------------------------------------------------------------
/samples/PhoneSupportPortal/Audio/timeout.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PhoneSupportPortal/Audio/timeout.wav
--------------------------------------------------------------------------------
/samples/PhoneSupportPortal/Audio/welcome.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PhoneSupportPortal/Audio/welcome.wav
--------------------------------------------------------------------------------
/samples/UserInput/Audio/SubsequentPrompt.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/UserInput/Audio/SubsequentPrompt.wav
--------------------------------------------------------------------------------
/samples/Authentication/Audio/invalid_digit.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Authentication/Audio/invalid_digit.wav
--------------------------------------------------------------------------------
/samples/CreditCard/Audio/validation_error.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/CreditCard/Audio/validation_error.wav
--------------------------------------------------------------------------------
/samples/DatabaseAccess/Audio/InitialPrompt.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/DatabaseAccess/Audio/InitialPrompt.wav
--------------------------------------------------------------------------------
/samples/DatabaseAccess/Audio/InvalidInput.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/DatabaseAccess/Audio/InvalidInput.wav
--------------------------------------------------------------------------------
/samples/EmailSender/Audio/RecordYourMessage.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/EmailSender/Audio/RecordYourMessage.wav
--------------------------------------------------------------------------------
/samples/PlayDigits/Audio/SubsequentPrompt.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PlayDigits/Audio/SubsequentPrompt.wav
--------------------------------------------------------------------------------
/samples/Authentication/Audio/validation_error.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Authentication/Audio/validation_error.wav
--------------------------------------------------------------------------------
/samples/DatabaseAccess/Audio/SubsequentPrompt.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/DatabaseAccess/Audio/SubsequentPrompt.wav
--------------------------------------------------------------------------------
/samples/DatabaseAccess/Audio/ValidationError.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/DatabaseAccess/Audio/ValidationError.wav
--------------------------------------------------------------------------------
/samples/Survey/Audio/question_3_pre_recording.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Survey/Audio/question_3_pre_recording.wav
--------------------------------------------------------------------------------
/samples/Authentication/Audio/enter_customer_id.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Authentication/Audio/enter_customer_id.wav
--------------------------------------------------------------------------------
/samples/Authentication/Audio/enter_customer_pin.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Authentication/Audio/enter_customer_pin.wav
--------------------------------------------------------------------------------
/samples/LoopMenu/Audio/main_menu_initial_prompt.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/LoopMenu/Audio/main_menu_initial_prompt.wav
--------------------------------------------------------------------------------
/samples/LoopMenu/Audio/sub_menu_initial_prompt.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/LoopMenu/Audio/sub_menu_initial_prompt.wav
--------------------------------------------------------------------------------
/samples/PhoneSupportPortal/Audio/invalid_digit.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PhoneSupportPortal/Audio/invalid_digit.wav
--------------------------------------------------------------------------------
/samples/Survey/Audio/question_3_post_recording.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/Survey/Audio/question_3_post_recording.wav
--------------------------------------------------------------------------------
/tutorials/1. Creating a Call Flow/Audio/CFDintro.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/1. Creating a Call Flow/Audio/CFDintro.wav
--------------------------------------------------------------------------------
/samples/CreditCard/Audio/enter_credit_card_number.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/CreditCard/Audio/enter_credit_card_number.wav
--------------------------------------------------------------------------------
/samples/DatabaseAccess/Audio/file_example_WAV_1MG.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/DatabaseAccess/Audio/file_example_WAV_1MG.wav
--------------------------------------------------------------------------------
/samples/LoopMenu/Audio/main_menu_subsequent_prompt.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/LoopMenu/Audio/main_menu_subsequent_prompt.wav
--------------------------------------------------------------------------------
/samples/LoopMenu/Audio/sub_menu_subsequent_prompt.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/LoopMenu/Audio/sub_menu_subsequent_prompt.wav
--------------------------------------------------------------------------------
/samples/PhoneSupportPortal/Audio/enter_customer_id.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PhoneSupportPortal/Audio/enter_customer_id.wav
--------------------------------------------------------------------------------
/samples/PhoneSupportPortal/Audio/main_menu_options.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PhoneSupportPortal/Audio/main_menu_options.wav
--------------------------------------------------------------------------------
/samples/PhoneSupportPortal/Audio/transfer_to_sales.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PhoneSupportPortal/Audio/transfer_to_sales.wav
--------------------------------------------------------------------------------
/tutorials/1. Creating a Call Flow/Audio/CFDtimeout.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/1. Creating a Call Flow/Audio/CFDtimeout.wav
--------------------------------------------------------------------------------
/tutorials/2. Modifying a Call Flow/Audio/CFDintro.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/2. Modifying a Call Flow/Audio/CFDintro.wav
--------------------------------------------------------------------------------
/samples/CreditCard/Audio/enter_credit_card_expiration.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/CreditCard/Audio/enter_credit_card_expiration.wav
--------------------------------------------------------------------------------
/samples/PhoneSupportPortal/Audio/enter_customer_pin.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PhoneSupportPortal/Audio/enter_customer_pin.wav
--------------------------------------------------------------------------------
/tutorials/1. Creating a Call Flow/Output/Release/CFD1.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/1. Creating a Call Flow/Output/Release/CFD1.zip
--------------------------------------------------------------------------------
/tutorials/2. Modifying a Call Flow/Audio/CFDtimeout.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/2. Modifying a Call Flow/Audio/CFDtimeout.wav
--------------------------------------------------------------------------------
/samples/PhoneSupportPortal/Audio/transfer_to_help_desk.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/PhoneSupportPortal/Audio/transfer_to_help_desk.wav
--------------------------------------------------------------------------------
/tutorials/1. Creating a Call Flow/Audio/CFDinvalidinput.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/1. Creating a Call Flow/Audio/CFDinvalidinput.wav
--------------------------------------------------------------------------------
/tutorials/2. Modifying a Call Flow/Output/Release/CFD_2.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/2. Modifying a Call Flow/Output/Release/CFD_2.zip
--------------------------------------------------------------------------------
/samples/CreditCard/Audio/enter_credit_card_security_code.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/samples/CreditCard/Audio/enter_credit_card_security_code.wav
--------------------------------------------------------------------------------
/tutorials/1. Creating a Call Flow/Audio/CFDtransfersales.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/1. Creating a Call Flow/Audio/CFDtransfersales.wav
--------------------------------------------------------------------------------
/tutorials/1. Creating a Call Flow/Audio/CFDtransfersupport.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/1. Creating a Call Flow/Audio/CFDtransfersupport.wav
--------------------------------------------------------------------------------
/tutorials/2. Modifying a Call Flow/Audio/CFDinvalidinput.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/2. Modifying a Call Flow/Audio/CFDinvalidinput.wav
--------------------------------------------------------------------------------
/tutorials/2. Modifying a Call Flow/Audio/CFDtransfersales.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/2. Modifying a Call Flow/Audio/CFDtransfersales.wav
--------------------------------------------------------------------------------
/tutorials/3. Expanding an Existing Project/Audio/CFDintro.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/3. Expanding an Existing Project/Audio/CFDintro.wav
--------------------------------------------------------------------------------
/tutorials/1. Creating a Call Flow/Audio/CFDtransferoperator.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/1. Creating a Call Flow/Audio/CFDtransferoperator.wav
--------------------------------------------------------------------------------
/tutorials/2. Modifying a Call Flow/Audio/CFDtransferoperator.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/2. Modifying a Call Flow/Audio/CFDtransferoperator.wav
--------------------------------------------------------------------------------
/tutorials/2. Modifying a Call Flow/Audio/CFDtransfersupport.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/2. Modifying a Call Flow/Audio/CFDtransfersupport.wav
--------------------------------------------------------------------------------
/tutorials/3. Expanding an Existing Project/Audio/CFDtimeout.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/3. Expanding an Existing Project/Audio/CFDtimeout.wav
--------------------------------------------------------------------------------
/tutorials/3. Expanding an Existing Project/Output/Release/CFD_3.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/3. Expanding an Existing Project/Output/Release/CFD_3.zip
--------------------------------------------------------------------------------
/tutorials/3. Expanding an Existing Project/Audio/CFDinvalidinput.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/3. Expanding an Existing Project/Audio/CFDinvalidinput.wav
--------------------------------------------------------------------------------
/tutorials/3. Expanding an Existing Project/Audio/CFDtransfersales.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/3. Expanding an Existing Project/Audio/CFDtransfersales.wav
--------------------------------------------------------------------------------
/tutorials/3. Expanding an Existing Project/Audio/CFDtransferoperator.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/3. Expanding an Existing Project/Audio/CFDtransferoperator.wav
--------------------------------------------------------------------------------
/tutorials/3. Expanding an Existing Project/Audio/CFDtransfersupport.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/3. Expanding an Existing Project/Audio/CFDtransfersupport.wav
--------------------------------------------------------------------------------
/tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDintro.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDintro.wav
--------------------------------------------------------------------------------
/samples/OutboundDialer/NumbersToCall.txt:
--------------------------------------------------------------------------------
1 | 1234567890
2 | 1234567891
3 | 1234567892
4 | 1234567893
5 | 1234567894
6 | 1234567895
7 | 1234567896
8 | 1234567897
9 | 1234567898
10 | 1234567899
11 |
--------------------------------------------------------------------------------
/tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDtimeout.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDtimeout.wav
--------------------------------------------------------------------------------
/tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDintro.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDintro.wav
--------------------------------------------------------------------------------
/tutorials/4. Adding more Intelligence to your Call Flow/Output/Release/CFD4.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/Output/Release/CFD4.zip
--------------------------------------------------------------------------------
/tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDinvalidinput.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDinvalidinput.wav
--------------------------------------------------------------------------------
/tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDtransfersales.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDtransfersales.wav
--------------------------------------------------------------------------------
/tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDtimeout.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDtimeout.wav
--------------------------------------------------------------------------------
/tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDtransfersupport.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDtransfersupport.wav
--------------------------------------------------------------------------------
/tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDtransferoperator.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/Audio/CFDtransferoperator.wav
--------------------------------------------------------------------------------
/tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDinvalidinput.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDinvalidinput.wav
--------------------------------------------------------------------------------
/tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDtransfersales.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDtransfersales.wav
--------------------------------------------------------------------------------
/tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDtransfersupport.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDtransfersupport.wav
--------------------------------------------------------------------------------
/tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDtransferoperator.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Audio/CFDtransferoperator.wav
--------------------------------------------------------------------------------
/tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDintro.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDintro.wav
--------------------------------------------------------------------------------
/tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDtimeout.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDtimeout.wav
--------------------------------------------------------------------------------
/tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDinvalidinput.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDinvalidinput.wav
--------------------------------------------------------------------------------
/tutorials/5. Verifying users’ input by refining the validation and digit playback/Output/Release/CFD5.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/5. Verifying users’ input by refining the validation and digit playback/Output/Release/CFD5.zip
--------------------------------------------------------------------------------
/tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDtransfersales.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDtransfersales.wav
--------------------------------------------------------------------------------
/tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDtransferoperator.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDtransferoperator.wav
--------------------------------------------------------------------------------
/tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDtransfersupport.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/3cx/cfd-demos/HEAD/tutorials/5. Verifying users’ input by refining the validation and digit playback/Audio/CFDtransfersupport.wav
--------------------------------------------------------------------------------
/samples/EmailSender/README.md:
--------------------------------------------------------------------------------
1 | # Sending Emails from a Call Flow
2 | ## Summary
3 | Use the **“Email Sender”** component to send an email message from a Call Flow created with the [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/).
4 |
5 | [Read more](https://www.3cx.com/docs/cfd-emails-voice-app/)
6 |
--------------------------------------------------------------------------------
/samples/LoopMenu/README.md:
--------------------------------------------------------------------------------
1 | # Using the Loop Component to Navigate Upwards
2 | ## Summary
3 | Use the **“Loop”** component to repeat the options in a menu, or navigate to an upper level menu from a Call Flow created with the [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/).
4 |
5 | [Read more](https://www.3cx.com/docs/cfd-navigate-upwards/)
6 |
--------------------------------------------------------------------------------
/samples/OutboundDialer/Libraries/CallIndexHolder.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | public class CallIndexHolder
4 | {
5 | private static int callIndex = 0;
6 |
7 | public int GetCallIndex()
8 | {
9 | return callIndex;
10 | }
11 |
12 | public void SetCallIndex(int index)
13 | {
14 | callIndex = index;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/samples/CRMLookup/README.md:
--------------------------------------------------------------------------------
1 | # Using the CRM Lookup component to query the contact details from the supported CRMs
2 | ## Summary
3 | This guide describes how to use the “CRM Lookup” component to query the contact details from the configured CRM, using a Call Flow created with the [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/).
4 |
5 | In addition, the linked guide contains a reference for Response Mappings with all the supported CRMs.
6 |
7 | [Read more](https://www.3cx.com/docs/cfd-crm-lookup/)
8 |
--------------------------------------------------------------------------------
/samples/OutboundDialer/Libraries/CheckExtensionsState.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using TCX.Configuration;
3 |
4 | public class ExtensionStateHelper
5 | {
6 | public bool IsThereAnyFreeExtension()
7 | {
8 | return PhoneSystem.Root.GetDNByNumber("201").GetActiveConnections().Length == 0 ||
9 | PhoneSystem.Root.GetDNByNumber("202").GetActiveConnections().Length == 0 ||
10 | PhoneSystem.Root.GetDNByNumber("203").GetActiveConnections().Length == 0;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/samples/DatabaseAccess/README.md:
--------------------------------------------------------------------------------
1 | # Accessing a Database from a Call Flow
2 | ## Summary
3 | This guide describes how to use the **“Database Access”** component to query MS SQL Server, PostgreSQL and MySQL databases from a Call Flow with the [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/).
4 |
5 | This application asks for a PIN from the user, validate the data entered against the database, and transfer the call to a specific extension only when the PIN is valid.
6 |
7 | [Read more](https://www.3cx.com/docs/cfd-accessing-database/)
8 |
--------------------------------------------------------------------------------
/samples/Callback/README.md:
--------------------------------------------------------------------------------
1 | # Registering and making callbacks
2 | ## Summary
3 | In this guide we will show how to combine a callflow and a dialer in the same [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/) project, to create an application that registers and makes callbacks. We will use speech recognition to ask for the date and time of the callback, text-to-speech to play back the recognized text, and we will show how to pass this information from the callflow to the dialer.
4 |
5 | [Read more](https://www.3cx.com/docs/cfd-callback/)
6 |
--------------------------------------------------------------------------------
/samples/Survey/README.md:
--------------------------------------------------------------------------------
1 | # Using the Survey component
2 | ## Summary
3 | The Survey component lets a CFD app ask questions to the caller, and automatically store the user’s feedback to a CSV file. However, storing the information in a CSV file in the 3CX server is not always the best approach, and we need to send the information somewhere else, for example a database or a web service. In this demo we will show how to create an application with the [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/) to accomplish this.
4 |
5 | [Read more](https://www.3cx.com/docs/cfd-survey-component/)
6 |
--------------------------------------------------------------------------------
/samples/TimeBasedRouting/README.md:
--------------------------------------------------------------------------------
1 | # Routing Calls Based on the Time of Day
2 | ## Summary
3 | This sample project use the **“Create a Condition”** component to route calls to different extensions depending on the time of day, from a voice app created with the [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/). Date and time routing can be done in an easier way, without C# expressions, as explained in this guide. However, the concepts explained here can be useful to route inbound calls depending on the result of different expressions.
4 |
5 | [Read more](https://www.3cx.com/docs/cfd-time-based-routing/)
6 |
--------------------------------------------------------------------------------
/samples/Menu/Menu.cfdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 | True
11 | True
12 | 12
13 | 14
14 | True
15 |
--------------------------------------------------------------------------------
/samples/CreditCard/CreditCard.cfdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 | False
11 | True
12 | 0
13 | 6
14 | True
15 |
--------------------------------------------------------------------------------
/samples/UserInput/UserInput.cfdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 | False
11 | True
12 | 4
13 | 8
14 | True
15 |
--------------------------------------------------------------------------------
/samples/EmailSender/EmailSender.cfdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 | False
11 | True
12 | 0
13 | 3
14 | True
15 |
--------------------------------------------------------------------------------
/samples/Authentication/Authentication.cfdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 | False
11 | True
12 | 0
13 | 3
14 | True
15 |
--------------------------------------------------------------------------------
/samples/PlayDigits/PlayDigits.cfdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | False
12 | True
13 | 0
14 | 3
15 | True
16 |
--------------------------------------------------------------------------------
/samples/TextToSpeech/TextToSpeech.cfdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 | False
11 | True
12 | 0
13 | 2
14 | True
15 |
16 |
17 |
18 |
19 | us-east-2
20 |
--------------------------------------------------------------------------------
/samples/DatabaseAccess/DatabaseAccess.cfdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 | False
11 | True
12 | 0
13 | 4
14 | True
15 |
16 |
17 |
18 |
19 | us-east-2
20 |
--------------------------------------------------------------------------------
/tutorials/1. Creating a Call Flow/CFD1.cfdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.1
4 |
5 |
6 |
7 |
8 |
9 |
10 | False
11 | True
12 | 0
13 | 6
14 | True
15 |
16 |
17 |
18 |
19 | us-east-2
20 |
--------------------------------------------------------------------------------
/samples/DateTimeRouting/DateTimeRouting.cfdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 | False
11 | True
12 | 0
13 | 1
14 | True
15 |
16 |
17 |
18 |
19 | us-east-2
20 |
--------------------------------------------------------------------------------
/samples/TimeBasedRouting/TimeBasedRouting.cfdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 | False
11 | True
12 | 0
13 | 3
14 | True
15 |
16 |
17 |
18 |
19 | us-east-2
20 |
--------------------------------------------------------------------------------
/tutorials/2. Modifying a Call Flow/CFD 2.cfdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.1
4 |
5 |
6 |
7 |
8 |
9 |
10 | False
11 | True
12 | 0
13 | 6
14 | True
15 | AmazonPollyClientIDHere
16 | AmazonPollyClientSecretHere
17 | us-east-2
18 |
--------------------------------------------------------------------------------
/samples/CreditCard/README.md:
--------------------------------------------------------------------------------
1 | # Using the Credit Card Component
2 | ## Summary
3 | Asking for credit card numbers is a very common task in call centers. This includes the number, the expiration date and the security code, and of course it’s a must that the call is not being recorded while the user enters this information. The Credit Card component available with the [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/) comes to solve this, automatically handling retries in case of any problem validating the credit card information.
4 |
5 | This guide describes how to use the new **“Credit Card”** component to ask for the number, the expiration date and the security code, and perform the validation using a web service. We take this opportunity to also show how to use the **“Web Service REST”** component for the validation.
6 |
7 | [Read more](https://www.3cx.com/docs/cfd-credit-card-validation/)
8 |
--------------------------------------------------------------------------------
/samples/Authentication/README.md:
--------------------------------------------------------------------------------
1 | # Using the Authentication Component to Validate Customers
2 | ## Summary
3 | Many times we need to authenticate callers, asking for an ID and PIN, and then validating them against different data sources. Usually we also need to iterate this procedure, and ask for the ID and PIN again in case of validation failure, until the validation succeeds or we reach a number of retry attempts. We have simplified this procedure to perform all these tasks in a single component. Now the [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/) includes the Authentication component for this!
4 |
5 | This guide describes how to use the new **“Authentication”** component to ask for an ID and PIN, and perform the validation using a web service. It also includes info on how to use the **“Web Service REST”** component for the validation.
6 |
7 | [Read more](https://www.3cx.com/docs/cfd-validate-customers/)
8 |
--------------------------------------------------------------------------------
/samples/OutboundDialer/OutboundDialer.cfdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 | False
11 | True
12 | 0
13 | 10
14 | True
15 |
16 |
17 |
18 |
19 | us-east-2
20 |
--------------------------------------------------------------------------------
/samples/PredictiveDialer/PredictiveDialer.cfdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 | False
11 | True
12 | 0
13 | 3
14 | True
15 |
16 |
17 |
18 |
19 | us-east-2
20 |
--------------------------------------------------------------------------------
/tutorials/3. Expanding an Existing Project/CFD 3.cfdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.1
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | False
13 | True
14 | 0
15 | 9
16 | True
17 | AmazonPollyClientIDHere
18 | AmazonPollyClientSecretHere
19 | us-east-2
20 |
--------------------------------------------------------------------------------
/tutorials/4. Adding more Intelligence to your Call Flow/CFD4.cfdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.1
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | False
13 | True
14 | 0
15 | 12
16 | True
17 | AmazonPollyClientIDHere
18 | AmazonPollyClientSecretHere
19 | us-east-2
20 |
--------------------------------------------------------------------------------
/samples/OrderByPhone/README.md:
--------------------------------------------------------------------------------
1 | # Setting up Phone Ordering
2 | ## Summary
3 | Combine [CFD components](https://www.3cx.com/docs/manual/cfd-components/) to enable easy implementation of a telephone ordering system that can be integrated with a [3CX API](https://www.3cx.com/docs/crm-integration/) compatible [CRM](https://www.3cx.com/crm-integration/), a [database server](https://www.3cx.com/docs/manual/cfd-components/#h.44lwg0nrv5st) and [Text to Speech](https://www.3cx.com/docs/cfd-text-to-speech-audio-prompt/).
4 |
5 | [Read more](https://www.3cx.com/docs/cfd-order-by-phone-demo/)
6 |
7 | ## Video Guide
8 | [](https://www.youtube.com/watch?v=nAed47UoIh0)
9 |
10 | ## Additional resources
11 | * [Installing & Updating 3CX Call Flow Designer](https://www.3cx.com/docs/manual/cfd-installation/#h.kql7rxbqfopm)
12 | * [How does it work?](https://www.3cx.com/docs/manual/cfd-installation/#h.kf48zybcuj57)
13 | * [Terminology](https://www.3cx.com/docs/manual/cfd-installation/#h.1qq7k8c0b7ca)
--------------------------------------------------------------------------------
/samples/PlayDigits/README.md:
--------------------------------------------------------------------------------
1 | # How to Play a Digit Sequence from a Call Flow
2 | ## Summary
3 | This sample project reads a sequence of numbers that have been pressed by the caller. Many times we face the need to read out a sequence of numbers. For example, we need to request a number using DTMF and ask the user to confirm whether the number that has been entered is valid, by reading the number back to them. We use this example to illustrate how to create an application using the [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/) to do this:
4 |
5 | 3CX CFD: **“Please, enter your customer code”**.
6 | The user enters *1234* using the keypad.
7 | 3CX CFD: **“The customer code entered is 1234”**.
8 | Since the reproduction of digits may be something that is required in different parts of the application, that functionality should be encapsulated in a custom component. The CFD can create custom components that can then be reused in different parts of the application.
9 |
10 | [Read more](https://www.3cx.com/docs/cfd-digit-sequence/)
11 |
--------------------------------------------------------------------------------
/tutorials/4. Adding more Intelligence to your Call Flow/CFD4/CFD4.cfdproj.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | False
13 | True
14 | 0
15 | 7
16 | True
17 | AKIA6AAZ7JLSPIQEZE4I
18 | Cjw7aKETeiODPGQ2aiunNN3nJjJVQW+AhQW43VRS
19 | us-east-2
20 |
--------------------------------------------------------------------------------
/samples/DateTimeRouting/README.md:
--------------------------------------------------------------------------------
1 | # Time-based Routing Without Programming
2 | ## Summary
3 | Routing calls depending on the date and time is a very common task, so we made it simpler than ever to do. Using the [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/), is now possible to do this without creating a C# function, without any programming experience.
4 |
5 | This guide describes how to use the new **“Date & Time condition”** component to route calls to different extensions depending on the time of the day, from a Call Flow app created with the [3CX Call Flow Designer](https://www.3cx.com/phone-system/call-flow-designer/). We apply this routing scheme:
6 |
7 | * During out of office hours (including holidays): calls are routed to the **“business closed”** queue.
8 | * During in-office hours, on Monday, Wednesday and Friday from 9 to 12 and from 14 to 17: calls are routed to the **“promotions”** queue.
9 | * During in-office hours, the rest of the days and times: calls are routed to the **“standard”** queue.
10 |
11 | [Read more](https://www.3cx.com/docs/cfd-time-based-routing/)
12 |
--------------------------------------------------------------------------------
/tutorials/5. Verifying users’ input by refining the validation and digit playback/CFD5.cfdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.1
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | False
14 | True
15 | 0
16 | 21
17 | True
18 | AKIA6AAZ7JLSPIQEZE4I
19 | Cjw7aKETeiODPGQ2aiunNN3nJjJVQW+AhQW43VRS
20 | us-east-2
21 |
--------------------------------------------------------------------------------
/samples/LoopMenu/LoopMenu.cfdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.1
4 |
5 |
6 |
7 |
8 |
9 |
10 | False
11 | True
12 | 0
13 | 3
14 | True
15 | False
16 |
17 |
18 | None
19 | None
20 |
21 |
22 |
23 |
24 | us-east-2
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/samples/Survey/Survey.cfdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.1
4 |
5 |
6 |
7 |
8 |
9 |
10 | False
11 | True
12 | 0
13 | 1
14 | True
15 | False
16 |
17 |
18 | None
19 | None
20 |
21 |
22 |
23 |
24 | us-east-2
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/samples/CRMLookup/CRMLookup.cfdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.1
4 |
5 |
6 |
7 |
8 |
9 |
10 | False
11 | False
12 | 0
13 | 1
14 | True
15 | False
16 |
17 |
18 | None
19 | None
20 |
21 |
22 |
23 |
24 | us-east-2
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/samples/PhoneSupportPortal/Libraries/TextFileValidator.cs:
--------------------------------------------------------------------------------
1 | using System.Xml;
2 |
3 | public class Validator
4 | {
5 | public bool ValidateXML(string fileContent, string id, string pin)
6 | {
7 | XmlDocument xmlDocument = new XmlDocument();
8 | xmlDocument.LoadXml(fileContent);
9 |
10 | XmlNodeList customerElementList = xmlDocument.GetElementsByTagName("customer");
11 | foreach (XmlNode xmlNode in customerElementList)
12 | {
13 | string customerID = xmlNode.Attributes["id"].Value;
14 | string customerPIN = xmlNode.Attributes["pin"].Value;
15 |
16 | if (id == customerID && pin == customerPIN)
17 | return true;
18 | }
19 |
20 | return false;
21 | }
22 |
23 | public bool ValidateCSV(string fileContent, string id, string pin)
24 | {
25 | foreach (string line in fileContent.Split('\n'))
26 | {
27 | string[] lineParts = line.Trim().Split(',');
28 | if (lineParts.Length == 2)
29 | {
30 | string customerID = lineParts[0];
31 | string customerPIN = lineParts[1];
32 |
33 | if (id == customerID && pin == customerPIN)
34 | return true;
35 | }
36 | }
37 |
38 | return false;
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/tutorials/README.md:
--------------------------------------------------------------------------------
1 | # Call Flow Designer - Video Tutorials
2 | The 3CX Call Flow Designer (CFD) is a powerful tool that allows you to automate how incoming calls are handled and eliminate repetitive tasks. Just like everything else 3CX, it’s easy to use! Create complex call flows and voice applications visually with drag and drop – no advanced programming skills required.
3 |
4 | We’ve prepared a series of 5 videos to show you just how easy the CFD really is. Check them out and let us know your thoughts and feedback!
5 |
6 | ## Tutorials
7 | * [Creating your First Call Flow and Deploying it to 3CX](https://www.youtube.com/watch?v=wBRFPCBQjLE&list=PL6sq0_ucoDunJmxkcSSACrg-dPRbPmHYE&index=2&t=0s)
8 | * [Modifying Existing Call Flows – Out of office hours and emailing messages](https://www.youtube.com/watch?v=snToJw3pIbA&list=PL6sq0_ucoDunJmxkcSSACrg-dPRbPmHYE&index=2)
9 | * [Expanding an Existing Project to use Components](https://www.youtube.com/watch?v=6RlA97XrvlY&list=PL6sq0_ucoDunJmxkcSSACrg-dPRbPmHYE&index=3)
10 | * [Adding more Intelligence to your Call Flow – authenticating IDs against a database](https://www.youtube.com/watch?v=pxmQb2Pp9j0&list=PL6sq0_ucoDunJmxkcSSACrg-dPRbPmHYE&index=4)
11 | * [Verifying users’ input by refining the validation and digit playback](https://www.youtube.com/watch?v=3O3E2PRhCTQ&feature=youtu.be)
12 |
13 | > Head on over to the [CFD documentation pages](https://www.3cx.com/docs/manual/call-flow-designer-manual/) to see what else this powerful tool has to offer.
--------------------------------------------------------------------------------
/samples/PhoneSupportPortal/PhoneSupportPortal.cfdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | SalesTeamExtension
16 | "100"
17 | false
18 | true
19 |
20 |
21 | HelpDeskExtension
22 | "101"
23 | false
24 | true
25 |
26 |
27 |
28 | False
29 | True
30 | 0
31 | 14
32 | True
33 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Call Flow Designer sample applications
2 | The 3CX Call Flow Designer (CFD) allows you to easily create call flows and voice applications visually – without requiring any programming or scripting knowledge. You can, for example, query a caller for a customer number, validate this number against a database and route the call based on customer type. This repository contains sample applications that demonstrate different usage scenarios.
3 | > Get [3CX for free](https://www.3cx.com/phone-system/download-phone-system/?src=github) for unlimited users, in your Google, Amazon or Azure cloud account or on-premise on Windows or Linux.
4 | The 3CX Call Flow Designer requires a 3CX PRO licence.
5 |
6 | ## Additional resources
7 | * [Installing & Updating 3CX Call Flow Designer](https://www.3cx.com/docs/manual/cfd-installation/#h.kql7rxbqfopm)
8 | * [How does it work?](https://www.3cx.com/docs/manual/cfd-installation/#h.kf48zybcuj57)
9 | * [Terminology](https://www.3cx.com/docs/manual/cfd-installation/#h.1qq7k8c0b7ca)
10 | * [Migrating V15.5 Call Flow Projects to V16](https://www.3cx.com/docs/manual/cfd-troubleshooting/#h.lsc0dfwmd9eg)
11 |
12 | [](https://www.youtube.com/watch?v=sWmIJ_pxdYo)
13 |
14 | ## Using the samples
15 | To start using these projects, you'll need to clone the projects.
16 |
17 | Clone this repository by executing the following command in your console:
18 |
19 | ```
20 | git clone https://github.com/3cx/cfd-demos.git
21 | ```
22 |
23 | Navigate to the cloned repository folder which should be the same as the repository name:
24 |
25 | ```
26 | cd cfd-demos
27 | ```
28 |
29 | Choose a sample project and open it with 3CX Call Flow Designer
30 |
31 |
--------------------------------------------------------------------------------
/samples/OrderByPhone/CreateDatabase.sql:
--------------------------------------------------------------------------------
1 | CREATE DATABASE `orderbyphone` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */;
2 |
3 | USE orderbyphone;
4 |
5 | CREATE TABLE `customers` (
6 | `id` varchar(100) NOT NULL,
7 | `pin` varchar(100) NOT NULL,
8 | PRIMARY KEY (`id`,`pin`)
9 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
10 |
11 | CREATE TABLE `items` (
12 | `id` int(11) NOT NULL,
13 | `name` varchar(100) NOT NULL,
14 | `stock` int(11) NOT NULL DEFAULT '0',
15 | `price` decimal(10,2) NOT NULL DEFAULT '0.00',
16 | PRIMARY KEY (`id`),
17 | UNIQUE KEY `iditems_UNIQUE` (`id`)
18 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
19 |
20 | CREATE TABLE `notifications` (
21 | `contactid` varchar(100) NOT NULL,
22 | `itemid` int(11) NOT NULL,
23 | PRIMARY KEY (`contactid`,`itemid`),
24 | KEY `itemidfk_idx` (`itemid`),
25 | CONSTRAINT `itemidfk` FOREIGN KEY (`itemid`) REFERENCES `items` (`id`)
26 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
27 |
28 | CREATE TABLE `orders` (
29 | `id` int(11) NOT NULL AUTO_INCREMENT,
30 | `customerid` varchar(100) NOT NULL,
31 | `status` varchar(45) NOT NULL,
32 | PRIMARY KEY (`id`),
33 | UNIQUE KEY `id_UNIQUE` (`id`),
34 | KEY `customerid_fk_idx` (`customerid`),
35 | CONSTRAINT `customerid_fk` FOREIGN KEY (`customerid`) REFERENCES `customers` (`id`)
36 | ) ENGINE=InnoDB AUTO_INCREMENT=100013 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
37 |
38 | CREATE TABLE `orderdetails` (
39 | `orderid` int(11) NOT NULL,
40 | `index` int(11) NOT NULL,
41 | `itemid` int(11) NOT NULL,
42 | `quantity` int(11) NOT NULL,
43 | PRIMARY KEY (`orderid`,`index`),
44 | KEY `itemid_fk_idx` (`itemid`),
45 | CONSTRAINT `itemid_fk` FOREIGN KEY (`itemid`) REFERENCES `items` (`id`),
46 | CONSTRAINT `orderid_fk` FOREIGN KEY (`orderid`) REFERENCES `orders` (`id`)
47 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
48 |
--------------------------------------------------------------------------------
/samples/Callback/Callback.cfdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.1
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | GlobalPropertyName
15 | "CFD_SCHEDULED_CALLBACKS"
16 | ReadOnly
17 | false
18 | true
19 |
20 |
21 |
22 |
23 | False
24 | False
25 | 0
26 | 5
27 | True
28 | True
29 | 852
30 | GoogleCloud
31 | GoogleCloud
32 |
33 |
34 |
35 |
36 | us-east-2
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/samples/TextToSpeech/Main.flow:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 | AccountBalance
8 | 100
9 | false
10 | true
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/samples/PhoneSupportPortal/ValidateDataWebService.comp:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 | CustomerID
8 | true
9 | true
10 |
11 |
12 | CustomerPIN
13 | true
14 | true
15 |
16 |
17 | ValidationResult
18 | true
19 | true
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/samples/PlayDigits/PlayDigits.comp:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 | Digits
8 | true
9 | true
10 |
11 |
12 | Index
13 | 0
14 | Private
15 | true
16 | true
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/samples/OrderByPhone/source/OrderByPhone.cfdproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.1
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | OperatorExtension
19 | 100
20 | false
21 | true
22 |
23 |
24 | DatabaseServer
25 | "ENTER_DATABASE_SERVER"
26 | false
27 | true
28 |
29 |
30 | DatabasePort
31 | 3306
32 | false
33 | true
34 |
35 |
36 | DatabaseName
37 | "ENTER_DATABASE_NAME"
38 | false
39 | true
40 |
41 |
42 | DatabaseUsername
43 | "ENTER_USER_NAME"
44 | false
45 | true
46 |
47 |
48 | DatabasePassword
49 | "ENTER_PASSWORD"
50 | false
51 | true
52 |
53 |
54 |
55 | False
56 | True
57 | 0
58 | 27
59 | True
60 |
61 |
62 | ENTER_CLIENT_ID
63 | ENTER_CLIENT_SECRET
64 | us-east-2
65 |
--------------------------------------------------------------------------------
/samples/PhoneSupportPortal/ValidateDataDB.comp:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 | CustomerID
8 | true
9 | true
10 |
11 |
12 | CustomerPIN
13 | true
14 | true
15 |
16 |
17 | ValidationResult
18 | true
19 | true
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/samples/PhoneSupportPortal/ValidateDataCsvFile.comp:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 | CustomerID
8 | true
9 | true
10 |
11 |
12 | CustomerPIN
13 | true
14 | true
15 |
16 |
17 | ValidationResult
18 | true
19 | true
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/samples/PhoneSupportPortal/ValidateDataXmlFile.comp:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 | CustomerID
8 | true
9 | true
10 |
11 |
12 | CustomerPIN
13 | true
14 | true
15 |
16 |
17 | ValidationResult
18 | true
19 | true
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/samples/EmailSender/Main.flow:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/samples/PredictiveDialer/MainDialer.dialer:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/tutorials/5. Verifying users’ input by refining the validation and digit playback/Read_Digits.comp:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.1
4 |
5 |
6 |
7 | Index
8 | 0
9 | Private
10 | true
11 | true
12 |
13 |
14 | Length
15 | Private
16 | true
17 | true
18 |
19 |
20 | Digits
21 | true
22 | true
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/samples/UserInput/Main.flow:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/samples/TimeBasedRouting/Main.flow:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/samples/Menu/Main.flow:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/samples/Callback/StoreCallback.comp:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.1
4 |
5 |
6 |
7 | In_SelectedDateTime
8 | true
9 | true
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/samples/PlayDigits/Main.flow:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/samples/Callback/CallbackDialer.dialer:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.1
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/samples/PhoneSupportPortal/Main.flow:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/samples/OrderByPhone/source/ContactLookup.comp:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.1
4 |
5 |
6 |
7 | ContactFound
8 | false
9 | true
10 | true
11 |
12 |
13 | ContactID
14 | ""
15 | true
16 | true
17 |
18 |
19 | ContactName
20 | ""
21 | true
22 | true
23 |
24 |
25 | ContactEmail
26 | ""
27 | true
28 | true
29 |
30 |
31 | FirstName
32 | Private
33 | true
34 | true
35 |
36 |
37 | LastName
38 | Private
39 | true
40 | true
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Main.flow:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/tutorials/3. Expanding an Existing Project/Main.flow:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.1
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/tutorials/4. Adding more Intelligence to your Call Flow/Main.flow:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.1
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/tutorials/5. Verifying users’ input by refining the validation and digit playback/Main.flow:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.1
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/samples/OutboundDialer/MainDialer.dialer:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/samples/DateTimeRouting/Main.flow:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 | BusinessClosedQueue
8 | 800
9 | ReadOnly
10 | false
11 | true
12 |
13 |
14 | PromotionsQueue
15 | 801
16 | ReadOnly
17 | false
18 | true
19 |
20 |
21 | StandardQueue
22 | 802
23 | ReadOnly
24 | false
25 | true
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/tutorials/1. Creating a Call Flow/Main.flow:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.1
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/tutorials/4. Adding more Intelligence to your Call Flow/CFD4/Sales_Option.comp:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/tutorials/3. Expanding an Existing Project/Sales_Option.comp:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.1
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/tutorials/4. Adding more Intelligence to your Call Flow/Sales_Option.comp:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.1
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/tutorials/5. Verifying users’ input by refining the validation and digit playback/Sales_Option.comp:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.1
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/samples/DatabaseAccess/Main.flow:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.0
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/samples/OrderByPhone/source/ItemChangeQuantity.comp:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.1
4 |
5 |
6 |
7 | MaxQuantity
8 | true
9 | true
10 |
11 |
12 | SelectedQuantity
13 | 1
14 | true
15 | true
16 |
17 |
18 | HasToAskQuantity
19 | true
20 | Private
21 | true
22 | true
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/samples/OrderByPhone/source/ItemAddNotification.comp:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2.1
4 |
5 |
6 |
7 | ItemID
8 | true
9 | true
10 |
11 |
12 | ContactID
13 | true
14 | true
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------