Synopsis
CallWeaver (formerly known as OpenPBX.org) is a community-driven vendor-independent cross-platform open source PBX software project. It was originally derived from Asterisk, a Linux software-PBX. CallWeaver is a fully featured PBX in software. It supports analog and digital PSTN telephony, multi-protocol voice over IP telephony, fax, software-fax, STUN, T.38 fax over IP and many telephony applications such as IVR, conferencing and callcenter queue management.
However, the project seems to be dead. The development is stalled with the latest release been several years old. And it’s homepage is unavailable.
Page Contents
- Official website
- Mailing Lists
- Frequently Asked Questions
- Latest News
- Background
- Why did we fork Asterisk?
- Differences with Asterisk
- PSTN technologies
- Multi-protocol voice over IP
- T.38 Fax over IP
- Reliability
- Status of work
- Targets for the next release (RC3)
- Targeted OS platforms and architectures
- Embedded CallWeaver
- Compatible telephony hardware
- Downloads
- Dependencies
- Installation of Callweaver on Debian
- HOW TOs
- Support
- Licensing
- Contributors
- Related projects
- No-Spam policy
Official website
- CallWeaver home page
Mailing Lists
- CallWeaver mailing lists
- come join us on IRC at #callweaver on freenode
Frequently Asked Questions
Latest News
- May 19 2009: CallWeaver 1.2.1 released
- May 26 2008: CallWeaver 1.2.0 released
- Sep 19 2007: release of RC5 and 1.2 final is incoming more
- Sep 18 2007: website is down for maintenance, temporary mirror of SVN tarball has been placed on callweaver svn 1.2 pre rc5 tarball, callweaver svn trunk tarball
- Apr 19 2007: OpenPBX.org project renamed to CallWeaver to resolve long standing name conflict
- Dec 29 2006: OpenPBX.org RC3 (openpbx.org-1.2_rc3.tar.gz) is out
- Dec 12 2006: OpenPBX.org page suffers massive spam attack
- Dec 11 2006: OpenPBX.org wiki on Voip-Info got 8000 hits in its first month
- Dec 10 2006: conversion from editline to readline completed and tested on Linux
- Dec 02 2006: ucLinux based embedded image now available for testing
- Dec 02 2006: Bugtracker accepts new registrations again
- Dec 01 2006: SpanDSP successfully built on Solaris 10
- Nov 28 2006: Work on Solaris 10 (Sparc64) now underway
- Nov 25 2006: OpenPBX.org RC2 released, cross-platform support
- Nov 24 2006: OpenPBX.org successfully tested on MacOS X 10.4 (Intel)
- Nov 22 2006: OpenPBX.org now working on MacOS X 10.4 (PowerPC), tests on OSX Intel ongoing
- Nov 20 2006: preliminary support on NetBSD using kernel timers
- OpenPBX.org now working on FreeBSD using generic software timers in place of POSIX timer extensions
- OpenPBX.org supports both T38 passthrough and T38 termination
Background
Many Asterisk users and developers have experienced the impact of Digium tightly exercising control over Asterisk for their own business interests, increasingly at odds with the common interest of the community of users, developers and other parties who have largely contributed to the project becoming popular in the first place.
As a result more and more users, developers and integrators agree that a strong alternative to the Asterisk project which takes its own direction is beneficial and desirable as long as such a project is not controlled by a single vendor and managed for the common interest of users, developers and vendors who drive it.
CallWeaver was forked from the Asterisk 1.2 code base to develop and maintain just such an alternative. CallWeaver has its own objectives, different from those of the Asterisk project. In particular, CallWeaver is characterized by the following:
- Different points of view are welcome, politics and censorship are frowned upon.
- A project charter and mindset that always rates reliability and cross-platform compatibility over features.
- A commonly shared view that Asterisk design is broken and structural rework is needed.
- A preference for generic solutions and reuse of freely available libraries.
- Ability to embed or link to any available GPL compatible library due to the absence of dual licensing.
- Contributors to the project do not need to sign disclaimers to assign rights in their contributions to other parties.
This has already led to the following improvements over Asterisk in CallWeaver:
- Removal of all Zaptel hardware timer dependencies and use of software timers (either kernel based or generic) in their place.
- Replacement of Berkeley DB 1.0 with SQLite 3 as an engine for the internal key/value database (aka astdb).
- Replacement of internal DSP with superior DSP provided by the SpanDSP library.
- Support for STUN, T38 fax over IP and a universal jitter buffer.
- Much faster and more efficient dialplan execution.
- Much faster and more efficient extension matching engine.
- Fixing of bugs that Digium did not acknowledge.
Further efforts towards structural and architectural improvements are planned or work in progress, for example:
- Separation of the CLI from the daemon to have a CLI-free daemon and a CLI utility as a separate executable instead.
- Replacement of the Manager API with a 3-tier server-agent-client architecture for better scalability (multiple agents per server), better security (server is not directly exposed) and better flexibility (support additional protocols by adding an agent).
- Replacement of all internal linked list storage with hashtable storage for much better performance and significant reduction of exposure to locking problems. The internal storage system inherited from Asterisk uses singly-linked lists, linear searches and wide ranging locks, Forfait Mobile
forfait iphone
forfait sans engagement which is very inefficient and prone to race conditions and deadlocks.
- Replacement of the configuration loader with a proper lexer and parser based on a formal grammar to ensure integrity of configuration data at load time and avoid impact of configuration errors at runtime. The loader inherited from Asterisk is not based on a formal grammar and does not carry out lexical nor syntax analysis.
- National numbering plan database with one national numbering plan for each accommodation hepburn springs country, making it possible to use symbolic names such as “US.tollfree” instead of patterns in the dialplan, thereby improving readability and maintainability.
- Interface with all telephony hardware through the Unicall telephony hardware abstraction layer library which will also provide ISDN and MFC/R2 protocol stacks. Unicall presents one sole unified high-level interface for all PSTN hardware.
Why did we fork Asterisk?
- We wanted community input and control so that no single person or company can stop progress.
- We wanted to avoid reinventing the wheel if it is not necessary.
- We wanted to be free of limitations imposed by dual licensing.
- We wanted to avoid commercial interests to interfere with the quality of development.
- We wanted more focus on reliability, generic solutions and cross-platform compatibility.
- We wanted to allow everybody to participate and contribute without having to disclaim copyrights.
- We wanted a level playing field, an independent project which does not compete with its customers.
Differences with Asterisk
- Official cross-platform support, currently Linux, FreeBSD, NetBSD and MacOS X
- Conferencing without Zaptel hardware and without any kernel modules for timing
- Built-in STUN support for SIP NAT traversal
- Uses SpanDSP which means more efficient codecs and full T.38 fax over IP support
- Uses SQLite instead of the (no longer maintained) Berkeley DB1 engine as its internal database
- Allows CSRC entries in RTP for better compliance
- A universal jitterbuffer for use with any channel type
- Uses POSIX realtime extensions which means there are no Zaptel timing dependencies
- Much faster and more efficient dialplan execution because it uses hashing
- Much faster and more efficient extension matching engine
- Variables and applications in extensions.conf are case sensitive, conversion script provided
- AGI has been renamed to OGI, Macro() has been renamed to Proc(), conversion script provided
- Evaluates correctness and integrity of configuration data (being introduced in stages, work in progress)
- Provides conversion scripts to convert configuration files whenever changes are made to format or syntax
- Runs well under a virtual machine such as Xen, VMware and VPS
- Support for PostgreSQL in RealTime mode
PSTN technologies
CallWeaver supports all major PSTN technologies in use today: analog telephone lines (POTS), MFC/R2 via Unicall, Basic Rate ISDN (BRI), Primary Rate ISDN (PRI). Several ISDN protocol stacks are available for use with CallWeaver. The most commonly used ISDN libraries are mISDN for BRI and Asterisk libpri for PRI. In the future, CallWeaver will use Unicall for all PSTN technologies.
Multi-protocol voice over IP
CallWeaver supports a variety of voice over IP protocols: H.323 via Woomera, IAX2, MGCP and SIP. Support for Cisco’s Skinny Client Protocol (SCCP) is also available but has a limited feature set. Support for Jingle and LTP may be added in the future.
T.38 Fax over IP
CallWeaver has emerged as the undisputed leader in T38 support. CallWeaver has mature support for both T38 passthrough and T38 termination. The SVN tree now also includes T38 gateway functionality which is now being tested and still requires some tuning for certain devices. A new module, app_faxdetect has been added to support fax detection over SIP channels and many T38 supporting SIP devices have been extensively tested for compatibility, amongst them Cisco, Patton, Quintum and many others. More detail on Fax over IP can be found on the T38 wiki page.
Reliability
Tests carried out by the CallWeaver team have indicated that RC releases of CallWeaver surpass the reliability of Asterisk 1.2.x releases and many users who have migrated from Asterisk to CallWeaver have confirmed this observation again and again. So, why then is it that CallWeaver releases are only released candidates at this point? The answer is very simple: The CallWeaver project charter puts equal importance on reliability and cross-platform compatibility. A full release will be made when cross-platform testing has been completed. The targeted platforms for the first release are Linux, FreeBSD, NetBSD, MacOSX/Darwin and Solaris.
Status of work
Targets for the next release (RC3)
- successful completion of testing on FreeBSD 6.1
- successful build and testing on Solaris 10 (Sparc64)
- successful tests of IAX trunking when using generic timers
- successful completion of conversion from editiline to readline
- successful tests of patch to handle framelength > 20ms in conferences
- successful tests of new master configuration property list lexer and parser
Targeted OS platforms and architectures
OS/Architecture | x86-32 | x86-64 | PowerPC | Sparc64 | IA64 | Other |
---|---|---|---|---|---|---|
ucLinux |
•
|
–
|
•
|
–
|
–
|
ARM
|
Linux 2.4 |
•
|
–
|
•
|
–
|
–
|
–
|
Linux 2.6 |
•
|
•
|
•
|
•
|
–
|
ARM
|
FreeBSD 6.x |
•
|
•
|
n/a
|
•
|
–
|
ARM
|
FreeBSD 7.x |
•
|
•
|
n/a
|
•
|
–
|
ARM
|
NetBSD |
•
|
•
|
•
|
•
|
n/a
|
ARM
|
OpenBSD |
•
|
•
|
–
|
–
|
n/a
|
–
|
MacOS X / Darwin |
•
|
•
|
•
|
n/a
|
n/a
|
n/a
|
Solaris 10 |
•
|
•
|
n/a
|
•
|
n/a
|
n/a
|
OpenSolaris |
•
|
•
|
–
|
–
|
n/a
|
n/a
|
HP-UX |
n/a
|
n/a
|
n/a
|
n/a
|
•
|
HPPA
|
OpenVMS |
n/a
|
n/a
|
n/a
|
n/a
|
•
|
Alpha
|
Windows with Cygwin |
•
|
n/a
|
n/a
|
n/a
|
n/a
|
n/a
|
legend: • targeted | – not targeted | n/a not available
Embedded CallWeaver
We are working on ucLinux, Linux and BSD based ready-to-run installation kits for PCengines’ WRAP and Soekris’ Net4801 embedded x86 boards. Other embedded platforms under consideration are FreeRTOS and ucLinux on ARM and other microcontrollers.
Compatible telephony hardware
Analog interface cards
BRI interface cards
- Billion
- Beronet
- Junghanns
- OpenVox
- Generally, all cards based on HFC chipsets by Cologne Chip AG
For more information about BRI refer to the Basic Rate ISDN wiki page
PRI interface cards
For more information about PRI refer to the Primary Rate ISDN wiki page
T38 fax capable devices
For more information about T.38 refer to the T38 wiki page
Analog telephone adapters, IP phones, FXO gateways and other VoIP/PSTN gateways
Downloads
RC3 latest stable release
- RC3 sources tarball
- Gentoo ebuild for RC3 – this will download, compile and install all dependencies for you.
RC2 previous stable release
- RC2 sources tarball
- Gentoo ebuild for RC2 – this will download, compile and install all dependencies for you.
SVN latest developer snapshot
- openpbx.org-SVN-20061228.tar.bz2 – bootstrapped developer snapshot
SpanDSP latest stable release
- SpanDSP Pre27 – this digital signal processing library is required
Unicall latest stable release
- Unicall Pre9 – optional telephony hardware abstraction layer library
RPMs
- for Fedora: at the shell prompt enter ‘yum install openpbx’ and hit return, must install sounds from http://devs.callweaver.org/sounds/callweaver-sounds.tgz separately into /usr/share/openpbx.org/
- for openSUSE, SUSE Linux and SUSE Linux Enterprise pick your version and add it to YaST as a software installation source. Then simply pick OpenPBX from the list of software as you would any other package.
Dependencies
- Build tools: automake, bison, gcc, libtool
- Required libraries: ncurses, openssl, spandsp, speex, tiff, readline, zlib
- Optional libraries: libpri, misdn, mysql, postgresql, unicall, zaptel
- Note: sqlite is embedded but it is an option to link against external versions instead
Installation of Callweaver on Debian
prepared by
Leading IT Consultants in Japan
1. debian fresh installation
debian-40r4a-i386-netinst.iso
2. apt-get update
3. apt-get upgrade
4. adduser callweaver
5. apt-get install subversion
6. apt-get install fakeroot
7. apt-get install svn*
8. apt-get install gcc*
9. apt-get install libtiff-dev
10. apt-get install automake
11. apt-get install readline*
12. apt-get install libcap-dev
13. apt-get install speex
14. apt-get install libtiff*
15. apt-get install libltdl3-dev
16. install tiff-3.8.0.tar.gz
wget ftp://ftp.remotesensing.org/pub/libtiff/tiff-3.8.0.tar.gz tar zxvf tiff-3.8.0.tar.gz cd tiff-3.8.0 ./configure make make install
17. install spandsp 0.0.6 pre 3
download tar zxvf spandsp-0.0.6pre3.tgz cd spandsp-0.0.6 ./configure make make install
18. install callweaver sound
use this shell script naming as "callweaversound.sh" START callweaver.sh
- /bin/sh
- Please check that you have all needed stuff installed, like
- unixodbc, unixodbc-dev, libsndfile1-dev, libtonezone-dev, libspeexdsp-dev
- Check from http://www.soft-switch.org/downloads/spandsp/
- what is the latest version of Spandsp.
SPANDSP_VERSION=0.0.6
SPANDSP_RELEASE=pre3
Nothing to do after this line ##
CURRENT_DATE_AND_TIME=`date -R`
install_callweaver_sounds()
{
if [ ! -d callweaver-sounds ];then
mkdir callweaver-sounds
echo 0000 > callweaver-sounds/current_trunk_version
fi
CALLWEAVER_SOUNDS_REVISION=`svn info http://svn.callweaver.org/callweaver-sounds |grep Revision |cut -f2 -d " "`
if [ $CALLWEAVER_SOUNDS_REVISION != `cat callweaver-sounds/current_trunk_version` ]; then
echo $CALLWEAVER_SOUNDS_REVISION > callweaver-sounds/current_trunk_version
if [ -f callweaver-sounds/debian/changelog ];then
rm callweaver-sounds/debian/changelog
fi
rm callweaver-sounds/debian/changelog
svn co http://svn.callweaver.org/callweaver-sounds/trunk callweaver-sounds
CALLWEAVER_SOUNDS_VERSION=`cat callweaver-sounds/debian/changelog |grep -m 1 urgency |cut -f2 -d: |cut -f2 -d "(" |cut -f1 -d ")"`
cat > callweaver-sounds/debian/changelog_tmp << EOF
callweaver-sounds ($CALLWEAVER_SOUNDS_VERSION-trunk-$CALLWEAVER_SOUNDS_REVISION-1) unstable; urgency=low
* Quick version bump ;)
-- Your name <and.email@address> $CURRENT_DATE_AND_TIME
EOF
cat callweaver-sounds/debian/changelog >> callweaver-sounds/debian/changelog_tmp
mv callweaver-sounds/debian/changelog_tmp callweaver-sounds/debian/changelog
cd callweaver-sounds
touch build-stamp
fakeroot debian/rules binary
cd ..
dpkg -i callweaver-sounds_$CALLWEAVER_SOUNDS_VERSION-trunk-$CALLWEAVER_SOUNDS_REVISION-1_*.deb
else
echo "*** Callweaver-sounds is up to date ***"
fi
}
install_callweaver_sounds
END callweaver.sh
chmod +x callweaver.sh
./callweaver.sh
19. install callweaver
wget http://devs.callweaver.org/release/callweaver-1.2.0.1.tgz tar zxvf callweaver-1.2.0.1.tgz cd callweaver ./bootstrap.sh ./configure make make install
20. most important
cd /usr/local/lib/callweaver cp /usr/local/lib/libspandsp.so.0 . cp /usr/local/lib/libspandsp.so.1 . cp /usr/local/lib/libtiff.so.3 . callweaver exit callweaver -r
Callweaver installation with Debian5 Lenny
Author: Madhawa Jayanath
Tested by: Jessie Mabanglo
==================START========================
please login as root and install
apt-get update
apt-get install subversion bison build-essential libncurses5-dev libssl-dev libspeex-dev libtiff4-dev libc6-dev zlib1g-dev libtool automake1.9 autoconf2.13 libltdl3-dev libreadline5-dev libcap-dev speex libspeexdsp-dev libspeex-dev libspeex1 libspeexdsp1 sqlite3 libsqlite3-dev
groupadd callweaver
useradd callweaver -g callweaver
----Vale----
cd /usr/src
wget http://www.soft-switch.org/downloads/vale/vale-0.0.2.tgz
tar -xzf vale-0.0.2.tgz
cd vale-0.0.1
./configure
make
make install
----SpanDSP----
cd /usr/src
wget http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.6pre12.tgz
tar -xzf spandsp-0.0.6pre12.tgz
cd spandsp-0.0.6
./configure
make
make install
----Callweaver----
cd /usr/src
wget http://devs.callweaver.org/1.2_snapshots/callweaver-RC-latest.tar.gz
tar -xzf callweaver-RC-latest.tar.gz
cd callweaver-RC-1.1.XX.XXXXXXXX
./bootstrap.sh
./configure –with-app_t38gateway –with-chan_iax2 –with-chan_fax –with-pbx_ael
make
make install
cp /usr/local/lib/libspandsp.so.2 /usr/local/lib/callweaver
callweaver
callweaver -r
NOTE:
Callweaver configuration files are located at /usr/local/etc/callweaver
Callweaver modules are located at /usr/local/lib/callweaver/modules
===============END=============================
HOW TOs
Support
Community support
- Mailing lists
- IRC channel #callweaver on irc.freenode.org
Commercial support
In general, every consultant and every company providing support for Asterisk are able to provide support for CallWeaver as well. Many of them already support forked or otherwise modified versions of Asterisk anyway. Several consulting companies and telephony integrators have pledged they will provide commercial support for CallWeaver starting with the first public release version. We will list those companies here at that time.
Licensing
The CallWeaver software is released under the GNU General Public License (GPL) version 2. There is no dual licensing regime. Contributors need to release their contributions under GPL2 compatible terms, but they are not required to sign over or disclaim any rights. Contributors also do not need to use the GPL for their contributions, any GPL2 compatible license will be sufficient. For example, some contributors have chosen to contribute code under MIT licensing or BSD licensing terms. For documentation, the GNU Free Documentation License (GFDL) version 1.2 is recommended but not required.
Contributors
- Linux/BSD C developers interested in telephony please consider joining us.
- Solaris and OpenSolaris build-testers wanted.
- OpenVMS and HP-UX porters/testers wanted.
Meet us at #callweaver on irc.freenode.org
Related projects
- SpanDSP – DSP library with superior digital signal processing functions
- Unicall – Telephony hardware abstraction layer library with protocol plugins
- Zapata – Telephony interface card designs/schematics available under GPL license terms
No-Spam policy
This page and any other pages on this website associated with CallWeaver are strictly for information about the project only. Any kind of advertising on pages relating to CallWeaver is strictly prohibited. We will take action against any party violating our no-advertising policy.
Hit Counter
This page has been visited 6910 times since November 11, 2006.
Legal Disclaimer
OpenPBX is an Australian common law trademark by Voicetronix.
Asterisk and Digium are US trademarks of Digium Inc., used on this page for reference only, not to indicate endorsement.
Any other trademarks mentioned on this page are the property of their respective owners, they are used strictly for reference only.