Performance Results
All performance results were obtained using non-optimized systems and framework. Performance gains can likely be achieved with optimization. Performance results show normalized CPU usage of system with software echo cancellation relative to system with no echo cancellation.
The test configuration included a complete telephony application with a VPF, an ALSA PCM interface, and an ORTP IP interface. The application was compiled with GCC.
In the Endpoint Configuration setup (see Figure 8), the application was configured to use one channel consisting of a PCM endpoint and an IP endpoint. The number of data processing threads was set to one. Voice data was passed bidirectionally and the PESQ was measured at both sides using a Malden DSLA II.
In the PBX Configuration setup (see Figure 9), each channel consisted of two IP endpoints. The number of data processing threads was set according to the processor that the application was running on. Voice data was passed bidirectionally on each channel and the PESQ was measured at both sides using Spirent Abacus.
We use VTune to measure the performance of the application.
Intel EP80579 Integrated Processor 1.2 GHz Results
Endpoint Configuration Results
- The number of Data Processing Threads was set to 1
- The Tone Detector in the IP outbound pipeline is enabled
- Intel VTune Performance Analyzer is used to measure performance
Intel Atom Processor 1.6 GHz Results
Endpoint Configuration Results
- The number of Data Processing Threads is set to 1
- The Tone Detector in the IP outbound pipeline is enabled
- Intel Hyper-Threading Technology is enabled
- Intel VTune Performance Analyzer is used to measure performance
Intel Xeon 5570 Processor (2 x 2.93 GHz Intel Core i7) Results
IP PBX Single Threaded
PBX Configuration
- The number of Data Processing Threads is set to 1
- The Tone Detector in the IP outbound pipeline is disabled
- Top is used to measure performance
PESQ measurements began to degrade when more endpoints than 250 were added. The limiting factor here was the fact that there was only 1 real-time thread to process voice data, meaning that the application could not take advantage of the multiple CPU cores.
Thus, using a single real-time processing thread means that the limit to how many channels can be supported is limited, compared to using multiple real-time processing threads (as seen in the next section).
IP PBX Multithreaded
PBX Configuration
- The number of Data Processing Threads is set to 16
- The Tone Detector in the IP outbound pipeline is disabled
- Top is used to measure performance
PBX Configuration
- The number of Data Processing Threads is set to 16
- The Tone Detector in the IP outbound pipeline is enabled
- Top is used to measure performance


