Need suggestions on setting up an automated, mission-critical dialing system for subscribers.

1.      I need suggestions as to what equipment and software to purchase and set up for this business.
2.      This is a home-based business.
3.      There is a high-speed Internet cable connection at the house now.
4.      The business will provide out-going calls to subscribers, on a scheduled, timed basis. These calls are almost always out-going calls, rarely incoming.
5.      Calls are made to most, if not all, subscribers at least once a day.
6.      This is a mission-critical system. In other words, down-time or failure is unacceptable.
7.      The calls will be completely automated.
8.      The subscribers will key in a code given to them on the call. The code will change each time, using a randomizer.
9.      Depending on what code the subscriber keys in, certain actions may or may not take place.
10.      Some programming of the devices is acceptable. (I have over 20 years experience as a computer programmer.) If necessary, entire applications can be written to support the call server, but preferably modifications to existing software or scripts is all that would be necessary.
11.      Any combination of equipment and software which is necessary to set up the business is acceptable. Hopefully, the cost will be less than $1,000.
12.      I am not familiar with the terms for telephone networking. I have heard of VoIP, Autodialing, Predictive Dialers, Voicemail Servers, PBX and T1. But I don’t pretend to know the differences between them, nor what each would be best-suited for. However, I did program a voice mail system years ago, so I have passed Telephones 101.
Who is Participating?
kode99Connect With a Mentor Commented:
Yes there is a lot of information out there,  also an awful pile of projects with Asterisk integration of one form or another.

I am guessing by your comment about multi-line/T1 availablity that your choice of phone services is limited.  Since these are outgoing calls it does simplify things for you in that you can mix and match or even change providers without concerns about your phone numbers changing.

Direct service from a phone company is preferable,  either with plain phone lines or digital trunks (T1/PRI etc).  Phone companies are highly regulated for things like redundancy etc.  Unfortunatly voip providers do not have to meet any requirements so it can be a crap shoot as to how reliable thier service actually is.  On top of that is the issue of general internet reliablity where you deal with multiple companies equipment.

For your startup scenario the requirements are really nothing special.  Any current decently equipped PC will do  .   About the only issue is linux compatibility,  so just make sure there is linux support for the components.  Things like the drive controller, networking etc.  Just do some research on to make sure that the hardware is well supported by linux.  Cutting edge stuff is usually more of an issue than a chipset thats been out for a while.  Also popular chipsets tend to have linux drivers available fairly quickly.

What else you are doing will have an impact.  Just plain Asterisk is not that demanding but if you added voice recognition, text to speech or some kind of complicated DB interactions you would need more.  For a 5 line system it would not be a problem but as you expand to 10 or 15 you would likely require fairly serious hardware.  Multi-processor server grade stuff.

The real question is the phone interface you deal with.  If you use analog or digital phone lines it is less complicated than a voip provider with SIP or IAX access.  If you are going to have to use a voip provider you wont actually need any hardware beyond the pc and network connections.  But to do 5 voice paths you will need very good broadband service.  The algorith and compression you use plays a big factor in voice quality AND bandwith requirements and is something to look at with the voip provider you would deal with.

Here's a calculator to estimate bandwidth requirements,
This is just a estimate you will want to do testing to make sure that you are getting enough voice quality.

Here's the two primary analog phone boards from Digium,

TDM400P cards with 4 phone line ports are around $375.  The full length cards start at $585 with 4 ports and go up from there.

If you can get digial phone service,  which you may want down the road you would be looking at these, 
Digital interface cards start around $500 for a single digital line and go up from there.  

You will want to investigate the local costs/availability as they do vary from market to market.  Digital lines can be more economical than analog but not always.

Digium is not the only provider out there but it likely would be the least difficult to get started with. Sangoma and Rhino also make good stuff.  There are also ATA adapters that provide single analog phone interfaces.  Cost is low but they are a bit more complex to work with than a Digium card.

Voip supply has a pretty complete list of stuff and pricing,

If you are going analog you might want to start out with something like a Digium TDM400P card.  It cannot do 5 lines, only 4 BUT it would be a good test bed since you could directly translate everything to one of the full length cards which does up to 24 lines in incremends of 4.  Same driver just more ports,  if you plan to use it keep in mind it is a real full length card.  No all pc chassis can fit one of these cards.

I asked call during since that has a big impact on how many lines you need since are doing something that is time sensitive I think.  So if you need to call X persons at 0900 you better have enough lines to do it quick.  If you get withing a few minutes its probably no big deal as people's clock are often out by this kind of margin,  but 10 or 15 min probably will be a problem.    So to handle say 25 2 min calls for 0900 you may need as many as 10 voice paths.  With only 5 paths it is likely that 0900 is 5, 0902 5 more 0904 5 more etc.  so for 25 calls it could be 0912 before you are done.  10 paths would cut this down to complete at 0906,  which still could be too long but that is a worst case estimate assuming all calls are 2 min long.  I imagine you get the picture.  Depends on how time sensitive it would be for your case.  You might be able to start calls slightly ahead of time to make sure you finish closer to the actual time.  The reality is the total concurrent capacity will likely be the driving factor not total calls per day.  If you actually had 10,000 calls to deliver in 1 day with only 15 lines that would mean 22 hours of constant calling on all 15 lines,  if you have some kind of schedule to make calls on you would probably need a lot more than 15 lines to meet it.  

