I want to test my voip system, but I cannot find a good software which can generate RTCP RR packets for statistics.

I already tried out these tools:

  • rtptools: It is basically just stream a recorded pcap.
  • sipp: Does the same, but you can make concurrent calls.
  • ffmpeg: It is almost good, but the RTCP RR support only works with RTSP and the UDP RTSP is not working. I think it's a bug, because if I try to set stream with UDP it will starts to stream with TCP.
  • GStreamer: Seems too complex to me and I feel it's not the best option to create such traffic.

This is my command for ffmpeg RTSP stream: ffmpeg -loglevel repeat+level+trace -re -i input.mp3 -f rtsp -rtsp_transport udp rtsp://localhost:8554/live. Maybe I am doing something wrong, but the logs shows clearly that the ffmpeg tries to make a TCP connection.

Also I found a lot of good and paid solutions, but I can't pay that amount of money.

I am also interested in any kind of library for any kind of programming language.


I was able to run the ffmpeg command properly, but the rtpengine couldn't handle RTSP traffic.


1 Answer 1


There is a bit of a learning curve but Scapy is a python tool which can capture, generate & send literally any type of network traffic. This includes valid and invalid packets, any existing protocol and even protocols that don't yet exist.

So you should be able to generate (interactively, programmatically and by replaying) the traffic that you require, as well as a lot of other tricks to help with your testing and debugging.

The best bit is that it is free, gratis & open source, and available for a number of platforms.

  • 1
    Thank you very much. Meanwhile I found a solution what can generate such reports. I basically build up a whole voip system with Kamailio and Linphone, so I can generate a big load with ffmpeg and one with Linphone and it will generate rtcp rr. But in a longer run I will definitely build a better solution with Scapy, so I accept your answer.
    – ricsi
    Apr 6, 2021 at 12:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.