The following is an overview of work in progress on CallWeaver. However, the list is still incomplete.
Configuration lexer and parser
The configuration loader CallWeaver inherited from Asterisk perform neither lexical nor syntax analysis on the configuration data it reads. It does rudimentary character searches for leftmost and rightmost delimiters and assumes that anything in between is proper configuration data which it then loads and uses without any further checking. This is a reliability and security risk. The CallWeaver team is, therefore, working on a new configuration system which will ensure the correctness and integrity of configuration data by using a formal grammar which will be enforced by a proper lexer and parser.
The new configuration system will be introduced in three steps:
- Master configuration (targeted for RC3 release)
- Dialplan configuration
- Loadable modules configuration
Conferencing support for variable frame length codecs
At present, CallWeaver conferences only support codecs with a frame length of 20ms. While most codecs use 20ms frame length, some low bandwidth codecs use longer frame lengths, e.g. 30ms. Work is underway to allow conferencing to support codecs with frame lengths longer than 20ms (targeted for RC3 release).
T38 gateway
The SpanDSP library used in CallWeaver provides T38 passthrough, termination and gateway services. While CallWeaver already integrates T38 passthrough and termination services, development is underway to integrate T38 gateway service as well. For more information, see CallWeaver T.38 gateway.
Hashtable storage
The internal storage system CallWeaver inherited from Asterisk is entirely based on linked lists. This has severe implications for reliability, performance and scalability. Objects stored in a linked list can only be retrieved by the linear search which is very slow and inefficient. Moreover, various operations require the entire list to be locked until an operation is completed. While the list is locked, all other concurrently executing tasks cannot continue which leads to wasted CPU cycles and thus reduced performance and limited scalability. In some cases resulting locking issues even lead to crashes. The CallWeaver team is, therefore, working on a new internal storage system based on hashtable storage. This will vastly improve reliability, performance and scalability.
Testing on more OS platforms
CallWeaver is focused on cross-platform compatibility. So far CallWeaver has been tested on Linux (v2.6), FreeBSD (v6.1/6.2/7), NetBSD and MacOSX/Darwin on x86, x86-64 and PPC architectures. Further platform testing is underway. Solaris support is targeted for the RC3 release.
More info
OpenPBX.org wiki on VoIP-Info.org | CallWeaver home page |
Legal Disclaimer
“Asterisk” and “Digium” are trademarks of Digium Inc., they are used on this page for reference only, not to indicate endorsement.
All other trademarks mentioned on this page are the property of their respective owners, they are used strictly for reference only.