Interactive voice response

From Wildix

Jump to: navigation, search

Interactive Voice Response (IVR) is the technology that let you interact with a menu uses a touch-tone telephone.
In telephony, IVR (which is short for Interactive Voice Response) is a computerized phone system and supporting software that allows a person, typically a telephone caller, to select an option from a voice menu and otherwise interface with a computer system. Generally the system plays pre-recorded voice prompts to which the person presses a number on a telephone keypad to select the option numbers in answer to the voice prompts. The caller can likewise select options by spoken command.


Contents

IVR Editor

User can simply create IVR using IVR editor provided by WMS.

WMS Ivr Editor menu
Enlarge
WMS Ivr Editor menu

WMS Interface provide some non standard IVR implementation. Each IVR tree contatins two types of nodes: items and menus. Ivr Menu - special node, that can contain subnodes (items or menus), and have some advanced parameters:

  • Sound file - announce file, that will be played to user when user enters this menu.
  • Times - this parameter describe how many times must be played announce if user don't make a choise and not enter to any submenu. Can be infinity (leave empty or set -1);
  • Timeout - describes a timeout (in seconds) for replaying announce. Actually describe how many time PBX must wait before replaying announce. Can be infinity (leave empty or set -1);
  • backcode - Special key for returning to parent menu. If not set will be used default key '#' (pound)
  • contex, extension, priority - optionally pbx can execute GoTo to described context|extension|priority when times counter exceed it's value.
Editing IVR Menu
Enlarge
Editing IVR Menu

Ivr Item - some another IVR tree node. This nodes describe a command, that should be executed, when user press a digit assigned to this item in parent menu. Currently WMS support follow commands:

  • Playback - Just playback a selected file. Optionally after playback PBX can execute GoTo to selected contex|extension|priority.
    Editing IVR item - action 'Playback'
    Enlarge
    Editing IVR item - action 'Playback'
  • Macro - Execute a described macro with described parameters. Optionally if macro execution fails (MACRO_OFFSET channel variable set, called application MacroExit(-1), etc) - PBX can execute goto to described context|extension|priority
Editing IVR item - action 'Macro'
Enlarge
Editing IVR item - action 'Macro'
  • Goto - Just simple make a goto to described context|extension|priority
  • Authenticate - execute Authenticate application. Optionally can execute a GoTo to described context|extension|priority when authentication fails or success depends on 'Goto on success' checkbox.
Editing IVR item - action 'Authenticate'
Enlarge
Editing IVR item - action 'Authenticate'
  • Queue - Will join user to described queue.

Each IVR menu also can contains 'special items':

  • Startup item - Item that will be executed when user enter menu. Startup item will be executed only once in current menu, but if user leave this menu (press a 'backcode' digit) and try to enter this menu again - startup item will be executed again. Very useful to create ivr menus with authorization access.
  • Invalid choice - Special item that will be executed when user press a digit that not a backcode and not match to numbers of children nodes.
  • Exit item - This item will be executed when user leave menu (press a 'backcode' digit).

Application IVR

Application IVR provides IVR behavior, described before, and allow to user start proceeding of IVR trees from asterisk dialplan.

 Usage: exten => [pattern], [prio], Ivr(treename)
 treename - Symbolic name of tree for proceed.

Application IVR provided in asterisk module app_ivr.so. Note, that module res_wmsfeatures.so must be loaded before loading module app_ivr.so.

Asterisk CLI commands set

ivr show [tree]

ivr show - show available IVR trees. ivr show tree [treename] - dump to console specified IVR tree

w90*CLI> ivr show
Tree #93         number: Main
Tree #94         number: WildixMainIvr
w90*CLI> ivr show tree
Main           WildixMainIvr
w90*CLI> ivr show tree WildixMainIvr
                -= WildixMainIvr =-
====================================================
  Menu: WildixMainIvr ( 0 -> 94 )
        [backcode:  0 times: 1
        [timeout:   0
        [sound:     welcome
        [c|e|p:     wil-ivr|4|1
        [childrens: 5
        #include => 1
        #include => 2
        #include => 3
        #include => 4
        #include => 9
.
        Item: 1 ( 94 -> 95 )
                [cmd => 0: GoTo(wil-ivr|1|1)
                [c|e|p => wil-ivr|1|1
        Item: 2 ( 94 -> 96 )
                [cmd => 0: GoTo(wil-ivr|2|1)
                [c|e|p => wil-ivr|2|1
        Item: 3 ( 94 -> 97 )
                [cmd => 0: GoTo(wil-ivr|3|1)
                [c|e|p => wil-ivr|3|1
        Item: 4 ( 94 -> 98 )
                [cmd => 0: GoTo(wil-ivr|4|1)
                [c|e|p => wil-ivr|4|1
        Menu: 9 ( 94 -> 99 )
                [backcode:  0 times: 1
                [timeout:   20
                [sound:     agent-loginok
                [c|e|p:     (null)|h|1
                [childrens: 2
                #include => s
                #include => i
.
                Item: s ( 99 -> 100 )
                        [cmd => 1: Authenticate(1234|)
                        [c|e|p =>  ||
                Item: i ( 99 -> 101 )
                        [cmd => 2: Playback(invalid)
                        [c|e|p =>  ||
.
====================================================

ivr destroy [tree]

ivr destroy - destroy all loaded IVR trees ivr destroy tree [treename] - destroy only specified tree

ivr reload [tree]

ivr reload - reload all available ivr trees; ivr reload tree [treename] - reload only specified ivr tree

Personal tools
VoIP operators
System services: