VoIPowering Your Office: Setting up CallWeaver, the 'Better' Asterisk

Documentation is not CallWeaver's greatest strength. We're here to help you get up and running.

 By Carla Schroder
Page of   |  Back to Page 1
Print Article

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.


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)

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.

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.


This article was originally published on Apr 9, 2008
Get the Latest Scoop with Networking Update Newsletter