You are here: PositiveIndians Blog -> Category: Call-Centres


Hints for making a Predictive Dialer

By Abhijit Phadke


If you reached this page, looking for information on how to build a predictive dialer, you already know what a predictive dialer is, and what it does. However for the sake of others I will first define what a predictive dialer is, so that everyone's on the same page.

So. Here goes.

A predictive dialer is an automated outbound dialer software that is used in outbound call centers. This software program automatically dials numbers from a list of numbers that has been uploaded to it as input data. When a dialed call is answered (picked up) and gets a human response (not an answering machine), then the dialer immediately connects that call to a free agent who can then speak to the person.

The most important aspect of a predictive dialer software is that it's algorithms that allow it to mathematically calculate and determine when the next agent is likely to be become free, and when the next dialed number is likely to be picked up. Because it can do this guesswork, the dialer can start initiating calls to the next numbers on the list, while all the agents are still busy speaking on their earlier calls.

This prediction ability is what makes predictive dialers so popular, since they are real time-savers and help to increase productivity and turns out to be a cost-effective solution in most cases.

Now, for the hints on how to make such a predictive dialer software.

There are many people out there, who believe that the prediction algorithms are highly complex. However I do not completely agree to this. Yes, there are definitely are certain aspects of these dialers that are complicated to build, but the predictive logic in itself appears to be quite simple to me.

The program code can be written in languages such as C or C++, which will allow for establishing device level connections, and sending signals to and from between the devices and the program.

In most cases, call centers have an ISDN PRI line that is connected to the server using a PRI card. An ISDN PRI line has got 30 channels (in India and UK), so that it allows for 30 simultaneous calls to be carried out. (I believe ISDN PRI lines in the US have got 23 channels).

The internal telephone lines which the call center agents use, are also connected to the server through a PBX card. So your predictive dialer software has to communicate with these two cards and send signals to them. This CTI part (computer telephony integration), is the basic task which the dialer software needs to be able to perform.

As far as the source code for the prediction part is concerned, it does not seem to difficult to figure out.

There are only few key variables that the software has to account for.

1. Average call connect time.

The average time required for a new call to get connected. (excluding the answering machine, not answered, busy calls etc.) The program has to be smart enough to update this value dynamically in a variable after every new call is connected.

2. Average call duration.

This can be calculated by the software based on number of calls completed and the time that was required for making these many calls. Those who run a call center, will probably already know what the average call duration for each type of campaign is likely to be. It has to calculated dynamically, and it can also be calculated for every agent individually.

3. Call start times for each agent.

It's good for your predictive dialer program to store the call start time of each call which in progress, so that using all the available variables it can mathematically calculate when each of the agents is likely to become free. These times also will have to be updated dynamically every time an agent starts a fresh call.

Based on these key variables, the program should be able to easily predict when the call to the next number should be initiated and do so at the right time, by sending appropriate instructions to the PRI card.

There it is. I have given away the logic for free. But then its not difficult to guess, is it? You can attempt to build a predictive dialer using this logic if you want to. You may also want to consider adding more more features to the dialer, such as reporting and the like to customize your software.

A useful add-on feature that you can think of coding in, would be the ability for a call center manager to input a deliberate lag time into the predictive dialer. This can allow the agents to get some breathing space in between calls, as also can be used by the agents for call-wrapping the previous calls by entering notes into the system, before they start a new one.


Apart from the prediction logic, and the input/output signalling there is another important part that needs to be coded. The dialer needs to understand when a dialed call is picked up by a person. For this the software progran has to listen for responses such as busy tone, phone ringing, and has to be able to distinguish between an answering machine response and a human response.

For engaged tones, and phone not picked up cases, the signals are digital in nature, in the case of ISDN PRI lines so can be identified by the program by certain codes, however for detecting answering machine responses, at least a basic level of voice recognition is required to be done. Typical human responses while receiving calls are a short word such as 'Hello' or a few words that is followed by a pause, whereas answering machines responses are longer.

So your software has to listen for a pause and make a guess. This AMD technology is not a perfect science, and cannot give 100% accuracy, so in many cases AMD detection is altogether avoided, and all picked up calls (human and machine) are handed over to the call center agents.

Having shared these few tips on how to make a predictive dialer, I know its not easy for a call center to develop such a solution in-house, as it requires specialized programming knowledge of CTI. Also these days hosted solutions are also available which are cost-effective and do not require much investment. So for call-centers I recommend buying one of the pre-built dialers that are available in the market.

Having said this, I know its not easy for most people to make their own software as its time-consuming and requires highly specialized programming knowledge, and hence I recommend that if your core business is call center operations, then the easier and faster way is to buy a ready-made predictive dialer from the market, and focus on your core business instead.