Asterisk

De Justine's wiki
Version datée du 1 janvier 2019 à 17:07 par Justine (discussion | contributions) (Page créée avec « <pre class="mw-parser-output">D'après : https://www.youtube.com/watch?v=vqqEcDC972c&list=PL3GzJ6OC0xVjvz7me4YvPUumYKVkiZSfZ&index=5</pre> = Prérequis = Au préala... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche
D'après : https://www.youtube.com/watch?v=vqqEcDC972c&list=PL3GzJ6OC0xVjvz7me4YvPUumYKVkiZSfZ&index=5

Prérequis

Au préalable, il faut une machine virtuelle Debian 9 non seulement à jour :

sudo apt update && sudo apt full-upgrade

Mais également installer les outils de compilation du noyau et les en-têtes du noyau Linux :

apt-get install build-essential module-assistant
m-a prepare
apt-get install linux-headers-$(uname -r)

Pour rappel, les en-têtes de noyau Linux servent à définir les fonctions dans le code-source du noyau Linux : savoir de quelles entrées a besoin une fonction, et quelles sorties elle renvoie.

On aura aussi besoin de compiler des choses :

sudo apt install automake

Présentation d'Asterisk

Asterisk logo4.png

Asterisk est un IPBX basé sur Linux, le plus connu et le plus complet. Il est libre (open source) et gratuit dans ses versions "nues", mais propriétaire et payant dans ses versions prêtes à l'emploi. C'est le plus répandu, que ce soit en embarqué dans de l'équipement dédié ou en installation "logique pure" : il sert aux petits comme aux gros déploiements. Il a la fonction d'un PABX, soit un Autocommutateur Téléphonique Privé. Ce genre d'équipement consiste normalement en un ensemble important de cartes électroniques chères et complexes à utiliser (il faut un spécialiste pour ce travail). L'étoile dans le logo représente le fait qu'il couvre tous les besoins : il est multi-protocoles, multi-codecs... Il permet de développer sa propre solution.

Créé en 1999 par Mark Spencer pour sa fin d'études, il permet alors de prendre en charge des appels téléphoniques sans PABX. Spencer n'as alors pas 25 ans. Le logiciel est téléchargeable sous 3 formes :

  • Sa forme standard, basique : il est sous forme de fichiers (Asterisk Communications Framework)
  • Sous la forme d'une ISO bootable, qui transforme la machine en IPBX avec une interface graphique nommé FreePBX (AsteriskNOW Software PBX)
  • Sous forme prête-à-l'emploi avec même du matériel, qui n'est pas gratuite. C'est de l'Asterisk avec des choses en plus ( Switchbox).

Dans le cadre de ce TP, on utilisera la version Framework. Il existe en plusieurs versions; en effet, en plus du 32/64 bits, il doit pouvoir s'interfacer avec le monde extérieur (qu'il s'agisse de lignes opérateur, de matériel...) : on va donc utiliser la version avec DAHDI : Digium/Asterisk Hardware Device Interface. DAHDI permet d'exploiter les cartes matérielles conçues par Digium, la société de Mark Spencer. Libpri, quant à lui, est une libraire permettant de mettre en place les protocoles de liaison avec les lignes RNIS (non IP, donc), sensées disapraître d'ici 2020. Asterisk s'appuyant sur SIP, on va avoir besoin de PJSIP, qui permet d'utiliser SIP avec du NAT.

Installation

On commence par créer un dossier Asterisk, puis on télécharge dans celui-ci les fichiers nécessaires :

mkdir Asterisk

Puis on installe les fichiers nécessaires : pour avoir de l'évolutivité, on va passer par le code source d'Asterisk. On pourrait pazsser par Apt-get, mais ce ne serait pas aussi simple de modifier des éléments problématiques. On va passer par le serveur de téléchargements d'Asterisk : http://downloads.asterisk.org/pub/telephony/asterisk/

cd /usr/src
http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-15-current.tar.gz #La 13 est LTS
sudo wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-2.11.1+2.11.1.tar.gz
sudo wget https://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz 

On va décompresser nos fichiers :

sudo tar -zxvf libpri-current.tar.gz 
sudo tar -zxvf asterisk-15-current.tar.gz
sudo tar -zxvf dahdi-linux-complete-2.11.1+2.11.1.tar.gz

On a alors nos 3 dossiers avec nos codes sources, on va compiler.

DAHDI

Il peut manquer quelques dépendances :

sudo apt install libglib2.0-dev libusb-1.0

Il suffit ensuite de se rendre dans le dossier et de faire un make puis make install :

cd dahdi-linux-complete-2.11.1+2.11.1
sudo make #On voit l'ensemble des modules pour différents matériels au passage :)
sudo make install
sudo make config

libpri

On se rend dans le dossier libpri et on installe :

cd ..
cd libpri-1.6.0/
sudo make
sudo make install

PJSIP et Asterisk

On peut rester sur du SIP standard; mais PJSIP est intéressant. Pour l'installer :

cd asterisk-15.7.1/contrib/scripts/
sudo ./install_prereq install #En version paquet Debian
sudo ./install_prereq install-unpackaged #En version depuis les sources

Cette commande prend un peu de temps car certains dépendances sont installées. Une fois cela fait, on va installer Asterisk.

cd ../..
sudo ./configure

On doit voir le logo d'Asterisk en ASCII art à la fin. Si on est sur une version =< 13, il faut penser à rajouter --with-pjproject-bundle après le "./configure". Si on un problème survient lors du ./configure, avant de recommencer, il faut faire depuis le dossier d'Asterisk :

make distclear

Sélection des modules

On va choisir les modules que va utiliser Asterisk. Il faut s'assurer que la fenêtre de terminal fasse au moins 80 * 27. Ensuite:

sudo make menuselect

Dans la fenêtre, on peut choisir ce qui nous intéresse ou non : que ce soit des applications, des modules... on peut choisir ce que l'on veut en fonction de nos besoins, mais comme je pars du principe que l'on va rester sur une installation normale et que l'on a les ressources nécessaires, je ne vais pas enlever grand-chose. Il faut cependant faire attention aux "compiler flags", en fonction du matériel sur lequel on se trouve (dans le doute, ne pas toucher).

Il est également intéressant de jeter un oeil aux "Core Sound Packages", c'est-à-dire les sons que joueront par exemple les boîtes vocales. Je décoche donc les sons en anglais et je coche les sons en français : on a par exemple "CORE-SOUNDS-FR-GSM", et d'autres... L'extension à le fin désigne le codec des fichiers son. Dans le doute, on peut tous les installer; mais le codec utilisé par défaut en France est ALAW, et le codec américain est ULAW. Il est donc conseillé de prendre au moins :

  • CORE-SOUNDS-FR-ALAW
  • CORE-SOUNDS-FR-ULAW

Ensuite, dans la section musique, on garde le format WAV. On ne prend pas de fichiers son supplémentaires, à priori on en aura pas besoin.

Enfin, il suffit d'utiliser TAB jusqu'à aller sur "Save & exit" et appuyer sur Entrée.

Installation d'Asterisk (enfin !)

Le système a donc préparé sa config, on a plus qu'a être dans le dossier d'Asterisk et faire un:

sudo make && sudo make install

On a en pour au moins une dizaine de minutes. Il faut garder un oeil sur la fenêtre lors de l'installation en cas de messages d'erreur.

L'install terminée, on va faire un make sample pour installer les fichiers dans le dossier /etc/asterisk :

sudo make samples
sudo make config  #install les scripts de démarrage, dans init.d par exemple
sudo make install-logrotate  #Installe une gestion / archivage des logs

Il faut ensuite démarrer asterisk et s'assurer qu'il ouvre bien ses ports :

sudo systemctl start asterisk
sudo systemctl status asterisk
sudo netstat -anutp  #Asterisk a-t'il bien des ports ouverts à son nom?

On voit des ports pour tous les protocoles utilisés par Asterisk.

Asterisk tourne, il faut encore le configurer.