Asterisk

From Wikislax

Revision as of 07:54, 8 July 2012 by WikiSysop (Talk | contribs)
Jump to: navigation, search

Contents

What is Asterisk ?

Asterisk is an Open Source telephony server. Asterisk affords creating telephony applications and services. It handles VoiP, but can also handle analog telephones and lines with additional hardware. It affords defining a dialplan and services around, like voice mails, interactive voice response, conferences and more.

Installing Dahdi

Dahdi-linux is a set of Asterisk linux modules one of which dahdi.ko is required to use the MeetMe() conference application. Download Dahdi-Linux then untar and install.

# tar -C /usr/local -xvf dahdi-linux-x.y.z.tar.gz
# cd /usr/local/dahdi-linux-x.y.z
# make
# make install
# make clean

That's it. Note : the other package Dahdi-tools is not required. Other note : Dahdi requires a kernel compiled with CONFIG_CRC_CCITT=y.

Installing Asterisk

Download Asterisk then untar and install. Make menuselect affords choosing which components to use. If using mysql, be sure to read the next paragraph before invoking make. Otherwise proceed. make samples affords creating the configuration files in /usr/local/etc/asterisk.

# tar -C /usr/local --no-same-permissions --no-same-owner -xvf asterisk-x.y.z.t.tar.gz
# cd /usr/local/asterisk-x.y.z.t
# ./configure --prefix=/usr/local --libdir=/usr/local/lib64 --mandir=/usr/local/man \
--with-asound --with-crypto --with-iconv --with-imap=/usr/local/imap-2007f \
--with-ldap --with-speex --with-ssl --with-mysqlclient=/usr/local/mysql
# make menuselect
# make
# make install
# make install-logrotate
# make samples

If using mysql modules, there might be a glitch with the mysql include path. Replace in the files below the lines with "#include <mysql/mysql.h>" by lines with "#include <mysql.h>" (removing the directory) :

addons/app_mysql.c
addons/cdr_mysql.c
addons/res_config_mysql.c

It is then possible to launch asterisk in the foreground with various levels of verbosity (depending on the number of v's). However the default configuration files include a number of options that we don't want, so we'll rename them first and start with empty files. Asterisk includes a console and then proposes a shell  :

# cd /usr/local/etc/asterisk
# mv extensions.conf extensions.conf.sample
# mv extensions.ael extensions.ael.sample
# mv sip.conf sip.conf.sample
# asterisk -vvvc
. . .
*CLI> 

Type help to view the available commands, however before doing anything useful we'll need to modify the configuration files so let's just core stop gracefully here.

Running asterisk

Asterisk runs as a daemon so must be launched at startup and stopped at shutdown. Update /etc/rc.d/rc.local and /etc/rc.d/rc.local_shutdown accordingly :

# vi /etc/rc.d/rc.local
. . .
# start asterisk
if [ -x /usr/local/sbin/safe_asterisk ]; then
        echo "Starting asterisk: /usr/local/sbin/safe_asterisk -pI"
        /sbin/modprobe dahdi
        /usr/local/sbin/safe_asterisk -pI
fi
<esc>
:x
# vi /etc/rc.d/rc.local_shutdown
. . .
# stop asterisk
if [ -r /usr/local/var/run/asterisk/asterisk.pid ]; then
        echo "Stopping asterisk: kill -INT `cat /usr/local/var/run/asterisk/asterisk.pid`"
        kill -INT `cat /usr/local/var/run/asterisk/asterisk.pid`
fi
<esc>
:x

Configuring Asterisk

Asterisk running in the backgroung, it's possible to attach to the process using asterisk -r and to exit the asterisk shell by typing exit. Most of the configuration files can be modified externally then reloaded using commands such as dialplan reload, sip reload, or voicemail reload. A few files however cannot (example meetme.conf), and require restarting using core restart now. Type help to get a complete list of commands.

The configuration files are created under EPREFIX/etc and there are many of them (97 in version 1.8.2.3!) however modifying only a few will afford getting a working system with a set of quite reasonnable features :

Configuration file Usage
sip.conf to configure a sip account
meetme.conf to configure conferences
voicemail.conf to configure voicemail boxes
extensions.conf to configure the dialplan


Documentation

Asterisk Wiki

Asterisk Book

Asterisk Doc


Sucknews Main Page Sip.conf
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox