Installation de Asterisk 1.4 sous Debian Etch | Sébastien Couture

Installation de Asterisk 1.4 sous Debian Etch

Accueil

Published by sebastien on mai 31st, 2008 in VoIP, Asterisk

Ce tutoriel relate l’installation du logiciel de téléphonie PBX libre Asterisk, ainsi que les pilotes d’interfaces téléphoniques Zaptel; plus particulièrement le pilote ztdummy qui nous permet d’avoir une source de synchronisation temporelle (timing) pour les conférences (meetme) et la musique en attente (music-on-hold). Nous complèterons l’installation avec les librairies PRI (Libpri) pour les interfaces T1/E1 ainsi que certains modules additionnels (Addons) qui nous permettront entre autres de communiquer avec une base de données MySQL.

Il est à noter que beaucoup d’informations ont été prises de ce tutoriel, qui lui est basé sur cet autre tutoriel.

Commençons d’abord par télécharger les quatre items mentionnés précédemment:

wget http://downloads.digium.com/pub/asterisk/asterisk-1.4-current.tar.gz

wget http://downloads.digium.com/pub/zaptel/zaptel-1.4-current.tar.gz

wget http://downloads.digium.com/pub/libpri/libpri-1.4-current.tar.gz

wget http://downloads.digium.com/pub/asterisk/asterisk-addons-1.4-current.tar.gz

Ensuite, décompressons les archives (.tar.gz) téléchargées:

tar zxvf asterisk-1.4-current.tar.gz

tar zxvf zaptel-1.4-current.tar.gz

tar zxvf libpri-1.4-current.tar.gz

tar zxvf asterisk-addons-1.4-current.tar.gz

Installation des dépendances

La compilation des modules Zaptel nécessite la présence des en-têtes (headers) du noyau de Linux; nous installerons donc celles-ci:

apt-get install linux-headers-`uname -r`

La compilation de Asterisk requiert elle aussi certains logiciels et librairies:

apt-get install libncurses5-dev bison libssl-dev libcap-dev libnewt-dev zlib1g-dev procps gcc g++ make binutils doxygen

Si vous pensez avoir besoin des fonctionnalités ODBC ainsi que de la fonction de plan d’appel func_curl (ce qui est mon cas), installez les deux librairies suivantes. L’installation de celles-ci n’est nullement obligatoire pour le bon fonctionnement de Asterisk.

apt-get install unixodbc-dev libmyodbc libmysqlclient15-dev libcurl4-openssl-dev

De plus, je vous propose d’installer des librairies supplémentaires qui vous permetteront d’utiliser les codecs audio libres Speex et Ogg Vorbis:

apt-get install sox libsox-fmt-all libspeex-dev libogg-dev libvorbis-dev

Installation de Zaptel

Nous allons maintenant compiler et installer la suite de pilotes Zaptel, en entrant d’abord dans le répertoire créé précédemment par la décompression de l’archive:

cd zaptel-1.4-current

./configure

make menuselect (optionnel)

make

make install

make config

Une fois les pilotes créés (sous forme de modules), nous nous assurerons que le module ztdummy soit lancé directement à l’exécution de zaptel (qui est lui-même lancé au démarrage). Ouvrons le fichier /etc/default/zaptel dans un éditeur de texte:

vim /etc/default/zaptel

