VoIPowering Your Office: CallWeaver Forks Asterisk

One of the interesting side effects of building a business on GPL-licensed
code is anyone can take your code and make a competing product with it, which
has happened in spades with Asterisk. Asterisk is dual-licensed, both under
the GPL and a commercial license. The commercial license allows you to modify
and customize Asterisk, and distribute your modified version without having
to also distribute your modified source code. The GPL requires that when you
distribute a modified version of a GPL-licensed application, you also have to
provide your modified sources, or as some say, “When you take, you must also
give back.”

This seems to have worked out well in a number of ways: There are a sizable
number of open-source Asterisk offshoots, and a goodly number of Asterisk-based
commercial iPBXs. Digium benefits financially from selling commercial licenses,
and from the GPL by harnessing the energy and talent of a worldwide pool of
software developers. And even better, we customers benefit from a wider breadth
of competition.

CallWeaver

In the FOSS (Free/Open Source Software) world I haven’t found many actual Asterisk
forks (def).
There are plenty of integrated servers that bundle other applications like FreePBX,
HUD lite, SugarCRM, and such, but few forks. In fact I only know of one, and
that is CallWeaver. CallWeaver used to call istself OpenPBX, but then had to
change because the name was already taken. Why go to all the work and hassle
of maintaining a fork? The CallWeaver
FAQ
tells why—primarily for community control, to have the freedom
to implement different features, and to use different libraries for core functions.
One example is replacing Asterisk’s core DSP (digital signal processor) with
SpanDSP. SpanDSP is a complete software fax machine, and it provides superior
digital signal processing. Another one is that CallWeaver uses SQLite for the
internal database instead of Berkeley DB 1.0, which is so old it’s moldy. (The
newest release is 4.6.)

CallWeaver is based on Asterisk 1.2. Don’t let the older Asterisk version number bother you; they’ve gone well beyond it and offer a range of features that Asterisk doesn’t, such as STUN support for SIP NAT traversal, full T.38 fax support, and multi-platform support. Asterisk will run on any operating system that you can get it to compile on, but is supported only on Linux. CallWeaver supports Linux, FreeBSD, NetBSD, OpenBSD, MacOS X, and OpenSolaris.

CallWeaver supports conferencing without requiring the Zaptel kernel modules
for timing, and in fact has removed all Zaptel dependencies; it has a universal
jitter buffer, runs well under a virtual machine like Xen or VMWare, and the
developers claim overall better performance and efficiency. They have invested
a lot of energy into cleaning up and fixing core architectural defects. A nice
feature is conversion scripts to help you update your configuration files when
changes are made in syntax, variables, and applications. This is a chronic problem
with Asterisk: They make frequent changes without giving us any tools to ease
the transition.

Future improvements include:

  • Separating the server daemon from the command-line interface
  • Automatically checking the correctness and integrity of configuration data
  • A numbering-plan database with one national numbering plan for each country,
    so we can use symbolic names such as “US.tollfree,” instead of having to look
    up and track numbers
  • Replacing the Manager API with a 3-tier server-agent-client architecture for better scalability, security, and more flexibility
  • Embedded CallWeaver for PC Engines WRAP boards, Soekris boards, and other
    embedded single-board computers

Using CallWeaver

A lot of admins report better performance and stability with CallWeaver. But keep in mind it is still a work in progress, so there are some rough edges. Installation is a bit hairy, and as far as I know it is not included in prefab “appliance” bundles. So come back next week to get a blow-by-blow installation howto, and then we’ll put it through its paces.

Resources

“Open Source Means You Have to Be Better.”
Fixing the Asterisk Deal Breaker

Latest Articles

Follow Us On Social Media

Explore More