Load Testing Gateways(SBC’S)
There are number of tools you can use to load test SBC’s for Voice- some paid and few Open source. Lync also provides “Lync and stress testing” toolkit which can be used for testing although requires bit of work for the initial setup. SiPP is another Open source alternative which can be used for Voice deployments. The advantage of using SiPP is how quickly you can set it up.
In this article I will go through the complete process of installing & configuring SiPP to perform load testing on Sonus SBC 1000/2000. Although I will only discuss Sonus SBC’s the same process can be applied to any Gateway.
SiPP can run in different ways. Either you can run two SiPP endpoints- one acting as the server and the other as a client. You can make calls between the SiPP server endpoint and the SiPP client endpoint which go through gateway/SBC, or you can just use SiPP to make calls to a non-SiPP endpoints like a Lync client, PSTN, etc. We will be using SiPP to make calls to non-SiPP endpoints only in this article.
The high level steps are:
Install Cygwin – Provides necessary API’s to run some Linux apps on Windows e.g. SiPP
Install SiPP – The actual software which performs load testing
Perform load testing with SiPP
1. Download Cygwin from http://cygwin.com/install.html
2. Start the installation by clicking Setup.exe
3. Keep clicking Next using the default settings until you reach the window below
4. In the search box in the above window type in “libncurses” and press Enter
5. From the Search results select all (as below)
6. Now go back to the search box and enter “openssl” and select all as below:
7. Click Next
8. After clicking Next the download & installation of the packages begin.
9. Click Finish
10. This completes the installation of Cygwin.
11. Download the SIPP software from http://sipp.sourceforge.net/
12. After the download, click “sipp-win32-3.2-setup.exe” to start the installation
13. Follow the installation instructions. At the window below make sure you select the folder where Cygwin is installed. In my case Cygwin is installed to C:\cygwin (which is default):
14. Click Next, and then Install
15. To launch SiPP search for Cygwin Terminal in Windows Search Start menu
16. Once the Cygwin terminal launches enter cd /cygdrive/c/cygwin/Sipp_3.2.Only use this path if you installed SiPP in the same location as Cygwin.
17. Press Enter and now you are in the location from where we can start SiPP to do some testing.
Load Testing with SBC
For this example I will be using a Sonus 2000 SBC for load testing although you can use any SBC. I will not talk about SBC configuration as it is well documented by gateway vendors.
Below is the example I will be using:
Called Number: +448887776666
Gateway/SBC IP address: 10.10.10.2
Client IP (This is the machine (in this case my laptop) which has the SiPP client installed): 10.10.10.3
High Level steps on Sonus SBC 1000 to allow call routing:
1) Create the required transformation table on the SBC e.g.: : +44888777666 to 0888777666.
2) Create Signalling group on the gateway for SiPP. Make sure XXXXX you enter the IP address of the machine from where the SiPP client is running. In my case this would be 10.10.10.3.Infact if you do lot of testing and your IP changes frequently entering a subnet here will make life easy or better still assign yourself a static IP.
3) Create Call Routing table. Specify here where the calls will be routing to (in Destination Signalling group) when received from SiPP.eg: Send them to PSTN.
Once the entire necessary configuration on the gateway is complete we are all set to do some testing.
Below is the command syntax that will start load testing the SBC. I
./sipp -sn uac -d 20000 -s +448887776666 -i 10.10.10.3 10.10.10.2 -d 40000 -l 500 –r 10
The above command will make 5 concurrent calls to +448887776666 each lasting 40 seconds. The command only passes SIP messages but no RTP media.
./sipp -sn uac -d 20000 -s +448887776666 -i 10.10.10.3 10.10.10.2 -d 40000 -l 500 –r 10 –mp 6666
The above command also generates RTP packets hence provides more accurate results.
There are numerous parameters which can tweaked. I have only provided very basic examples. Below is the list of some of the key parameters you want to change. For complete list just type in sipp.exe at the shell which will give you complete help.
-s = The number you are calling. This number can be any number even a Lync Response group number as long as the SBC can route the call.
-i = Your client IP (where SiPP is running) followed by SBC IP
-d= Duration of the call in milliseconds (In our example 40 seconds)
-l= Maximum number of simultaneous calls
-r=Rate of calls (calls per sec)
To test the capability of the SBC you would have to change the –l parameter and see what your SBC can handle. Start with the lower value and keep increasing.
Once the calls are complete SiPP will generate a on-screen report detailing providing statistics around calls performed. While the calls are going through you can also go into the SBC 1000/2000’s monitor tab and watch for the Active channels.
In future articles I will discuss how you can use SiPP for load testing Lync Voice deployments as well