AI and VoIP Blog

VOIP | AI | Cloud | Kamailio | Open Source


Step-by-Step Guide to SIPp : Build and Install from Source

sipp

Introduction

SIPp is a powerful open-source traffic generator for the SIP protocol. In this post, we’ll pull the latest release from GitHub, build it with your choice of features (SSL, PCAP, SCTP), and install the sipp binary such that it’s available system-wide.


Prerequisites

  • A Debian/Ubuntu server or VM
  • Root (or sudo) access
  • Internet connectivity

1. Prepare your workspace

Choose a directory where you’ll download and build SIPp. Commonly, /usr/local/src is used for third-party source builds:

cd /usr/local/src

2. Grab the latest release tag

We’ll use the GitHub API so you always get the newest stable version:

LATEST_TAG=$(curl -s https://api.github.com/repos/SIPp/sipp/releases/latest \
  | grep '"tag_name":' \
  | cut -d '"' -f 4)

This stores something like v3.7.3 in $LATEST_TAG.


3. Download & unpack the tarball

Strip the leading “v” for the filename and pull down the .tar.gz:

VERSION=${LATEST_TAG#v}
wget -c https://github.com/SIPp/sipp/releases/download/"$LATEST_TAG"/sipp-"$VERSION".tar.gz
tar xvf sipp-"$VERSION".tar.gz
cd sipp-"$VERSION"

4. Install build dependencies

Make sure your package index is fresh, then install the tools and libraries SIPp can leverage:

sudo apt update
sudo apt install -y build-essential libncurses-dev libssl-dev \
                    libpcap-dev libnet1 lksctp-tools libsctp-dev cmake
  • build-essential: GCC, make, etc.
  • libssl-dev: TLS support
  • libpcap-dev: PCAP capture/playback
  • libsctp-dev: SCTP transport

5. Configure & compile

Run CMake to generate your Makefiles, enabling SSL, PCAP, and SCTP:

cmake . -DUSE_SSL=1 -DUSE_PCAP=1 -DUSE_SCTP=1
make

If you only need basic SIP messaging, you can omit the corresponding -DUSE_… flags.


6. Install the binary

Copy the resulting sipp executable into your system’s PATH:

sudo cp sipp /usr/local/bin

Now you can run sipp from anywhere:

sipp -h

Basic SIPp Commands

Once you’ve got /usr/local/bin/sipp in place, here are a few handy commands to get you started:

Dump a built-in scenario to XML

# Export the “uac.xml” scenario template to your current directory
sipp -sd uac > uac.xml

This writes out the “user-agent client” (UAC) scenario so you can customize call flows.

Run SIPp as a UAC (client)

# Act as a SIP client, sending REGISTERs or INVITEs to 192.0.2.1:5060
sipp -sn uac 192.0.2.1:5060

Replace 192.0.2.1 with your SIP server’s address (and append -s <user> or other flags as needed).

Run SIPp as a UAS (server)

# Listen on port 5060 for incoming calls, using the built-in UAS scenario
sipp -sn uas -i 0.0.0.0 -p 5060

Here -i sets the local interface and -p the port. UAS will reply to INVITEs using the default server behavior.


Quick Loopback Test

To quickly
1. Terminal #1 (UAS/server)

sipp -sn uas

2. Terminal 2 (UAC/client)

sipp -sn uac 127.0.0.1 -m 10 -d 10000

-m 10 → send 10 calls
-d 10000 → 10 000 ms call duration

You should see INVITE/OK/ACK sequences and then a clean teardown—confirming your build is working end-to-end.

Additional Links

SIPp Github Repo – link
SIPp Documentation – link

Conclusion

You’ve built and installed the latest SIPp release from source! This approach ensures you always get new features and bug fixes without waiting for distro packages.

Happy testing!

Join 753 other subscribers

Leave a comment

Akash Gupta
Senior VoIP Engineer and AI Enthusiast



Discover more from AI and VoIP Blog

Subscribe to get the latest posts sent to your email.



Leave a comment