Distribute

The block Distribute will distribute a call to one of it's outputs based on a pre-set method.

Two methods for output selection are provided Round Robin and Random. Random will randomly choose an output. For Round Robin subsequent calls are distributed to the subsequent output. ie. first call will take the first output, the second call will take the second output …and so on until the last output has been taken, whereby calls will begin again at the first output. If an output is not connected it is excluded from selection.

Settings for this block

  • Label: An arbitrary label to help identify the block.
  • Method: The methods used for output selection. Options are Round Robin or Random.

Simple Example

Here's an example with method set to Round Robin. For Round Robin subsequent calls take the next connected output.

In this case;

  • When the first call arrives it will be routed to extension_1.
  • When the second call arrives it will be routed to extension_2.
  • When the third arrives it will be routed to extension_1
  • And so on.

Note that we always take the subsequent output, even if the connection is already 'busy' with a call. Hence to work with call distribution on extensions we can add a 'feedback loop'. So in the case where a first call were forward to extension_1 but it was busy, the call would then attempt a forward to extension_2 (via the feedback loop). Care should be taken when using a 'feedback loop' as all blocks have a loop prevention mechanism which will drop the call if there are too many iterations. Adding a playback message to the feedback loop can provide a delay which allows extensions to become free. In real life adding a call queue to each extension may be preferred to using feedback loops.