Recherche de site Web

Comment installer Asterisk sur CentOS/RHEL 8/7


Asterisk est un framework open source utilisé pour créer des applications de communication. Vous pouvez l'utiliser pour transformer un ordinateur ou un serveur local en serveur de communication. Il est utilisé pour alimenter les systèmes IP PBX, les passerelles VoIP, les serveurs de conférence et d'autres solutions. Il est utilisé par toutes sortes d’organisations dans le monde entier et enfin, mais pas pour durer, il est gratuit et open source.

Dans ce tutoriel, nous allons vous montrer comment installer Asterisk sur CentOS 8/7 (les instructions fonctionnent également sur RHEL 8/7) , mais avant de commencer, nous devrons faire quelques préparatifs pour qu'Asterisk puisse fonctionner correctement après l'installation.

Étape 1 : Désactiver SELinux sur CentOS

Pour ce faire, connectez-vous en SSH à votre système et à l'aide de votre éditeur de texte en ligne de commande préféré, ouvrez /etc/selinux/config et désactivez SELINUX.

vim /etc/selinux/config

La ligne SELinux devrait ressembler à ceci :

SELINUX=disabled

Maintenant, redémarrez votre système. Une fois qu'il revient, SSH revient sur ce système.

Étape 2 : Installer les packages requis

Asterisk a de nombreuses exigences qui doivent être installées. Vous pouvez utiliser la commande yum suivante pour installer les packages requis comme indiqué.

yum install -y epel-release dmidecode gcc-c++ ncurses-devel libxml2-devel make wget openssl-devel newt-devel kernel-devel sqlite-devel libuuid-devel gtk2-devel jansson-devel binutils-devel libedit libedit-devel

Avant de continuer, créez un nouvel utilisateur avec les privilèges sudo appelé « astérisque », nous utiliserons cet utilisateur pour configurer astérisque sur le système.

adduser asterisk -c "Asterisk User"
passwd asterisk 
usermod -aG wheel asterisk
su asterisk

Ensuite, installez PJSIP, une bibliothèque de communication multimédia open source gratuite qui implémente des protocoles standard tels que SIP, SDP, RTP, STUN, TURN et ICE. C'est le pilote de canal Asterisk SIP qui devrait améliorer la clarté des appels.

Pour obtenir la dernière version, créons d’abord un répertoire temporaire dans lequel nous allons construire le package à partir des sources.

mkdir ~/build && cd ~/build

Accédez maintenant à la page de téléchargement PJSIP et récupérez le package ou utilisez la commande wget suivante pour télécharger le package directement dans le terminal.

Notez qu'au moment de la rédaction de cet article, la dernière version est 2.8, cela peut changer à l'avenir, alors assurez-vous d'utiliser la dernière version :

wget https://www.pjsip.org/release/2.9/pjproject-2.9.tar.bz2

Une fois le téléchargement terminé, extrayez le fichier et accédez à ce répertoire.

tar xvjf pjproject-2.9.tar.bz2
cd pjproject-2.9

L'étape suivante consiste à préparer le package à compiler. Vous pouvez utiliser la commande suivante :

./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr

Vous ne devriez voir aucune erreur ou avertissement. Assurez-vous que toutes les dépendances sont respectées :

make dep

Et maintenant nous pouvons terminer l'installation et lier les bibliothèques avec :

make && sudo make install && sudo ldconfig

Enfin, assurez-vous que toutes les bibliothèques sont installées et présentes :

ldconfig -p | grep pj

Vous devriez obtenir le résultat suivant :

libpjsua2.so.2 (libc6,x86-64) => /lib64/libpjsua2.so.2
	libpjsua2.so (libc6,x86-64) => /lib64/libpjsua2.so
	libpjsua.so.2 (libc6,x86-64) => /lib64/libpjsua.so.2
	libpjsua.so (libc6,x86-64) => /lib64/libpjsua.so
	libpjsip.so.2 (libc6,x86-64) => /lib64/libpjsip.so.2
	libpjsip.so (libc6,x86-64) => /lib64/libpjsip.so
	libpjsip-ua.so.2 (libc6,x86-64) => /lib64/libpjsip-ua.so.2
	libpjsip-ua.so (libc6,x86-64) => /lib64/libpjsip-ua.so
	libpjsip-simple.so.2 (libc6,x86-64) => /lib64/libpjsip-simple.so.2
	libpjsip-simple.so (libc6,x86-64) => /lib64/libpjsip-simple.so
	libpjnath.so.2 (libc6,x86-64) => /lib64/libpjnath.so.2
	libpjnath.so (libc6,x86-64) => /lib64/libpjnath.so
	libpjmedia.so.2 (libc6,x86-64) => /lib64/libpjmedia.so.2
	libpjmedia.so (libc6,x86-64) => /lib64/libpjmedia.so
	libpjmedia-videodev.so.2 (libc6,x86-64) => /lib64/libpjmedia-videodev.so.2
	libpjmedia-videodev.so (libc6,x86-64) => /lib64/libpjmedia-videodev.so
	libpjmedia-codec.so.2 (libc6,x86-64) => /lib64/libpjmedia-codec.so.2
	libpjmedia-codec.so (libc6,x86-64) => /lib64/libpjmedia-codec.so
	libpjmedia-audiodev.so.2 (libc6,x86-64) => /lib64/libpjmedia-audiodev.so.2
	libpjmedia-audiodev.so (libc6,x86-64) => /lib64/libpjmedia-audiodev.so
	libpjlib-util.so.2 (libc6,x86-64) => /lib64/libpjlib-util.so.2
	libpjlib-util.so (libc6,x86-64) => /lib64/libpjlib-util.so
	libpj.so.2 (libc6,x86-64) => /lib64/libpj.so.2
	libpj.so (libc6,x86-64) => /lib64/libpj.so

