I recently wrote a post on software-based transcoding limits on common virtualisation hardware.
To do this I needed to make a lot of calls, consistently, so as to generate some pretty graphs and stats.
To do this, I used SIPp (a performance testing tool for SIP) to simulate many concurrent calls leading to many concurrent transcoding sessions.
Installation
I built SIPp on Ubuntu 18.04:
apt-get install make autoconf pkg-config automake libncurses5-dev libpcap* git clone https://github.com/SIPp/sipp.git cd sipp/ ./build.sh --with-rtpstream cp sipp /usr/local/bin/
Next I setup RTPengine and setup Kamailio to use it.
I modified the Kamailio config allow Transcoding, as I talked about in the post on setting up Transcoding in RTPengine with Kamailio.
Now I had a working Kamailio instance with RTPengine that was transcoding.
So the next step becomes testing the transcoding is working, for this I had two SIPp instances, one to make the calls and once to answer them.
Instance 1
Makes calls to the IP of the Kamailio / RTPengine instance, for this I modified the uac_pcap scenario to playback an RTP stream of a PCMA (G.711 a-law) call to the called party (stored in a pcap file), and made it call the Kamailio instance multiple times based on how many concurrent transcoding sessions I wanted:
sipp -m 120 -r 200 -sf uac_pcap.xml rtpenginetranscode.nickvsnetworking.com
Instance 2
Instance 2 acted as a simple SIP UAS, the call came in, it answered and echoed back the RTP stream it received.
sipp -rtp_echo -sf uas.xml