Recherche de site Web

Comment installer Asterisk sur CentOS/RHEL 8/7


Asterisk est un framework open-source utilisé pour la création d’applications de communication. Vous pouvez l’utiliser pour transformer un ordinateur local ou un serveur en serveur de communication. Il est utilisé pour alimenter les systèmes PBX IP, 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 le dernier, 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 sans problème après l’installation.

Étape 1 : Désactiver SELinux sur CentOS

Pour ce faire, connectez-vous à votre système en SSH 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 à nouveau dans ce système.

Étape 2 : Installer les packages requis

Asterisk a un certain nombre d’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 plus loin, créez un nouvel utilisateur avec des privilèges sudo appelé « asterisk », nous utiliserons cet utilisateur pour configurer asterisk 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 basés sur des normes telles que SIP, SDP, RTP, STUN, TURN et ICE. C’est le pilote de canal SIP Asterisk qui devrait améliorer la clarté des appels.

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

$ mkdir ~/build && cd ~/build

Allez maintenant sur la page de téléchargement de PJSIP et récupérez le paquet ou utilisez la commande wget suivante pour télécharger le paquet directement dans le terminal.

Notez qu’au moment de la rédaction de cet article, la dernière version est la 2.8, cela peut changer à l’avenir, assurez-vous donc 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 paquet à 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 pas voir d’erreurs ou d’avertissements. 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 : Installez Asterisk sur CentOS 8/7

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

$ cd ~/build

Allez sur 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 la 16. Assurez-vous que vous téléchargez 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 à ceux-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 paquet à 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 obtenu l’erreur suivante :

configure: error: patch is required to configure bundled pjproject

Pour contourner ce problème, il suffit de courir :

# 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 de fonctionnalités à activer :

Si vous essayez d’utiliser la fonction de musique d’attente, vous devrez activer la fonction « format_mp3 » dans la section « Add-ons ». 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 une sortie similaire à celle-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 afficher la 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 maintenant 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 façon d’y parvenir, il est recommandé d’utiliser la page Wiki Asterisk. Si vous avez des questions ou des commentaires, n’hésitez pas à nous le faire savoir dans la section des commentaires ci-dessous.

Articles connexes: