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.