Asterisk FreePBX Dialplan

We are looking for a VOIP Dialer system to support several Use Cases including:
1. Call and play recorded message for a list of numbers
2. Same as #1 with Press 1 to talk to live person, Press 2 to decline
3. Insert specific time/day/event information into message played
4. Call a list of numbers in the order provided and do a screen pop of profile for person called and order referenced

We have heard Asterisk and FreePBX are popular but have no experience with these or other systems such as Vicidial, vTiger, plivo, etc and so we are looking for some guidance from someone who works with this technology.
Who is Participating?
tigermattConnect With a Mentor Commented:
Hi Doug,

Asterisk is indeed the underlying technology behind FreePBX, and plenty of other distributions. I mostly work with the bare-metal Asterisk builds and don't venture into GUIs, so I cannot comment on FreePBX specifically. What I do know is that it probably does not have all the features you require out of the box in the GUI, and it may actually hinder you building a solution because it is harder to interact directly with the underlying software.

There is another possible solution though. Another distribution known as Elastix. I have not had a need to use it myself as I haven't yet deployed Asterisk in a call centre environment, but I do know it includes a custom call centre module as standard, built on top of Asterisk's manager interface. This is a huge benefit, because it features a predictive dialer. Most third-party services which you might outsource your campaign to would use this technique; a statistical model is built by the system based on the average length of a call, average length of time to answer etc and the average availability of an agent to take a call. Combining all those factors, it will determine the optimum time to place a call to a new number to ensure the agents are kept busy and therefore the performance of your campaign is improved.

I should add that in most jurisdictions, there are legal directives to only have x number of "abandoned calls" per hour / day / week or some other unit of time. This is typically a problem if you call and want to connect the call directly to an agent; to keep the agents busy, the system might make many calls and then connect the first one to be answered, leaving the others with silence. I am no lawyer and I don't know where you're based, so I can't comment on the legalities of your particular campaign, but whether the inclusion of a pre-recorded message avoids these problems I cannot say. It is interesting that many telemarketing campaigns now feature recorded messages on answer -- whether that's to reduce the number of agents needed or work around legal issues I don't know. Either way, you'll want to make sure you're covered, because the laws are often very strict in this regard -- they are here in the UK, and in the US too, I believe.

Asterisk does have support for text-to-speech synthesis which can be compiled in. By default, this uses the Festival package on the Linux system to produce the speech. It can be temperamental and may not be what you had in mind, but there are plenty of other packages available (many free) which also add this support.

The typical way of doing a "screen pop" is using Jabber, which is effectively a form of Instant Messaging (IM). Asterisk integrates with Jabber, again provided the support is compiled in (there are some pre-requisite packages required on the server before Asterisk is built from source). Each agent would need to have an IM client capable of communicating with the Jabber server on their PC. Asterisk would be programmed with each agent's Jabber ID (which could perhaps be their extension number, for simplicity's sake). This would require custom code to transmit details on connection with a call, but it shouldn't be too difficult to implement. Elastix also has IM support out of the box, so it may actually be set up to do exactly this in a call centre environment - again, I've not had occasion to work directly with Elastix so I cannot comment.

One of the many benefits to using Asterisk or one of its derivatives, besides it being free, is the community is huge and the scope for customisation is massive. If it cannot do something you would like it to do, there is probably some code on the Internet which someone has put together already. If not, it is just built atop standard Linux in C, so you can quite happily add new features. I've never had a need to develop anything new, because most things (even very advanced stuff) have already been thought about and are available.

Many of the proprietary systems are more restricted in terms of how much you can customise and how you can build a platform to suit your needs, and where this is allowed, it will typically require many hours of time from a developer specially trained to work with the particular PBX you use.

Have a look at Elastix. Your mileage may vary, and you may still need a small bit of custom development work to get it configured exactly how you wish. I would also suggest you speak to someone who deals with Asterisk when you build any system out, because the cost of getting a properly designed system will far outweigh the problems you will have in the future if things are not configured according to best practices, documented and tested etc from the start.

Personally I would outsource this. Since you have no experience running your own PBX, let alone being able to handle the programming you require, its best to give this to a vendor.

Here are a couple sites I found for you. The problem is that since they are not onsite software, they will not do #4 for you.

For what you want to do, contact the people above first and see what they can do. If they can't then you may need to bring in a company to set you up with the programming and PBX/Call Center system you require.
doug_coulterAuthor Commented:
Yes, we can outsource this, but each contractor has their own favorite solution, usually based on what experience they have, and we are looking for guidance on selecting the best PBX and related items, e.g. Text-To-Speech, and THEN outsourcing to a professional that has that background.
What Kind of Coding Program is Right for You?

There are many ways to learn to code these days. From coding bootcamps like Flatiron School to online courses to totally free beginner resources. The best way to learn to code depends on many factors, but the most important one is you. See what course is best for you.

Asterisk is gaining some ground, so everyone is gettig familiar with it. If you got a couple of contractors that know this system in your area, you should be set. Keep in mind that there's lots of vendors on the net too.

FreePBX is just the graphical interface for Asterisk, and you'll find that lots of systems out there like Digium and Trixbox are just versions of Asterisk.

If you can find a vendor that can program the system to your specs with Asterisk, I would go that way. If you are talking about a large call center deployment (1000+ users,) then maybe you should go with an Avaya or Cisco solution.

Make sure to get some documentation on the set up, this is very important since the system will be highly customized to you and you want to make sure you are not stuck with one vendor.
BTW, there are commercial versions of Asterisk that are commercially supported. I think Digium makes Switchvox.... which means your system is supported by the company and not the community.
Digium is the firm which produces Asterisk. Yes, they create the open-source Asterisk PBX, Switchvox (a Unified Communications system based on Asterisk), AsteriskNOW, plus assorted hardware and software components to complement an Asterisk or Switchvox install.

There is no reason that Asterisk cannot do what you are asking of it. However, it should be emphasised that Asterisk is a toolkit, and not a fully featured solution which will work out of the box. As a PBX, this can make start-up time to installation prohibitive for a novice, which led to the creation of GUIs such as FreePBX to allow a PBX to be installed without having to understand the underlying configuration files. However, for custom tasks such as a dialer which implements business logic specific to your organisation, you are likely going to be best placed to use a base Asterisk install, upon which either you or some external consultant implements the necessary code to achieve what you are after. You will also need to supply some means of outbound telephone connection (SIP trunks, or a T1 line etc.) as well as computer hardware capable of running as a Linux server and with sufficient resources for the number of concurrent calls you wish to make.

But, once again, Asterisk is a free package, which means you will either need to engage the services of a consultant to code what you require or spend time learning Asterisk, the underlying Linux platform and shell scripting from scratch to achieve what you are after. Either way, you will pay for the support to configure it, either in the money shelled out on consultancy fees or in the time you will spend learning and configuring yourself.

FWIW, everything you need is included. One way of "auto dialling" is the use of call files, the options the callee hears are simply dialplan statements, and the notification on connection to a live person can be implemented using an XMPP IM server and Asterisk's module which integrates with IM.

doug_coulterAuthor Commented:

thanks, this is helpful. So assuming Asterisk is the underlying technology is FreePBX the way to go for a GUI ? I have heard of others, some newer, but have no basis for selecting one.

also is Text-To-Speech built in or how is that handled?

and finally for a "screen pop" is it necessary to install something on our PCs so that we can view the caller's profile and related info?

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.