Cally Square IVR Blocks
This section explains which are the blocks available in Cally Square.
Todesign your IVR flow drag and drop blocks (ready-to-use applications) in the design area and connect them in a flow:
The blocks are collected in Groups of Applications: in the following sections you can find all available application for each group.
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
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
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
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.
Info |
---|
For additional information please refer to the Asterisk Applications Guide |
Answer | Description This box picks up the call and opens also the voice channel Parameters
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
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
| ||||
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
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
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 thecontact at the scheduled time.
Parameters
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.
Exit Arrows For this box you must create two exit arrows using the following values:
|
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.
Exit Arrows For this box you must create two exit arrows using the following values:
|
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.
Exit Arrows For this box you must create two exit arrows using the following values:
|
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.
Exit Arrows For this box you must create two exit arrows using the following values:
|
Variable nodes and math
This group of boxes handles the variables and math operations.
Info |
---|
ImportantThe mathematical operation must follow the javascript rules: Operators and String Methods. |
Set | Description The box lets you set the value of a variable (previously defined in the IVR dashboard) Parameters
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
i.e. ({RECORD}*2)-4*7/(5*3)+62 i.e. array handler: '{INPUT_DATA}.split(";")'
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
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
** 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.
Exit Arrows The menu box lets you draw many exit arrows according to the following syntax:
It is possible to add multiple choices for each output branch: use just the comma separated characters. | ||
Say Digits | Description Here you can play the digits, one by one, in the chosen language (defaults to English)
Parameters
Exit Arrows | ||
Say Number | Description Here you can play a number (i.e. 2583 will be played like "two thousand, five hundred and eighty threes") Parameters
Exit Arrows | ||
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
Exit Arrows | ||
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
Exit Arrows
| ||
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
Exit Arrows The getsecretdigits box lets you draw many exit arrows according to the following syntax:
| ||
Send DTMF | Description Parameters
Exit arrows This box has got one exit arrow |
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
Built-in variables We provide the following Asterisk channel variables named
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*
Parameters
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*.
Parameters
Exit Arrows This box provides just one arrow out to the next step
| ||||||
ISpeechTTS | Description This box lets you perform a Text-To-Speech conversion using the Ispeech TTS Agi* Parameters
Parameters
Exit Arrows This box provides just one arrow out to the next step.
| ||||||
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/
Parameters
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*
Parameters
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
| ||||||
SestekTTSavailable from rel. 2.0.84 | Description This box lets you perform a Text-To-Speech conversion using the Sestek TTS. Parameters
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
| ||||||
MRCPSynthavailable from rel. 2.5.2 | Description This box lets you perform a Text-To-Speech conversion using the MRCPsynth TTS*
Parameters
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
|
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. Explore this documentation to find out How to retrieve Google Key for TTS and ASRCally Square blocks
Parameters
The ASR saves the results in two channel variables:
Exit Arrows This box provides just one arrow out to the next step
| ||||||||||||||||||||||||||||
AWS ASR | Description This box allows you to do a voice-to-text conversion using the Amazon AWS Transcribe SDKs* Parameters.
Parameters
The ASR saves the results in two channel variables:
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
Parameters
Exit Arrows This box provides just one arrow out to the next step
| ||||||||||||||||||||||||||||
LumenvoxASR | Description This box allows you to do a voice-to-text conversion using the Lumenvox ASR application*
The ASR save the results in three channel variables:
Parameters
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):
Options: Options control details about the recognition. Valid options are:
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.
| ||||||||||||||||||||||||||||
TildeASR | Description This box allows you to do a voice-to-text conversion using the Tilde ASR Agi* Parameters
The ASR saves the results in two channel variables:
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
Exit Arrows This box provides just one arrow out to the next step.
| ||||||||||||||||||||||||||||
SestekASRavailable from rel. 2.0.84 | Description This box allows you to do a voice-to-text conversion using the Sestek ASR*
The ASR save the results in three channel variables:
Parameters
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.
| ||||||||||||||||||||||||||||
MRCPRecogavailable from rel. 2.5.2 | Description This box allows you to do a voice-to-text conversion using the MRCPRecog application*
The ASR save the results in three channel variables:
Parameters
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:
Options: Options control details about the recognition. Valid options are:
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.
| ||||||||||||||||||||||||||||
OpenAI Whisper | Description OpenAI Whisper allows you to do automatic speech recognition and transcription using OpenAI → https://openai.com/research/whisper
With OpenAI whisper, it is possible to use the automatic language detection for transcription Parameters
The ASR saves the results in the channel variable: OPENAI_WHISPER_TRANSCRIPT Moreover, the Asterisk variable OPENAI_WHISPER_TRANSCRIPT_LANGUAGE designs the call flow by using the language detected |
Bots
Dialogflow
| Description This box allows you to build a voice bot using the Google Dialogflow integration (click clip1 and clip2 and learn more about this topic!)
Parameters
The Dialogflow block saves the results in the following variables:
Exit Arrows This box provides just one arrow out to the next step
| ||||||||||||||||
DialogflowV2available from rel. 2.5.7 | Description This box allows you to build a voice bot using the Google Dialogflow integration Explore this documentation to find out How to retrieve Google Key for TTS and ASRCally Square blocks
Parameters
The DialogflowV2 block saves the results in the following variables:
Exit Arrows This box provides just one arrow out to the next step
| ||||||||||||||||
Amazon Lexavailable from rel. 2.0.77 | 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
Parameters
The Amazon Lex block saves the results in the following variables:
Exit Arrows This box provides just one arrow out to the next step
|
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 This box lets you perform a query to a DB schema. You must define a DB connection according to the instructions (please refer to the V3 ODBC section) Parameters
Built-in variables We provide the following Asterisk channels variables named
Example: RESULT_ROWS_COUNT Exit Arrows This box provides just one arrow out to the next step | ||||
SendMail | Description This box lets you send an email to a specified email address(es). Before using this block, please configure the email accounts under the Email channel or the SMTP section. Parameters
Exit Arrows This box provides just one arrow out to the next step
| ||||
SendSMS | Description This box lets you send a text message (SMS) to one recipient Parameters
Exit Arrows This box provides just one arrow out to the next step | ||||
SestekNDAavailable from rel. 2.0.84 | Description This box allows you to build a voice bot using the Sestek NDA* Integration.
Parameters
The SestekNDA block saves the results in the following variables:
Exit Arrows This box provides just one arrow out to the next step
| ||||
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.
Parameters
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:
module.exports = function({options_object}){ // custom code const variables = { code output as object }; // it must be an object, not an array return 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){ const request = options; const method = request.method; const uri = request.uri; const myURL = new URL(uri); const host = myURL.host; const hostname = myURL.hostname; const href = myURL.href; const pathname = myURL.pathname; // etc... // additional custom code const variables = { code output as object }; return 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
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
Parameters
If you use Cally Square combined with XCALLY this should be:
Exit Arrows This box provides just one arrow out to the next step
| ||
Gotoif | Description Performs a conditional jump according to a comparison result Parameters
A Condition example: '{CHANNEL(language)}' == 'en' || '{CHANNEL(language)}' == 'fr' The above condition is TRUE when the channel language is English or French
Exit Arrows For this box you must create two exit arrows using the following values:
| ||
GotoifTime | Description This box lets you take decisions based on the time intervals** Parameters
Exit Arrows For this box you must create two exit arrows using the following values:
| ||
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
Exit Arrows The block lets you draw many exit arrows depending on how many values the variable can assume. -: In addition there is a branch in case none of the branches values match the value of the variable |
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
Exit Arrows This box provides just one arrow out to the next step |
System | Description Calls an external command or script Parameters
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
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
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
Exit Arrows This box has only one exit arrow. |