Even 1000 calls could be a problem if the times are very close together.  You will want to look at this closely as you pay per voice path, even with voip companies.

Also if looking at voip read the terms of service closely,  often 'unlimited' does not truely mean 'unlimited' but rather just a lot.  Also business rates are usually higher than consumer.  In my area voip service is pretty close to the cost of a plain phone line, long distance aside.  So you might save some on long distance but they you need broadband service to use voip.  So for me voip alone is likely more expensive since I do not do much long distance calling.  

Well enough rambling for now ....  hope this is helping you out.
m,m i think you need an asterisk server with a e1 connected to your pbx, after that you need to learn about asterisk and the functions can you do with that.

i thinks is a difficult schema and you need to expend hours and hours configuring and learning about telephone networking. i recommend to hire a guy to do that for you. :) (not me)
Basically as pablouruguay said. Asterisk will do what you want and you can configure it to make calls by dropping a correctly formatted text file in a specified directory. Once the call is established asterisk can run an external program or simple script use use its built in scripting language to do whatever you wish.

As it is mission critical then forget about VoIP. Internet connections are simply not reliable enough unless you go for a leased line and these are very expensive. Get an E1/T1 (PRI) interface card which can cope with 24/32 simultaneous calls. If you are going to have fewer calls then you can use analogue telephone interfaces.

Lots of usefull information at
Improve Your Query Performance Tuning

In this FREE six-day email course, you'll learn from Janis Griffin, Database Performance Evangelist. She'll teach 12 steps that you can use to optimize your queries as much as possible and see measurable results in your work. Get started today!

---- here is the pesamist in me coming out... I want to believe in your spirit but, i doubt you can accomplish this...

first off - reliablity

cable modem is not a reliable connection, t1 is not reliable... only a data center is... no questions... they are the only ones that have multible redundancies ...

second - cost... the server and or servers will cost easily 3k to make them reliable... and than double the cost to become redundant ...

finally... what you want to do involves advanced C applications... asterisk is a base platform but, takes a long time to understand the VoIP fundementals alone... forget the added complexity of a SIP based IVR...

soo... take those three req away... and you may be able to make a semi-reliable, home baked, IVR system.. interactive voice response.
To come anywhere close to the budget you will have to stick with open source stuff.  That means Asterisk and probably some other packages that are allready setup to work with it.  Here's some links to let you dig in,

I would highly recommend this book as a good starting place for the fundamentals of Asterisk and voip,

Example of using MySQL Database, 

IVR Dialplan examples,

Text to Speech - Festival

Voice Recognition, Sphinx

Given your programming experience I do not think you would find this near as difficult as many do.  Once you wrap your head around the telephoney side of thinks it is really not that complex.  It just looks it from the surface.

In addition to the method of dropping calls into a directory and MySQL DB type integration there are a number of other ways.   Asterisk Manager Interface,  TCP port that you can both monitor activity through and place calls, transfer etc.  AGI - Asterisk Gateway Interface which allows PHP, Perl, C etc. methods of interacting.  Also Asterisk is capable of running other programs from within its Dial Plans.  You will learn the 'DialPlan' is a script of sort which controls everything going on inside Asterisk.

Doing IVR alone is not too bad if you don't want all the bells and whistles.  To do voice recognition and text to speech you will have your work cut out.  The good news is there is a lot of information around and a lot of open source code.

I expect your reliability request along with the $1000 hopeful budget mean you just want something stable and are not looking for a clustered high availability setup with 99.9999% reliability.  For a system handling only,say a couple of calls at once,  you could probably get away for under $1000.  If you need to handle a lot then you would need a hefty PC and either a lot of phone lines or a big data pipe.  The suitablility/costs would be highly dependend on the kind of volume you need to design for.  

If you must you a cable service,  look into using 2 providers.  Preferably with different deliver methods.  eg.  cable and a DSL provider.  It's faily inexpensive and with a Linksys RV042 router you can setup a basic load balanced and/or fail over setup so one provider having issues won't stop you dead.

One nice feature of Asterisk is that it is pretty scalable.  So you can start small and work up fairly painlessly.  

I really suggest you download the book I linked up top, or buy a copy.  Then download Asterisk and dig in.

