SIPp + CUCM 12.x/15.x: Powerful Load Testing for Cisco Call Manager

SIPp + CUCM 12.x/15.x: Powerful Load Testing for Cisco Call Manager

 

Introduction

Looking to load test Cisco Call Manager with basic or enhanced call scenarios? Recently, I decided to put CUCM 12.x/15.x through its paces using simple SIP calls. My setup included CUCM 12.x/15.x and SIPp 3.3.990 to see how well the system could handle the load.

Setup Overview

  • CUCM Version: 12.x/15.x
  • SIPp Version: 3.3.990

What is SIPp?

SIPp is a robust, open-source test tool and traffic generator for the SIP protocol. It includes several basic SipStone user agent scenarios (UAC and UAS) and can handle complex call flows described in custom XML scenario files. SIPp dynamically displays statistics about running tests, such as call rate, round trip delay, and message statistics, and can dump periodic CSV statistics. It supports TCP and UDP over multiple sockets, multiplexed with retransmission management, and dynamically adjustable call rates.

Installing SIPp

To use SIPp on Linux, you’ll need to compile it from source code. Here’s a step-by-step guide:

Pre-requisites:

  • C++ Compiler
  • curses or ncurses library
  • OpenSSL >= 0.9.8 (for TLS support)
  • libpcap and libnet (for pcap play support)
  • lksctp-tools (for SCTP support)
  • Gnu Scientific Libraries (for distributed pauses)

Compilation Options:

  1. Without TLS, SCTP, or PCAP support (recommended for basic use):
    tar -xvzf sipp-xxx.tar.gz
    cd sipp
    ./configure
    make
    

     

  2. With TLS support:
    tar -xvzf sipp-xxx.tar.gz
    cd sipp
    ./configure --with-openssl
    make
    
  3. With PCAP play support:
    tar -xvzf sipp-xxx.tar.gz
    cd sipp
    ./configure --with-pcap
    make
    

     

  4. With SCTP support:
    tar -xvzf sipp-xxx.tar.gz
    cd sipp
    ./configure --with-sctp
    make
    

     

  5. Combining multiple options:
    tar -xvzf sipp-xxx.tar.gz
    cd sipp
    ./configure --with-sctp --with-pcap --with-openssl
    make
    

Once compiled, SIPp is ready to use. You can generate SIP calls to a remote system from the command line.

Running SIPp

To demonstrate SIPp’s capabilities, you can start two instances of SIPp on the same host:

  1. Server (uas) scenario:
    ./sipp -sn uas
    

     

  2. Client (uac) scenario:
    ./sipp -sn uac 127.0.0.1
    

     

By default, SIPp generates 10 calls per second. To change this, use the -r parameter:

./sipp -sn uac 127.0.0.1 -r 50

This command generates 50 calls per second.

Configuring CUCM

 

Registering a Phone and Setting Up Trunks

  1. Register a phone and enable auto-answer.
  2. Configure “Multiple Call/Call Waiting Settings” for the extension.uccollabing.com
  3. Create two SIP trunks (one incoming and one outgoing). Use two different CUCM clusters to avoid IP conflicts. Alternatively, you can adjust incoming/destination ports.
  4. Incoming Trunk: From the SIPp server with CSS access to a registered phone and the outgoing trunk.
  5. Outgoing Trunk: Pointing to the other CUCM server.
  6. On CUCM2:
    • Configure an incoming trunk from CUCM1.
    • Configure a SIP trunk to the SIPp server.
  7. Create a route pattern (e.g., 30XX) to route calls to the SIPp server.

Running SIPp with CUCM

To generate SIP traffic, run SIPp on both server and client sides:

Server Side:

sudo ./sipp -sn uas -i 172.16.0.165 -p 5060 -trace_err

Client Side:

./sipp -sf uac.xml 172.16.0.160:5060 -s 3000 -i 172.16.0.165 -r 20
  • uac.xml: Simple XML scenario for a call (available at SIPp Documentation)
  • 3000: Destination extension
  • 172.16.0.160: CUCM IP
  • -r 20: 20 calls per second

Performance Verification

You can also verify the CPU load using tools like top or htop. The vCenter performance tab further confirms the load:

Conclusion

Using SIPp with CUCM 12.x/15.x, you can effectively simulate and test the load handling capabilities of your Call Manager setup. This process helps identify potential bottlenecks and performance issues, ensuring a robust VoIP infrastructure.

Thank you for reading!

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top