IVR Editor

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)

Users’ Guide

IVR management

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                     constant

= 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

  • message-en

  • message-fr

  • message-de

you can set variable $lang in dialplan and then expression:

= "message-" . $lang

allows you to use right language variant of message.

Node types


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

Exit points

  • next


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

Exit points

  • next


Assigns value to variable


  • Variable: variable name

  • Value: value to assign

Exit points

  • next


Runs CELGenUserEvent dialplan application


  • Name: event name

  • Message: Extra text to be included with the event

Exit points

  • next


Evaluates condition and continues in flowchart according the result


  • Condition: condition to evaluate

Exit points

  • 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

Exit points

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

  • next


Play selected file


  • Voice prompt file: file to play

Exit points

  • next


Exit points flowchart AGI script and send dialplan to selected queue


  • Name: queue name

Exit points

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

Exit points

  • next


Says number using Saynumber asterisk dialplan application


  • Number: Number to be said

Exit points

  • next


Wait for defined number of seconds. Wait asterisk dialplan application is used.


  • Seconds: Number of seconds to wait

Exit points

  • next