By Mark Spencer <[email protected]> and the Asterisk.org developer community.
Copyright (C) 2001-2021 Sangoma Technologies Corporation and other copyright holders.
Il est impératif que vous lisiez et compreniez parfaitement le contenu du document d'informations sur la sécurité avant d'essayer de configurer et d'exécuter un serveur Asterisk.
Voir Considérations importantes en matière de sécurité pour plus d'informations.
Asterisk est une boîte à outils Open Source pour PBX et téléphonie. Il s'agit en quelque sorte d'un middleware entre les canaux Internet et de téléphonie en bas et les applications Internet et de téléphonie en haut. Cependant, Asterisk prend en charge davantage d'interfaces téléphoniques que la simple téléphonie Internet. Asterisk prend également en charge la téléphonie PSTN traditionnelle.
Pour plus d'informations sur le projet lui-même, veuillez visiter la page d'accueil d'Asterisk et la documentation officielle. De plus, vous trouverez de nombreuses informations compilées par la communauté Asterisk sur voip-info.org.
Il existe un livre sur Asterisk publié par O'Reilly sous la licence Creative Commons. Il est disponible en librairie ainsi qu'en version téléchargeable sur le site web asteriskdocs.org.
Le PBX Open Source Asterisk est développé et testé principalement sur le système d'exploitation GNU/Linux et est pris en charge sur toutes les principales distributions GNU/Linux.
Asterisk a également été « porté » et fonctionnerait également correctement sur d'autres systèmes d'exploitation, notamment Sun Solaris, Mac OS X d'Apple, Cygwin et les variantes BSD.
Tout d'abord, assurez-vous que vous disposez du matériel pris en charge (mais notez que vous n'avez besoin d'AUCUN matériel spécial, pas même d'une carte son) pour installer et exécuter Asterisk.
Le matériel téléphonique pris en charge comprend :
Si vous effectuez une mise à jour à partir d'une version précédente d'Asterisk, assurez-vous de lire le fichier UPGRADE.txt dans le répertoire source. Vous devrez modifier certains fichiers et options de configuration, même si nous avons fait tout notre possible pour maintenir la compatibilité ascendante.
Afin de découvrir de nouvelles fonctionnalités à utiliser, veuillez consulter les exemples de configuration dans le répertoire configs de la distribution du code source. Pour une liste des nouvelles fonctionnalités de cette version d'Asterisk, consultez le fichier CHANGES.
Assurez-vous que votre système contient un compilateur et des bibliothèques de développement compatibles. Asterisk nécessite soit la version 4.1 ou supérieure de GNU Compiler Collection (GCC), soit un compilateur prenant en charge la spécification C99 et certaines extensions du langage gcc. De plus, votre système doit disposer des en-têtes de la bibliothèque C, ainsi que des en-têtes et des bibliothèques pour ncurses.
Il existe de nombreux modules qui ont des dépendances supplémentaires. Pour voir quelles bibliothèques sont recherchées, consultez ./configure --help
ou exécutez make menuselect
pour afficher les dépendances de modules spécifiques.
Sur de nombreuses distributions, ces dépendances sont installées par des packages portant des noms tels que « glibc-devel », « ncurses-devel », « openssl-devel » et « zlib-devel » ou similaire.
Alors, procédons :
Il y a plus de documents que celui-ci dans le répertoire doc. Vous souhaiterez peut-être également vérifier les fichiers de configuration contenant des exemples et des guides de référence dans le répertoire configs.
./configure
Exécutez le script de configuration pour deviner les valeurs des variables dépendantes du système utilisées lors de la compilation. Si le script indique que certains composants requis sont manquants, vous pouvez exécuter ./contrib/scripts/install_prereq install
pour installer les composants nécessaires. Notez que cela installera toutes les dépendances pour chaque fonctionnalité d'Asterisk. Après avoir exécuté le script, vous devrez réexécuter ./configure
.
make menuselect
[facultatif]Ceci est nécessaire si vous souhaitez sélectionner les modules qui seront compilés et vérifier les dépendances des différents modules optionnels.
make
En supposant que la construction se termine avec succès :
make install
Si c'est la première fois que vous travaillez avec Asterisk, vous souhaiterez peut-être installer l'exemple de PBX, avec des extensions de démonstration, etc. Si c'est le cas, exécutez :
make samples
Cela écrasera tous les fichiers de configuration existants que vous avez installés.
# asterisk -vvvc
Vous verrez un tas de messages verbeux défiler sur votre écran lors de l'initialisation d'Asterisk (c'est le mode "très très verbeux"). Quand c'est prêt, si vous avez spécifié le "c", vous obtiendrez une console de ligne de commande, qui ressemble à ceci :
*CLI>
Vous pouvez taper « core show help » à tout moment pour obtenir de l’aide sur le système. Pour obtenir de l'aide sur une commande spécifique, tapez "core show help". Pour démarrer le PBX à l'aide de votre carte son, vous pouvez taper « console dial » pour appeler le PBX. Vous pouvez ensuite utiliser « Réponse de la console », « Raccrocher la console » et « Composer la console » pour simuler les actions d'un téléphone. N'oubliez pas que si vous n'avez pas de carte son full duplex (et Asterisk vous le dira quelque part dans ses messages détaillés si vous en avez/ne faites pas), alors cela ne fonctionnera pas correctement (pas encore).
"man asterisk" à l'invite de commande Unix/Linux vous donnera des informations détaillées sur la façon de démarrer et d'arrêter Asterisk, ainsi que toutes les options de ligne de commande pour démarrer Asterisk.
N'hésitez pas à consulter les fichiers de configuration dans /etc/asterisk
, où vous trouverez de nombreuses informations sur ce que vous pouvez faire avec Asterisk.
Tous les fichiers de configuration Asterisk partagent un format commun. Les commentaires sont délimités par ';' (puisque '#', bien sûr, étant un chiffre DTMF, peut apparaître à de nombreux endroits). Un fichier de configuration est divisé en sections dont les noms apparaissent entre []. Chaque section contient généralement deux types d'instructions, celles de la forme « variable = valeur » et celles de la forme « objet => paramètres ». En interne, l'utilisation de '=' et '=>' est exactement la même, ils sont donc utilisés uniquement pour faciliter la compréhension du fichier de configuration et n'affectent pas la façon dont il est réellement analysé.
Les entrées du formulaire 'variable=value' définissent la valeur d'un paramètre sous forme d'astérisque. Par exemple, dans chan_dahdi.conf, on pourrait préciser :
switchtype=national
Afin d'indiquer à Asterisk que le switch auquel ils se connectent est de type "national". En général, le paramètre s'appliquera aux instanciations qui se produisent en dessous de sa spécification. Par exemple, si le fichier de configuration indique :
switchtype = national
channel => 1-4
channel => 10-12
switchtype = dms100
channel => 25-47
Le type de commutateur « national » s'appliquerait aux canaux un à quatre et aux canaux 10 à 12, tandis que le type de commutateur « dms100 » s'appliquerait aux canaux 25 à 47.
Le "objet => paramètres" instancie un objet avec les paramètres donnés. Par exemple, la ligne "channel => 25-47" crée des objets pour les canaux 25 à 47 de la carte, en obtenant les paramètres des variables spécifiées ci-dessus.
Ceux qui utilisent des téléphones SIP doivent savoir qu'Asterisk est sensible aux grands sauts dans le temps. La modification manuelle de l'heure du système à l'aide de date(1) (ou d'autres commandes similaires) peut entraîner l'échec des enregistrements SIP et d'autres processus internes. Si votre système ne peut pas conserver une heure précise par lui-même, utilisez NTP pour maintenir l'horloge système synchronisée en "temps réel". NTP est conçu pour maintenir l'horloge système synchronisée en accélérant ou en ralentissant l'horloge système jusqu'à ce qu'elle soit synchronisée en « temps réel » plutôt qu'en sautant l'heure et en provoquant des discontinuités. La plupart des distributions Linux incluent des versions précompilées de NTP. Méfiez-vous de certaines méthodes de synchronisation de l'heure qui obtiennent périodiquement l'heure réelle correcte, puis règlent manuellement l'horloge système.
Les changements d’heure apparents dus à l’heure d’été ne sont que cela, apparents. L'utilisation de l'heure d'été dans un système Linux est purement un problème d'interface utilisateur et n'affecte pas le fonctionnement du noyau Linux ou d'Asterisk. L'horloge système des noyaux Linux fonctionne en UTC. UTC n'utilise pas l'heure d'été.
Notez également que ce problème est distinct de la synchronisation des canaux TDM et est connu pour affecter au moins les enregistrements SIP.
Selon la taille de votre système et votre configuration, Asterisk peut consommer un grand nombre de descripteurs de fichiers. Sous UNIX, les descripteurs de fichiers ne sont pas utilisés uniquement pour les fichiers sur le disque. Les descripteurs de fichiers sont également utilisés pour gérer les communications réseau (par exemple les appels SIP, IAX2 ou H.323) et l'accès au matériel (par exemple le matériel de ligne réseau analogique et numérique). Asterisk accède à de nombreux fichiers sur disque pour tout, des informations de configuration au stockage de la messagerie vocale.
La plupart des systèmes limitent le nombre de descripteurs de fichiers qu'Asterisk peut ouvrir simultanément. Cela peut limiter le nombre d'appels simultanés que votre système peut gérer. Par exemple, si la limite est fixée à 1 024 (une valeur par défaut courante), Asterisk peut gérer environ 150 appels SIP simultanément. Pour modifier le nombre de descripteurs de fichiers, suivez les instructions correspondant à votre système ci-dessous :
Si votre système utilise PAM (Pluggable Authentication Modules), modifiez /etc/security/limits.conf
. Ajoutez ces lignes au bas du fichier :
root soft nofile 4096
root hard nofile 8196
asterisk soft nofile 4096
asterisk hard nofile 8196
(ajustez les chiffres selon vos goûts). Vous devrez peut-être redémarrer le système pour que ces modifications prennent effet.
S'il n'y a pas d'instructions spécifiquement adaptées à votre système ci-dessus vous pouvez essayer d'ajouter la commande ulimit -n 8192
au script qui démarre Asterisk.
Consultez le répertoire doc pour plus de documentation sur les différentes fonctionnalités. Encore une fois, veuillez lire tous les exemples de configuration qui incluent de la documentation sur les options de configuration.
Enfin, vous souhaiterez peut-être visiter le site d'assistance et rejoindre la liste de diffusion si vous souhaitez obtenir plus d'informations.
Bienvenue dans la communauté mondiale croissante des utilisateurs d'Asterisk !
Mark Spencer, and the Asterisk.org development community
Asterisk est une marque commerciale de Sangoma Technologies Corporation