Étape 3 : Installer Asterisk sur CentOS 8/7

Nous sommes maintenant prêts à lancer l’installation d’Asterisk. Revenez à notre répertoire ~/build :

cd ~/build

Accédez à la page de téléchargement d'Asterisk et récupérez la dernière version ou vous pouvez utiliser la commande wget suivante pour télécharger le fichier dans le terminal.

wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz

Au moment de la rédaction de ce tutoriel, la dernière version d'Asterisk est 16. Assurez-vous de télécharger la dernière version d'Asterisk lorsque vous suivez les étapes.

Extrayez maintenant l'archive et accédez au répertoire nouvellement créé :

tar -zxvf asterisk-16-current.tar.gz
cd asterisk-16.5.1

C'est le moment de mentionner que si vous souhaitez activer le support mp3 pour lire de la musique pendant que le client est en attente, vous devrez installer quelques dépendances supplémentaires. Ces étapes sont facultatives :

sudo yum install svn
sudo ./contrib/scripts/get_mp3_source.sh

Après la deuxième étape, vous devriez obtenir un résultat similaire à celui-ci :

A    addons/mp3
A    addons/mp3/Makefile
A    addons/mp3/README
A    addons/mp3/decode_i386.c
A    addons/mp3/dct64_i386.c
A    addons/mp3/MPGLIB_TODO
A    addons/mp3/mpg123.h
A    addons/mp3/layer3.c
A    addons/mp3/mpglib.h
A    addons/mp3/decode_ntom.c
A    addons/mp3/interface.c
A    addons/mp3/MPGLIB_README
A    addons/mp3/common.c
A    addons/mp3/huffman.h
A    addons/mp3/tabinit.c
Exported revision 202.

Commencez par exécuter le script configure pour préparer le package à la compilation :

sudo contrib/scripts/install_prereq install
./configure --libdir=/usr/lib64 --with-jansson-bundled

Si vous obtenez des dépendances manquantes, installez-les. Dans mon cas, j'ai eu l'erreur suivante :

configure: error: patch is required to configure bundled pjproject

Pour contourner ce problème, exécutez simplement :

yum install patch 

Et réexécutez le script de configuration. Si tout s'est parfaitement déroulé sans erreur, vous verrez la capture d'écran suivante.

Maintenant, commençons le processus de construction :

make menuselect

Après quelques secondes, vous devriez obtenir une liste des fonctionnalités à activer :

Si vous essayez d'utiliser la fonctionnalité de musique d'attente, vous devrez activer la fonctionnalité « format_mp3 » dans la section « Modules complémentaires ». Enregistrez votre liste et exécutez la commande suivante :

make && sudo make install

Pour installer les exemples de fichiers de configuration, utilisez la commande ci-dessous :

sudo make samples

Pour démarrer Asterisk au démarrage, utilisez :

sudo make config

Mettez à jour la propriété des répertoires et fichiers suivants :

sudo chown asterisk. /var/run/asterisk
sudo chown asterisk. -R /etc/asterisk
sudo chown asterisk. -R /var/{lib,log,spool}/asterisk

Enfin, testons notre installation avec :

sudo service asterisk start
sudo asterisk -rvv

Vous devriez voir un résultat similaire à celui-ci :

Asterisk 16.5.1, Copyright (C) 1999 - 2018, Digium, Inc. and others.
Created by Mark Spencer <[email >
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 16.5.1 currently running on centos8-tecmint (pid = 9020)
centos8-tecmint*CLI>

Si vous souhaitez voir une liste des commandes disponibles, tapez :

asterisk*CLI> core show help

Pour quitter l'invite Asterisk, tapez simplement :

asterisk*CLI> exit

Asterisk fonctionnera toujours en arrière-plan.

Conclusion

Vous disposez désormais d'un serveur Asterisk en cours d'exécution et vous pouvez commencer à connecter des téléphones et des extensions et ajuster votre configuration en fonction de vos besoins. Pour plus de détails sur la manière d'y parvenir, il est recommandé d'utiliser la page Wiki Asterisk. Si vous avez des questions ou des commentaires, veuillez nous en informer dans la section commentaires ci-dessous.