CallWeaver (formerly known as 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 latest release been several years old. And it's homepage is unavailable.

Official website

Mailing Lists

Frequently Asked Questions

Latest stable releases

  • check our download web page for the latest stable source or the daily snapshot from the SVN repository
  • check our distribution page ready to install packages for your favourite distribution or OS

Bug Tracker

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: project renamed to CallWeaver to resolve long standing name conflict
  • Dec 29 2006: RC3 ( is out
  • Dec 12 2006: page suffers massive spam attack
  • Dec 11 2006: 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 under way
  • Nov 25 2006: RC2 released, cross-platform support, digg this
  • Nov 24 2006: successfully tested on MacOS X 10.4 (Intel)
  • Nov 22 2006: now working on MacOS X 10.4 (PowerPC), tests on OSX Intel ongoing
  • Nov 20 2006: preliminary support on NetBSD using kernel timers
  • now working on FreeBSD using generic software timers in place of POSIX timer extensions
  • supports both T38 passthrough and T38 termination


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 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 which 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
video drole
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 be able to use the best libraries available. (e.g. SpanDSP, Unicall, Sofia SIP)
  • 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 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 and 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 beed 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.


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 release 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
Linux 2.4
Linux 2.6
FreeBSD 6.x
FreeBSD 7.x
MacOS X / Darwin
Solaris 10
Windows with Cygwin

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.

A prerelease VMware image for ucLinux is available for testing. Instructions with a download link have been posted here.

Compatible telephony hardware

Analog interface cards

BRI interface cards

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


RC3 latest stable release

RC2 previous stable release

RC1 old stable release

SVN latest 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

  • for Fedora: at the shell prompt enter 'yum install openpbx' and hit return, must install sounds from separately into /usr/share/
  • for openSUSE, SUSE Linux and SUSE Linux Enterprise pick your version from 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.


  • 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

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

tar zxvf tiff-3.8.0.tar.gz
cd tiff-3.8.0
make install

17. install spandsp 0.0.6 pre 3

tar zxvf spandsp-0.0.6pre3.tgz
cd spandsp-0.0.6
make install

18. install callweaver sound

use this shell script naming as ""


  1. /bin/sh

  1. Please check that you have all needed stuff installed, like
  2. unixodbc, unixodbc-dev, libsndfile1-dev, libtonezone-dev, libspeexdsp-dev
  3. Check from
  4. what is the latest version of Spandsp.


    1. Nothing to do after this line ##


if [ ! -d callweaver-sounds ];then
mkdir callweaver-sounds
echo 0000 > callweaver-sounds/current_trunk_version
CALLWEAVER_SOUNDS_REVISION=`svn info |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
rm callweaver-sounds/debian/changelog
svn co 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 <> $CURRENT_DATE_AND_TIME

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
echo "*** Callweaver-sounds is up to date ***" 



chmod +x


19. install callweaver

tar zxvf callweaver-
cd callweaver




make install

20. most important

cd /usr/local/lib/callweaver
cp /usr/local/lib/ .
cp /usr/local/lib/ .
cp /usr/local/lib/ .
callweaver -r

Callweaver installation with Debian5 Lenny
Author: Madhawa Jayanath
Tested by: Jessie Mabanglo

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

cd /usr/src
tar -xzf vale-0.0.2.tgz
cd vale-0.0.1
make install

cd /usr/src
tar -xzf spandsp-0.0.6pre12.tgz
cd spandsp-0.0.6
make install

cd /usr/src
tar -xzf callweaver-RC-latest.tar.gz
cd callweaver-RC-1.1.XX.XXXXXXXX

./configure --with-app_t38gateway --with-chan_iax2 --with-chan_fax --with-pbx_ael
make install

cp /usr/local/lib/ /usr/local/lib/callweaver
callweaver -r

Callweaver configuration files are located at /usr/local/etc/callweaver
Callweaver modules are located at /usr/local/lib/callweaver/modules



Community support

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.


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.


  • 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

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.

More info

CallWeaver home page | CallWeaver wiki | CallWeaver Glossary | Project philosophy | Priorities

Hit Counter
This page has been visited 335328 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.
Created by: xming, Last modification: Thu 04 of Oct, 2012 (08:14 UTC) by aas
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+