Homegrown SIP load testing platform

I am interested to see if y'all have recommendations for putting together a
SIP load testing platform using general purpose hardware and open-source
(or inexpensive) software. We are aware of Empirix Hammer and similar
solutions, and we are looking to see if there is an alternative option.

- Generate somewhere on the order of 20k phone calls with real SIP and RTP.
- Route the flows through our VoIP infrastructure to test performance
- Receive and analyze the SIP and RTP on the other end to find out at what
load the signaling and/or media start to break down.

Attempted already:
- SIPp spread across many servers. Here the limiting factor seemed to be
the CPU load from the interrupts from each packet. The CPU on the servers
sending and receiving the phone calls got bogged down before the VoIP core.
- We have dabbled with interrupt moderation in the NIC drivers, but this
has not seemed to help very much.

Looks interesting:
- Has anyone had success using PF_RING with Direct NIC Access and libzero
from the folks at ntop? Has anyone been able to use this with SIPp or some
other SIP and RTP generator?

Many thanks,

Jon Chleboun

Hey Jon,

This comes up on the voice ops list pretty regularly. Some folks have mentioned SIPVicious as a method for sip testing, but I think that's more for pentesting.

The Empirix stuff seems to be the state of the art today. On a previous thread I talked a bit about quality monitoring and why the stuff in the industry today isn't really giving you the kinds of feedback you're looking for, but load testing is a different problem.

If you do end up playing with the interrupt timers on the NICs, and you're successful, I'd love to hear what worked.

Some food for thought: we've got a set of tickets open with the TAC because a large router (sorry I don't have the model number) bricked in a repeatable fashion at 300 calls per second. It shouldn't be true, but sometimes the gateway device is the limitation, although I don't know if this is applicable in your example.

Anyways, I'm sorry I can't be of more help, but I personally see load testing at scale as a big unsolved problem for operators.