We are planning to run an outbound only campaign. A 20-second voice message will be played to callers and our dialer on machine1 will send to machine2-asterisk (1.4) instructions to dial 400 calls, play the message and hang up. This will be done for about 1 million phones. The asterisk box will communicate via SIP to a voice carrier. the voice carrier will then place the calls on pstn. The codec will be g711. So we will never do any transcoding. I have been calculating the CPU power required to do the calls and in previous posting the usual calculation is about 40MHZ per leg when no transcoding is involved. So if we use the 40MHZ rule, we are talking about 40*400=16000MHZ or 1.6Ghz. Comments? -- ------------------------------------------------------------ Erick ------------------------------------------------------------ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20090401/e4e3d52a/attachment.htm
Asterisk max call estimation doesn't scale linearly ... it might in the future with some fixes they're adding. For your application you could use some other open PBX that is known not to have 'Asterisk' limitations. Anyways most people will tell you to simply buy a box and make a test. Noone knows the exact numbers since it's dependant on your kernel version/asterisk version/CPU/motherboard/ethernet card/ memory speed/hdd speed etc. Just make sure the "message" is encoded in G711 ulaw/alaw so there's no transcoding... (use sox) Martin On Wed, Apr 1, 2009 at 10:46 PM, Erick Perez <eaperezh at gmail.com> wrote:> We are planning to run an outbound only campaign. A 20-second voice message > will be played to callers and our dialer on machine1 will send to > machine2-asterisk (1.4) instructions to dial 400 calls, play the message and > hang up. This will be done for about 1 million phones. > > The asterisk box will communicate via SIP to a voice carrier. the voice > carrier will then place the calls on pstn. The codec will be g711. So we > will never do any transcoding. > > I have been calculating the CPU power required to do the calls and in > previous posting the usual calculation is about 40MHZ per leg when no > transcoding is involved. > So if we use the 40MHZ rule, we are talking about 40*400=16000MHZ or 1.6Ghz. > > Comments? > > -- > ------------------------------------------------------------ > Erick > > ------------------------------------------------------------ > > _______________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > ? http://lists.digium.com/mailman/listinfo/asterisk-users >
Gordon Henderson
2009-Apr-02 08:33 UTC
[asterisk-users] 400 calls at g711 how much cpu power
On Wed, 1 Apr 2009, Erick Perez wrote:> We are planning to run an outbound only campaign. A 20-second voice message > will be played to callers and our dialer on machine1 will send to > machine2-asterisk (1.4) instructions to dial 400 calls, play the message and > hang up. This will be done for about 1 million phones. > > The asterisk box will communicate via SIP to a voice carrier. the voice > carrier will then place the calls on pstn. The codec will be g711. So we > will never do any transcoding. > > I have been calculating the CPU power required to do the calls and in > previous posting the usual calculation is about 40MHZ per leg when no > transcoding is involved. > So if we use the 40MHZ rule, we are talking about 40*400=16000MHZ or 1.6Ghz. > > Comments?I don't personally think CPU GHz is a good measure for something like this, there are many other factors at work when things get "big"... One thing I'd be concerend about is the number of packets per second and how the underlying hardware is going to cope with shoving them out - and remember VoIP is bi-directional, so even if you're just sending data out, there will still be data coming in at the same rate... So 50 packets (of 160 bytes + IP overhead) per second, each way times 400 is 40,000 packets per second that the system has to get to and from the Ethernet card. You might want to check the specification of your router too to make sure it can handle that load... Oh, and bandwidth - you're looking at 80Kb/sec for each call - that's going to need 32,000Kb/sec or 32Mb/sec - and remember that's each way.. As for the server - get *everything* in RAM. At least with no disk IO, it's one less thing going over the PCI bus when it's running - even then, you may want to look for a server motherboard with multiple PCI buses, although working that out beforehand is sometimes problematic unless you have the time to go through the motherboard manuals in detail, or know beforehand what motherboard does what... And you may find that a uni-processor server is better than multi-core too to minimise locks at the kernel level with multiple cores accessing the same Ethernet hardware... And you can always use 2, 3 or 4, etc. outbound call servers - with the one dialler round-robbining the calls to each server. That might be a better idea anyway than one big beast of a server. Good luck! (And let us know how you get on!) Gordon
Jeff LaCoursiere
2009-Apr-02 14:33 UTC
[asterisk-users] 400 calls at g711 how much cpu power
My only comment is that I am having moral issues with assisting anyone that is planning to call one million phone numbers to play a message and hang up. Doesn't sound like an "opt-in" kind of campaign to me. When such a thing happens to me on my home phone I get extremely angry. j On Wed, 1 Apr 2009, Erick Perez wrote:> We are planning to run an outbound only campaign. A 20-second voice message > will be played to callers and our dialer on machine1 will send to > machine2-asterisk (1.4) instructions to dial 400 calls, play the message and > hang up. This will be done for about 1 million phones. > > The asterisk box will communicate via SIP to a voice carrier. the voice > carrier will then place the calls on pstn. The codec will be g711. So we > will never do any transcoding. > > I have been calculating the CPU power required to do the calls and in > previous posting the usual calculation is about 40MHZ per leg when no > transcoding is involved. > So if we use the 40MHZ rule, we are talking about 40*400=16000MHZ or 1.6Ghz. > > Comments? > > -- > ------------------------------------------------------------ > Erick > > ------------------------------------------------------------ >
On Wed, 2009-04-01 at 22:46 -0500, Erick Perez wrote:> So if we use the 40MHZ rule, we are talking about 40*400=16000MHZ or > 1.6Ghz.It's been my experience that CPU load of Asterisk don't scale linearly with call volume. I don't pretend to understand all the reasons why, but it probably has a lot to do with call structures inside of Asterisk. For example, searching a linked list is simple when there are only a few items in the list, but the more items that get added to the list, the more CPU time it takes to finish the task, on average. I know the Asterisk developers spent a lot of time and effort improving the performance of the internal structures between the 1.4 branch and the 1.6.0 branch... if I were you, I'd at least give the 1.6.0 branch a shot. -- Jared Smith Training Manager Digium, Inc.