VoIP perf
It is a SIP signaling performance testing application that can provide a server and a client. It can produce latency stats at specified intervals in csv to measure the response time of any SIP endpoint. It can also read a json configuration file and randomize numbers.
./voip_perf \ --local-port=5072 \ # server listening port --trying \ # when receiving invite 100 trying will be send --ringing \ # when receiving invite 183 will be sent --thread-count=4 \ # number of server threads created --delay=1500 # ringing delay in MS 1.5 secondThis will send one INVITE to a randomise number starting with +1206?????? to server 1.1.1.1
./voip_perf \ "sip:+1206???????@1.1.1.1" \ # target R-URI, <?> will be replaced by random digit --method="INVITE" \ # method --local-port=5072 \ # source port --caller-id="+1??????????" \ # user part of the From header, <?> will be replaced by random digit --count=1 \ # total calls to send --proxy=2.2.2.2 \ # this will send the SIP message to a SIP proxy instead of the host in R-URI --duration=5 \ # send BYE after 5 seconds --call-per-second=500 \ # send 500cps --window=100000 \ # maximum amount of in progress calls --thread-count=1 \ # number of thread used --interval=1 \ # reporting interval, everyone second a line is added to voip_perf_stats.log with latency metrics --timeout 7200 # total run time , if all the requests where not send, voip_perf will stop and report scnenario timeout # --verbose # runwith verbose logs./voip_perf "sip:+1??????????@sip.domain.com:5061;transport=tls" \ --local-port=5050 \ --method="INVITE" \ --caller-id="+1??????????" \ --interval=1 \ --count=20 \ --call-per-second=10 \ --window=25 \ --thread-count=1 \ --use-tls \ --timeout 7200 \ --tls-cert="tls/certificate.pem" \ --tls-key="tls/key.pem" \ --tls-calist="tls/ca_list.pem" \ --conf="conf.json" #--verbose \{ "server" : [ { "response" : [ { "code" : 200, "reason" : "OK", "probability" : 0.6 }, { "code" : 404, "reason" : "Not found", "probability" : 0.3 }, { "code" : 0, "reason" : "drop/no response timeout", "probability" : 0.1 } ] } ], "client": [ { "extra-headers": { "Foo": "Bar", "Bar": "Foo" } }, { "users": [ { "ruri": "sip:12063??????@192.168.10.10", "extra-headers": { "Bar": "Open" } }, { "ruri": "sip:12063??????@192.168.10.10", "extra-headers": { "Bar": "Close" } }, { "ruri": "sip:12063??????@192.168.10.10", "extra-headers": { "VIP": "True", "Bar": "Open" } } ] } ] }You can add custom headers in this file
include/custom_headers.h voip_perf was initially a fork from pjsip-apps/src/samples/pjsip-perf.c
