This is a simple test that gives you an estimation of audio conferencing scalability of FreeSWITCH on your hardware.
- You need one or two FreeSWITCH servers, and one of them should answer to sip:moh@IPADDR:5080. The fastest way is to install this FreeSWITCH configuration: https://github.com/xlab1/voip_qos_probe
- Edit vars.xml and remove G722 codec (or leave or replace it, if you want to test transcoding performance at the same time).
- Start FreeSWITCH:
service freeswitch start
- Create conference participants by calling the MOH extension on the remote or the same server. This command will add a few dozens of participants in one go:
timeout 2 sh -c "while true; do fs_cli -x 'conference xx dial sofia/internal/moh@IPADDR:5080'; done"
- check the number of participants:
fs_cli -x 'show channels'
- run “top” or “mpstat -P ALL 1” to see the CPU load, and add more batches of participants.
This test differs from real world because in a real conference, one speaks and others are listening. Here everyone speaks at the same time. FreeSWITCH evaluates the energy level to find the active speaker before replicating their voice, so I guess the real conference would take less CPU power (need to look into the source code).
Some test results: PC Engines APU platform with 50 conference participants had the CPU usage about 60%. A single core VPS at digitalocean.com was busy at around 50% during a test with 200 participants.
UPD1: (thanks bob bowles) Call out to yourself and monitor the sound quality with your own ear:
fs_cli -x 'conference human dial firstname.lastname@example.org'