Here at Reperio, we utilize the open source Kazoo platform as the basis for our realtime voice/video collaboration platform. We try to contribute everything we do back to the original code base. We are finding that testing this platform (since it’s not just a single codebase), both from our work and from upstream releases, is becoming more important now more than ever. The original author, and maintainer/steward of Kazoo, 2600hz, has built a testing framework called MakeBusy to accomplish this. However, it is written in PHP and very difficult to provide multiple, distributed, asynchronous actions and measurements that scale out.
We are strongly considering developing a new testing platform that can accomplish all of our goals with infrastructure and tools we’re most familiar with (and are also well adopted else wise). Another consideration is to build a platform that is not completely Kazoo centric (although our initial implementation will most certainly be).
The needs for testing a complicated API based soft switch are much more than just sending SIP messages back and forth. We are most concerned with full functionality testing from a fully deployed system. Here are the many things we need to be able to test for:
There are many other things that should be tested as well (not an exhaustive list, just to get an idea):
Because we’re an open source centric company, we’re only interested in tools/frameworks that can be released as open source software for everyone to use and contribute back to. There are quite a few open source tools available for testing SIP specifically:
We plan to begin the node.js codebase as soon as possible. We will likely use hapi.js for the REST/Websockets side of things (mostly because that’s what we use internally for everything else). There are implementations of WebRTC clients: jssip for example. However, this does not provide the RTP portion of the client. Either we will need to find/extend an existing NPM module for this, or write one ourselves for this use case.
Another goal would be to provision the Freeswitch instances via mod_xml_curl. This way we can provide a single or a few UAC’s for tests, and then re-provision with 1000’s if needed.
Your information is 100% secure