Inherited System

Hi All,

I have just taken over as the IT Manager at a medium sized outgoing Call Centre. They are using Centos & self complied Asterisk 1.6 as their PBX solution, which I have had very little exposure to. Apparently the current system is working OK, but is at its limits. We can only record some of the calls, and listen in on a very limited number of extensions at any one time. If we try to record to many extensions, or listen to too many calls, the system can’t handle it and we loose call quality. They currently use 4 HP DL 320 G3’s:

1 server running about 100 phones - recording & listening in, pushing calls to SIP
1 server running about 60 phones - recording & listening in, pushing calls to SIP
1 server acting as their MYSQL database for CDR and a database of blacklisted numbers that gets referenced every call.
1 server sitting between the ISDN and legacy pbx for faxes. (saves a copy of all faxes received and prints them to the relevant departments printer).

So that’s all well and good. If it ain’t broke don’t touch it. However the owner of the company informed me last night that for my first project they need me to work out what we need to do to be able to double the number of phones and record every single call / listen in on as many calls as the want at any one time. Basically I have been given a blank cheque to achieve this (within reason).

Scrounging through the net, I see that there is no real guide to the hardware required for asterisk which makes this difficult. I don’t want to go out and spend $10,000 on a server, when $2000 would have done it, or $2000 on a server that then needs to be replaced with a $10,000 server in a week. Also, do I look at a couple of servers with load balancing & redundancy, or even virtulise the whole thing.

I’m thinking I get 2 server to replace the 2 servers that are running the phones, the database and fax server are probably fine. I’ll also need to look at storage space for all those extra calls, but I’ll look at something separate for that.

Any advise anyone can give me would be great, or even point me in the direction of some documentation. I don’t even know what codec et.c I use, so perhaps I have to work out what the server is currently doing vs load and go from there.

Basically HALP!



Well, first of all, you definitely need to assess where you are at as far as configuration-wise. How are your DL320s decked out as far as RAM/CPU/Disk? What codecs are you using between the phones, Asterisk, and your SIP provider? What does your network infrastructure look like (FastEthernet? GigabitEthernet?)

You’ll definitely want a dual (and probably quad core) processor, especially if you’re having to transcode codecs (which you’ll have to do if you’re running anything other than G711/ulaw and want to listen in on conversations). RAM isn’t key, just as long as you have enough in the system to keep it from swapping (4GB should be enough).

For recording everything, you’ll need a pretty decent I/O subsystem. To record 200 simultaneous calls using WAV format, you will need an IO subsystem that can sustain 140+ Megabits/sec (most likely a fiberchannel or SAS based system striping across multiple disk spindles). You can record them in other compressed formats at the cost burning more CPU on the Asterisk box.

Thanks for the quick reply jpsharp.

The 320’s are pretty crappy. P4’s (not sure which chip) with 2g Ram. HDD’s are varied, one is running a raid, while the others are just single sata drives. They are destined for the retirement room. I have no idea what codecs are in use, I’m busy reading the O’Reily books to try and work out how I tell now. The network is all Gigabit.

Been thinking on it. Its the 2 servers running the phones that are the main issue at the moment. The database server is doing very little, just running a MYSQL database (may look at moving the data to my MSSQL database and use an odbc connection anyway), and the Fax server only handles 100 faxes max a day.

The 2 “phone” servers run the phones at 2 separate sites, but both servers are hosted at head office. So I’m thinking I’ll keep it that way for very basic load balancing. However, if one server goes down, I’d like the ability to route the calls into the other server, so both need to be decent servers. At the moment I’m thinking something along the lines of these:

Processor Intel® Quad Core L5520 Xeon® Processor CPU, 2.26GHz, 8MB Cache, 5.86 GT/s QPI, Turbo
2nd Processor 2nd Intel® Quad Core L5520 Xeon® Processor CPU, 2.26GHz, 8MB Cache, 5.86 GT/s QPI,Turbo
Operating System No Operating System
Memory 12GB Memory (6x2GB), 1333MHz, Single Rank LV RDIMMs for 2 Processors
Factory Configuration C4: Add-in SAS6/iR, PERC6/I, H200 or H700 supporting 2 Hard Drives - RAID 1
Hard Drive 300GB 15K RPM,6Gbps SAS 3.5 " Non-Hot Plug Hard Drive
SAS/PERC Integrated card SAS 6/iR Integrated, Non Hotplug Chassis
Optical Drive 8x SATA slim DVD-ROM Drive for Ms 2008 R2
Powercords Jumper Cord for ANZ
Server Management Card iDRAC6 Express
Power Supply Power Supply, Redundant, 500W
Monitor No Monitor
Keyboard No Keyboard
Mouse No Mouse
Chassis option Chassis for Non-Hotplug Hard Drives and TPM Motherboard - R410, Westmere CPU
Rack kit Sliding Rail with Cable Management Arm

I think that should cover it. The recorded calls are currently being saved on the local HDD. Then every 10 mins a cron job runs that moves them to my data server. That seems to be adequate for our needs.

I’d say that should solve your problems. Except that whole MSSQL thing (ewwww MS). :smile:

What about using an OpenSips server to aggregate all sip phones then route or better yet distribute all traffic over a cluster of say 6 or so low-to-medium cost servers that are only responsible for handling and recording around 50 conversations each. Maybe use two of the current servers to use as OpenSip servers (use one have one for failover) then add the other servers to the Asterisk cluster along with a few more you purchase.

I would greatly appreciate if anyone could add to this.

Joel Shasteen