An IVM Plugin is an external program that IVM can run to process or obtain data. For example, if you are making a interactive voice response system to tell the caller the current temperature, a plugin can be used to read from the hardware and return the temperature to IVM. A plugin could also be used to restart the computer, access a database, process credit card orders and more.

A number of useful plugins can be downloaded from www.nch.com.au/ivm/plugins.html.

The "Plugins" tab in the web interface displays a list of the installed plugins.


Installing a Plugin

Install a Plugin file by using the "Install New Plugin" button on the "Plugins" Tab of the web interface.

The 'Install New Plugin' Window will give you the option to install one of the plugins provided by NCH Software, which you can view at www.nch.com.au/ivm/plugins.html
OR you can upload your own plugin file. Plugins are usually provided as exe files (if you have an exe in a zip file you will need to extract the exe before trying to upload/install).


Using a Plugin

  1. Go to the "IVR Profile" Tab in the web interface.

  2. Select the OGM you want to have use the plugin to enter the "OGM Properties".

  3. Select the box in advanced settings that says, "Run another Executable or IVM Plugin".

  4. Click on the "Add Exe or Plugin" button.

  5. Select the "Run installed Plugin" radio button, and then you can choose the installed plugin from the drop down menu.

  6. If the plugin takes any arguments/inputs, enter them here being sure to get the order exact.

    The plugin writer will prescribe the arguments that must be passed to the plugin (check for a text file in the zip file distribution). Take care to get the order exact. You can include any variable as an argument by circumfixing it with %. Variables can include the system variables %time%, %date%, %cid%, %callername%, %linenumber%, %linename%, %did%, %drn% and %callsequenceno%.

    Information from the plugin is returned as one or more variables which you can use at any stage later in the call. Often one of these can determine which OGM to play next using the return variable name (circumfixed with % characters) as part of the OGM name to go to at the end of the current OGM. If it is a number, it can also be "Read" using the read number feature.

  7. Click "Save Changes" to add the plugin.

  8. If you want to run more than one plugin file in sequence you could then repeat steps 4-7. Otherwise Close this window to continue.

    Multiple plugins can be run in sequence by adding them to the list in the Run Exe and Plugin Settings dialog box. Arguments returned in variables from one plugin can be passed to the next using %variablename% as the argument(s). The arrow key on the input screen can be used to arrange the order the plugins are run (from the top of the list to the bottom).

  9. Select "Is IVM Plugin Process" when you are back in the OGM Properties.

  10. Click "Save Changes" when you are done making changes to the OGM.


If you have difficulties using a plugin it may be helpful to look at the Most Recent Call Log for the line to view the exact data sent and returned from the plugin.


Running other Programs or Files

IVM can also run any other exe file (which in turn can be used to open almost all file types). However, if it is not a plugin, IVM will not be able to retrieve data from the process. To run or open a file that is not a plugin, untick the "Is IVM Plugin Process" option.

If the file is not a true IVM Plugin the "Is IVM Plugin Process" option must NOT be ticked.


Running a Plugin on Call Disconnect

Sometimes you need to set your call so that if the call disconnects for any reason at any time later another plugin will be run. For example, this can be used to time call duration or to cleanup data relating to the call. To do this you set the variable "RunExeDisconnect".

For example if somewhere early during your call your run a plugin "startcalltimer.exe", that plugin can return a variable "RunExeDisconnect=[path].exe%20%-stop". Then whenever the call disconnects (however it disconnects) IVM will run that plugin.



For more information about writing plugins (for programmers), please see the IVM Software Development Kit www.nch.com.au/ivm/sdk.html.