OpenPBX.org Work in Progress

Work items in progress

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 does not 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 through 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

See also The New Configuration File Format

Conferencing support for variable framelength codecs

At present, CallWeaver conferences only support codecs with a framelength of 20ms. While most codecs use 20ms framelength, some low bandwidth codecs use longer framelengths, e.g. 30ms. Work is under way to allow conferencing to support codecs with framelengths 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 under way 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 on reliability, performance and scalability. Objects stored in a linked list can only be retrieved by linear search which is very slow and inefficient. Moreover, various operations require the 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 under way. Solaris support is targeted for the RC3 release.

More info

OpenPBX.org wiki on VoIP-Info.org | CallWeaver home page | CallWeaver wiki | OpenPBX SVN repository and bugtracker


Hit Counter
This page has been visited 17512 times.

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.

Work items in progress

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 does not 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 through 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

See also The New Configuration File Format

Conferencing support for variable framelength codecs

At present, CallWeaver conferences only support codecs with a framelength of 20ms. While most codecs use 20ms framelength, some low bandwidth codecs use longer framelengths, e.g. 30ms. Work is under way to allow conferencing to support codecs with framelengths 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 under way 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 on reliability, performance and scalability. Objects stored in a linked list can only be retrieved by linear search which is very slow and inefficient. Moreover, various operations require the 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 under way. Solaris support is targeted for the RC3 release.

More info

OpenPBX.org wiki on VoIP-Info.org | CallWeaver home page | CallWeaver wiki | OpenPBX SVN repository and bugtracker


Hit Counter
This page has been visited 17512 times.

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.
Created by: STS, Last modification: Sun 26 of Nov, 2006 (04:33 UTC)
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+