I am looking for both technical and financial advice for this. In short, my client has approached me concerning a project that they wish to undertake regarding building a very small "today" call center, utilizing some sort of low-cost/open/free (Asterisk?) VoIP gateway which will obtain customer data from their MS SQL Server 2008 database. They wish to do what I am about to describe for as little as possible, of course. :) What they do today is "analog" in that they make outgoing calls with pen and paper and manually key it all into spreadsheets that one person MERGES(!) into a larger one and - you can imagine what I saw....

They want me to build a CRM which accesses a database on the backend but all of this must interface with a VoIP that will help them make outbound calls, and receive inbound as well. I am good with the CRM and database. I can do that in my sleep. What I am having a lot of trouble with is wrapping my head around what they wish to accomplish with this VoIP stuff. So here I am....

First, they are adamant about keeping as close to 100% of the hardware in-house for reasons that are related to the security of their customer's data and contractual agreements with those customers regarding their data. They do not rely on any cloud-type services. All backups and disaster recovery stuff is handled by them and them alone. I do think that maybe they have an armored courier that ships tapes to a vault somewhere but essentially - they want physical control of their data, servers, phone systems, etc.. They have a concern about VoIP and security. They mentioned digital tracing of calls via "sniffing" or "snooping", and they want to mitigate that risk by creating an entirely run in-house call center using VoIP for programmability/interfacing, etc. They also wish to dump their current telephone provider IF that is even possible. I believe that issue is due to costs. I told them that at some point, even if the call originated inside their building it has to get "out there" somehow. But maybe I am wrong because I have zero experience with this VoIP stuff. I am the messenger here so please bear with me. I don't know much about the hardware/network side of this. I am building the custom CRM for them, the SQL Server database and an intranet management interface to run the CRM and I am to somehow connect the software side to the VoIP call center side.

So with that in mind.......

Staffing will be small. On any given day there will be 3 to 5 concurrent people making mostly outbound domestic U.S. calls. No personnel growth is expected in the next year but I would like to see what the costs are for scaling it out to 10 concurrent outbound callers - just to have that information ready. The call center staff will make about 90% outbound calls and about 10% will be inbound, customer support calls, unsolicited, etc. They do not wish to set up an 800# at the moment. They would like to cut their ties to their current telephone provider - if that is even possible? Basically they asked if they could simply "route their calls over the Internet, only" and with the little knowledge that I have of this - my gut says no. They need some sort of PSTN? to connect to - it doesn't matter if the endpoint is a cell phone, office phone, home phone..... They want to essentially create their "own in-house VoIP provider" that they will use to make those outbound calls and receive the inbound as well. The database/software will be in-house and they wish this hardware to be under their noses as well. They want to know if they can create this VoIP (gateway? PBX?) and be able to access a customer's history in the SQL Server DB upon making or receiving a call.

So, in a nutshell this entire system will do something like this: The marketing manager creates a run of potential customers based on criteria they load into the CRM. Each agent (sales person in what they're calling a call center) will see a list of assigned customers to call in their dashboard. The agent clicks on a customer, the full data is retrieved from the database, the VoIP box gets a signal to process the outbound call, the conversation is recorded to MP3 format (with permission of course), and hopefully a sale is made. In the event of an inbound call, if a match on phone number is made, then the database will retrieve the customer's information to the agent's screen prior to the agent/sales rep answering the call.

It is the hardware part of this that I don't have much experience with. First, is it even possible to become your own VoIP provider? If so, then how much cost - what sort of hardware for the least expensive option out there? Can it be done for next to nothing? They kept mentioning Asterisk. I've tried to read up on this stuff over the holidays but my head is spinning - thus I am here asking now. Is this pie in the sky or this actually doable - (at very low costs)? "low" meaning using as much open source/free as possible, I was told.

Thanks for any insight and direction that anyone can provide. I will try my best to answer any questions or clarify something, add what I might have missed, etc.


Wow, to be honestl that was a bit of 'TL;DR' happening for me, but I scanned it and it sounds like you want to do something very similar to something our company did.

We also do CRM systems, and our client wanted a CRM that would auto-dial customers who had requested support, and when a customer called in the call would automatically be routed to the person who last handelled it based on their Caller ID and whatnot.

We went with a solution called Swyx for our VoIP integration a few reasons, and it has been FANTASTIC, and we've rolled it out to three offices since then.

  1. Swyx has a BRILLIANT ActiveX/COM API for initating calls. The COM object is actually a full VoIP application, so ALL your phone functionality can be embedded into the app, with no 'external' presence. You can also have a traditional VoIP interface, or a physical VoIP phone and it will 'remote control' these devices

  2. Even though your client wants it in-house, if you do host it externally it will 'call home' to operate the local phone from a remote location (this is what we did, externally hosted terminal server controlled the local VoIP phone)

  3. It's cheap. Our licensing costs tend to be about $50,000-$75,000 AUD per site. That seems like a LOT, but after a few hours of training any monkey can maintain it (and in fact, we have a monkey who does just that when he's not throwing poop on the walls), and we've only ever had to pay for tech support once (and it wasn't even their fault, someone gave us the wrong information).

Next question is: Can you be your own VoIP provider. Yes and no. Depends on the context of the question.

You can be your own VoIP PBX, in that you have trunks coming into your office, and then you run a full VoIP system inside the office. This is what we do. There is not a single analogue phone in any of our sites. In fact there's not even a single desk phone at all. It's all VoIP and fancy USB headsets.

To do this though, you still need to get trunks into the office. Some of our customers (high volume ones) use ISDN. Our main ISDN provider in Australia has a product called "On-Ramp" and most of our customers get 20 lines and about 200 numbers.

