Asterisk from source

From OpenVZ Virtuozzo Containers Wiki
Revision as of 12:18, 14 January 2008 by Finist (talk | contribs) (Asterisk tuning moved to Asterisk from source: obvious)
Jump to: navigation, search

General

Asterisk is free and open source code to create software PBX server. See [1] for details. This package perfectly runs inside OpenVZ container. Some users run up to 60 containers with Asterisk deployed for production per single hardware node. Although the easiest way to install Asterisk into container is to use pre-build package from Linux distribution, occasionally one may need to have a possibility to build it from source tarball available on developer's site.

In order to do it the following remarks are worth reading:

Building Asterisk in CT

Asterisk PBX server itself is compiled out of the shelf in CT provided that develop application template is installed on this CT. The functionality of the resulting executable is enough to support simple VoIP telephony.

wget http://downloads.digium.com/pub/asterisk/releases/asterisk-x.x.xx.tar.gz
tar xzf asterisk-x.x.xx.tar.gz
cd asterisk-x.x.xx.tar.gz
./configure
make
make install
make samples

The last command is not needed in case you have your own configuration as it installs some sample configuration files. To configure Asterisk itself see for example [2].

MeetMe problem

Unfortunately, one particular module called MeetMe (conferencing tool) will be switched off from compilation. This happens due to external dependency on 'zaptel' package. Zaptel provides support for some hardware cards for FXO/FXS analog telephony marketed by Digium (the company behind Asterisk), and on top of that supplies so called ztdummy kernel module. Ztdummy works like a simple metronome which is required to synchronize multiple sound streams in case of conference call.

If you do not plan to use analog telephone lines, hence don't like in install the hardware, nothing is lost provided you run your HN with 2.6.XX kernel. You just need to play a little trick with Asterisk make system: download zaptel tarball from the same location as Asterisk itself, and copy it's header zaptel.h to location /usr/include/zaptel/zaptel.h in CT where you plan to build Asterisk. This tweaks MeetMe for installation.

HN configuration

Finally you need to make sure that on HN ztdummy kernel module is loaded and the access to /dev/zap/pseudo device file is granted to CT:

modprobe ztdummy
vzctl set 240 --devnodes zap/pseudo:rw --save