Project Roadmap and Feature Wish List
From SIPfoundry sipXecs IP PBX, The Open Source SIP PBX for Linux - Calivia
Here you will find a list of feasible requested features that we'd like to see implemented in sipXtapi.
Contents |
New Generic Unit Tests
While we have quite a few unit tests, we don't have as good of coverage as we should. Please add any feasible requests for unit tests here.
Thread performance testing
Testing whether large numbers of threads have a detrimental impact on performance of low-resource devices. Each test would process the same amount of data, and the performance would be measured by the time it took to complete the jobs. Timing would be started after the threads are started, but before the work was dispatched to the threads.
We would have a number of tests in this set, as described below:
- High mathematics load.
- High memory allocation/deallocation load.
- High synchronization load.
- Message exchange with OsServerTask::postMessage between threads (Hot potato).
- Each of these tests would be run twice, once with single/few threads and once with many threads.
- "We have N iterations and want to test M threads. Then we run N iterations in one thread and then N/M iterations in M threads."
Voice and Audio Codec features
The end goal of this project is to make sipXtapi the best VoIP library. Main objectives are listed below. We need your hands and heads to implement this all! Feel free to participate to this project.
More audio I/O methods
sipXtapi support very tight set of audio I/O methods. Under Windows it use Windows Multimedia, and under Linux it use OSS. While OSS part of code do its work fine it have some limitatioins which could not be avoided. E.g. OSS device could openned only once, so only one application could use audio device at one time. Windows Multimedia part is much worse then OSS one -- under Windows it is common to have audible glitches during call, greatly decrasing call quality.
So, we propose following audio I/O subsystems to use:
- ALSA (Linux) - Advanced Linux Sound Architecture greatly improve OSS capabilities. Especially it allow several applications use one sound card without interference with each other.
- DirectSound (Windows) - We expect better reliability and less latency from DirectSound interface.
Audio quality improvements
- Jitter Buffer is far from perfect. We may consider use of existing implementation or create our own dynamic jitter buffer. There are several known implementation of jitter buffer, all of them have incompatible license, so they may be used only as optional feature through wrapper:
- SpanDSP library. GPL
- Asterisk - opensource PBX. GPL
- OpenPBX - Asterisk derivative, but has own jitter buffer. GPL
- More interesting information could be found on this voip-info.org page.
- PLC should be used to avoid audible glitches when audio frame was lost. We may consider use of existing implementation or implement our own PLC. But here are the same license problems as for Jitter Buffer.
- Support for codecs with VAD+CNG+DTX.
Video calls
This feature is in active development now. Most wanted contributions here is:
- Support for different video capture interfaces:
- Support for fast video output:
- DirectShow (Windows)
- DirectDraw (Windows)
- OpenGL (multiplatform)
- XVideo (Linux)
However implementing full video support require some internal changes in sipXtapi's media framework. Check sipXmediaLib page for more information on this part of work.
Please note
Any sensible suggestions, reasonable criticism or good advice is more then welcome. If you see a simpler way to reach the goal - please - don't be silent. Any help is very welcome. Lets make this bunch of code better!
Contact me on or off the list if you're interested in participating. --ipse 14:26, 6 June 2006 (CEST)Alexander Chemeris
