Adding an IVR Application for Disruptions

You can use this example disruption IVR to retrieve a list of active disruption events and associated audio prompts or say-as definitions from the database and then play them to the caller. To get the example file (Example_Disruption_IVR.xml), contact Sinch.

Principle

In this example, the application asks the caller to enter a value that it then uses to match the WHERE items’ ExternalId fields. If the user does not enter a value, the application returns all active events.

The events are sorted newest first.

Each event’s audio or IVRTalk prompts are played in order WHERE – WHY – WHEN.

After the application has played all active messages, the flow proceeds to state Done. By editing the IVR application, here you can, for example, ask for a new filter value or make it possible to forward the call to customer service.

Definitions

The database function is called by DisruptionEvent.GetActiveEvents(self.CALL, params) in the form GetActiveMessages. The params variable is a Python dictionary that can contain the following items:

Table 1.
KeyExplanation
DisruptionSetDisruption set’s ExternalId. Mandatory
WhereFilter

Search pattern for filtering disruption events. Optional

Wildcard characters are the same as in SQL:

  • %: replaces any characters

    For example, to search for strings that begin with “90”, enter “90%”. This will find, for example, “90210”.

  • _: replaces one character

    For example, by searching for “9_21_” you will find “90210” and “91215”.

LanguageThe language to use for retrieving say as attributes. If not given here, the IVR language is used.

Procedure

  1. On the System Configurator main screen, choose IVR Management > Custom IVRs > Add New.
  2. In the Basics block, configure the settings according to the following table.
    Table 2. Basic settings of custom IVRs
    Setting Description
    Name Enter a descriptive name for the IVR.
    Description Enter additional information about the IVR.
    Active To activate the IVR, select this option.
    Note: Do this only after the IVR application is ready without any errors.
    Add Custom IVR to Reported Applications To include the IVR application in reporting, select this option.
    Early Queuing To use early queuing function with the IVR application, select this option. Make sure that there is either the connect element in this IVR to connect the call and end early queuing, or there is the transfer element that takes the call to a queue where early queuing is in use.
  3. In the IVR Numbers block, define the phone number for this IVR application.

    Use one of the numbers reserved for this purpose in System Management > Number Range.

    Note: Make sure you don't use any national emergency number as an IVR, a user, or a queue number.
  4. To import the example file, click Import in the IVR Application Versions view, and choose Example_Disruption_IVR.xml.
    Note: Import notifies you of validation errors, but this is because there are no audio prompts defined in the example VXML.
  5. Save your entries.
  6. Make at least the following changes in IVR Editor:
    1. Assign the correct audio prompts or remove prompts if they are not necessary.

      Audio prompts in the example are:

      FormPrompt contents (suggestion)
      FilterOrAll"Type in your area code ending with #. If you want to hear all active disruption messages, press #."
      NoMessages"No active messages found"
      Error"There was an error..."
      Done"All done!"
    2. Go to form GetActiveMessages and set the correct DisruptionSet ExternalId to the params variable. For more information, see Definitions. No other changes inside forms GetActiveMessages or PlayActiveMessages are needed.
    3. Go to form SetAreaSelection and modify the search pattern in variable wherefilter depending on the format of the DisruptionItem ExternalId of your installation. Check if the user input digits are valid.
  7. Save the IVR application and close the view.
  8. Active the IVR.