Asterisk

Source de la documentation : http://denisrosenkranz.com/tuto-installer-asterisk-13-sur-debian-7/ et http://wiki.freepbx.org/display/FOP/Installing+FreePBX+13+on+Debian+8.1.

Procédure validée sur Debian 8

Installation d'une infrastructure Asterisk

Asterisk est un autocommutateur téléphonique (PABX) logiciel destiné aux systèmes GNU/Linux. Il permet la prises en charge de diverses fonctionnalités d'appels tels que les messageries vocales, les menu vocaux interactifs et les groupes d'appels.

Nous allons voir ici comment installer Asterisk sur un servuer Debian Jessie en récupérant les sources et les compiler afin d'avoir une version plus récente que celle disponible dans les dépôts publics Debian.

Installation des dépendances

Exécutez la commande suivante avec les droits super-utilisateur :

echo "deb http://ftp.fr.debian.org/debian/ jessie-backports main" >> /etc/apt/sources.list
apt-get update
apt-get upgrade
apt-get -y install build-essential libxml2-dev libncurses5-dev linux-headers-`uname -r` libsqlite3-dev uuid-dev libjansson-dev libssl-dev ffmpeg

Téléchargement des sources Asterisk

Exécutez les commandes suivante avec les droits super-utilisateur :

cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-14-current.tar.gz

Compilation et installation d'Asterisk

Exécutez les commandes suivante avec les droits super-utilisateur :

cd /usr/src
tar xvfz asterisk-14-current.tar.gz
rm -f asterisk-14-current.tar.gz
cd asterisk-*
contrib/scripts/get_mp3_source.sh
contrib/scripts/install_prereq install
./configure
make menuselect

Une fenêtre de sélection des modules à compiler vous sera affiché. Cochez format_mp3 pour la gestion du format MP3 pour les musiques d'attente.

make
make install
make samples
make config
ldconfig

Installation des sons en français

Nous allons utiliser les sons en encodés WAV et G722. Pour cela, exécutez les commandes suivante avec les droits super-utilisateur :

cd /var/lib/asterisk/sounds
wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-fr-wav-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-fr-wav-current.tar.gz
tar xvf asterisk-core-sounds-fr-wav-current.tar.gz
rm -f asterisk-core-sounds-fr-wav-current.tar.gz
tar xfz asterisk-extra-sounds-fr-wav-current.tar.gz
rm -f asterisk-extra-sounds-fr-wav-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-fr-g722-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-fr-g722-current.tar.gz
tar xfz asterisk-extra-sounds-fr-g722-current.tar.gz
rm -f asterisk-extra-sounds-fr-g722-current.tar.gz
tar xfz asterisk-core-sounds-fr-g722-current.tar.gz
rm -f asterisk-core-sounds-fr-g722-current.tar.gz

Démarrage du démon Asterisk

Exécutez la commande suivante avec les droits super-utilisateur :

service asterisk restart

Vous pouvez démarrer la console Asterisk en entrant la commande suivante :

asterisk -cvvvvvvvvvvr

Ajout d'un poste téléphonique

Afin d'ajouter un poste téléphonique, il est nécessaire d'éditer deux fichiers. Nous allons déclarer l'utilisateur dans le fichier /etc/asterisk/users.conf et y ajouter les lignes suivantes (à adapter en fonction des besoins) :

[antoine]
callerid="antoine"
username=antoine
type=friend
host=dynamic
context=from-internal
secret=MostSecret

Nous allons ensuite affecter un numéro de téléphone à cet utilisateur. Pour cela, ajoutez la ligne suivante au fichier /etc/asterisk/extensions.conf, dans la section [from-internal] :

exten => 100,1,Dial(sip/antoine)

Ajout d'un message en cas de faux numéro

Nous allons mettre en œuvre ici un message diffusé à toute personne souhaitant joindre un numéro non attribué. Nous allons utiliser un message enregistré par nos soins :

cd /var/lib/asterisk/sounds
wget https://exemple.com/no-number.wav
wget https://exemple.com/no-number.g722

Ajoutez enfin ceci au fichier /etc/asterisk/extensions.conf, dans la section [from-internal] :

exten => _.,1,Answer
exten => _.,2,Playback(no-number)
exten => _.,3,Hangup

Enregistrer son propre message

Il est possible d'enregistrer votre propre message en respectant les caractéristiques suivantes :

Format
WAV
Type
Mono
Fréquence d'échantillonage
8 000 Hz

Un fois le message produit, copiez-le dans le dossier /var/lib/asterisk/sounds et convertissez-le à l'aide de la commande suivante :

ffmpeg -i sound.wav -ar 16000 -acodec g722 sound.g722

Exécuter une commande shell associée à un numéro

Ici, nous verrons comment exécuter une commande shell sur le serveur lors de l'appel d'un numéro. Pour cela, ajoutez ceci au fichier /etc/asterisk/extensions.conf, dans la section [from-internal] :

exten => 4000,1,Answer
exten => 4000,2,System(echo "Hello world" >> /tmp/test)
exten => 4000,3,Hangup

Créer un groupe d'appel

Nous allons voir comment créer un groupe d'appel dans lequel plusieurs utilisateurs sont joignables \textit{via} le même numéro de téléphone. Pour cela, ajoutez ceci au fichier /etc/asterisk/extensions.conf, dans la section [from-internal] :

exten => 200,1,Dial(sip/antoine&sip/arnaud)