IVR Node
From Pbxnsip Wiki
Purpose
When caller hits an IVR node, the PBX will playback the prompt for that IVR node and the user can enter DTMF digits that determine where the PBX will continue processing input. Usually you use that feature as an "entry door" into the system where you decide what do to with a caller. For example, you can ask for a customer number, then ask an external application server what to do with that customer and then route the customer to one of the waiting queues.
If you define a dialog, that dialog may consist of a number of IVR nodes. Each node plays one prompt and asks one specific question to the user. For example, the first prompt may ask you what language you prefer and then dispatch you into two different node systems for two different languages.
This IVR Node mechanism is very flexible. You can either process the input internally in the PBX or use an external application server to decide where to go. In the simplest case, you just do a static routing depending on the user input, without consulting the external server.
The IVR Node account collects user input according to the list of ERE expressions that was entered in the "Match List" of the node.
Recording a Message
There are two ways to get a message into an IVR node.
- Either you record the message directly into the node by using the record star code followed by the account number (e.g: *98123 for recording the prompt for account 123). This method is suitable for quick setup and for changing messages.
- The other method is to use WAV files. This way, you can record and edit your message and then later load it into the system. If you use this method, you can set up professional IVR dialogs.
IVR messages are always static. It is not possible to generate dynamic content.
Settings
The identity settings are the same as the settings for the extension identity, see Extension Identity. Dialog Permissions are described in Dialog Permissions.
To record an announcement, just dial the recording code followed by another star and the announcement number. For your convenience, you will find these codes at the bottom of the account page. You may specify which accounts may record announcements with the setting "Accounts that may record a message" as a list of Wildcard Patterns. If you leave this setting is empty, all extensions will have this permission.
The following input is avaiiable:
- 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.

