To design your IVR flow drag and drop blocks (ready-to-use applications) in the design area and connect them in a flow:
For each block you add, just double click on it and enter the required fields in the pop up screen to setup the corresponding application:
Entry group applications
This group - start, finally and end - manages the begin and the end of a call from an Application point of view.
Start
Description
The Start block must be the very first one in each IVR application. The application will not be published without the Start box: it can be used just once for each IVR.
Parameters
- Label: here you can type a brief description of the box
- Answer: If set to YES, the system answers the channel.
Exit Arrows
This block provides just one arrow out to the next step
Finally
Description
This block is executed when the application loses the voice channel. It should be used for example to write some data on a DB after the call hangup or at the end of each IVR. You can use all the boxes you want after the finally.
Of course boxes for audio playing will not have any effect on the customer experience.
Parameters
- Label: here you can type a brief description of the box
Exit Arrows
This block provides just one arrow out to the next step
End
Description
This box needs to be placed at the end of every leaf of the IVR tree. You can put an End box either at the end of each leaf or have a unique End box whom all the leaves connect to.
Parameters
- Label: here you can type a brief description of the box
Exit Arrows
This box does not have exit arrow
Call management applications
This group of boxes - answer, hangup, internal dial, external dial, queue, voicemail, callback - can be used to manage the begin and the end of a call from a Telephony point of view.
Answer
Description
This box picks up the call and opens also the voice channel
Parameters
- Label: here you can type a short description of the box
- Timeout: here you can setup a timeout in seconds the customer will wait before the system picks up the call. During that period the customer will hear to the “Music On Hold” if it is configured on your server.
Exit Arrows
This box provides just one arrow out to the next step
Hangup
Description
This box hangs up the call to the customer on the remote party
Parameters
Label: here you can type a brief description of the box
Exit Arrows
This box has got any exit arrow
Internal Dial
Description
This box performs the standard Asterisk Dial command towards an internal phone
Parameters
- Label: here you can type a brief box description
- SIP: the agent that you want to call (i.e. john.doe (998))
- Timeout: the maximum dial time in seconds (default is 60 s).
- Options: here you can type the asterisk dial options parameter (it is optional).
- URL: this parameter will also be sent to the called party upon successful connection (it is optional).
Exit Arrows
This box provides just one arrow out to the next step
External Dial
Description
This box performs the standard Asterisk Dial command towards an external phone
Parameters
- Label: here you can type a brief box description
- Phone: the number that you want to call (i.e. 012345678)
- Trunk: the trunk that you want to use for the call
- Timeout: the maximum dial time in seconds (default is 60 s).
- Options: here you can type the asterisk dial options parameter (optional). Refer to the Asterisk’s wiki.
- URL: this parameter will also be sent to the called party upon successful connection (optional)
Queue
Description
This box performs the standard Asterisk Queue command in order to manage calls to a Queue (especially useful for ACD or asterisk call center applications).
Parameters
- Label: here you can type a brief box description
- Queue name: name of the Asterisk pre-defined queue
- Options: queue command options. It may contain zero or more of the following characters:
- d: data-quality (modem) call (minimum delay)
- h: it allows the callee to hang up by pressing *
- H: it allows the caller to hang up by pressing *
- n: no retries on the timeout: it exits this application and goes to the next step
- r: ringing instead of playing MOH
- R: stops moh and rings once an agent is ringing (Asterisk Trunk)
- t: it allows the called user to transfer the calling user
- T: it allows the calling user to transfer the call.
- w: it allows the called user to write the conversation to disk via Monitor
- W: it allows the calling user to write the conversation to disk via Monitor
- c: continuing in the dialplan if the callee hangs up (Asterisk 1.6.0 and above)
- i: it ignores the call forward requests from queue members and do nothing when they are requested (Asterisk 1.6.0 and above)
- k: it allows the called party to enable parking of the call by sending the DTMF sequence defined for call parking in features.conf (Asterisk 1.6.0 and above)
- K: it allows the calling party to enable parking of the call by sending the DTMF sequence defined for call parking in features.conf (Asterisk 1.6.0 and above).
- x: it allows the called user to write the conversation to disk via MixMonitor (Asterisk 1.6.0 and above).
- X: it allows the calling user to write the conversation to disk via MixMonitor (Asterisk 1.6.0 and above).
- Timeout: time in seconds a call will wait in the queue before it is routed to the next priority in the dialplan (if not defined or 0 the default behaviour is unlimited)
- URL: external URL (when supported)
- AGI: AGI script invoked when a queue member answers the call
- macro: run a macro on the called party's channel (the queue member) once the parties are connected
- gosub: run a gosub on the called party's channel (the queue member) once the parties are connected
- position: attempt to enter the caller into the queue at the numerical position specified (e.g.: 1 would attempt to enter the caller at the head of the queue, 3 would attempt to place the caller third in the queue, and so on)
Exit Arrows
This box provides just one arrow out to the next step
Voicemail
Description
This box performs the standard Asterisk Voicemail command** in order to route your call flow to a pre-defined Asterisk voicemail box and context.
Parameters
- Label: here you can type a brief box description
- Mailbox: here you can set the voicemail box (mailbox@context) you want to route the call to. You can specify the mailbox you have previously configured in the Voicemail section.
- Options: VoiceMail command options. Refer to the Asterisk’s wiki.
Exit Arrows
This box provides just one arrow out to the next step
Callback
Description
The callback block will add the contact in the selected contact manager list. Please remember to associate the list to a queue campaign for Motion Bull to call the contact at the scheduled time.
Parameters
- Label: here you can type a brief description of the box
- Name: Caller name. Default: {CALLERID(name)}
- Last Name: Caller last name
- Phone: the phone number of the customer that you want to call back. Default: {CALLERID(num)}.
- List: contact manager list where the contact will be added.
- Delay [min]: time in minutes from NOW (current time) to schedule a contact. Here you can insert a value that defines when the customer will be called.
- Priority: add a contact with a specific priority.
Exit Arrows
This box has got one exit arrow
Agent management applications
This group of blocks allow to manage the Agents' status:
- add agent to all the queues he belongs to (Login)
- remove agents to all the queues he belongs to (Logout)
- pause agents on all the queues he belongs to (Pause)
- end pause agent on all the queues he belongs to (End Pause)
This group of blocks can be used in an IVR in order to manage the queue status of the Agents who use external phones (soft phones, hard phones or mobile phones) instead of (or blended with) the traditional Phonebar or the WebRTC bar Agents.
Login
Description
This box allows to add an agent to all the queues he belongs to.
Parameters
In order to find the Agent's queues, you need to set the column where the script must search the caller number.
- Label: here you can type a short description of the box
- Find by, which specifies if the caller number should be found as an:
- Internal (as specified in the Agent profile as internal number)
- Phone (as specified in the Agent profile as phone)
- Mobile (as specified in the Agent profile as mobile)
Exit Arrows
For this box you must create two exit arrows using the following values:
- success: the agent has been successfully logged into his queues
- failure: the agent has not been successfully logged into his queues (e.g.: agent is not found or for maximum number of agents logged exceeded)
Pause
Description
This box allows to pause an agent on all the queues he belongs to.
Parameters
In order to find the Agent's queues, you need to set the column where the script must search the caller number.
- Label: here you can type a short description of the box
- Find by, which specifies if the caller number should be found as an:
- Internal (as specified in the Agent profile as internal number)
- Phone (as specified in the Agent profile as phone)
- Mobile (as specified in the Agent profile as mobile)
- Pause type:
- default none
- any pause type available on the server
Exit Arrows
For this box you must create two exit arrows using the following values:
- success: the agent has been successfully paused to his queues
- failure: the agent has not been successfully paused to his queues (e.g.: agent is not found)
End Pause
Description
This box allows to end the pause of an agent to all the queues he belongs to.
Parameters
In order to find the Agent's queues, you need to set the column where the script must search the caller number.
- Label: here you can type a short description of the box
- Find by, which specifies if the caller number should be found as an:
- Internal (as specified in the Agent profile as internal number)
- Phone (as specified in the Agent profile as phone)
- Mobile (as specified in the Agent profile as mobile)
Exit Arrows
For this box you must create two exit arrows using the following values:
- success: the agent has been successfully ended to be in pause on his queues
- failure: the agent has not been successfully ended to be in pause on his queues (e.g.: agent is not found)
Logout
Description
This box allows to log out an agent to all the queues he belongs to.
Parameters
In order to find the Agent's queues, you need to set the column where the script must search the caller number.
- Label: here you can type a short description of the box
- Find by, which specifies if the caller number should be found as an:
- Internal (as specified in the Agent profile as internal number)
- Phone (as specified in the Agent profile as phone)
- Mobile (as specified in the Agent profile as mobile)
Exit Arrows
For this box you must create two exit arrows using the following values:
- success: the agent has been successfully logged out from all the queues he belongs to
- failure: the agent has not been successfully logged out from all the queues he belongs to (e.g.: agent is not found)
Variable nodes and math
This group of boxes handles the variables and math operations.
Set
Description
Parameters
- Label: here you can type a short description of the box
- Variable: pickup list you can use to choose the variable you want to use, selecting from the variable list previously defined under Tools < Variable section. You can also create a variable from the toolbar (File < Variable).
- Value: variable value, like the following:
- Constant (digits or text)
- An Asterisk variable in the format {VARIABLE_ASTERISK}
- A generic non-asterisk variable previously defined in the Cally Square dashboard, in the format {VARIABLENAME}
- Others
please note the variable format is slightly different from the Asterisk one. DO NOT use the $ character before the {}.
Example: the usual asterisk variable ${CALLERID(num)} MUST be defined just as {CALLERID(num)} in the Cally Square environment.
Exit Arrows
The box provides just one arrow out to the next step
Math
Description
Here you can perform complex mathematical operations during the call flow
Parameters
- Label: here you can type a short description of the box
- Operation**: the mathematical operation
i.e. ({RECORD}*2)-4*7/(5*3)+62
i.e. array handler: '{INPUT_DATA}.split(";")'
- Result: variable used to store the operation output
Exit Arrows
The box provides just one arrow out to the next step
Play and Menu nodes
This group manages the audio playing.
Playback
Description
Here you can play an audio file without any interaction between the customer and the application. The audio is unstoppable
Parameters
- Label: here you can type a brief description
- Audio: name of the audio file you want to play in the current box
Exit Arrows
This box provides just one arrow out to the next step
Menu
Description
This is probably one of the most important application box available on Cally Square. Here you can build a complex menu using a single box: you can play the message, count the retries on errors (i.e. to avoid dangerous loops) and set a variable with the digit value(s) pressed by the customers
Parameters
- Label: here you can type a brief description
- Audio: the name of the audio file you want to play in the current box
- Response Timeout: the maximum number of seconds the system waits before considering the customer not interacting with the application
- Max Digit: the maximum number of digits the system waits before moving on to the next step
- Retries: here you can set the number of loops automatically performed in case of digits not valid or timeout**
- Variable: the variable you want to fill with the digits pressed by the customer.
** Please consider the menu box gives the top priority to the invalid (i) or timeout (t) branches (if present) before routing the call in a loop.
# key can be used as an escape digit or as a valid exit key.
If the user doesn't press any keys when the message plays, there is $timeout milliseconds of silence then the command ends.
The user has the opportunity to press a key at any time during the message or the post-message silence. If the user presses a key while the message is playing, the message stops playing. When the first key is pressed a timer starts counting for $timeout milliseconds. Every time the user presses another key the timer is restarted. The command ends when the counter goes to zero or the maximum number of digits is entered, whichever happens first.
Exit Arrows
The menu box lets you draw many exit arrows according to the following syntax:
- X: the box waits for one digit if the MaxDigit parameter is set to one
- XX: the box waits for exactly N digits (in this example N=2)
- i: the system takes this path if the entry selected is invalid
- t: the system takes this path if the box goes in case of timeout
- -: the system considers this branch when the retry value is reached. Timeout and Invalid branches have higher priority than this branch.
It is possible to add multiple choices for each output branch: use just the comma separated characters (see please example on the right)
Say Digits
Description
Here you can play the digits, one by one, in the chosen language (defaults to English)
Parameters
- Label: here you can type a brief description
- Digits: the digits you want to be played: they can be both a digit string (i.e. 1234) or a VARIABLE (i.e. {CALLERID(num)})
- Escape digits: special character to exit from the playing (i.e. #)
Exit Arrows
This box provides just one arrow out to the next step
Say Number
Description
Here you can play a number (i.e. 2583 will be played like "two thousand, five hundred and eighty threes")
Parameters
- Label: here you can type a brief description
- Number: the number you want to be played: they can be both a digit string (i.e. 1234) or a VARIABLE (i.e. {CALLERID(num)})
- Escape digits: special character to exit from the playing (i.e. #)
Exit Arrows
This box provides just one arrow out to the next step
SayPhonetics
Description
Here you can sequentially play each asterisk sound file located in /var/lib/asterisk/sounds/phonetic/character_p.gsm for each character in input using the NATO Phonetic Alphabet.
Parameters
- Label: here you can type a brief description
- Text: the text you want to be played: it can be both a digit string (i.e. Joe) or a VARIABLE (i.e. {CALLERID(name)})
- Escape digits: special character to exit from the playing (i.e. #)
Exit Arrows
This box provides just one arrow out to the next step
GetDigits
Description
Here you can prompt the user to insert a series of digits: you can play the message, count the retries on errors (i.e. to avoid dangerous loops) and set a variable with the inserted digits value.
Parameters
- Label: here you can type a brief description
- Audio: the name of the audio file you want to play in the current box
- Response Timeout: the maximum number of seconds the system waits before considering the customer not interacting with the application
- Min Digit: the minimum number of digits the system can accept without considering it an invalid entry
- Max Digit: the maximum number of digits the system waits before moving on to the next step
- Retry: here you can set the number of loops automatically performed in case of invalid digits **
- Variable: the variable you want to fill with the digits pressed by the customer.
** Please consider that the getdigits box gives the top priority to the invalid (i) branch (if present) before routing the call in a loop.
Pressing the # key has the same effect as the timer running out: the command ends and any previously keyed digits are returned. A side effect of this is that there is no way to read a # key using this command.
If you don't specify $max_digits then the user can enter as many digits as they want.
If the user doesn't press any keys when the message plays, there is $timeout milliseconds of silence then the command ends.
The user has the opportunity to press a key at any time during the message or the post-message silence. If the user presses a key while the message is playing, the message stops playing. When the first key is pressed a timer starts counting for $timeout milliseconds. Every time the user presses another key the timer is reset. The command ends when the counter goes to zero or the maximum number of digits is entered, whichever happens first.
Exit Arrows
The getdigits box lets you draw many exit arrows according to the following syntax:
- x: is the exit arrow, the path taken when a valid digit is inserted. If not present, on valid entry the call will be dropped.
- i: the system takes this path if the entry is invalid. If not present it will simply loop the getdigits box until it runs out of retries.
- -: the system takes this path if it runs out of retries. If not present, when the system runs out of retries will simply drop the call.
GetSecretDigits
Description
Here you can prompt the user to insert a series of digits and some of them will be hidden, for security reasons. You can play the message, set how many digits you want to hide, count the retries on errors (i.e. to avoid dangerous loops) and set a variable with the inserted digits value.
Parameters
- Label: here you can type a brief description
- Audio: the name of the audio file you want to play in the current box
- Response Timeout: the maximum number of seconds the system waits before considering the customer not interacting with the application
- Min Digit: the minimum number of digits the system can accept without considering it an invalid entry
- Max Digit: the maximum number of digits the system waits before moving on to the next step
- Retry: here you can set the number of loops automatically performed in case of invalid digits **
- Hidden Digits Number: the number of digits that the system will hide, for security reasons
- Hidden Digits Position: you can set if the First or Last #N digits will be hidden
- Variable: the variable you want to fill with the digits pressed by the customer.
** Please consider that the getsecretdigits box gives the top priority to the invalid (i) branch (if present) before routing the call in a loop.
Pressing the # key has the same effect as the timer running out: the command ends and any previously keyed digits are returned. A side effect of this is that there is no way to read a # key using this command.
If you don't specify $max_digits then the user can enter as many digits as they want.
If the user doesn't press any keys when the message plays, there is $timeout milliseconds of silence then the command ends.
The user has the opportunity to press a key at any time during the message or the post-message silence. If the user presses a key while the message is playing, the message stops playing. When the first key is pressed a timer starts counting for $timeout milliseconds. Every time the user presses another key the timer is reset. The command ends when the counter goes to zero or the maximum number of digits is entered, whichever happens first.
Exit Arrows
The getsecretdigits box lets you draw many exit arrows according to the following syntax:
- x: is the exit arrow, the path taken when a valid digit is inserted. If not present, on valid entry the call will be dropped.
- i: the system takes this path if the entry is invalid. If not present it will simply loop the getsecretdigits box until it runs out of retries.
- -: the sytem takes this path if it runs out of retries. If not present, when the system runs out of retries will simply drop the call.
Recording
The following section explains how to perform live recordings of calls.
Record
Description
This box performs a .wav call recording to a file of the current Asterisk channel
Parameters
- Label: here you can type a brief box description
- Filename: display name of the file in the Recordings section.
- Recording Format
- Escape digits: special digits to exit the current recorded call
- Timeout: maximum recording duration in seconds. If -1 the considered timeout is unlimited
Built-in variables
We provide the following Asterisk channel variables named
- RECORDING_SAVENAME
which show the filename of the recording in the file system without extension.
Exit Arrows
This box provides just one arrow out to the next step
TTS - Text to Speech
In this section you find the blocks which can be used for text to speech conversion.
GoogleCloudTTS
Description
This box lets you perform a Text-To-Speech conversion using the Google Cloud TTS*
*Internet connection is required for this box to work
Parameters
- Label: here you can type a brief description
ApiKey: (mandatory) insert here the apikey for the Google Cloud Text To Speech application, generated on the Google Developer Application console
- Text Type: (mandatory) the available choices are Text (PlainText) or SSML (Speech Synthesis Markup Language: refer to Google official documentation to find out more about how to use it)
Text: the text you want to be translated
Language: the language you want use for the translation
Gender: the voice of the operator(choose between Female/Male voice. Default value is Female)
Exit Arrows
This box provides just one arrow out to the next step
GoogleTTS
Description
This box lets you perform a Text-To-Speech conversion using the Google TTS*.
*Internet connection is required for this box to work
Parameters
- Label: here you can type a brief description
- Text: the text you want to be translated (the maximum text length allowed is 200 characters)
- Language: the language you want use for the translation (i.e. it, en, etc..)
Exit Arrows
This box provides just one arrow out to the next step
Please note google TTS is offered without any warrant. You need a valid internet connection to make it working. Furthermore it is pure experimental and it can bring to unexpected behaviors.
If you need to use a professional Asterisk TTS, please consider the use of another specific TTS provided by specialized companies (i.e. Lumenvox, Vestec, etc... etc...)
Remember: this software is managed by others. Check if it works properly.
ISpeechTTS
Description
This box lets you perform a Text-To-Speech conversion using the Ispeech TTS Agi* Parameters
*Internet connection is required for this box to work
Parameters
- Label: here you can type a brief description
- Text: the text you want to be translated
- Key: your acquired license key from the ispeech.org account
- Language: the language you want use for the translation (i.e. it, en, etc..)
- Speed
- Interrupt key
Exit Arrows
This box provides just one arrow out to the next step.
Please note Ispeech TTS require a valid key from the ispeech.org website and a sufficient amount of acquired credits. The translation use 1 credit for each word.
Remember: this software is managed by others. Check if it works properly.
AWSPolly
Description
This box enables a voice-to-text conversion function using AWS Polly Agi Parameters*.
For additional information see https://aws.amazon.com/polly/
Remember: this software is managed by others. Check if it works properly.
Parameters
- Label: here you can type a brief description
- Access Key ID and Secret Access Key: AWS security credentials. Required: Yes
(see http://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html) - Region: AWS regional endpoint. Required: Yes (see http://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region)
- Voice: the voice used for the synthesis. Required: Yes
- Text: input text to synthetize. Required: Yes
- Text Type: specifies whether the input text is plain text or SSML. The default value is plain text (see https://docs.aws.amazon.com/polly/latest/dg/ssml.html).
Exit Arrows
This box provides just one arrow out to the next step
LumenvoxTTS
Description
This box lets you perform a Text-To-Speech conversion using the Lumenvox TTS*
*In order to make this box work you must install Lumenvox on a machine that is reachable by your system.
To know more about this integration click here
Parameters
- Label: here you can type a brief description
- Text: the text you want to be translated
- Options: they control details about the synthesis. Valid options are:
- l - language to use (e.g. "en-GB", "en-US", "en-AU", etc.)
- v - voice name to use (e.g. "Lindsey", "Chris", etc.)
- g - voice gender to use (e.g. "male", "female")
- p - profile to use, as specified in the mrcp.conf file
- i - digits to allow the TTS to be interrupted with (can specify "any" to allow any digits to interrupt)
- f - filename on disk to store audio to (audio not stored if not specified or empty)
- epe – exit on a play error
- pv - prosody volume (silent/x-soft/soft/medium/load/x-loud/default)
- pr - prosody rate (x-slow/slow/medium/fast/x-fast/default)
You are not required to supply any options. Multiple options can be provided by joining options with an ampersand, e.g. l=en-US&g=female
Exit Arrows
This box provides just one arrow out to the next step
Remember: this software is managed by others. Check if it works properly.
SestekTTS
Description
This box lets you perform a Text-To-Speech conversion using the Sestek TTS.
Parameters
- Label: here you can type a brief description
- Text: the text you want to be translated
- Options: they control details about the synthesis. Valid options are:
- l - language to use (e.g. "en-GB", "en-US", "en-AU", etc.)
- v - voice name to use (e.g. "Lindsey", "Chris", etc.)
- g - voice gender to use (e.g. "male", "female")
- p - profile to use, as specified in the mrcp.conf file
- i - digits to allow the TTS to be interrupted with (can specify "any" to allow any digits to interrupt)
- f - filename on disk to store audio to (audio not stored if not specified or empty)
- epe – exit on a play error
- pv - prosody volume (silent/x-soft/soft/medium/load/x-loud/default)
- pr - prosody rate (x-slow/slow/medium/fast/x-fast/default)
You are not required to supply any options. Multiple options can be provided by joining options with an ampersand, e.g. l=en-US&g=female
Exit Arrows
This box provides just one arrow out to the next step
Remember: this software is managed by others. Check if it works properly.
MRCPSynth
Description
This box lets you perform a Text-To-Speech conversion using the MRCPsynth TTS*
*In order to make this box work you must install MRCPsynth on a machine that is reachable by your system.
Parameters
- Label: here you can type a brief description
- Text: the text you want to be translated
- Options: they control details about the synthesis. Valid options are:
- l - language to use (e.g. "en-GB", "en-US", "en-AU", etc.)
- v - voice name to use (e.g. "Lindsey", "Chris", etc.)
- g - voice gender to use (e.g. "male", "female")
- p - profile to use, as specified in the mrcp.conf file
- i - digits to allow the TTS to be interrupted with (can specify "any" to allow any digits to interrupt)
- f - filename on disk to store audio to (audio not stored if not specified or empty)
- epe – exit on a play error
- pv - prosody volume (silent/x-soft/soft/medium/load/x-loud/default)
- pr - prosody rate (x-slow/slow/medium/fast/x-fast/default)
You are not required to supply any options. Multiple options can be provided by joining options with an ampersand, e.g. l=en-US&g=female
Exit Arrows
This box provides just one arrow out to the next step
Remember: this software is managed by others. Check if it works properly.
ASR - Automatic speech recognition
In this section you can find the blocks used for voice-to-text functions.
GoogleASR
Description
This box allows you to do a voice-to-text conversion using the Google ASR Agi* Parameters
Parameters
- Label: here you can type a brief description
- Key: your acquired license key from the console.developers.google.com account
- Language: the language you want use for the translation
- Interrupt Key: special digits to exit the current recorded call
- Timeout: maximum recording duration in seconds. If -1 the considered timeout is unlimited
- Beep: to reproduce a beep before to record
- GOOGLE_ASR_TRANSCRIPT: the result of the dictation recognition
- GOOGLE_ASR_CONFIDENCE: the precision of the recognition, between 0 and 1. Usually values above 0.8-0.9 means that the dictation has been correctly recognised.
Exit Arrows
This box provides just one arrow out to the next step
ISpeechASR
Description
This box allows you to do a voice-to-text conversion using the Ispeech ASR Agi* Parameters
The ASR saves the results in two channel variables:
- ispeech_asr_utterance: the result of the dictation recognition
- ispeech_asr_precision: the precision of the recognition, between 0 and 1. Usually values above 0.8-0.9 means that the dictation has been correctly recognised.
Parameters
- Label: here you can type a brief description
- Key: Your acquired license key from the ispeech.org account
- Model: the grammar of the dictation, to increase the precision of the recognition
- Language: the language you want use for the translation
- Interrupt Key: special digits to exit the current recorded call
- Timeout: maximum recording duration in seconds. If -1 the considered timeout is unlimited
- Beep: to reproduce a beep before to record
Exit Arrows
This box provides just one arrow out to the next step
LumenvoxASR
Description
*In order to have this box working you must install Lumenvox on a machine that is reachable by your system.
To know more about this integration click here
The ASR save the results in three channel variables:
- LUMENVOX_ASR_TRANSCRIPT: the result of the dictation recognition
- LUMENVOX_ASR_CONFIDENCE: the precision of the recognition, between 0 and 1. Usually values above 0.8-0.9 means that the dictation has been correctly recognised.
- LUMENVOX_ASR_INSTANCE: the instance of the recognition.
Parameters
- Label: here you can type a brief description
- Grammar: The grammar that should be used for the recognition. Grammars can be specified as text/XML inline for built-in grammars or by using a reference to an external file/URI.
If you need to use the multiple grammar, the value of the first grammar must be separated from the second one using a character defined (e.g.: grammar-a%grammar-b, defining the % as a delimiter in the options field gd):
LumenVox provides the following built-in grammars:
URI | Sample Input | Semantic Interpretation Result |
---|---|---|
builtin:grammar/boolean
| "yes", "no thank you", etc. | "true" or "false" |
builtin:grammar/date | "january thirteenth" or "december first two thousand" | "????0113" or "20001201" |
builtin:grammar/digits | "one two three four" | "1234" |
builtin:grammar/currency | "eighteen dollars and four cents" | "USD18.04" |
builtin:grammar/number
| "four hundred point five" | "400.5" |
builtin:grammar/phone | "area code eight five eight seven oh seven oh seven oh seven" | "8587070707" |
builtin:grammar/time | "six o clock" or "five thirty p m" | "0600?" or "0530p" |
Options:
Options control details about the recognition. Valid options are:
- p - Profile to use in mrcp.conf
- i - Digits to allow recognition to be interrupted with. Set this to "none" to allow LumenVox to process the DTMF using a DTMF grammar. Otherwise, if "any" or other digits specified, recognition will be interrupted and the digit will be returned to dialplan.
- f - Filename to play while recognition occurs (if empty or not specified, no file is played)
- t - The recognition timeout (in milliseconds). This is the total amount of time a caller has to speak.
- b - Barge-in value (no barge-in=0, ASR engine barge-in=1, Asterisk barge-in=2). LumenVox strongly recommends allowing the ASR to perform barge-in instead of Asterisk.
- gd – The grammar delimiter. Defaults to a comma.
- ct - The confidence threshold (0.0 - 1.0). If a recognition result has a confidence score below this value, it will be returned as "no match." Defaults to 0.5.
- sl - The barge-in sensitivity level (0.0 - 1.0). The higher this number, the easier it is to barge-in. Defaults to 0.5.
- sva - Speed vs. accuracy, set on a scale of 0.0 - 1.0. The higher this number, the faster (and less accurate) recognitions will be. Defaults to 0.5.
- nb - N-best list length. Defaults to 1; increase this value if you wish to get more answers back from the recognizer.
- nit - No input timeout. This is the amount of time the caller has to start speaking before the recognizer returns a no-input result.
- sct - Speech Complete Timeout. This is the amount of time, in milliseconds, LumenVox must detect silence after a user stops speaking before the recognizer begins processing the utterance. Set this lower for single word utterances and higher for longer utterances. In most cases, a value of 800 is correct.
- dit - DTMF interdigit timeout
- dtt - DTMF terminate timout
- dttc - DTMF terminate characters
- sw - Save Waveform (true/false)
- nac - new audio channel (true/false)
- spl - speech language (en-US/en-GB/etc.). If a language is declared in a grammar (it should be) this will be ignored.
- cdb - clear DTMF buffer (true/false)
- mt - media type
- iwu - input waveform URI (only applies to MRCPv2). Not supported by LumenVox.
- sint - Speech Incomplete Timeout. Not supported by LumenVox.
- rm - Recognition Mode. Not supported by LumenVox.
- hmaxd - hotword max duration. Not supported by LumenVox.
- hmind - hotword min duration. Not supported by LumenVox.
- enm - early no match (true/false). Not supported by LumenVox.
You are not required to supply any options. Multiple options can be provided by joining options with an ampersand, e.g. f=sayHelloWorld&t=5000
Exit Arrows
This box provides just one arrow out to the next step.
Remember: this software is managed by others. Check if it works properly.
TildeASR
Description
This box allows you to do a voice-to-text conversion using the Tilde ASR Agi* Parameters
*Internet connection is required for this box to work
The ASR saves the results in two channel variables:
- TILDE_ASR_TRANSCRIPT: the result of the dictation recognition
- TILDE_ASR_CONFIDENCE: the precision of the recognition, between 0 and 1. Usually values above 0.8-0.9 means that the dictation has been correctly recognised.
- TILDE_ASR_STATUS: the response status (integer)
TILDE_ASR_STATUS_MESSAGE: the response status message
TILDE_ASR_STATUSTILDE_ASR_STATUS_MESSAGE0 Success 1 No speech. Sent when the incoming audio contains a large portion of silence or non-speech 2 Aborted. Recognition was aborted for some reason. 9 Not available. Max load limit reached. 10 Authentication failed. 11 All recognition workers are currently in use and real-time recognition is not possible. Attention: The variables TILDE_ASR_TRANSCRIPT and TILDE_ASR_CONFIDENCE are available just when TILDE_ASR_STATUS is equal to 0
Please note Tilde ASR require a valid app key from the tilde.com website and a sufficient amount of acquired credits.
Furthermore it is pure experimental and it can bring to unexpected behaviour.
Parameters
- Label: here you can type a brief description
- App ID: Your App ID from the tilde.com account
- App Secret: Your App secret from the tilde.com account
- Interrupt Key: special digits to exit the current recorded call
- Timeout: maximum recording duration in seconds. If -1 the considered timeout is unlimited
- Beep: to reproduce a beep before to record
- URI: insert here your custom Tilde server URI (default standard value is wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE)
Exit Arrows
This box provides just one arrow out to the next step.
Remember: this software is managed by others. Check if it works properly.
SestekASR
Description
This box allows you to do a voice-to-text conversion using the Sestek ASR*
*Internet connection is required for this box to work
The ASR save the results in three channel variables:
- SESTEK_ASR_TRANSCRIPT: the result of the dictation recognition
- SESTEK_ASR_CONFIDENCE: the precision of the recognition, between 0 and 1. Usually values above 0.8-0.9 mean that the dictation has been correctly managed
- SESTEK_ASR_INSTANCE: the instance of the recognition.
Parameters
- Label: here you can type a brief description
- Grammar: The grammar that should be used for the recognition. Grammars can be specified as text/XML and its full path on the local server must be provided, like in the following example:
- Options control details about the recognition. Valid options are:
- p - Profile to use in mrcp.conf
- i - Digits to allow recognition to be interrupted with. Set this to "none" to allow Sestek to process the DTMF using a DTMF grammar. Otherwise, if "any" or other digits specified, recognition will be interrupted and the digit will be returned to dialplan.
- f - Filename to play while recognition occurs (if empty or not specified, no file is played)
- t - The recognition timeout (in milliseconds). This is the total amount of time a caller has to speak.
- b - Barge-in value (no barge-in=0, ASR engine barge-in=1, Asterisk barge-in=2). Sestek strongly recommends allowing the ASR to perform barge-in instead of Asterisk.
- gd – The grammar delimiter. Defaults to a comma.
- ct - The confidence threshold (0.0 - 1.0). If a recognition result has a confidence score below this value, it will be returned as "no match." Defaults to 0.5.
- sl - The barge-in sensitivity level (0.0 - 1.0). The higher this number, the easier it is to barge-in. Defaults to 0.5.
- sva - Speed vs. accuracy, set on a scale of 0.0 - 1.0. The higher this number, the faster (and less accurate) recognitions will be. Defaults to 0.5.
- nb - N-best list length. Defaults to 1; increase this value if you wish to get more answers back from the recognizer.
- nit - No input timeout. This is the amount of time the caller has to start speaking before the recognizer returns a no-input result.
- sct - Speech Complete Timeout. This is the amount of time, in milliseconds, Sestek must detect silence after a user stops speaking before the recognizer begins processing the utterance. Set this lower for single word utterances and higher for longer utterances. In most cases, a value of 800 is correct.
- dit - DTMF interdigit timeout
- dtt - DTMF terminate timout
- dttc - DTMF terminate characters
- sw - Save Waveform (true/false)
- nac - new audio channel (true/false)
- spl - speech language (en-US/en-GB/etc.). If a language is declared in a grammar (it should be) this will be ignored.
- cdb - clear DTMF buffer (true/false)
- mt - media type
- iwu - input waveform URI (only applies to MRCPv2)
- sint - Speech Incomplete Timeout
- rm - Recognition Mode
- hmaxd - hotword max duration
- hmind - hotword min duration
- enm - early no match (true/false)
You are not required to supply any options. Multiple options can be provided by joining options with an ampersand, e.g. f=sayHelloWorld&t=5000
Exit Arrows
This box provides just one arrow out to the next step.
Remember: this software is managed by others. Check if it works properly.
MRCPRecog
Description
*you must install MRCPRecog on a machine that is reachable by your system for this box to work
The ASR save the results in three channel variables:
- MRCP_RECOG_TRANSCRIPT: the result of the dictation recognition
- MRCP_RECOG_CONFIDENCE: the precision of the recognition, between 0 and 1. Usually values above 0.8-0.9 means that the dictation has been correctly recognised.
- MRCP_RECOG_INSTANCE: the instance of the recognition.
Parameters
- Label: here you can type a brief description
- Grammar: The grammar that should be used for the recognition. Grammars can be specified as text/XML inline for built-in grammars or by using a reference to an external file/URI.
If you need to use the multiple grammar, the value of the first grammar must be separated from the second one using a character defined (e.g.: grammar-a%grammar-b, defining the % as a delimiter in the options field gd):
MRCPRecog provides the following built-in grammars:
URI | Sample Input | Semantic Interpretation Result |
---|---|---|
builtin:grammar/boolean
| "yes", "no thank you", etc. | "true" or "false" |
builtin:grammar/date | "january thirteenth" or "december first two thousand" | "????0113" or "20001201" |
builtin:grammar/digits | "one two three four" | "1234" |
builtin:grammar/currency | "eighteen dollars and four cents" | "USD18.04" |
builtin:grammar/number
| "four hundred point five" | "400.5" |
builtin:grammar/phone | "area code eight five eight seven oh seven oh seven oh seven" | "8587070707" |
builtin:grammar/time | "six o clock" or "five thirty p m" | "0600?" or "0530p" |
Options:
Options control details about the recognition. Valid options are:
- p - Profile to use in mrcp.conf
- i - Digits to allow recognition to be interrupted with. Set this to "none" to allow MRCPRecog to process the DTMF using a DTMF grammar. Otherwise, if "any" or other digits specified, recognition will be interrupted and the digit will be returned to dialplan.
- f - Filename to play while recognition occurs (if empty or not specified, no file is played)
- t - The recognition timeout (in milliseconds). This is the total amount of time a caller has to speak.
- b - Barge-in value (no barge-in=0, ASR engine barge-in=1, Asterisk barge-in=2). MRCPRecog strongly recommends allowing the ASR to perform barge-in instead of Asterisk.
- gd – The grammar delimiter. Defaults to a comma.
- ct - The confidence threshold (0.0 - 1.0). If a recognition result has a confidence score below this value, it will be returned as "no match." Defaults to 0.5.
- sl - The barge-in sensitivity level (0.0 - 1.0). The higher this number, the easier it is to barge-in. Defaults to 0.5.
- sva - Speed vs. accuracy, set on a scale of 0.0 - 1.0. The higher this number, the faster (and less accurate) recognitions will be. Defaults to 0.5.
- nb - N-best list length. Defaults to 1; increase this value if you wish to get more answers back from the recognizer.
- nit - No input timeout. This is the amount of time the caller has to start speaking before the recognizer returns a no-input result.
- sct - Speech Complete Timeout. This is the amount of time, in milliseconds, MRCPRecog must detect silence after a user stops speaking before the recognizer begins processing the utterance. Set this lower for single word utterances and higher for longer utterances. In most cases, a value of 800 is correct.
- dit - DTMF interdigit timeout
- dtt - DTMF terminate timout
- dttc - DTMF terminate characters
- sw - Save Waveform (true/false)
- nac - new audio channel (true/false)
- spl - speech language (en-US/en-GB/etc.). If a language is declared in a grammar (it should be) this will be ignored.
- cdb - clear DTMF buffer (true/false)
- mt - media type
- iwu - input waveform URI (only applies to MRCPv2). Not supported by MRCPRecog.
- sint - Speech Incomplete Timeout. Not supported by MRCPRecog.
- rm - Recognition Mode. Not supported by MRCPRecog.
- hmaxd - hotword max duration. Not supported by MRCPRecog.
- hmind - hotword min duration. Not supported by MRCPRecog.
- enm - early no match (true/false). Not supported by MRCPRecog.
You are not required to supply any options. Multiple options can be provided by joining options with an ampersand, e.g. f=sayHelloWorld&t=5000
Exit Arrows
This box provides just one arrow out to the next step.
Remember: this software is managed by others. Check if it works properly.
Integration Server
This group provides the capabilities to connect the IVR application with a remote DB Schema, so to perform queries and operations.
Database
Description
Parameters
- Label: here you can type e a brief description
- Database: select the DB you want to connect to
- Query: here you can perform a DB query (SQL statement)
- Variable: here you can choose a variable from a pick up list where you want to store the query results. Please consider the variable is a matrix where the columns are mapped to the fields you put in the SELECT clause of your SQL statement, and the rows are the records returned by the query. The first row is addressed with the 0 index and the next ones are addressed with 1, 2, etc, etc
i.e.:
the variable name is RESULT and the query is "SELECT order_num FROM orders"
the query result will be saved into a matrix as follows:
RESULT[0][order_num]
RESULT[1][order_num]
RESULT[2][order_num]
RESULT[3][order_num]
RESULT[n][order_num]
Built-in variables
We provide the following Asterisk channels variables named
- variable name + _ROWS_COUNT:shows the number of affected rows (only for SELECT statements).
Example: RESULT_ROWS_COUNT
Exit Arrows
This box provides just one arrow out to the next step
SendMail
Description
Parameters
- Label: here you can type a brief description
- Account: select an email account you have configured under the Email channel or in the SMTP section.
- To: Recipient email address. You can put multiple email addresses separated by a comma.
- CC: Recipient in copy. You can put multiple email addresses separated by a comma.
- Subject: Subject of the email.
- Text: Body of the email. You can use channel variables to customize your text.
Exit Arrows
This box provides just one arrow out to the next step
SendSMS
Description
Parameters
- Account: select a SMS account from the list you have configured.
- To: recipient of the SMS
The recipient number must be:
- internationally formatted number, if you use Twilio, Connectel, ClickSend or Plivo
- internationally formatted number without +, if you use Skebby
- Text: body of the SMS (you can use channel variables to customize your text)
Exit Arrows
This box provides just one arrow out to the next step
DialogflowV2
Description
This box allows you to build a voice bot using the Google Dialogflow integration
*Internet connection is required for this box to work
Parameters
- Label: here you can type a brief description
- Project ID: Cloud Platform project ID
- Client Email: email address associated to Service Account Key
- Private Key: private key associated to Service Account Key
- Language: the language you want use for the bot
- Text: the text you want to send
Please note Dialogflow requires a valid Service Account Key and a sufficient amount of acquired credits.
Furthermore it is pure experimental and it can bring to unexpected behaviour.
The DialogflowV2 block saves the results in the following variables:
- DIALOGFLOW_ACTION: Matched Dialogflow intent action name
- DIALOGFLOW_ALLREQUIREDPARAMSPRESENT: True if all required parameter values have been collected (true-false)
- DIALOGFLOW_ENDCONVERSATION: True when 'end conversation' flag is set for the matched dialogflow intent. It is useful when you want to transfer a call to an agent (true/false)
- DIALOGFLOW_FULLFILLMENTTEXT: The text to be pronounced to the user or shown on the screen
- DIALOGFLOW_INTENTNAME: The unique identifier of the intent
- DIALOGFLOW_INTENTDISPLAYNAME: The display name of the intent
- DIALOGFLOW_ISFALLBACKINTENT: True when matched dialogflow intent is fallback intent (true-false)
- DIALOGFLOW_LANGUAGECODE: The language that was triggered during intent detection
- DIALOGFLOW_QUERYTEXT: User input
- DIALOGFLOW_RESPONSEID: The unique identifier of the response
- DIALOGFLOW_SCORE: Matching score for the intent (0-1)
- DIALOGFLOW_SPEECH: Text to be pronounced to the user
- DIALOGFLOW_RESOLVEDQUERY: The query that was used to produce the result.
Exit Arrows
This box provides just one arrow out to the next step
Remember: this software is managed by others. Check if it works properly.
click here to learn more about voicebot triggers useful to enable conversation transcript view
Amazon Lex
Description
This box allows you to build a voice bot using the Amazon Lex integration.
For additional information see https://docs.aws.amazon.com/en_us/lex/latest/dg/getting-started.html
*Internet connection is required for this box to work
Parameters
- Label: here you can type a brief description
- Access Key ID and Secret Access Key: AWS security credentials. Required: Yes
(see http://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html) - Region: AWS regional endpoint. Required: Yes (see http://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region)
- Bot name: the bot name. Required: Yes
- Text: the text you want to send. Required: Yes
The Amazon Lex block saves the results in the following variables:
AWS_LEX_INTENTNAME: The current user intent that Amazon Lex is aware of. (Read more)
AWS_LEX_MESSAGE: The message to convey to the user.
AWS_LEX_MESSAGEFORMAT: The format of the response message. (Read more)
AWS_LEX_DIALOGSTATE: Identifies the current state of the user interaction. (Read more)
AWS_LEX_SLOTTOELICIT: If the AWS_LEX_DIALOGSTATE value is ElicitSlot, returns the name of the slot for which Amazon Lex is eliciting a value.
AWS_LEX_SLOT_*: The intent slots that Amazon Lex detected from the user input in the conversation. (ex. AWS_LEX_SLOT_PICKUPCITY)
Exit Arrows
This box provides just one arrow out to the next step
Remember: this software is managed by others. Check if it works properly.
click here to learn more about voicebot triggers useful to enable conversation transcript view
SestekNDA
Description
This box allows you to build a voice bot using the Sestek NDA* Integration.
*Internet connection is required for this box to work
Parameters
- Label: here you can type a brief description
- NDAUth URL: NDA Authentication URL (provided by Sestek NDA)
- Username: Authentication name (provided by Sestek NDA)
- Password: Authentication password (provided by Sestek NDA)
- NDASSISTANT URL: NDA Assistent URL (provided by Sestek NDA)
- Text: the text you want to send (required)
The SestekNDA block saves the results in the following variables:
SESTEK_NDA_SPEECH: Text to be pronounced to the user.
SESTEK_NDA_ACTION
SESTEK_NDA_ACTIONDATA
Exit Arrows
This box provides just one arrow out to the next step
Remember: this software is managed by others. Check if it works properly.
RestAPI
Description
This box allows you to use Restful API to GET, POST, PUT, DELETE data from external applications or sources (for example: ticketing systems, CRM, order systems, and so on). The result of the API request (Body) can also be stored in a Variable.
*Internet connection is required for this box to work
Parameters
- Label: here you can type a brief description
- URL: request URL
- Method: HTTP method (GET, POST, PUT or DELETE)
- Timeout: request timeout (in seconds: it must be greater than 1 and the default value is 5)
- Computed Variables Script Path: absolute path of a NodeJS script able to compute variables to pass in the URL, Headers and Bod
- Headers: request headers (it must be in RAW JSON format, i.e. {"key": "value"})
- Body: request body (it must be in RAW JSON format, i.e. {"key": "value"})
- Variable: here you can choose a variable from a pick up list where you want to store the body of the response. The system will parse the body of the response and it will create a variable for each key-value pair using the format variable name + <key> (e.g. variablename.key)
Custom script guidelines
You can valorize custom variables to use in you request using a nodejs script located on your server.
You can insert the absolute path to the script inside the Computed Variables Script Path input.
Remember to follow these important rules:
- insert the absolute path to the file
- write the path without quotes
- the motion user must have both read and write and execution privileges on the js file (or it won't work at all once it is required).
- The js script must be written in javascript ECMA5, and follow the NodeJs 6.x framework syntax based on this template:
module.exports = function({options_object}, callback){
// custom code
var variables = { code output as object }; // it must be an object, not an array
callback(null, variables);
}
The script also receives the options you inserted in the restAPI block, including URL and method, so you can use them in the script if needed.
e.g.
const { URL } = require('url');
module.exports = function(options, callback){
var request = options;
var method = request.method;
var uri = request.uri;
const myURL = new URL(uri);
var host = myURL.host;
var hostname = myURL.hostname;
var href = myURL.href;
var pathname = myURL.pathname;
// etc...
// additional custom code
var variables = { code output as object };
callback(null, variables);
}
Variables and custom (script) variables
To include asterisk variables in your URL, you must include them in curly brackets.
e.g.
https://myurl.com?phone={CALLERID(num)}
The same apply if you want to include them in the body of your request, or in your headers ( pay attention to the quotes "").
e.g.
{
"phone":"{CALLERID(num)}"
}
To include custom (script) variables, you must include them in double dollar $$ symbols.
e.g.
Your script returns an object like this:
{
key1: "value1",
key2: "value2"
}
To use them in your URL you can write:
https://myurl.com?myvar1=$$key1$$&myvar2=$$key2$$
and it will be completed like this:
https://myurl.com?myvar1=value1&myvar2=value2
The same apply if you want to include them in the body of your request, or in your headers ( pay attention to the quotes "").
So, if your body/header object is written like this:
{
"myvar1":"$$key1$$",
"myvar2":"$$key2$$"
}
it will be completed like this:
{
"myvar1":"value1",
"myvar2":"value2"
}
NOTE: All special chars in the returned strings from the script are escaped ( e.g. the slash / character is translated to ', so if you want to avoid that you need to in clude an & symbol before the variable name:
e.g.
{
"myvar1":"$$&key1$$",
"myvar2":"$$&key2$$"
}
Built-in variables
We provide the following Asterisk channels variables named
- variable name + _STATUS_CODE: shows the HTTP request status code
- variable name + _STATUS_MESSAGE: shows the HTTP request status message
Example: RESULT_STATUS_CODE
Exit Arrows
This box provides just one arrow out to the next step
Call Flow
In this group you find the boxes useful to design the call flow according to:
- The interaction between the customer and the application
- The query results
- The arithmetic calculation results
- Other
Goto
Description
This box lets you divert the call to another object like
- Another IVR application
- A queue rule
- A fixed extension
- Generally speaking a specific Asterisk context
Parameters
- Label: a brief description of the box
- Context: here you can put a context name (check asterisk documentation for the “Context” definition).
If you use Cally Square combined with XCALLY this should be:
- A rule name
- An agent
- A DID
- Extension: in many cases it may be “s”, however you can place the extensions according to your dialplan needs
- Priority: priority of the application in the dialplan
Exit Arrows
This box provides just one arrow out to the next step
The goto block will interrupt the IVR execution and route the call toward another extension, but before that it will execute any finally block with all its other following blocks, if there is any.
Gotoif
Description
Parameters
- Label: brief description
- Condition: it is the comparison condition. It could be:
- =
- <
- >
- !=
- <=
- >=
- || for “OR” and “&&” for “AND”
- == equal to
- === equal value and equal type
- != not equal
- !== not equal value or not equal type
A Condition example:
'{CHANNEL(language)}' == 'en' || '{CHANNEL(language)}' == 'fr'
The above condition is TRUE when the channel language is English or French
JS Operators
For more information, please refer to:
Exit Arrows
For this box you must create two exit arrows using the following values:
- true: routes to the path in the IVR tree for the condition verified as true
- false: routes to the path in the IVR tree for the condition verified as false
GotoifTime
Description
This box lets you take decisions based on the time intervals**
Parameters
- Label: a brief description of the box
- Time interval: select the time interval pre-defined in the time intervals sections**
Exit Arrows
For this box you must create two exit arrows using the following values:
- true: routes to the path in the IVR tree for the time interval condition verified as true
- false: routes to the path in the IVR tree for the time interval condition verified as false
Switch
Description
This block is very similar to the menu block, unlike the fact that the pat the call will take depends on a variable. Indeed you can set a variable to be read and choose a branch depending on its value.
Parameters
- Label: brief description
- Variable: here you can choose a variable from a pick up list
Exit Arrows
It is possibile to add multiple choices for each output branch: just use the comma separated characters.
Stats
Goal
Description
Thanks to this box you can set a goal into the IVR structure and have a trace if the user has reached this goal, on the database. This can be useful for the IVR Statistics, that you can extract in the XCALLY Analytics section.
Parameters
Label: brief description
Goal Name: the name of the goal
Exit Arrows
This box provides just one arrow out to the next step
General
NoOp
Description
The box lets you put a label message in your application. You will find the label in the CLI log on the asterisk console (asterisk –r on your Linux machine). The purpose of the NoOp box is to help your application debug
Parameters
- Label: here you can type e a short description
- Output: here you can write the label you want to display on the asterisk CLI logs
Exit Arrows
This box provides just one arrow out to the next step
System
Description
Calls an external command or script
Parameters
- Label: brief description
- Command: here you can type the command you want the Linux system to execute (please consider you need to specify the full script path)
- Variable: variable used to return a parameter value
Exit Arrows
This box provides just one arrow out to the next step
AGI
Description
The Asterisk Gateway Interface is an interface you can use to add functionality to Asterisk using many different programming languages: Perl, PHP, C, Pascal, Bourne Shell etc...
This box lets you to perform an AGI command
Parameters
- Label: brief description
- Command: here you can type the command you want the system to execute
- Arguments: the arguments needed according to the AGI command syntax
Exit Arrows
This box provides just one arrow out to the next step
SubProject
Description
This box calls another Cally Square project inside the current one. It’s useful to mange complex projects, so you can make separate simpler projects and recalling them inside a main one.
Parameters
- Label: here you can type a brief box description
- Subproject: name of the Cally Square project you want to recall inside the current one
Exit Arrows
This box has one exit arrow
Custom App
Description
This box allows to run Asterisk applications (see here for further information) in your IVR flow.
Parameters
- Label: here you can type a brief box description
- Application: application name
- Options: see the arguments related to each application
Exit Arrows
This box has only one exit arrow.
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article