From Vodia PBX Wiki
Jump to: navigation, search

An IVR node can be configured for complex tasks so that callers can for example enter account numbers and pay bills through an external application server.

In IVR node can operate autonomously or interact with an external application server. It collects input from the user or from within the system, and calculates what to do next based on extended regular expressions (ERE).

When a caller reaches an IVR node, the system plays back the prompt that has been set for that IVR node. Once the caller answers the system by pressing the required digit(s), the system will continue processing the call. This first IVR node is typically used as an entry door into the system, and the nodes that follow are used to decide how to proceed next with the caller. For example, the IVR node can ask the customer for account information then ask an external application server where the customer should go from there. Based on the answer from the external application server, the customer is routed to the appropriate waiting queue.

An IVR node can also be used to define dialog that will be used to process calls. In this case, each node plays one prompt and asks a specific question to the caller. The first prompt may ask the caller what language is preferred and then dispatch the caller into two different node systems for two different languages. This IVR node mechanism is very flexible and allows you to either process the input internally in the system or use an external application server to decide where to go next. The IVR node collects the user input according to the list of ERE expressions that was entered in the node’s match list. In the simplest case, a static routing is sufficient without consulting the external server, but it depends on the user input.


Note: The IVR node and auto attendant are two distinct accounts. Auto attendants with basic functionality (routing callers from point A to B) do not need an IVR node and can use the built-in IVR that is available through the auto attendant account.

IVR node have a wide range of features and can be linked to an external application server.


Setting up an IVR Node

Once you've created an IVR account, use the following information to configure your settings.

Recording Messages

Messages can be recorded using the Record Message (*98) star code, or they can be uploaded through the web interface. Both methods are detailed in the following sections. Users must have permission to record greetings before they can record greetings for an IVR node using *98. The permission is given in the IVR account itself.

Record the Message Directly

To record the message:

  1. From the telephone keypad, enter *98.
  2. Enter the IVR Node account number.
  3. Enter *1 (“1” is the greeting number).
  4. Press the confirm button.

In the example shown above, the IVR node account is “126,” and the greeting that is being recorded is greeting 1. The standard greeting is recognized by the system as greeting 0 and can be recorded by entering *98. Use the standard greeting if you want to use the same greeting for all hours of the day and night.

Upload a WAV File

WAV files allow you to record and edit your message before loading it into the system. They also allow you to use professional IVR dialogs. From the IVR Node settings:

  1. Click the Browse button and upload the file (WAV files should be 8 kHz Mono, 16 bit).
  2. Click Save.

Input processing

The following input is available:

  • When the caller enters a digit, the PBX appends that digit to the input for that IVR node. The input string is cleared when the IVR node is being called (also when coming from another IVR node).
  • When the IVR node audio announcement ends, the PBX acts as if the user entered a "E" digit.
  • When the timeout kicks in, the PBX acts as if the user entered a "T" digit.

The "DTMF Match List" contains a list of match patterns that are checked. The list elements are separated by space. Each pattern contains of two fields. The fields are separated by any character that does not occur anywhere else in the string, for example "!". The first field contains the extended regular expression and the second field the replacement. The field has the same meaning as the fields in the dial plan. The second field contains the destination.

The destination may be any dial able number. If the number requires a dial plan, the default dial plan of the domain will be used. If the destination field contains a single dash ("-") and the pattern matches, the PBX will disconnect the call.

A simple replacement where the caller enters "0" and is sent to extension "500" would be "!0!500!". An example pattern that waits until a user has entered three digits and then returns the three digits would look like this: "!^([0-9]{3})$!\1!".

The other two fields, "From-based routing match list" and "To-based routing match list" are used when the PBX opens the IVR node. The format is the same like in the "DTMF Match List". If there is a match with the "From" or the "To"-header of the call, then the IVR node immediately switches the destination without playing the WAV file. This way, you can implement flexible routing schemes.

The timeout specified in the "Timeout" field starts either when the PBX sends the call to the IVR node or then the user enters a digit.

If no SOAP URI is specified in the account, the PBX will take the output of the pattern matching as the name of the account to switch to. If the SOAP URI is available, it will pass the destination to the application for further decision what to do with it. See Linking External Application Server to an IVR Node for more information about the SOAP processing.

Using IVR Node to change extension parameters

One of the nice features about the IVR nodes is that you can use it to change extension parameters. It is explained here with an example for easier understanding.

Let's consider an example on how to reset the message waiting indicator of an extension using an IVR node.

Following has to be setup on the PBX before we can use this feature

  • Create an IVR node, say 555
  • On the IVR node 555, set DTMF match list to “!([0-9]*)#!\1!” (extension number followed by a #)
  • Set "action:set?name=vm_indicator&value=0/0 (0/0)" under SOAP URL
  • Upload the proper WAV files (something like “Please enter the extension number to reset the MWI, followed by the # sign”)
  • Save

Once this is setup, if the operator wants to reset the voice mail for extension 200, she

  • Picks up any phone and dials 555 (this is the reset-voicemail IVR node)
  • Listens to the above set prompt, "Please enter the extension number to reset the MWI, followed by the # sign"
  • Presses the “extension number + #” (say, 200#)
  • Hangs up

At this point, the voicemail indicator for extension 200 is reset. Now you have to reboot the phone and the vm indicator on the phone will go away.

You can use similar setup to modify other extension parameters.