====== Installation d'Asterisk ====== Document réalisé à partir d'une ressource fournie par Herve De Charrière (Lycée Turgot - Limoges). ===== Présentation d'Asterisk ===== Asterisk est un autocommutateur téléphonique privé (PABX) open source et propriétaire (publié sous licence GPL et licence propriétaire) pour systèmes GNU/Linux. Il permet, entre autres, la messagerie vocale, les files d'attente, les agents d'appels, les musiques d'attente et les mises en garde d'appels, la distribution des appels. Il est possible également d'ajouter l'utilisation des conférences. {{:reseau:asterisk:configserveur:asterisk_01.png|}} |Développeur |Mark Spencer Digium Contributeurs | |Dernière version |11.6.1 (16 décembre 2013)| |Langage |Écrit en C | |Environnement |GNU/Linux | |Type |Voix sur IP (VoIP) | |Licence |Double licence: GNU GPLv2 et propriétaire | |Site web |asterisk.org| ===== Installation d'Asterisk ===== D'après le tutoriel http://www.tux89.com/telephonie/configuration-pour-utiliser-asterisk-en-francais/ * Tout d'abord mettre à jour votre version Debian avant d'installer Asterisk. # apt-get update # apt-get -f -y install build-essential linux-headers-$(uname -r) libxml2-dev libncurses5-dev libgtk2.0-dev libnewt0.52 libnewt-dev libssl-dev libsqlite3-dev * Télécharger Asterisk # cd /usr/srv # wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz * Installation : # cd /usr/src/asterisk* # ./configure * Configuration initiale d'Asterisk # make menuselect * Installation des modules additionnels # make # make install # make config Cela permet notamment à ajouter Asterisk au démarrage du Linux. * Génération des fichiers de configuration exemples # make samples Maintenant Asterisk est installé ! Il ne reste plus qu'à le démarrer: # /etc/init.d/asterisk start ===== Configuration d'Asterisk ===== * Sauvegarder au préalable les fichiers initiaux de configuration # cp /etc/asterisk/sip.conf /etc/asterisk/sip_old.conf # cp /etc/asterisk/extensions.conf /etc/asterisk/extensions_old.conf Schéma de notre réseau téléphonique à réaliser : {{:reseau:asterisk:configserveur:asterisk_02.png|}} * Edition du fichier sip.conf qui contient la définition des téléphones IP # nano /etc/asterisk/sip.conf **Rappel** : avec nano, pour sauvegarder : CTRL+O, pour quitter:CTRL+X Dans le fichier sip.conf on va placer les lignes suivantes pour la configuration de base : [general] language=fr context=default dtmfmode=rfc2833 * Définition du premier téléphone qui sera connecté en placez les lignes suivantes dans sip.conf. [tel1] type=friend username=tel1 secret=pass1 host=dynamic callerid=X Lite W7 ==== **Description** ==== * **[tel1]** : identifiant d'authentification * **type=friend** : ce téléphone peut appeler et se faire appeler. On peut configurer des téléphones pour qu'ils ne puissent que recevoir des appels sans en donner... Différentes possibilités pout type : * **peer** : Client SIP auquel Asterisk pourra envoyer des appels * **user** : Client SIP qui pourra passer des appels via Asteris * **friend** : Client qui sera à la fois en mode 'peer' et 'user' * **username= ** identifiant du compte SIP (username@registrar) (pb si différent de l'identifiant d'authentification). * **secret=pass1** : c'est le « mot de passe » du compte SIP qui sera utilisé par le téléphone SIP pour s'authentifier sur le serveur. * **host=dynamic** : on autorise n'importe quelle adresse IP pour se connecter sur ce compte. Ce n'est très sécurisé, mais c'est plus simple à configurer. * **callerid** = nom affiché sur le poste destinataire (présentation du nom) **A vous de définir les lignes nécessaires pour configurer les autres téléphones** Il faut ensuite indiquer à l'autocom Asterisk comment envoyer un appel vers ce téléphone. * Editer le fichier extensions.conf # nano /etc/asterisk/extensions.conf * Ajouter les lignes suivantes: [default] exten => 101,1,Dial(SIP/tel1) Quand Asterisk recevra une demande d'appel vers le numéro 101 (exten=>101), la première action qu'il fera (,1) sera d'envoyer le signal d'appel (Dial) vers le téléphone qui s'est authentifié par le protocole SIP avec le compte tel1 (SIP/tel1) * Compléter pour que les appels vers 102 aux téléphones tel2. Dans une autre console, tapez la commande suivante en "root" pour voir en temps réel les activités du serveur (enregistrement d'un poste, appel abouti ou échoué, etc) # asterisk -rc -vvvv On obtient une interface CLI (prompt CLI>) dans laquelle on peut taper un ensemble de commandes. Toutes les commandes disponibles sont ici : http://www.asteriskguru.com/tutorials/cli_cmd_14.html Quand on a modifié la configuration, il faut dire à Asterisk de la relire avec la commande : CLI> reload Pour vérifier que la config est valide (et plus tard si le téléphone associé est actif) on peut taper la commande CLI> s-ip show peers ==== Configuration de X Lite ==== X Lite est un SoftPhone, un logiciel qui joue le rôle d'un téléphone. X Lite est gratuit. Sous Windows 7, télécharger X Lite de ConterPath : http://www.counterpath.com/x-lite.html Ouvrir la configuration : Ici l'utilisateur est 6001, cette configuration est donc à modifier (remplacer 6001 par tel1), ajuster les autres paramètres. {{:reseau:asterisk:configserveur:asterisk_03.png|}} ===== Pour aller plus loin ===== Dans le fichier extensions.conf, il est possible de gérer le déroulement des appels : **Exemple 1 **: On appelle le 102, le téléphone 2 sonne pendant 20", si personne ne décroche, l'appel est dirigé vers tel3. exten => 102, 1, Dial(SIP/tel2,20) exten => 102, 2, Dial(SIP/tel3) *Exemple 2** : On appelle le 102, le téléphone 2 sonne pendant 20", si personne ne décroche, l'appel est dirigé vers tel3 pendant 20 ", puis retourne vers tel2... exten => 102, 1, Dial(SIP/tel2,20) exten => 102, 2, Dial(SIP/tel3,20) exten => 102, 3, Goto(default,101,1) **Exemple 3** : Horloge parlante * Objectif : Fournir un numéro spécial pour l'horloge parlante. Les détails du format est donné en annexes). exten => 999,1,Answer() exten => 999,2,SayUnixTime(,Europe/Paris,AdBY kM) exten => 999,3,HangUp() Variante : exten => 999, 1, Answer() exten => 999, 2, SayUnixTime(,Europe/Paris,AdBY kM) exten => 999, 3, Wait(5) exten => 999, 4, Goto(default,999,1) ===== Annexes ===== Horloge parlante Objectif : Fournir un numéro spécial pour l'horloge parlante. exten => 999,1,Answer() exten => 999,2,SayUnixTime(,Europe/Paris,AdBY kM) exten => 999,3,HangUp() Codes : {{:reseau:asterisk:configserveur:asterisk_04.png|}} ==== Configuration pour les sons en Français ==== Alternativement, les fichiers sonores peuvent être téléchargés du site de Digium situé à l’adresse suivante : http://downloads.asterisk.org/pub/telephony/sounds/ Les fichiers sonores sont regroupés dans une archive nommée : asterisk-core-sounds-fr-gsm-current.tar.gz Effectuez simplement les lignes de commandes suivantes afin de mettre en place les fichiers sonores : cd /var/lib/asterisk/sounds wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-fr-gsm-current.tar.gz gunzip asterisk-core-sounds-fr-gsm-current.tar.gz tar xvf asterisk-core-sounds-fr-gsm-current.tar find . -print -exec chown asterisk:asterisk {} \; find . -type d -print -exec chmod 775 {} \; shutdown –r now