Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
asterisk [Le 25/09/2021, 23:59] 90.79.55.31 |
asterisk [Le 03/12/2024, 09:41] (Version actuelle) 197.149.244.234 [Configuration] |
||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
====== Asterisk (For VoIP) ====== | ====== Asterisk (For VoIP) ====== | ||
- | {{ http://upload.wikimedia.org/wikipedia/fr/7/7f/Asterisk_logo4.png?200}} | + | {{ https://upload.wikimedia.org/wikipedia/fr/7/7f/Asterisk_logo4.png?200}} |
===== Préambule ===== | ===== Préambule ===== | ||
Ligne 17: | Ligne 17: | ||
===== Installation ===== | ===== Installation ===== | ||
- | Tout d'abord, veillez à avoir une distribution à jour : | + | Tout d'abord, veillez à avoir une distribution à jour : |
<code>sudo apt update | <code>sudo apt update | ||
sudo apt upgrade </code> | sudo apt upgrade </code> | ||
Nous procédons ensuite à l'[[:tutoriel:comment_installer_un_paquet|installation]] des dépendances : | Nous procédons ensuite à l'[[:tutoriel:comment_installer_un_paquet|installation]] des dépendances : | ||
- | <code>sudo apt install build-essential libxml2-dev libncurses5-dev linux-headers-`uname -r` libsqlite3-dev libssl-dev libedit-dev uuid-dev libjansson-dev</code> | + | <code>sudo apt install build-essential libxml2-dev libncurses5-dev linux-headers-$(uname -r) libsqlite3-dev libssl-dev libedit-dev uuid-dev libjansson-dev</code> |
- | On télécharge la dernière version d’Asterisk et on l’installe : | + | On télécharge la dernière version d’Asterisk et on l’installe : |
- | <code>mkdir /usr/src/asterisk | + | |
- | cd /usr/src/asterisk | + | 1 - Auparavant vérifier la version à utiliser et modifiez les trois lignes (3, 4, 5) en fonction de la version d'Asterisk |
+ | |||
+ | 2 - Exécuter la ligne 6 en étant dans le répertoire /usr/src/asterisk/asterisk-18.6.0 (car configure est un fichier exécutable du répertoire asterisk-18.6.0) | ||
+ | <code> | ||
+ | mkdir /usr/src/asterisk | ||
+ | cd /usr/src/asterisk | ||
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz | wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz | ||
- | tar -xvzf asterisk-16-current.tar.gz | + | tar -xvzf asterisk-18-current.tar.gz |
- | cd asterisk-18.6.0 # <--- Modifiez cette ligne en fonction de la version d'Asterisk | + | cd asterisk-18.6.0 |
./configure --with-jansson-bundled | ./configure --with-jansson-bundled | ||
- | make menuselect</code> | + | make menuselect |
+ | </code> | ||
Lorsque vous faites le ./configure, il est possible qu'il manque des paquets; dans ce cas, installez la version dev de ce paquet (par exemple, s'il manque le paquet libedit, exécutez la commande sudo apt-get install libedit-dev) puis relancez le ./configure. | Lorsque vous faites le ./configure, il est possible qu'il manque des paquets; dans ce cas, installez la version dev de ce paquet (par exemple, s'il manque le paquet libedit, exécutez la commande sudo apt-get install libedit-dev) puis relancez le ./configure. | ||
Ligne 49: | Ligne 55: | ||
make config</code> | make config</code> | ||
- | Enfin, lancez Asterisk avec la commande suivante : | + | Enfin, lancez Asterisk avec la commande suivante : |
<code>/etc/init.d/asterisk start</code> | <code>/etc/init.d/asterisk start</code> | ||
- | Lancez la console Asterisk avec la commande suivante : | + | Lancez la console Asterisk avec la commande suivante : |
<code>sudo asterisk -rvvvv</code> | <code>sudo asterisk -rvvvv</code> | ||
Ligne 71: | Ligne 77: | ||
KERNEL=="zap[0-9]*", NAME="zap/%n", OWNER="asterisk", GROUP="asterisk", MODE="0660"</code> | KERNEL=="zap[0-9]*", NAME="zap/%n", OWNER="asterisk", GROUP="asterisk", MODE="0660"</code> | ||
- | Ensuite, il faut compiler et installer les pilotes : | + | Ensuite, il faut compiler et installer les pilotes :soumaya |
- | <code> sudo apt-get install gcc zaptel zaptel-source | + | <code> |
- | sudo module-assistant auto-install zaptel</code> | + | sudo apt-get install gcc zaptel zaptel-source |
+ | sudo module-assistant auto-install zaptel | ||
+ | </code> | ||
Fin de l'installation des pilotes Zaptel, redémarrez maintenant votre ordinateur a l'aide de la commande : | Fin de l'installation des pilotes Zaptel, redémarrez maintenant votre ordinateur a l'aide de la commande : | ||
- | <code> sudo reboot</code> | + | <code>sudo reboot</code> |
Ensuite nous allons procéder à l'installation de Asterisk : | Ensuite nous allons procéder à l'installation de Asterisk : | ||
- | <code> sudo apt-get install asterisk</code> | + | <code>sudo apt-get install asterisk</code> |
Un fois installé, modifiez ces paramètres pour que Asterisk demarre au démarrage de l'ordinateur : | Un fois installé, modifiez ces paramètres pour que Asterisk demarre au démarrage de l'ordinateur : | ||
- | <code> sudo vim /etc/default/asterisk</code> | + | <code>sudo vim /etc/default/asterisk</code> |
<code>RUNASTERISK=yes | <code>RUNASTERISK=yes | ||
RUNASTSAFE=no</code> | RUNASTSAFE=no</code> | ||
Ligne 90: | Ligne 98: | ||
===== Configuration ===== | ===== Configuration ===== | ||
- | La configuration d'Asterisk s'articule sur les fichiers de configuration suivants : | + | La configuration d'Asterisk s'articule sur les fichiers de configuration suivants : |
- | * **''/etc/asterisk/sip.conf''** : Configuration globale d'Asterisk | + | * **''/etc/asterisk/pjsip.conf reload ''** : Configuration globale d'Asterisk |
* **''/etc/asterisk/users.conf''** : Configuration des utilisateurs | * **''/etc/asterisk/users.conf''** : Configuration des utilisateurs | ||
* **''/etc/asterisk/extensions.conf''** : Configuration du Dialplan | * **''/etc/asterisk/extensions.conf''** : Configuration du Dialplan | ||
Ligne 103: | Ligne 111: | ||
==== Paramétrer les sons en français ==== | ==== Paramétrer les sons en français ==== | ||
[[:tutoriel:comment_modifier_un_fichier|Modifier le fichier]] **''/etc/asterisk/sip.conf''** et modifiez la ligne : | [[:tutoriel:comment_modifier_un_fichier|Modifier le fichier]] **''/etc/asterisk/sip.conf''** et modifiez la ligne : | ||
+ | <code> | ||
+ | language=en; Default language setting for all users/peers | ||
+ | </code> | ||
+ | en : | ||
+ | <code> | ||
+ | language=fr; Default language setting for all users/peers | ||
+ | </code> | ||
- | <code>;language=en ; Default language setting for all users/peers</code> | ||
- | |||
- | en : | ||
- | |||
- | <code>language=fr ; Default language setting for all users/peers</code> | ||
<note important>N'oubliez pas d'enlever le point-virgule au début de la ligne.</note> | <note important>N'oubliez pas d'enlever le point-virgule au début de la ligne.</note> | ||
==== Modifier les utilisateurs ==== | ==== Modifier les utilisateurs ==== | ||
Ligne 129: | Ligne 139: | ||
=== Méthode sans template === | === Méthode sans template === | ||
- | Pour chaque utilisateur, ajoutez le code suivant (avec les modifications nécessaires) : | + | Pour chaque utilisateur, ajoutez le code suivant (avec les modifications nécessaires) : |
<code>[6001] ; Numéro SIP | <code>[6001] ; Numéro SIP | ||
Ligne 143: | Ligne 153: | ||
=== Méthode avec template === | === Méthode avec template === | ||
- | Pour chaque template, ajoutez le code suivant (avec les modifications nécessaires) : | + | Pour chaque template, ajoutez le code suivant (avec les modifications nécessaires) : |
<code> | <code> | ||
[template](!) ; Nom du template (ici template) | [template](!) ; Nom du template (ici template) | ||
Ligne 154: | Ligne 164: | ||
</code> | </code> | ||
- | Pour chaque utilisateur, ajoutez le code suivant (avec les modifications nécessaires) : | + | Pour chaque utilisateur, ajoutez le code suivant (avec les modifications nécessaires) : |
<code>[6001](template) ; Numéro SIP et template utilisé | <code>[6001](template) ; Numéro SIP et template utilisé | ||
fullname = John DOE ; Nom complet de l'utilisateur (ce qui s'affichera sur le téléphone) | fullname = John DOE ; Nom complet de l'utilisateur (ce qui s'affichera sur le téléphone) | ||
Ligne 207: | Ligne 217: | ||
des sonneries et messages personnalisés, etc. | des sonneries et messages personnalisés, etc. | ||
+ | === Exemple d'AGI : allumer la lumière === | ||
+ | AGI permet à Asterisk d’exécuter des scripts. L'exemple ci-dessous ouvre la piste vers toute sorte de solutions domotiques. | ||
+ | |||
+ | L'idée est la suivante: Asterisk modifie à distance un fichier sur le Raspberry. Sur celui-ci un script python analyse le fichier et active le GPIO en fonction. | ||
+ | |||
+ | == Du côté du serveur Raspberry == | ||
+ | |||
+ | Installer un raspberry avec Pi Os Lite. Activer le ssh. Pour l'exemple, l'utilisateur sera info, l'adresse IP du Raspberry 192.168.1.111. | ||
+ | |||
+ | Dans /home/info créer le script python command.py: | ||
+ | |||
+ | <code>import RPi.GPIO as GPIO | ||
+ | import time | ||
+ | GPIO.setmode(GPIO.BCM) | ||
+ | GPIO.setup(24, GPIO.OUT) | ||
+ | |||
+ | while True: | ||
+ | with open('command.txt', 'r') as fichier: | ||
+ | contenu = fichier.read() | ||
+ | |||
+ | if "on" in contenu: | ||
+ | # Turn on | ||
+ | print('on') | ||
+ | GPIO.output(24, GPIO.HIGH) | ||
+ | else: | ||
+ | # Turn off | ||
+ | print('off') | ||
+ | GPIO.output(24, GPIO.LOW)</code> | ||
+ | |||
+ | == Du côté d'Asterisk == | ||
+ | |||
+ | Il faut d'abord autoriser du ssh sans mot de passe. Dans la console (ne rien entrer comme nom de fichier et comme passphrase): | ||
+ | |||
+ | <code>ssh-keygen -t rsa</code> | ||
+ | |||
+ | Partager la clé avec le raspberry: | ||
+ | |||
+ | <code>ssh-copy-id info@192.168.1.111</code> | ||
+ | |||
+ | Configurer ensuite l'AGI, en ajoutant ces lignes dans extensions.conf: | ||
+ | |||
+ | <code>exten => 801,n,AGI(allumer.agi) | ||
+ | exten => 800,n,AGI(eteindre.agi)</code> | ||
+ | |||
+ | On crée ensuite les scripts correspondant. Créer le fichier /var/lib/asterisk/agi-bin/allumer.agi et le rendre éxécutable: | ||
+ | |||
+ | <code>#!/bin/bash | ||
+ | scp /root/on.txt info@192.168.1.111:/home/info/command.txt</code> | ||
+ | |||
+ | Faire de même pour eteindre.agi. Il faut aussi créer un fichier /root/on.txt contenant uniquement le mot on, et son équivalent off. | ||
+ | |||
+ | Recharger Asterisk. C'est sensé fonctionner! | ||
===== Matériel compatible ===== | ===== Matériel compatible ===== | ||
Ligne 249: | Ligne 311: | ||
Cette passerelle compte 2 port T0. Mais la programmation Smartnode semble identique sur toutes les passerelles Patton RNIS. | Cette passerelle compte 2 port T0. Mais la programmation Smartnode semble identique sur toutes les passerelles Patton RNIS. | ||
- | L'interface web est acceptable mais le langage du fichier de configuration est mieux. J'ai donc préféré travailler sur le fichier ce qui est simplifié par l'usage du wizard, comme indiqué ci-dessous. | + | L'interface web est acceptable mais le langage du fichier de configuration est mieux. J'ai donc préféré travailler sur le fichier ce qui est simplifié par l'usage du wizard, comme indiqué ci-dessous. |
On trouve beaucoup de documentation, mais le meilleur guide est sans doute [[https://www.patton.com/manuals/snfrench-gs.pdf|le manuel de configuration simplifié]] | On trouve beaucoup de documentation, mais le meilleur guide est sans doute [[https://www.patton.com/manuals/snfrench-gs.pdf|le manuel de configuration simplifié]] | ||
== Configuration de la passerelle == | == Configuration de la passerelle == | ||
- | Pour se connecter à la passerelle, il faut en connaître l'adresse IP. | + | Pour se connecter à la passerelle, il faut en connaître l'adresse IP. |
Deux solutions: le logiciel de Patton, ou bien repérer l'adresse MAC sur votre routeur. | Deux solutions: le logiciel de Patton, ou bien repérer l'adresse MAC sur votre routeur. | ||
Ligne 267: | Ligne 329: | ||
* La passerelle enverra en DTMF le joli nom de "patton" et non pas le numéro de l'appelant. | * La passerelle enverra en DTMF le joli nom de "patton" et non pas le numéro de l'appelant. | ||
- | Ci dessous, un fichier de config sans la ligne de login et avec correction des deux derniers points. | + | Ci dessous, un fichier de config sans la ligne de login et avec correction des deux derniers points. |
Il faut penser à modifier les adresses IP selon vos besoins. | Il faut penser à modifier les adresses IP selon vos besoins. | ||
Ligne 426: | Ligne 488: | ||
== Configuration d'Asterisk == | == Configuration d'Asterisk == | ||
- | Si les adresses IP sont fixes, il n'y a pas besoin d'authentification. | + | Si les adresses IP sont fixes, il n'y a pas besoin d'authentification. |
Il suffit donc d'ajouter ces lignes dans sip.conf: | Il suffit donc d'ajouter ces lignes dans sip.conf: | ||
Ligne 462: | Ligne 524: | ||
===== Liens ===== | ===== Liens ===== | ||
- | * [[http://www.asterisk.org/|Asterisk]] | + | * [[https://www.asterisk.org/|Asterisk]] |
- | * [[http://www.asterisk.org/downloads/asterisknow|AsteriskNow]] | + | * [[https://www.asterisk.org/downloads/asterisknow|AsteriskNow]] |
* [[https://projects.xivo.fr/|Xivo]] | * [[https://projects.xivo.fr/|Xivo]] | ||
* [[https://wiki.koumbit.net/Asterisk14SurOpenWRT|Asterisk14SurOpenWRT]] | * [[https://wiki.koumbit.net/Asterisk14SurOpenWRT|Asterisk14SurOpenWRT]] | ||
* [[http://www.lululaberlu.com/category/Asterisk|TP Asterisk Base]] | * [[http://www.lululaberlu.com/category/Asterisk|TP Asterisk Base]] | ||
* [[http://oxydables.free.fr/page5.html|Informations sur la VOIP et installation d'asterisk, avec le sip de free]] | * [[http://oxydables.free.fr/page5.html|Informations sur la VOIP et installation d'asterisk, avec le sip de free]] | ||
- | * [[http://people.via.ecp.fr/~alexis/asterisk/|Expérience de déploiements Asterisk dans des entreprises françaises]] | + | * [[https://people.via.ecp.fr/~alexis/asterisk/|Expérience de déploiements Asterisk dans des entreprises françaises]] |
* [[http://denisrosenkranz.com/tuto-installer-et-configurer-asterisk-sous-debian-6-et-ubuntu/|Tutoriel sur lequel est basé cette documentation]] | * [[http://denisrosenkranz.com/tuto-installer-et-configurer-asterisk-sous-debian-6-et-ubuntu/|Tutoriel sur lequel est basé cette documentation]] | ||