Howto:Simple Round Robin ACD with Voicemail XML Script

From innovaphone wiki
Jump to navigation Jump to search


The innovaphone PBX allows al lot of scenarios regarding the call distribution on groups, using waiting queues, call broadcast etc. But despite the amount of setups available there is always one missing. This small XML allows you to create the following scenario of calls which should be distributed in a group of extensions:

  • The call follows a round robin scan. The first call is forwarded to extension “A”, the next one to extension “B” etc.
  • Busy Phones are skipped.
  • If a call is not answering after a timeout the call will be forwarded to the next extension in the group.
  • If a call is answered the following call will be forwarded to the next group member. So if “B” answers the next call will be forwarded to extension “C” (even if “B” is free again).
  • If a call is not answered (the caller gives up) the next call should even be forwarded to the next extension in the group. If “B” was ringing and then the call was dropped the next call will be forwarded to extension “C”.
  • The call should not be answered (no waiting queue), so the caller hears the ring back tone until the call is answered.
  • If all members in a group are busy the XML waits if someone becomes free, after a timeout the call will be forwarded to an overflow extension.

A similar scenario is also described in a similar solution, but contrast to the other ACD script, this script implements a Round Robin assignment of the incoming calls to the agents, in order the load is balanced between all agents.

Applies To

This information was tested with Version 8 but the XML file should work with version 7 either.


Create a directory on the compact flash of your gateway. Unzip the files provided in the download section and copy them in this directory. Done, the rest is setup.


Create in your PBX a Voicemail object and insert the URL which point to the XML. Example (XML in directory test): http://xxx.yy.zz.uu/DRIVE/CF0/test/GroupCall.xml

Please note that a Voicemail object doesn’t need a Voicemail license, just the “real” VM needs one. All the XML are called via the VM object and all the samples are for free.

The number assigned to the XML is the “group number” (and probably you will point to this number when a call comes in).

To assure that a non answered call is again processed by this XML activate in the innovaphone PBX a CFNR on each group member indicating in “No” (number) the number of the XML. In this way if an extension is ringing after the CFNR time-out the call is forwarded again to XML (which will forward it to the next group member). If not activated the call in the case of no answer simple will follow his normal behavior, but the other features of the xml will work. So just try it.

Note also that you have to set in the setup of the single group members “Busy On … Calls” to 1, otherwise the PBX considers a user as free even if busy and the skipping of the busy extensions will fail.

Now you have to create your group or chain. That is done editing/creating text files in the xml directory. Here is how.

Create for each user in the group a text file, the name is the extension, the content the number of the next extension in the chain. Example: User 123, the next should be user 456. The file will be named 123.txt and contain “456”.

All this is done using the text editor. For better understanding you will find with the XML the File 24.txt, 37.txt and 38.txt. Those are just examples for user 24, 27 and 38 in a group 24->37->38.

Please note that the last in the chain will point again to the first one (in the demo files 38.txt contain “24”).

The number of members is non limited. Before starting you have to edit also the file next.txt. Put in the number of one of the extensions of your chain (regardless which). In the demo-files you will find “24”.

In the file overflow.txt you can indicate the overflow extension number. In the file timeout.txt you can indicate the number of seconds for the overflow time-out. Please note that 60 is the maximum value (in the demo-file 16 seconds is in). Remember that this value indicate how long a call can be in the xml (regardless if waiting for answer or waiting that one of the users becomes free to transfer the call).

Known Problems

A XML can just transfer the call to “real” numbers, not for example to a WQ or a number map.

Active CFU on sets is not followed (the phone will ring even if forwarded). If you want that call forwards should be executed you have to provide a additional option in the url: ?$_pbxfwd=true


  • Download the complete file package of scripts and files described in this article.