I have a plan to compare SIP and IAX2 channel performance on Asterisk versions 1.4.x and 1.6.x. Digium bragged that they improoved the SIP performance on Asterisk 1.6 for a big margin, so I would like to test this out
So the plan is to use one PC, where Asterisk 1.4 and Asterisk 1.6 would be installed and tested (not simultaniously afcoarse). In the test I would stress the Asterisk box with couple 100 concurrent calls and monitor the CPU and Network load. For that I would also need a couple more Asterisk boxes, that would serve as call origin/destination simulators. So the setup would be something like this:
(Asterisk boxes for call originatination)------------Test Asterisk box---------------- (Asterisk boxes for call termination)
The border Asterisk boxes would be connected to the central Asterisk box via SIP or IAX2 trunk (depends on the test), all the boxes would be on the same LAN. The central Asterisk box would only do call routing and proxying of RTP packets, the border Asterisk boxes would take care of call origination and termination. I would initiate calls with a simple bash script, that would generate Call Files and I would terminate calls within Asterisk dialplan on another border Asterisk box.
I already did one test, and these are the dialplan configs that I used. An example is for a call from ext. 100 to ext. 150, where a call is initiated with a Call File on a border Asterisk box and is routed to the central Asterisk box, that routes it to another border Asterisk box, where the call is anwered.
extensions.conf context for Asterisk server where the call-origination takes place:
[call-origination]
exten => 100,1,Answer()
exten => 100,n,Wait(30)
exten => 100,n,Hangup()
extensions.conf context for Asterisk server where the call-termination takes place:
[call-termination]
exten => 150,1,Answer()
exten => 150,n,Echo()
exten => 150,n,Hangup()
All sounds OK in theory (at least to me ), but in the actual test I found very low CPU consuption and low network load with multiple hundreds simulated simultanious calls. I do not know what is the exact problem, but I suspect that the Wait()/Echo() applications are not generating any network traffic (even though both legs of a SIP call are opened, no voice traffic is passing through), so the central Asterisk server is not stressed at all. Am I right? Would I need to use any other dialplan applications to simulate the actual audio stream that is generated on an actual call? Or do you have any additional proposition about my test scenario?
I did a lot of internet searching about the Asterisk performance testing and I got to the SIPp application, but that does not help me out too much, because I need a test tool that supports SIP and IAX2, so that is why I am trying to make my own custom test bed. Any help is greatelly appreciated.
PS.
I have a lot of Asterisk experience and can do a bit of programming, so donât be afraid to be too technical for me