Cet article décrit comment installer le logiciel de communication open source Asterisk sur RHEL 8 / CentOS 8; étant donné qu'Asterisk et d'autres dépendances importantes ne sont pas disponibles en tant que packages RPM à partir des référentiels, il est nécessaire de les compiler à partir des sources.
Dans ce didacticiel, vous apprendrez :
- Quels sont les pré-requis pour installer Asterisk
- Comment compiler Asterisk à partir des sources
- Comment démarrer Asterisk
- Comment reconfigurer ou supprimer Asterisk
- Comment accéder à l'interface de ligne de commande Asterisk

Configuration logicielle requise et conventions utilisées
Catégorie | Exigences, conventions ou version du logiciel utilisée |
---|---|
Système | RHEL 8/CentOS 8 |
Logiciel | Astérisque, pjsip, libedit |
Autre | dépôts locaux ou distants configurés ; date système et fuseau horaire corrects. |
Conventions | # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié |
Présentation
Asterisk est un logiciel open source d'autocommutateur privé (PBX). En tant que tel, son objectif principal est d'établir et de contrôler les appels téléphoniques entre différents systèmes, via des lignes PSTN traditionnelles ou des points de terminaison VoIP modernes.
Dans ce guide, nous nous assurerons il sera installé dans RHEL 8 / CentOS 8 avec les composants communs.
Installation d'Asterisk sur RHEL 8 / CentOS 8 - étape par étape.
Nous mettrons la dernière version – la 16.3.0 au moment de la rédaction de ce tutoriel.
- Prérequis
Nous devons installer les packages ci-dessous, y compris
systemd-devel
si nous voulons démarrer Asterisk en tant que service systemd.# dnf -y install wget bzip2 tar sqlite-devel ncurses-devel systemd-devel
Et pour développer à partir des sources :
# dnf -y install binutils gcc gcc-c++ kernel-devel autoconf automake libtool
À partir de maintenant, nous devons tout installer à partir des sources, alors faisons-le à partir d'un dossier commun
# mkdir -p /root/src && cd /root/src
Nous allons d'abord compiler
libedit
, un remplacement ou une alternative à l'édition de la ligne de commande GNU readline.# cd /root/src # wget http://thrysoee.dk/editline/libedit-20190324-3.1.tar.gz # tar xzvf libedit-20190324-3.1.tar.gz # cd libedit-20190324-3.1 # ./configure && make && make install
- Installation de composants facultatifs
Les composants suivants sont facultatifs, mais dans un scénario réel, ils sont très souvent nécessaires.DAHDI
(Digium/Asterisk Hardware Device Interface) :il s'agit d'un cadre d'interfaçage avec les cartes de téléphonie numérique dans Asterisk.
Installons-le.# cd /root/src # wget https://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz # tar zxvf dahdi-linux-complete-current.tar.gz && cd dahdi-linux-complete-3.0.0+3.0.0 # make all && make install && make install-config # cd /etc/dahdi && cp system.conf.sample system.conf # systemctl enable dahdi && systemctl start dahdi # modprobe dahdi # modprobe dahdi_transcode
LibPRI est une bibliothèque qui ajoute la prise en charge du RNIS (PRI et BRI). Elle est essentiellement nécessaire si vous installez une carte RNIS pour communiquer avec les systèmes hérités.
Pour l'installer :
# cd /root/src/ # wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.6.0.tar.gz # tar xzvf libpri-1.6.0 && cd libpri-1.6.0 # make && make install
- Installation d'Asterisk
Il est maintenant temps de compiler l'application principale à partir des sources - comme mentionné.
Cela installera également la bibliothèque SIPpjsip
dans le système.# cd /root/src/ # wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16.3.0.tar.gz # tar xzvf asterisk-16.3.0.tar.gz # wget https://raw.githubusercontent.com/asterisk/third-party/master/pjproject/2.8/pjproject-2.8.tar.bz2 # mv pjproject-2.8.tar.bz2 /tmp # cd asterisk-16.3.0 # ./configure # make && make install && make install-logrotate
Avec
make install-logrotate
nous nous assurons que les fichiers journaux des applications seront alternés. - Configuration d'Asterisk
Dans Asterisk, il existe de nombreux fichiers de configuration, le principal estasterisk.conf
; pour installer une version par défaut de chacun d'eux, nous devons exécuter :# cd /root/src/asterisk-16.3.0/ # make samples
À ce stade, étant donné que certains modules ou fonctionnalités nécessitent une configuration supplémentaire ou des dépendances, il est préférable de les désactiver.
Cependant, ce n'est pas obligatoire, ce ne sont pas des composants essentiels empêchant Asterisk de démarrer.#cd /etc/asterisk # cp modules.conf modules.conf.org # echo "noload => res_config_ldap.so" >>modules.conf # echo "noload => res_pjsip_transport_websocket.so" >>modules.conf # echo "noload => cdr_sqlite3_custom.so" >>modules.conf # echo "noload => cel_sqlite3_custom.so" >>modules.conf # echo "noload => res_config_sqlite3.so" >>modules.conf # echo "noload => cdr_pgsql.so" >>modules.conf # echo "noload => cel_pgsql.so" >>modules.conf # echo "noload => res_config_pgsql.so" >>modules.conf sed -i.org 's/enabled = yes/enabled = no/' ari.conf
Ensuite, il est temps de préparer les fichiers de service systemd :
# cd /root/src/asterisk-16.3.0/contrib/systemd # cp asterisk* /usr/lib/systemd/system
Le service Asterisk doit fonctionner en tant qu'utilisateur normal, pour des raisons de sécurité, nous devons donc ajouter un ID de service qui s'appellera
asterisk
comme spécifié dans le fichier de configuration systemd.# useradd -m -c "asterisk user"
Modifions ensuite certaines autorisations :
chown -R asterisk:asterisk /var/log/asterisk/* chown asterisk:asterisk /var/log/asterisk/.
- Démarrer Asterisk
SELinux empêchera Asterisk de démarrer, nous le mettons donc enpermissive mode
par souci de simplicité.# setenforce 0 # sed -i.org 's/enforcing/permissive/' /etc/sysconfig/selinux
Enfin nous pouvons démarrer Asterisk
# systemctl enable asterisk # systemctl start asterisk
Vous pouvez également exécuter Asterisk directement sans systemd en lançant :
# /usr/sbin/asterisk -mqf -C /etc/asterisk/asterisk.conf
ou mieux
# asterisk -vvvc
pour obtenir des informations détaillées.
Sortie astérisque lors du lancement direct
- Reconfigurer Asterisk
Il est possible à tout moment de reconfigurer Astering en supprimant ou en (ré)ajoutant n'importe quelle fonctionnalité.
Il suffit d'arrêter le service, de passer au dossier source et d'exécutermake menuselect
.Sélection du menu astérisque
# systemctl stop asterisk # cd /root/src/asterisk-16.3.0/ # make menuselect
Si vous avez apporté des modifications, vous devez enregistrer la configuration avant de quitter le menu de sélection.
Après, il est nécessaire de recompiler à nouveau Asterisk comme expliqué ci-dessus. Il est préférable d'effectuer d'abord toute modification dans un environnement de test. - Supprimer Asterik
Si vous avez besoin de supprimer Asterisk du système, y compris Dahdi et libpri, voici les étapes :# systemctl stop dahdi # systemctl stop asterisk # cd /root/src/asterisk-16.3.0 # make uninstall-all cd /root/src/libpri-1.6.0 && make uninstall
- Accéder à Asterisk CLI
Ce logiciel a aussi son shell, pour y accéder – une fois Asterisk démarré – il faut taper :# asterisk -r
CLI astérisque
Conclusion
Nous avons réussi à compiler Asterisk à partir des sources et à le démarrer, mais cela ne suffit pas pour obtenir un environnement de travail ; généralement après l'installation, vous ajouterez vos terminaux SIP en modifiant le fichier de configuration sip.conf
– ou via la CLI mentionnée – et configurez n'importe quelle extension dans le fichier extensions.conf
. Les deux fichiers sont dans /etc/asterisk.