VoIPowering Your Office: Setting up CallWeaver, the ‘Better’ Asterisk

Enterprise Networking Planet content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More.

In our first two installments, we learned that Asterisk is not the only open
source iPBX, but rather is the progenitor of a large clan, and that at least
one of its descendants, CallWeaver, claims to deliver better performance and
reliability than the patriarch. Then we walked through installing
CallWeaver,
which is a bit of an involved process, but not too bad. Today
we’ll configure it to start at boot, and run through some basic administration.

Documentation

CallWeaver’s documentation is a bit sparse and not obvious to find. There is
a doc/ directory in the source tarball chock full of read-mes and helpful
notes. There also appears to be an administration manual of some kind, or at least
scattered pieces of it, because I found a bunch of XML files and stylesheets and
navigation GIFs that belong to an administration manual. But I couldn’t find the
actual manual anywhere. CallWeaver.org
has some useful how-tos, and the CallWeaver
on VoIP.org
has a lot of good information. CallWeaver.org has a Wiki, so
a nice thing to do is contribute your own useful how-tos and tips.

Mailing lists and archives are at lists.callweaver.org/mailman/listinfo.

There is a man page for callweaver, but on my PCLinuxOS system it got installed into a non-standard directory, so the man page viewer couldn’t find. A permanent fix is to copy it into the correct directory, or just give it the whole filepath:


$ man /usr/local/share/man/man8/callweaver.8

Starting CallWeaver

CallWeaver separates the daemon from the command console, so one way to start it and then enter the console is by using two commands:


# callweaver
# callweaver-cli
CallWeaver svn-1.2 SVN- http://www.callweaver.org - The True Open Source PBX
==================================================
Connected to CallWeaver CallWeaver svn-1.2 SVN- currently running on ripley (pid = 16654)
ripley*CLI>

You may also start both at once with the -c option:


# callweaver -c
CallWeaver svn-1.2 SVN- http://www.callweaver.org - The True Open Source PBX
=====================================================
Booting...Apr 4 12:13:06 NOTICE[3080472256]: cdr.c:1155 do_reload: CDR simple logging enabled.
Apr 4 12:13:06 NOTICE[3080472256]: udptl.c:1029 opbx_udptl_proto_register: Registering UDPTL protocol.
Apr 4 12:13:06 NOTICE[3080472256]: app_nconference.c:78 load_module: Loading NConference module
........]
CallWeaver Ready.
*CLI>

The advantage of starting the daemon separately is you can exit or quit the CallWeaver CLI without stopping the daemon. Add one or more -v to turn on increasing levels of verbosity. Now what? Run it just like Asterisk. You can see a summary of all the available commands:

*CLI> help
                        !  Execute a shell command
               abort halt  Cancel a running halt
            add extension  Add new extension into context
            add ignorepat  Add new ignore pattern
           [...]

Or get more information about individual commands:

*CLI> help sip show subscriptions
Usage: sip show subscriptions
       Shows active SIP subscriptions for extension states

And it’s nice to know what applications are available:

*CLI> show applications
    -= Registered CallWeaver Applications =-
              ADSIProg (0x1c635953): Load CallWeaver ADSI Scripts into phone
       AbsoluteTimeout (0x16d96f4a): Set absolute maximum time of call
        AddQueueMember (0x6050578a): Dynamically adds queue members
[...]

Starting at Boot

CallWeaver’s installer does not set up any startup files, but there is a batch of example startup files for different Linux distributions in the source tarball. Look in the contrib/init.d/ directory, and you’ll find init scripts for Debian, Gentoo, Mandrake, Red Hat, Slackware, and SUSE.

You’ll have to make a number of changes. For starters, you’ll probably want your configuration files to go in /etc/callweaver instead of /usr/local/etc/callweaver/. Then you’ll have to modify the init script so that it has the correct file locations; for example, the installer put the callweaver command into /usr/local/sbin/, but the init scripts look for it in /usr/sbin/. This is pretty much what you have to with a source Asterisk installation, so it should be familiar ground for Asterisk users.

Migrating from Asterisk 1.2

If you have a working Asterisk 1.2 installation you can migrate to CallWeaver fairly easily—just follow the howto. Asterisk 1.4 has enough different commands and applications that a direct migration is probably more hassle than it’s worth, though it should be OK for a simple setup.

Now What?

With all the good Asterisk bundles to choose from, such as Asterisknow, PBX in
a Flash, Trixbox, and so forth, why do you want to hassle with something like
CallWeaver? In my opinion—which may not be shared by the excellent CallWeaver
maintainers—it’s great raw material for a systems integrator who is comfortable
with assembling his or her own customized iPBX. CallWeaver has features that Asterisk
doesn’t, and claims better, more reliable performance, which are important qualities
to anyone making a living supporting paying customers. It’s also nice to not become
locked in to a single vendor, so even if you don’t use CallWeaver it’s good to
have some options, and an extra bit of competition.

Resources

Get the Free Newsletter!

Subscribe to Daily Tech Insider for top news, trends, and analysis.

Latest Articles

Follow Us On Social Media

Explore More