Puis enlevons le dièse (#) qui se trouve devant la ligne suivante:

#MODULES= »$MODULES ztdummy »

Enregistrons nos modifications, et lançons zaptel:

/etc/init.d/zaptel start

L’installation du pilote ztdummy est terminée; passons maintenant à l’installation des libraires PRI.

Installation de Libpri

Bien que les librairies PRI ne nous soient d’aucune utilité si nous n’avons aucune interface T1/E1, l’installation de celles-ci est conseillée et vient compléter l’installation d’Asterisk.

cd ../libpri-1.4-current

make

make install

C’est tout. Passons maintenant à l’installation d’Asterisk.

Installation de Asterisk

Une fois à l’intérieur du dossier créé précédemment lors de la décompression de l’archive (.tar.gz) de Asterisk, nous aurons à exécuter quelques commandes qui compileront et installeront Asterisk sur le système.

cd ../asterisk-1.4-current

./configure

make menuselect (optionnel)

make

make install

Si tout se passe bien, l’installation devrait se terminer et on devrait vous proposer deux nouvelles commandes qui, respectivement, créent les échantillons de fichiers de configuration dans /etc/asterisk et créent les fichiers de documentation.

make samples

make progdocs

Nous créerons finalement les scripts de démarrage et d’arrêt dans les dossiers représentant les différents niveaux d’exécutions (/etc/rcX.d):

make config

Installation des Addons

Les addons d’Asterisk nous permettent, dans le cas de app_addon_sql_mysql, cdr_addon_mysql, res_config_mysql, de respectivement effectuer des requêtes SQL à l’intérieur d’un plan d’appel (dial plan), entreposer les détails des appels (CDR) ainsi que les instructions contenues dans certains fichiers de configuration (qui permet une modification et une application en temps réel) à l’intérieur d’une base de données MySQL.

cd ../asterisk-addons-1.4-current

./configure

make menuselect (optionnel)

make

make install

Sécurisation et configuration d’Asterisk

Dans un soucis de sécurité, nous créerons un utilisateur et un groupe sans privilèges sous lesquels nous lancerons Asterisk; puis, nous modifierons les permissions des divers fichiers/dossiers installés plus tôt sur le système pour que Asterisk y ait bien accès:

adduser –system –no-create-home –home /var/lib/asterisk –shell /bin/false asterisk

addgroup –system asterisk

adduser asterisk asterisk

adduser asterisk audio

Nous allons maintenant faire en sorte que Asterisk utilise bel et bien le nom d’utilisateur et le groupe créés précédemment lors de son exécution, en allant modifier son script de démarrage. Commençons par ouvrir ce fichier avec un éditeur de texte:

vim /etc/init.d/asterisk

Puis, enlevons les dièses (#) devant les lignes suivantes:

#AST_USER=”asterisk”

#AST_GROUP=”asterisk”

Créons maintenant un dossier distinct où le process ID (PID) de Asterisk pourra résider.

mkdir /var/run/asterisk

chown asterisk.asterisk /var/run/asterisk

Nous nous devons alors d’avertir Asterisk que son dossier d’exécution a été changé, en effectuant une modification dans le fichier asterisk.conf.

vim /etc/asterisk/asterisk.conf

Remplaçons maintenant la ligne contenant astrundir => /var/run par la ligne suivante:

astrundir => /var/run/asterisk

Pour que Asterisk puisse accéder (lire) et/ou sauvegarder (écrire) de l’information à l’intérieur de fichiers présents dans différents dossiers, ceux-ci doivent lui appartenir. Nous devrons donc changer la propriété (lire ici ownership) de ces dossiers:

chown -R asterisk.asterisk /etc/asterisk

chown -R asterisk.asterisk /usr/lib/asterisk

chown -R asterisk.asterisk /var/log/asterisk

chown -R asterisk.asterisk /var/spool/asterisk

chown -R asterisk.asterisk /var/lib/asterisk

chown -R asterisk.asterisk /dev/zap/pseudo

Si vous avez décidé d’installer les jeux de sons français, il se peut que tout ce qui à trait aux nombres (chiffres, dates, heures, etc.) soit tout de même dit en anglais, que vous le vouliez ou non. Pour palier à ce problème, il suffit de créer le lien symbolique suivant:

ln -s /var/lib/asterisk/sounds/fr/digits /var/lib/asterisk/sounds/digits/fr

Démarrons finalement Asterisk à partir de la ligne de commande, en prenant soin d’activer la console et la verbosité (-cvv), dans le but d’être informé d’une quelconque erreur fatale.

asterisk -U asterisk -G asterisk -cvv

Dans l’éventualité d’une d’erreur qui empêcherait l’exécution de Asterisk, une petite recherche (sur Google, par exemple) de ce message s’imposerait; à moins de circonstances particulières, les chances que vous soyez le/la seul(e) a avoir rencontré cette erreur jusqu’à maintenant sont quasi-nulles, et il est très probable qu’une solution à celle-ci ait déjà été trouvée par la communauté.

Si par contre, tout s’est bien passé (on l’espère!), nous sommes maintenant prêts à démarrer Asterisk à partir du script d’exécution créé plus tôt par la commande make config.

/etc/init.d/asterisk start

Et voilà! Asterisk est installé et est en cours d’exécution.

viaInstallation de Asterisk 1.4 sous Debian Etch | Sébastien Couture.