You know how it goes; so many good ideas in real-life end up being limited by the amount of funds you can raise to implement them. That’s why Vicky, the energetic new president of “Friends of the Wombat”, called you. “Friends of the Wombat” is a non-profit institution that helps wombats in need, but their activities are limited by the rising cost of carrots; so they decided to start a volunteer fund-raising campaign.

What they would like to do is to call a list of known contacts that expressed an interest in wombats and ask them to make a donation. They started doing this manually with paper and pencil, but getting to a lead is really tiring and time-consuming – their volunteers spend most of the time dialling numbers and it is really hard for them to get through to somebody who is interested.

After a good cup of green tea, what you propose to do is to use WombatDialer to automate the process by dividing it into multiple stages:

  • Create an electronic list of those leads
  • Leads from their list are dialled
  • If the call is answered, a message is played that explains what the campaign is for
  • If the callee is interested, they press 1 to be put in conversation with a volunteer that will explain how to send a donation.

This setting leads to two huge efficiency boosters:

  • As numbers are dialled automatically and error conditions are handled behind the scenes, a lot of drudge work with paper and telephone keyboards is automated; no more post-it notes to recall a busy number!
  • As they noticed that about 50% of the calls made manually result in calls to busy numbers or numbers where nobody picks up, and that only 50% of the callees are actually interested after an initial interview, they expect that 75 calls out of every 100 they make can be screened out automatically. So if they have 4 volunteers on shift, WombatDialer could start 16 calls at once on average, and have all of our volunteers busy most of the time with people who are actually interested in contributing.

In order to implement such a campaign with WombatDialer, we start by creating a call queue that will hold our agents and will send them calls. You can use any Asterisk GUI to do this - in the example below we use Elastix, but you can choose the one that suits you best.

We go to Queues -> Create new, set the extension for the queue as 999, enter any name you want, and look on the settings below so that:

  • Strategy is set to “rrmemory”
  • Queue events: yes (this is very important – if you don’t do this Wombat won’t be able to observe your queue at all).
  • Autofill: yes (all free agents are assigned calls at the same time)

If you create a queue manually without using a GUI, configure it with the parameters below so that WombatDialer can observe it.


Now we create a custom piece of dialplan to be called as an end-point for calls that connect successfully.

exten => 100,1,Answer
exten => 100,n,Playback(campaign_message)
exten => 100,n,Read(type,,1)
exten => 100,n,GotoIf($["${type}" = "1"]?ok)
exten => 100,n,Goto(1)

exten => 100,n(ok),UserEvent(CALLSTATUS,Uniqueid:${UNIQUEID},V:1)
exten => 100,n,Queue(999,,120)

(In order to make this example shorter, we assume you have a baisc familiarity with WombatDialer concepts such as Campaigns, Servers, Trunks and End-points. If you don’t, see the tutorial at )

Now log-in to WombatDialer and create a new End-Point:

  • Type: QUEUE
  • Queue: 999
  • Max channels: 10
  • Boost factor: 2.0
  • Max waiting callers: 2

This means that WombatDialer will try and place two calls for each agent available, but never more than 10, and will stop placing calls if there are two or more people waiting in queue. We expected to use a boost factor of three to four given the previous statistics, but it is better to start with a small figure and grow it if needed.

It is important to understand the impact of different boost factor settings; in general having more calls made than agents may result in calls waiting in queue when all of your agents are busy (in call-center parlance this is usually referred as “nuisance calls”). WombatDialer tries to minimize the impact of this case by continuously monitoring the number of calls waiting on the queue and avoiding placing new calls if there are too many. If you don’t want to have cases where calls are not immediately connected to an agent, you should leave the boost factor to 1, that is, place no more calls than available agents. The trade-off here is that agents end up being under-used, as they have to wait for a successful call to come in.

We then create a test trunk, upload a list of test numbers and create a campaign called “friends” as in the previous examples; we now start the dialer and start the campaign from the Live page. When we start running it we notice that it does not seem to work – the campaign is running but no calls are placed. How comes?

If we reload the current Dialer status, we see that it is saying that the queue has 0 channels available – this is because there are no agents on the queue.

If we log an agent on (e.g. by entering 999* on Elastix), we will notice that WombatDialer starts dialing. If you pause an agent or log him off, WombatDialer will immediately react and adapt to the changed number of available end-point channels.

Another thing that we do is to track (through a status code) which callers ask for being put in contact with a volunteer – this allows easy inspection of what goes where from the Campaign Report panel.

Now all we have to do is to set our campaign to use an actual telephone trunk and upload the “real” list of numbers and we are ready to go – it’s time to buy some new carrots for our wombats!

Understanding statistics

If you run a report of our campaign with a queue analyzer like QueueMetrics, you will have two different views of the campaign:

  • if you analyze the queue “friends” (the one that matches the name of your WombatDialer campaign) you will see the total “external” system activity – all calls placed on the campaign are tracked, and the wait time matches the external wait time (that is, the time between the dial request and a successful connect). All calls appear to be connected on the end-point, as you could have multiple ones assigned to the same campaign.
  • if you analyze the queue “999”, you will see the human side of action – how many calls were queues for humans to interact with, how fast they were answered and by whom.

Further expansion

  • You can use the same end-point in multiple parallel campaigns, if needed.
  • It is possible that your campaign reaches someone who is interested but is currently doing something else so does not have the time to speak to your volunteers. They could tell you by hitting 2 – you could add a Reschedule Rule that reschedules the call in a few hours.
  • You could easily generate personalized messages instead of one single rescorded message by using a Text-to-Speech synthesizer, as in this example

Please note that outbound telemarketing, whether it is of the good or evil persuasion, is regulated by your local law, so be sure you comply to its terms before you start calling millions of people!

Permalink - Back to home