If you can give some more idea of the traffic you would be looking to serve.  Thinks like how many at once, how many total calls a day and call duration.  Probably give you a better idea about the hardware and trunk capacities.
coderlenAuthor Commented:
Thanks for the responses! It is somewhat overwhelming, all the information and resources I need to collect and go through. Of course, I knew it would be.

kode99, regarding the volume of calls, it will of course be small at first. Then, as things get rolling, I would have to consider moving the whole operation to a business district, where T1 lines and multiple analog lines would be available. I would say for the first year the volume would be more like no more than 5 calls outgoing at a time. The main problem is that there will be a flurry of activity in the morning hours, then not much happening in the middle of the day. The number of subscribers would probably be about 100 to start, moving up to 1,000 in a year, then, of course, thousands!

It looks like Asterisk is going to save me big-time. Thanks for all the suggestions and support. I'll continue to evaluate the responses I receive here, until I collect the information I need. Then, of course, will be the awarding of points.
coderlenAuthor Commented:
kode99, you asked earlier about the amount of traffic I would be experiencing. Here are my estimates:

No. of outgoing calls being made simultaneouly: 5 initially, then 15 later.
No. of outgoing calls per day: 100 initially, then 1,000 to 10,000 later.
Call duration (involves some input from the subscriber): 1 to 2 minutes.

I hope this answers your questions. I'll look forward to what you have to say about the hardware needed and the trunk capacities I'll need. Thanks.

Meanwhile, I'll be reading up on those links you gave me.
coderlenAuthor Commented:
Yes, you are being very helpful to me. It seems from your comments that I am truly limited by the number of lines that I have, since truly I would be making many calls at the top of the hour.
Does Voip have the ability to make more than one call on a line at a time? If so, I could cut down on the actual number of actual telephone lines I would need.
I really appreciate your pointing out that if I had 10,000 calls to make in 1 day with 15 lines, that I would be constantly calling for 22 hours. That's a problem!
Anyway, you are making me realize what I am up against. It's not as simple as I thought, and my total of subscribers is obviously limited by the number of actual lines I would have.
Oh, most of these calls would be long-distance, not local. That is also a limiting factor, I'm sure. Please enlighten me as to how this impacts me.
Thanks, and I'll welcome any other input you have as well.
coderlenAuthor Commented:
Is there a way to "batch" up phone calls, to save on phone lines? Is there any way to do "bulk" phone calling, like they do with junk mail? (This is not phone solicitation, but the subscribers just need a reminder phone call, that's all.) The messages would be pre-recorded, and the only thing that would be different about each call is the code which the subscriber would need to key in.
I suppose there might even be a way to have the call made from the home city of the subscriber, if there is a service in cities for that. Perhaps you have some ideas.
No way to broadcast to multiple points.  Even a conference call requires a voice path for each caller.

You probably want to look into VOIP providers who allow for wholesale IAX Asterisk interconnection.  
Here's a list of providers worldwide,  there are ALOT,

Here's an example,

Voip providers are likely going to cost less than traditional phone services though you will have to pay for your voicepaths or lines or ports.  Just different words that imply the same thing.

The risk with voip providers is they are unregulated.  Phone companies are reqired to have a set level of service,  a voip provider could literally be some guy with some servers running out of his basement.  Not only can reliability be an issue but also actual capacity.  So for example if you did setup with a big pile of lines with a voip service but he can only give you 10 lines into a given area at 0900 and you needed 25 to that area you are going to have a problem.

With a traditional phone company getting wholesale or volume pricing usually involves term contracts and is pretty set.  Voip companies do seem to be more flexible.

For voice or data you are probably going to be looking into digital phone service.  Here's some more info on that,

You should check into the trunk costs,  you may need this type of service to get the bandwidth and reliablity you will need down the road.  As for actual phone service I would want to compare the cost and what it can provide with what voip services offer.

As for the 'local line'  I think this is a area where voip and regular telephone differs though I am not as certain.  I know you get get a 'local' number anywhere for incoming calls but I think you will pay the long distance for the traffic on that line anyway.  In the past you could get a 'extension' to any area but the cost was really high - basically was figured on $ per 1/4 mile or something.  With current long distance rates its quite cheap in comparison.

You are really going to have to do some comparison shopping and find out what is available both for voip and local service.  Either way in the long run you will need some serious trunking whether for data or phone services.  

At this time I'm still using tradition phone services so I dont have any experience dealing with a voip provider to date.  Long distance is not an issue for my operations but very high reliability is.
coderlenAuthor Commented:

Thanks so much for all the suggestions. You have made the decisions on this whole plan much easier. It is harder than I thought, and you just saved me a whole lot of pain.

I may not do the project after all, but your answers made it all clear to me: I'm trying to eat a very large elephant, and all I have is a spoon.

I appreciate the other comments. kode99's answers were very detailed and very knowledgable. I considered splitting points, but since kode99 answered so thoroughly, the points go to kode99.
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.