Page Contents
Original Website – http://sipr.agnity.com/
Introduction
SIPr pronounced as Sipper is a complete SIP application testing framework ideally suited for feature, interop, regression, acceptance and field simulation.
SIPr is a SIP development framework that makes it easier to develop, deploy and maintain SIP
applications and SIP tests.
The SIP stack in SIPr is the world’s most flexible and configurable SIP stack and that makes it ideally suited to develop test cases on it.
SIPr is however not just a SIP stack but provides an application server style programming
model that offers a range of constructs from extremely simple and very high level to complex
low level interfaces to control every aspect of the SIP stack.
At every level Sipper is designed with ease of use in mind, simple things are done extremely
easily and complex things are made possible.
The goal is to enable Creation of any call flow without exceptions
We have two high level objectives
- Make anything possible in SIP available to SIPr users; specifically, any SIP call flow should be possible on SIPr
- Make sure that the usage of the features is made available in the simplest possible way.
SIPr value proposition
- Simulate SIP endpoints, in the form of SIP test cases for any SIP call flow
- Simulate SIP servers like B2BUA, Redirect server, Registrar, Proxy, IMS entities etc.
- Create test cases by using helper scripts, scripting and also trace/capture based automatic generation
- Complete SIP Signaling and basic media support
- SIP and HTTP integration, write tests that exercise converged applications including Web2.0 mashups
- Regression testing with automated scripts, cron or trigger based
SIPr architecture
At a first glance SIPr is like a standard SIP stack, which it is fundamentally, but where it shines is the configurability and pluggability. By default the standard SIP behavior is exhibited by SIPr but you can optionally control every single aspect of SIP stack like
- Change message from/to the wire in any way at transport layer
- Modify transport settings, including switching transports
- Supports multiple transports, can even associate different transports, IP, Ports to different tests on the same SIPr installation
- Completely pluggable and extensible parsers
- FSM based transaction state machines, modifiable by transaction handlers, individual transaction timers can be controlled even at each test case level
- Complete control of all SIP messaging including dynamic headers on the fly, new parameters etc
- Complete dialog state machine control
- Configuration at various levels, completely multithreaded for simultaneous test simulation
- Fully automated to run tests in batch (test suites)
- Exposes a very powerful (yet simple) SIP API to write SIP tests
SIPr’s power is its many layered API where simple usage is extremely simple and approachable to non-programmers. As an example, you can write simple tests using code generating scripts without writing a single line of code. If you want more control you can use SIPr simple APIs but if you want to complete control any aspect of SIP call then SIPr allows you to do practically anything. Since SIPr is open source you can even modify and re-distribute any enhancement that thinks of yourself or release a new plugin.
Getting started
Getting started with SIPr is very easy. On the main SIPr website there is plenty of material to get you going. In fact there is a wiki page dedicated to getting started on SIPr