SIP Load Testing

Load Multiplier simulates SIP servers (Registrar / Proxy / Redirect server / B2BUA / P-CSCF / I-CSCF / S-CSCF). Additionally it can simulate millions of SIP endpoints to load SIP registrars, SIP proxy servers, P-CSCF, I-CSCF and S-CSCF severs. You can see few select use cases in below diagram.

SIP Load Testing

When you deal with SIP Load Testing, you look for scalability, long hour uninterrupted load testing, live result updates, live statistics and live graphs. Moreover you may need IETF call flows, 3GPP call flows, message content manipulations, sequence manipulations, new transactions, out of box call flows etc.

Load Multiplier offers all these features.

Load Multiplier is software based tool. You can use either normal desktop machine or blade servers (with Ubutu 14.04 LTS, 64 bit OS) to install Multiplier. It's easy to simulate as much as endpoints / virtual-users in a typical Multiplier environment using Multiplier's high scale machine cluster architecture.

You can load test various entities involved in a typical SIP / IMS network like SIP registrar / proxy / redirect server, P-CSCF / I-CSCF / S-CSCF, Presence server, Messaging applications, Media server etc. It is easy to configure Load Multiplier to simulate IETF / 3GPP call flows to load products specified above. Please refer below diagram for more details.

You can avail either an enterprise version or cloud one depending on your usage and requirement. Various features supported are listed below.

Features - High Level
  • Registration
  • Call setup
  • Session Modification
  • DTMF
  • Call Hold
  • Call Transfer
  • Call Termination
  • Instant messaging
  • Presence
  • Unregistration
Features - Detail

Different kind of transports supported for signalling are

  • TCP
  • UDP
  • SCTP
  • TLS
  • Web socket
  • Secured web socket

Various audio codes supported are

Various video codecs supported are

RTP security supported using

  • SRTP
  • Key exchange using DTLS

Various media transports supported are

  • UDP
  • DTLS
  • SRTP/DTLS

To avoid NAT / Firewall issues below features are supported

For message/sequence manipulation below functionalities are supported

  • Addition of new headers
  • Modification of existing headers
  • Removal of existing headers
  • Introduction of stand-alone transactions
  • Define your own out of box call flows / transactions as you need
  • Inject any other custom text / binary messages during call

In addition to that you can have wide range templates for message variations to simulate required call flow.

Statistic / Report

You can see live reports as test progress in a tabular format in report dashboard as shown in below table.

Dashboard

If you want to see reports how test fared over a period of time, you can look at graphs provided by Load Multiplier (Drawn on basis of data captured every 15 second). You can see graphs for network traffic (TCP, UDP, SCTP, DTLS, TLS, Websocket, Secured Websocket) etc, media streams / sessions, calls, transactions, ports used, ICE sessions etc.

Certain graphs are shown below for visual representation.


Media Streams

Network Bytes

Media Sessions

You can see the graph data (captured every 15 sec) in a tabular format as well.

So if you put together you have all advanced features, message content manipulation, message sequence manipulation, advanced audio / video codecs, live reports, live statistics, live graphs all required by a load testing environment. And more importantly Load Multiplier memory usage is low and using cluster architecture technically you can simulate unlimited load for long duration.

Now in below paragraph, lets focus on standard / RFCs covered by Load Multiplier.

RFC / Standard Compliance

The Load Multiplier supports wide range of scenario in SIP. An abridged list of supported scenario are mentioned below -

  • Emulate Registration, Re-registration and Un-registration for thousands of SIP endpoints.
  • Ability to generate thousands of calls at an user-configured CPS, for user-configured call duration, and user-selected media codec/s from the supported codec list as provided above.

    Load Multiplier supports multiple types and combination of calls, like -
    1. One party calls i.e. one call leg only e.g. dialing into IVR server or audio/video conference call servers ( with media TX/RX passing through media server and/or turn server, etc. ).
    2. Two party calls with audio or audio/video support ( with media TX/RX being peer-2-peer, or passing through media server and/or turn server, etc. ).
    3. Multi-party calls – Audio or audio/video conference call ( with media TX/RX passing through media server and /or turn server, etc. ).
      Refer to here for more details about the call flows.
  • It supports subscriber presence related subscription and notification handling.
  • It supports SIP based instant messaging / chat sessions (in the page mode as well as session mode),etc.

Load Multiplier supports a wide range of SIP standards. An abridged list of SIP standards supported from the perspective of emulation of endpoints for load generation, are given below.

  1. RFC 3261 ( SIP method REGISTER, INVITE, ACK, CANCEL, BYE, OPTIONS, REFER )
  2. RFC 2848 ( SIP method SUBSCRIBE, UNSUBCRIBE, NOTIFY )
  3. RFC 2976 ( SIP method INFO )
  4. RFC 3262 ( SIP method PRACK )
  5. RFC 3264 ( Offer Answer Model)
  6. RFC 3265 ( SIP specific Event notification)
  7. RFC 3311 ( SIP method UPDATE )
  8. RFC 3312 ( SIP Precondition)
  9. RFC 3428 ( SIP method MESSAGE )
  10. RFC 3515 ( SIP method REFER )
  11. RFC 3842 ( SIP method MESSAGE WAITING INDICATION )
  12. RFC 3856 ( SIP presence event package )
  13. RFC 3903 ( SIP method PUBLISH )
  14. RFC 6914 ( IETF Specifications for Instant Messaging and Presence using SIP )
Call flows

From the perspective of SIP audio and audio / video call flows, the Load Multiplier supports the following standards -

You can simulate IETF, 3GPP call flows as per standard rule, and additionally you can inject other messages like any SIP messages, any text messages, any binary messages during call.

This flexibility in Load Multiplier makes it possible to simulate entire spectrum of standard / out-of-standard call flows as required.