ON THIS PAGE
Table of Contents |
---|
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
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.
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
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 thecontact at the scheduled time.Warning |
---|
ImportantA callback scenario is something in which your customers waiting in queue can optionally be diverted to a callback capability. Such capability invites the customer to leave the queue, thus the call center will call him/her back in a lighter traffic period. This feature is mostly used with a queue campaign and it works only if you have the Motion Dialer license |
Info |
---|
Let's consider that Queue campaign time interval is from 8:00-18:00 and Callback Delay is 30 min. If a customer calls in at 17:40 and decided to be called back, the contact will be scheduled for 18:10. Keep in mind that this is out of the campaign time interval hence Motion Bull will call the contact in the next valid time interval and when there is at least one available agents. |
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.
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
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
Warning |
---|
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.
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.
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.
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.
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
Info |
---|
** Example of Filename: recording-{EPOCH}-{CALLERID(num)} (You will get something like recording-1393061376-243534507 where 1393061376 is the timestamp and 243534507 is the caller number) The recordings will be available for listening inside the Recordings section. |
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*
Info |
---|
*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*.
Info |
---|
*Internet connection is required for this box to work |
Info |
---|
WarningWe do not recommend using this block in production but only for testing. We recommend using GoogleCloudTTS instead of GoogleTTS. |
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
Info |
---|
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. |
ISpeechTTS
Description
This box lets you perform a Text-To-Speech conversion using the Ispeech TTS Agi* Parameters
Info |
---|
*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.
Info |
---|
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/
Info |
---|
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*
Info |
---|
*In order to make this box work you must install Lumenvox 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
Info |
---|
Remember: this software is managed by others. Check if it works properly. |
SestekTTS
available from rel. 2.0.84
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
Info |
---|
Remember: this software is managed by others. Check if it works properly. |
MRCPSynth
available from rel. 2.5.2
Description
This box lets you perform a Text-To-Speech conversion using the MRCPsynth TTS*
Info |
---|
*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
Info |
---|
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.
Info |
---|
*Internet connection is required for this box to work |
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
Timeout: maximum recording duration in seconds. If -1 the considered timeout is unlimited
Interrupt Key: special digits to exit the current recorded call
Beep: to reproduce a beep before to record
Record Speech: select if you want to save the voice recording used by Google ASR to turn it into text on XCALLY. Recordings will be saved in Recordings.
Number of seconds of silence: the number of seconds of silence that are permitted before to pass through the next block, regardless of the interrupt key or timeout
Info |
---|
Please note Google ASR require a valid key from the console.developers.google.com website and a sufficient amount of acquired credits. Furthermore it is pure experimental and it can bring to unexpected behaviour. |
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
Info |
---|
Remember: this software is managed by others. Check if it works properly. |
ISpeechASR
Description
This box allows you to do a voice-to-text conversion using the Ispeech ASR Agi* Parameters
Info |
---|
*Internet connection is required for this box to work |
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
Info |
---|
Please note Ispeech ASR require a valid key from the ispeech.org website and a sufficient amount of acquired credits. Furthermore it is pure experimental and it can bring to unexpected behaviour. Each dictation processing requires 1 credit. |
Exit Arrows
This box provides just one arrow out to the next step
Info |
---|
Remember: this software is managed by others. Check if it works properly. |
LumenvoxASR
Description
This box allows you to do a voice-to-text conversion using the Lumenvox ASR application*
Info |
---|
*In order to have this box working you must install Lumenvox on a machine that is reachable by your system. |
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.
Info |
---|
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
Info |
---|
*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_STATUS | TILDE_ASR_STATUS_MESSAGE |
---|---|
0 | 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. |
Info |
---|
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.
Info |
---|
Remember: this software is managed by others. Check if it works properly. |
SestekASR
available from rel. 2.0.84
Description
This box allows you to do a voice-to-text conversion using the Sestek ASR*
Info |
---|
*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.
Info |
---|
Remember: this software is managed by others. Check if it works properly. |
MRCPRecog
available from rel. 2.5.2
Description
This box allows you to do a voice-to-text conversion using the MRCPRecog application*
Info |
---|
*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.
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.
Info |
---|
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
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
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
Info |
---|
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
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
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
This box lets you send a text message (SMS) to one recipient
Parameters
Account: select a SMS account from the list you have configured.
Info |
---|
The recipient number must be:
|
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
Dialogflow
Status | ||||
---|---|---|---|---|
|
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!)
Info |
---|
*Internet connection is required for this box to work |
Parameters
Label: here you can type a brief description
Key: your acquired client api key from the console.dialogflow.com account
Text: the text you want to send
Language: the language you want use for the bot
Info |
---|
Please note Dialogflow require a valid key from the console.dialogflow.com website and a sufficient amount of acquired credits. Furthermore it is pure experimental and it can bring to unexpected behaviour. |
The Dialogflow block saves the results in the following variables:
DIALOGFLOW_SOURCE: Request source name.
DIALOGFLOW_RESOLVEDQUERY: The query that was used to produce the result.
DIALOGFLOW_ACTION: Matched Dialogflow intent action name.
DIALOGFLOW_SPEECH: Text to be pronounced to the user.
DIALOGFLOW_SCORE: Matching score for the intent (0-1).
DIALOGFLOW_STATUSCODE: Response status code. For more information, please see here https://dialogflow.com/docs/fulfillment#errors
DIALOGFLOW_ENDCONVERSATION: True when 'end conversation' flag is set for the matched dialogflow intent. Useful when you want to transfer a call to an agent (true/false).
DIALOGFLOW_ISFALLBACKINTENT: True when matched dialogflow intent is fallback intent (true-false).
Info |
---|
Release notesDIALOGFLOW_ENDCONVERSATION and DIALOGFLOW_ISFALLBACKINTENT variables are available from version 2.0.77 |
Exit Arrows
This box provides just one arrow out to the next step
Info |
---|
Remember: this software is managed by others. Check if it works properly. |
Info |
---|
click here to learn more about voicebot triggers useful to enable conversation transcript view |
DialogflowV2
available from rel. 2.5.7
Description
This box allows you to build a voice bot using the Google Dialogflow integration
Info |
---|
*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
Info |
---|
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:
DIALOGFLOWV2_ACTION: Matched Dialogflow intent action name
DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT: True if all required parameter values have been collected (true-false)
DIALOGFLOWV2_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)
DIALOGFLOWV2_FULLFILLMENTTEXT: The text to be pronounced to the user or shown on the screen
DIALOGFLOWV2_INTENTNAME: The unique identifier of the intent
DIALOGFLOWV2_INTENTDISPLAYNAME: The display name of the intent
DIALOGFLOWV2_ISFALLBACKINTENT: True when matched dialogflow intent is fallback intent (true-false)
DIALOGFLOWV2_LANGUAGECODE: The language that was triggered during intent detection
DIALOGFLOWV2_QUERYTEXT: User input
DIALOGFLOWV2_RESPONSEID: The unique identifier of the response
DIALOGFLOWV2_SCORE: Matching score for the intent (0-1)
DIALOGFLOWV2_SPEECH: Text to be pronounced to the user
DIALOGFLOWV2_RESOLVEDQUERY: The query that was used to produce the result.
Exit Arrows
This box provides just one arrow out to the next step
Info |
---|
Remember: this software is managed by others. Check if it works properly. |
Info |
---|
click here to learn more about voicebot triggers useful to enable conversation transcript view |
Amazon Lex
available 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
Info |
---|
*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
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
Info |
---|
Remember: this software is managed by others. Check if it works properly. |
Info |
---|
click here to learn more about voicebot triggers useful to enable conversation transcript view |
SestekNDA
available from rel. 2.0.84
Description
This box allows you to build a voice bot using the Sestek NDA* Integration.
Info |
---|
*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
Info |
---|
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.
Info |
---|
*Internet connection is required for this box to work |
Info |
---|
About REST APIA RESTful API (REST is an acronym for Representational State Transfer) is an application program interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data: the client requests the server for the required information, via an API, and then, the server sends a response to the client. |
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, variablename.index.key or variablename.key[0].subkey if key is an array, and so on)
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
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
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
Exit Arrows
This box provides just one arrow out to the next step
Info |
---|
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
Performs a conditional jump according to a comparison result
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
Info |
---|
JS OperatorsFor 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
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
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
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)
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
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
Exit Arrows
This box has only one exit arrow.On this page |
|
📋 What’s About
This section explains which are the blocks available in Cally Square to design 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 applications 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.
➡️ Click here to get more information
📞 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.
➡️ Click here to get more information
👤 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 to manage the queue status of the Agents who use external phones (softphones, hard phones or mobile phones) instead of (or blended with) the traditional Phonebar or the WebRTC bar Agents.
➡️ Click here to get more information
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. |
➡️ Click here to get more information
🎵 Play and Menu nodes
This group manages the audio playing.
➡️ Click here to get more information
🎙️ Recording
The following section explains how to perform live recordings of calls.
➡️ Click here to get more information
📣 TTS - Text to Speech
In this section you find the blocks which can be used for text to speech conversion.
➡️ Click here to get more information
🧠 ASR - Automatic speech recognition
In this section, you can find the blocks used for voice-to-text functions.
➡️ Click here to get more information
🤖 Bots
In this section, you can find the blocks used to configure a bot in your flow.
➡️ Click here to get more information
Integration Server
This group provides the capabilities to connect the IVR application with a remote DB Schema, so to perform queries and operations.
➡️ Click here to get more information
🌀 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
➡️ Click here to get more information
📊 Stats
This box allows to 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.
➡️ Click here to get more information
📘 General
In this group, you find the boxes useful with general applications.
➡️ Click here to get more information
Related topics
Filter by label (Content by label) | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|