Asterisk is becoming more and more a choice for larger installations, both in Enterprise as well as Carrier environments. While SMB (small/medium business) continues to be the heart of the user base, it seems that many of the questions on the minds of the user and developer community have to do with scale, redundancy, and configuration issues which are relevant to larger installations.
To encourage the improvement and testing of larger-scale Asterisk systems, I’d like to repeat here what I mentioned today on the asterisk-dev mailing list: I’m putting out a semi-official challenge in place. The first person to get an Asterisk system moving 10,000 G.711 call legs through a single instance on a single machine will get a first-class steak dinner at Astricon. And a great bottle of wine, if that is your preference.
This isn’t an X-prize, but the concept is the same – think of it as an S-prize. “S” means “Steak”. Or maybe “Salad” if you’re a vegetarian.
There are some serious hurdles here, for both software and hardware. Ten thousand channels sounds like a lot, and it is. But it can be done, and is already done with custom hardware from closed-source vendors. Open Source Asterisk has not been (to my knowledge) tested at anywhere near that capacity, though attempts have been made in the thousands of channel level ranges with good successes. However, there are significant “walls” to climb between ~2500 channels and 10000 channels, and this is not merely a linear application of processing power. Just the throughput for this 10k challenge is pretty impressive: 500k packets per second per direction at 20ms, and 820mbps per direction. Ethernet trunking/bonding may be required to overcome IRQ issues, or certainly very close administration of a gigabit interface. Operating system tuning will be required in conjunction with Asterisk tuning (and probably patching.) Documentation on how you achieve this will help everyone, and this is an “open” challenge.
I know that the Asterisk community is already headed in the direction of making these kinds of advances. This is merely an incentive to speed up the process, and hopefully get some discussion going as to how people might solve the problems both in the Asterisk implementation as well as on the systems which are required to handle that kind of throughput. Everyone benefits from the effort, and I think it can be done with some concentration and clever design.
Will there be some other platform that makes it there first, or has someone already reached that number? Maybe! I think any work done towards improving VoIP RTP throughput on Linux systems at these high packet-per-second rates will benefit everyone, especially if it’s an Open-Source solution that reaches the goal first.