IVR is a new feature introduced in the Helios LTS.
This is an enterprise version feature that is not included in XiVO and is not freely available. To enable it, please contact XiVO team.
It allows to create part of dialplan in a graphical editor.
Installation is described below:
For feature description and users guide see below:
- Create a edit part of dialplan (IVR) in graphical editor.
- Create caller hangup handler and error handler IVR dialplan branch
- Use created IVRs as an incall or a schedule destination
- Send call to queue or other defined dialplan object after IVR
- Upload and manage IVR specific audio files (voice prompts)
In menu Services->IPBX in Call management section use option IVR. The page shows list of existing IVRs. Buttons in every IVR line allows you to edit IVR dialplan metadata, edit dialplan and delete dialplan.
Graphical dialplan editor¶
Dialplan flowchart consists of nodes representing dialplan actions and connections between nodes. Every node type has one entry point (large circle on top of the node rectangle) and this entry point accepts many connection lines. Exceptions are nodes Start, OnHangup and OnError which have no entrypoint. Depending on node type, nodes have zero to many exit points (small circles at bottom of node rectangle). Exit point of node is selected at runtime by result of node action.
In editor you can
- Add node to editor pane by clicking on node type in left menu.
- Delete node by clicking red cross on node
- Set node parameters by clicking pencil on top left node corner anf filling form
- Interconnect nodes by dragging exit point of one node to entry point of another or same node
- Delete connection line by clicking on rectangle with minus sign on the line
IVR dialplan runtime¶
IVR dialplan always starts on Start node. This node can be only one in flowchart and cannot be deleted. If caller hangs up in IVR dialplan, call is moved to OnHangup node, if one exists in flowchart. Only one OnHangup node can exists in flowchart. If runtime error happens (nonexistent voice prompt file, wrong expression parameter) call is sent to the OnError node if one exists. Only one OnError node can exist in flowchart.
Variables in IVR dialplan are NOT the same thing as asterisk dialplan variables. Variables can be set at runtime using assign node or as result of node action. Variable name must start with ‘$’ (dollar sign).
Expressions in node parameters¶
Node parameters can be constants or expressions. For example node type ‘wait’ has parameter ‘seconds’ which defines time to wait. This parameter can contain
= 2 + 2 expression
= 10 + $var expression with variable
String expression can contain string constants in apostrophes or quotes, variables and concatenation operator ‘.’. Numeric expressions can contain integer numbers, variables and operators ‘+’, ‘-‘, ‘*’, ‘/’, Logical expressions can contain comparision operators ‘==’, ‘!=’, ‘<’, ‘<=’, ‘>’, ‘<’, ‘>=’ and logical operators ‘!’, ‘&&’, ‘||’.
Expressions in node parameters are evaluated at runtime when node action starts.
Some input fields are listboxes by nature, e.g. voice prompt file is selected from existing files. In such case listbox can be swithced to text input field by clicking to icon next the field label, to allow insert expresion.
E.g. if you have voice prompt files
you can set variable $lang in dialplan and then expression:
= "message-" . $lang
allows you to use right language variant of message.
Starting node of IVR dialplan. It is created automatically and cannot be deleted. Only one node of type start can exist in flowchart.
Parameters Node has no parameters
Exit points * next
This node starts flowchart part which is used after caller hangup, The node has no entry point therefore. Only one node of type onhangup can be present in flowchart.
Node has no parameters
This node starts flowchart part which is used after runtime error. The node has no entry point therefore. Only one node of type onerror can be present in flowchart.
Node has no parameters
Assigns value to variable
- Variable: variable name
- Value: value to assign
Runs CELGenUserEvent dialplan application
- Name: event name
- Message: Extra text to be included with the event
Evaluates condition and continues in flowchart according the result
- Condition: condition to evaluate
- 1: used when condition is evaluated as true
- 0: used when condition is evaluated as false
Hangups the call and exits flowchart AGI script
Node has no parameters
Node has no exits
Sends HTTP(S) request For GET request variables are used in URL query string For POST request variables are sent as application/x-www-form-urlencoded data Variable names in request are used without starting dollar sign.
- URL: URL of the request
- Method: Request method
- Variables: space separated list of variables used in request
Exit points flowchart AGI script and send dialplan to selected queue
- Name: queue name
node has no exit point, controll is passed to asterisk dialplan
Reads sequens of DTMF digits terminated by ‘#’
- Voice prompt file: File played at node start
- Invalid voice prompt: File played when invalid input has been sent
- Repeat: Max. number of attempts
- Min digits: Minimal number of digits in input
- Max digits: Maximal number of digits in input
- Numeric: If checked numeric value is expected
- Min value: Minimal value of numeric input
- Max value: Maximal value of numeric input
- Beep: Beep before input
- Variable: Store input in this variable
Says number using Saynumber asterisk dialplan application
- Number: Number to be said