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.