We do have a smaller site that utilises two VoIP providers. One VoIP provider came with their office internet connection, and offers free national calls and are very stable, and they do permit this functionality (within reason of course). They've shuffled 10 calls at once down the single VoIP trunk without any trouble. They have a 2nd VoIP provider for doing international calls, and some simple dialling rules switch over to that seamlessly.

Now, as for "Free/Open Source", remember it's only free if your time is worthless. We investigated doing this with Asterisk and we found that by the time we learnt Asterisk, developed an API we could interface with from our Windows apps, set up auto-dialling, redundancy and customised inbound call routing based on the dialling number's history we were talking about in the order of $150,000 in hardware, support and development costs. I think going the Swyx route was about $50,000 cheaper, because the 50k outlay covered about 100k of our own development costs (but we're not particularly cheap, your mileagage on those sums may vary).

I hope this sheds some light for you, and good luck. It was the most fun project I've ever worked on, and being able to see the immediate benefit in every aspect of the business after deployment was heart warming!

  • Thank you so much for this! It has shed a lot of light on a topic that I really dont know too much about - and am trying to absorb quickly. I will look into Swyx and then branch out from there looking for similar and also googling IDSN / On-Ramp.. I am lucky in that I have time to put all this together and it seems that I will be heading up this entire effort for them - which would place me in similar sentiment as you're last paragraph denotes. Thanks! – Taptronic Jan 7 '10 at 5:16

Full Disclosure: I work for a Call Center Company Customer Relationship Management Company. If you are in the call center business, you've heard of them. So please keep that in mind if parts of my post are vague I have to keep it that way on the Internet so that I don't divulge stuff that could get me fired by accent.

As a note in the US you have to be very careful about who you call. When you call someone you need to make sure the following criteria are met:

  • You are a non profit
  • You represent a politian


  • The person you are calling is not on the National Do Not Call list
    • You have to Pay to get access to the DNC (It was something like 10-20k last time i was involved in an outbound project


  • You have a prior business relationship with the person.

First I'll try and describe how the "big boys" do this just to give you an idea of how a call center operates. Since this is mostly about outbound telephony I think the best way to describe how it should work is to step through a call from when the screen comes up on the agents desktop to the point that it is answered.

  1. An predictive dialer calls through a bunch of numbers in a list, once it gets a person on the phone, it hands off the call to an available agent. The agent is determined to be available by use of some framework that allow the telephony switch and autodialer to communicate this information.
  2. Once the agent is connected, meta data is passed to the back end application and fed to the agent's desktop the call commences, the agent adds information to the person's records, which is put int he back end application

Sounds pretty simple right? Trust me there is a lot more going on behind the scenes and the infrastructure isn't cheap.

How you can do it

(This is US Centric as that is where i deal with telecom)

First, let me address changing your telecom provider. Yes you can most certainly change your telecom provider and move your numbers. I'm sure there are many CLECs, and LECs in your area. Without knowing your area I can't speak any farther but you should be able to find a good deal of them with reviews just by search online. Shop around that's what we do. Although for call centers AT&T is THE DOMINANT player.

You should look into getting a fractional T1. The cost won't be astronomical and it is pretty easy to add more lines as they loops are already there they just need to be turned on.

There is really no cheap way to setup a call center. For what you have expressed you want to do.

First way:

With asterisk

You can do this pretty simply if you know asterisk. In broad strokes you would use Asterisk .NET (I'm assuming a .net application since you are using MSSQL 2k8) to generate the calls. A fairly simple outbound dial plan would be needed. For the inbound calls you could setup a huntgroup in asterisk to ring through all the agents until one picked up, or dump to voicemail.

Now, if you have no idea what you are doing with asterisk - you best bet would be to find a local consultant to set it up, in the end it will be cheaper. If you really can't do it that way look at TrixBox they have put a pretty nice front end on asterisk apparently. I can't comment on it as I've never used it.

Second Way

Use Cisco Call Manager

You would get decent lowend Cisco router - something in the USR 800 or 1600 range and have call manager handle all the of inbound and outbound calls. It has a pretty spiffy but hard to find API (hence no linky can't seem to locate it right now )

As far as doing pure voip. For a call center I would say don't. We have NEVER had a good call experience running over voip unless it was a direct drop from a (C)LEC into their local CO, and at the prices they are charging right now a T1 is cheaper.

The issue with doing pure voip is you have no control over the conditions on the internet. And there is no such thing as QoS on the internet unless you are in a private cloud (i.e. MPLS)

Just as an example, I have a friend who worked at a call center that outsourced their telecom to a VOIP provider. All of their calls went through a Chicago datacenter. On a good day the call quality was miserable, the service was expensive, and it was just a bad situation all around. And then there was the day the datacenter dropped off the face of the internet for a week ...

I think i've covered everything that should at least get you started. Please comment if you have any questions.

Oh and remember Telecom is fun :)

  • Thank you for your reply! With regard to the do not call list - they've got that stuff down pat as they've been operating in that arena (outbound sales/marketing) since the 1980's and have rolled with the laws, the changes, etc. They'll certainly provide me with the does and donts - if they wish to remain compliant! :) But the last 2/3 of what you wrote was very informative and gives me some places to investigate. Yes, its going to be .NET (Visual Studio 2008 - probably C# 2008) and SQL Server 2008. The T1 is something that I didnt even consider. Great ideas to look into! – Taptronic Jan 7 '10 at 5:23
  • 1
    re DNC, yep ... you never know though :) oops forgot the part on pure voip ... all edited now – Zypher Jan 7 '10 at 5:37

You could try something based on Asterix, like trixbox. I had such a box in my office for more than one year and worked very well.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.