VoIPowering Your Office with Asterisk: Shiny New Asterisk 1.4

By Carla Schroder | Oct 30, 2006 | Print this Page
http://www.enterprisenetworkingplanet.com/unified_communications/VoIPowering-Your-Office-with-Asterisk-Shiny-New-Asterisk-14-3640866.htm

Digium has released the Asterisk 1.4 beta. New! Shiny! Improved! This is the first major update since 1.2 was launched over a year ago. Don't put it on production machines yet, but you can have many pleasant hours of fun getting acquainted with it on a text box. Today we'll take a look at some new features, and run through installing it. Installation has changed a bit, so we'll take a walk through the new bits.

New stuff
In addition to the usual round of bug fixes and small improvements to existing features, 1.4 has:

  • Jitter buffers for all protocols, not just IAX
  • Configure options
  • Make menuselect for customization
  • Asterisk's basic English GSM voice prompts and FreePlay music-on-hold files are part of the Asterisk package, and extra sounds are downloaded during installation. Extras now includes prompts in English, French, and Spanish (custom prompts can also be purchased)
A number of commands and variables have been changed or deprecated. See UPGRADE.txt in the Asterisk source tree for all the dish.

New level of customization
The old Asterisk is a giant blob. The new Asterisk is more customizable. Let's take a run through installing and customizing it.

First download the current releases of the three main source tarballs from Asterisk.org/download into the /usr/src directory:

[root@asterisk1 src]# wget http://ftp.digium.com/pub/asterisk/releases/asterisk-1.4.0-beta3.tar.gz 
http://ftp.digium.com/pub/zaptel/releases/zaptel-1.4.0-beta2.tar.gz 
http://ftp.digium.com/pub/libpri/releases/libpri-1.4.0-beta1.tar.gz 
Unpack them:
[root@asterisk1 src]# tar zxvf asterisk-1.4.0-beta3.tar.gz
[root@asterisk1 src]# tar zxvf zaptel-1.4.0-beta2.tar.gz
[root@asterisk1 src]# tar zxvf libpri-1.4.0-beta1.tar.gz
Review all the READMEs, installation notes, and other important information in the source trees. Then install them in this order:
# cd zaptel-1.4.0-beta2
# make clean
# ./configure
# make
# make install

# cd ../libpri-1.4.0-beta1
# make clean 
# make
# install

# cd ../asterisk-1.4.0-beta3
# make clean
# ./configure
# make menuselect
make menuselect has a number of pages for customizing different parts of Asterisk:
*************************************
	Asterisk Module Selection
*************************************

	Press 'h' for help.

---> 1.  Applications
	2.  Call Detail Recording
	3.  Channel Drivers
	4.  Codec Translators
	5.  Format Interpreters
	6.  Dialplan Functions
	7.  PBX Modules
	8.  Resource Modules
	9.  Voicemail Build Options
	10. Compiler Flags
	11. Module Embedding
	12. Core Sound Packages
	13. Music On Hold File Packages
	14. Extras Sound Packages

Navigate with these commands:

scroll        => up/down arrows
(de)select    => Enter
select all    => F8
deselect all  => F7
back          => left arrow
quit          => q
save and quit => x

menuselect tells you what you need to satisfy missing dependencies, as this example shows:

[*] 1.  cdr_csv
[*] 2.  cdr_custom
[*] 3.  cdr_manager
[*] 4.  cdr_odbc
[*] 5.  cdr_pgsql
[*] 6.  cdr_radius
XXX 7.  cdr_sqlite
[*] 8.  cdr_tds

SQLite CDR Backend
Depends on: sqlite
So if you want to use the CDR (Call Detail Recording) application to record all call activity, and store the data in a SQLite database, you'll need to install SQLite and its development libraries. You could also de-select support for the databases you're not using. You should go all the way through make menuselect once, and then install whatever missing packages you need. Then re-run make clean, ./configure, and make menuselect to enable the options.

Most of the make menuselect options are self-explanatory, provided you know what the various applications or modules are for. When in doubt, accept the defaults. At worst you'll install something you don't need, or have to go back and add something later, which isn't difficult.

The Module Embedding page is for statically compiling modules, instead of the usual dynamic linking. There aren't a lot of reasons to do this; if you're debugging multiple Asterisk versions it helps keep things sorted out. Or you want a single static binary to install on multiple machines.

Beware the Core Sound package menu. If you select anything other than "4.CORE-SOUNDS-EN-GSM", they will be downloaded from asterisk.org. Which is a nice convenience, but it also means you need Internet connectivity, and some of the sound packages are huge—for example, asterisk-extra-sounds-en-wav-1.4.1.tar.gz is 144 megabytes.

You probably want all "Channel Drivers" and "Codec Translators," just to handle whatever weirdo protocols or codecs might wander your way. You can be a little pickier with "Resource Modules". For example, if you're not using a pgsql backend, odbc, or if you don't want Jabber integration, you can leave them out.

To complete the installation run these commands:

# make
# make install
# make config
# make progdocs
All done and ready to start to work. What if you want to blow away the whole works? The Asterisk package comes with a nice new make uninstall target; just enter the Asterisk source tree and run make uninstall. To blow away everything, including voicemail spools, logfiles, and configuration files, run make uninstall -all. Take a look inside the Makefile—all is revealed here.

MySQL gotcha
Apparently because of license conflicts, MySQL support cannot be included in the main Asterisk build, so you'll need to install the Asterisk-Addons package. You'll need MySQL to already be installed, plus its development libraries. If you're not keeping call detail records, you don't need to bother with it at all.

Because it's still in beta, a nice thing is to report both problems and solutions that you discover to the Asterisk Users mail list. You should be subscribed to this list anyway—it's a high-volume list with a lot of smart, helpful people.

Resources
Asterisk Support page