Taille: 16874
Commentaire: draft 1 : installation vierge
|
Taille: 17100
Commentaire: bogue... faut que je renvoie COMPLETEMENT asterisk-config-auf, pas assez testé :(
|
Texte supprimé. | Texte ajouté. |
Ligne 82: | Ligne 82: |
= Création d'une clé privée / clé publique pour l'interconnexion = | ||<#ff0000> bug en cours de tentative de correction || Lors de la 1ère installation, `asterisk-config-auf` demande le nom de l'implantation même s'il n'y a pas de clé...!!!! grmmmbll.. == Création d'une paire clé privée + clé publique pour l'interconnexion == |
Ligne 104: | Ligne 106: |
Indiquez votre clé publique sur [[/Clefs]] et prévenez-moi (ThomasNoël) afin que je l'ajoute à la liste des clés à distribuer. Notez bien : tant que votre clé publique n'a pas été distribuée vous ne pourrez pas appeler les sites distants car ils refuseront votre identification. Pour que votre clé soit utilisée par Asterisk, vous devez ensuite configurer le paquet `asterisk-config-auf`. Celui-ci va détecter votre clé privée (si elle est correctement installée dans /usr/share/asterisk/keys/) et vous poser quelques questions de base. Pour effectuer cette configuration : |
== Diffusion de la clé publique == Indiquez votre clé publique sur [[/Clefs]] et prévenez-moi (ThomasNoël) afin que je l'ajoute à la liste des clés à distribuer. Cette clé sera ajoutée au paquet `asterisk-config-auf-connexions`. Tant que ce paquet n'aura pas été mis à jour et que les sites distant n'auront pas fait une mise à jour de ce paquet, vous ne pourrez pas les appeler car ils refuseront votre identification. == Utilisation de la clé privée == Pour que votre clé privée soit utilisée par Asterisk, vous devez (re)configurer le paquet `asterisk-config-auf`. Celui-ci va détecter votre clé privée (si elle est correctement installée dans /usr/share/asterisk/keys/) et vous poser quelques questions de base. Pour effectuer cette configuration : |
Ligne 112: | Ligne 120: |
Le système va alors vous demander le nom de votre noeud VoIP. Nous avons décidé de nommer les noeuds `auf-implantation`, où `implantation` peut être simplement le nom de la ville, ou bien un nom plus distinctif s'il y a plusieurs serveurs VoIP AUF dans cette ville. Quelques exemples : `auf-dakar`, `auf-paris`, `auf-bap1` et `auf-bap2`, `auf-caimaurice`, etc. Attention, choisissez bien votre nom car il sera impossible de le changer ensuite. | Le système va alors vous demander de confirmer le nom de votre noeud VoIP, sous la forme `auf-implantation` où `implantation` est en général le nom de la ville de votre implantation. Quelques exemples : `auf-dakar`, `auf-paris`, `auf-bap1` et `auf-bap2`, `auf-caimaurice`, etc. |
PAGE EN COURS DE REDACTION
Cette page est destinée à devenir la future page Asterisk. Ne pas prendre en compte ce qui y est écrit pour l'instant, merci... -- ThomasNoël
Sommaire
Avant propos
Cette page présente l'installation du logiciel Asterisk qui est un commutateur téléphonique privé (PABX) que nous utilisons à l'AUF pour notre système de voix sur IP (VoIP).
Cette page se concentre sur les aspects spécifiques à l'installation "AUF". Pour des informations plus générales, voir :
/QuelquesNotions : un guide (et support de cours) pour découvrir rapidement et concrétement Asterisk, par OusmaneWilane
Un guide pratique très clair publié par IT+46 avec l'aide du CRDI (Acacia) : fr_voip4d_it46_release_web.pdf (copié localement, disponible aussi sur le site d'origine)
Le site du logiciel Asterisk : http://www.asterisk.org/
Le Projet/VoIP de l'AUF, ainsi que la description du système VoIP qui en débouche
Infrastructure matériel et réseau nécessaire
Installer une machine Debian sur la DMZ. Dans un premier temps, si possible, prendre une machine qui ne fait rien d'autre, cela permettrait de voir la charge (une petite machine de test suffit) et d'éviter de casser d'autres choses autour. Une fois que tout sera testé, vous pourrez déployer sur une machine de production qui fait éventuellement autre chose.
La machine doit :
- être accessible directement depuis le réseau local 10.x.x.x, sans système de NAT, au moins pour les protocoles IAX (4569/UDP), SIP (5060/UDP) et RTP (7000 à 8000/UDP, selon les clients SIP que vous utilisez) ;
- pouvoir accéder directement au réseau local 10.x.x.x, au moins pour le protocole IAX (4569/UDP). Si vous utilisez des clients SIP, le plus simple est de permettre l'envoi de paquet vers tous les ports UDP. Il faut en effet que le serveur puisse faire sonner les téléphones des postes clients ;
- recevoir et envoyer des paquets IAX vers Internet.
Note : si votre DMZ est en IP privée, ajoutez un DNAT vers cette machine pour le protocole IAX (4569/UDP).
Note 2 : suivant les clients SIP que vous utilisez, vous pourrez peut-être y fixer les ports SIP et RTP, ce qui simplifie un peu les règles de pare-feu. Ceci étant, avoir des clients IAX simplifie beaucoup la vie ! Si possible, évitez d'utiliser le protocole SIP (pour l'instant).
Mise à jour depuis Asterisk 1.2
Voici la procédure pour mettre à jour votre serveur VoIP AUF si vous utilisez déjà les paquets AUF en version 1.2. Si vous installez Asterisk sur une machine neuve, allez à la section suivante «Installation du système Asterisk AUF».
...........
Installation du système Asterisk AUF
Ajout des sources
L'installation n'est disponible que sur Debian Etch. Les serveurs encore en Debian Sarge doivent d'abord migrer en Etch.
La version Asterisk de Debian Etch est la 1.2, un peu ancienne et non supportée par Asterisk. Nous avons construit des paquets compatibles avec Debian Etch afin de proposer la version 1.4 d'Asterisk.
Il faut ajouter les sources de paquets suivantes dans le fichier /etc/apt/sources.list:
# # (... extrait de /etc/apt/sources.list ...) # # Source AUF base pour Debian Etch (notamment auf-keyring) deb http://apt.auf.org/ etch auf # Source AUF voip pour Debian Etch (Asterisk 1.4) deb http://apt.auf.org/ etch voip
Comme après toute modification de sources.list, mettre à jour la liste des paquets disponibles dans les sources :
# aptitude update
Notez bien : ces sources de paquets sont signées, il vous faut ajouter la clé publique du dépôt AUF afin que apt puisse les valider. Si vous ne l'avez pas déjà fait, il suffit d'installer le paquet auf-keyring puis de recharger à nouveau la liste des paquets :
# aptitude install auf-keyring ; aptitude update
Installation d'asterisk
Installer asterisk avec :
# aptitude install asterisk
Les paquets suivants seront installés automatiquement, par dépendance :
asterisk : le "moteur" principal
asterisk-config-auf : configuration spécifique AUF pour Asterisk
asterisk-config-auf-connexions : liste des clés publiques AUF pour la reconnaissance entre sites
asterisk-app-conference : application Conference pour Asterisk
asterisk-prompt-fr : voix française pour Asterisk
asterisk-sounds-main : vois anglaises pour Asterisk
asterisk-moh-auf : musiques d'attente par défaut
libasound2 libgsm1 libiksemel3 libogg0 libpri1.0 libradiusclient-ng2 libsensors3 libsnmp-base libsnmp9 libspeex1 libsqlite0 libsysfs2 libtonezone1 libvorbis0a libvorbisenc2 : bibliothèques utilisées par Asterisk
||<#ff0000> bug en cours de tentative de correction || Lors de la 1ère installation, asterisk-config-auf demande le nom de l'implantation même s'il n'y a pas de clé...!!!! grmmmbll..
Création d'une paire clé privée + clé publique pour l'interconnexion
Afin d'être intégré au système VoIP de l'AUF, vous devez disposer d'un couple de clés, privée et publique. La clé publique sera diffusée sur l'ensemble des autres noeuds VoIP de l'Agence afin qu'ils vous autorisent à appeler leurs postes. La clé privée sera, comme son nom l'indique, connue de votre serveur Asterisk seul.
ATTENTION : si vous avez déjà vos clés Asterisk (par exemple dans le cas d'une migration ou d'une ré-installation), conservez-les ! Faites-en une copie quelque part.
- Pour générer vos clés :
$ /usr/sbin/astgenkey -q -n auf-monimplantation # exemples : auf-dakar, auf-ifmt, auf-montreal
Note : astgenkey nécessite openssl. Si astgenkey ne fonctionne pas, faites un aptitude install openssl
- Puis copiez ces clés pour que Asterisk les prenne en compte :
# cp auf-implantation.pub auf-implantation.key /usr/share/asterisk/keys # chown -R root.asterisk /usr/share/asterisk/keys/* # chmod 644 /var/lib/asterisk/keys/*.pub # chmod 640 /var/lib/asterisk/keys/*.key
Conservez précieusement le fichier auf-implantation.key : sans cette clé privée vous ne pourrez plus appeler d'autres systèmes !
Diffusion de la clé publique
Indiquez votre clé publique sur /Clefs et prévenez-moi (ThomasNoël) afin que je l'ajoute à la liste des clés à distribuer.
Cette clé sera ajoutée au paquet asterisk-config-auf-connexions. Tant que ce paquet n'aura pas été mis à jour et que les sites distant n'auront pas fait une mise à jour de ce paquet, vous ne pourrez pas les appeler car ils refuseront votre identification.
Utilisation de la clé privée
Pour que votre clé privée soit utilisée par Asterisk, vous devez (re)configurer le paquet asterisk-config-auf. Celui-ci va détecter votre clé privée (si elle est correctement installée dans /usr/share/asterisk/keys/) et vous poser quelques questions de base. Pour effectuer cette configuration :
# dpkg-reconfigure asterisk-config-auf
Le système va alors vous demander de confirmer le nom de votre noeud VoIP, sous la forme auf-implantation où implantation est en général le nom de la ville de votre implantation. Quelques exemples : auf-dakar, auf-paris, auf-bap1 et auf-bap2, auf-caimaurice, etc.
Quelques explications rapide sur le paquet asterisk-config-auf :
Ce paquet remplace asterisk-config qui est la configuration basique livrée d'Asterisk.
Il adapte notamment les fichiers /etc/asterisk/sip.conf, iax.conf et extensions.conf à nos principes (codecs utilisés, langue, etc)
S'ils n'existent pas déjà, il génère des fichiers exemple dans /etc/asterisk/auf/ (sip.local, iax.local, extensions.local, voicemail.local). Vous devrez adapter ces fichiers en fonction de vos postes clients
Il dépend de asterisk-config-auf-connexions qui contient tout ce qui est nécessaire à l'interconnexion des noeuds, c'est-à-dire les clefs publiques et préfixes correspondants de tous les serveurs Asterisk de l'AUF.
Lancement du serveur
Activer le démarrage automatique d'asterisk au démarrage de la machine dans /etc/default/asterisk :
# A modifier dans /etc/default/asterisk : RUNASTERISK=yes
- Lancer le serveur :
# /etc/init.d/asterisk start Starting Asterisk PBX: asterisk.
Premiers tests
Configurez un client (IAX de préférence) et enregistrez-le sur votre Asterisk avec le compte "test", mot de passe "test". Essayez d'appeler le *11 (echo).
Si votre clé publique a déjà été distribuée, essayer d'appeler 0033*11 (echo Paris) et 001*11 (echo Montreal). Puis, demandez à quelqu'un hors de votre implantation d'essayer d'appeler votre echo puis son poste (00xxx*11, où xxx est l'extension internationale de votre pays).
Dès que ça marche, supprimez le compte test (dans les fichiers /etc/asterisk/auf/*.local) !
Configuration des comptes clients
Pour chaque poste client qui sera installé dans votre implantation (téléphone IP matériel ou logiciel), vous devez créer un compte. Tout se passe dans /etc/asterisk/auf. Les fichiers dont le nom se termine par .local sont ceux que vous devez adapter.
/etc/asterisk/auf/sip.local : les comptes SIP locaux
/etc/asterisk/auf/iax.local : les comptes IAX locaux. Note : si vous avez installé votre Asterisk avant le 10 janvier 2007, ce fichier est un lien symbolique vers sip.local. Cependant, vous pouvez rapidement avoir besoin d'une configuration différente : faites-en un fichier séparé.
/etc/asterisk/auf/extensions.local : les associations entre numéro de téléphone et compte local à appeler
/etc/asterisk/auf/voicemail.local : les boites vocales
Quand vous touchez à ces fichiers, n'oubliez pas ensuite de faire un /etc/init.d/asterisk reload. Attention, lors d'un reload si iax.conf a changé Asterisk oublie les clients qui étaient actuellement enregistrés : il faudra attendre au plus 2 minutes afin que tous les clients (les téléphones IP) se soient bien ré-enregistrés. Autrement dit : essayez de faire vos reload en heure creuse.
Configuration détaillée pour un téléphone IP matériel
- A ajouter dans `/etc/asterisk/auf/iax.local`
; section à ajouter pour chaque poste [prenom.nom] ; type=friend veut dire qu'il peut appeler _et_ être appelé type=friend ; callerid : comment sera vu l'utilisateur par les personnes qu'il voudra contacter ; Il faut être TRES PRECIS ici, attention aux guillemets (") et aux signes < et > ; Prenom NOM : doit faire au maximum 16 caractères, uniquement ASCII (aucun accent) ; afin de bien s'afficher sur un téléphone IP (écran LCD de 16 caractères) ; 00pppnnn : numéro du poste, avec préfixe international. Uniquement des chiffres, aucun espace callerid="Prenom NOM" <00pppnnn> ; Cette boite doit exister dans voicemail.local mailbox=206@AUF ; Paramètres d'authentification. Note : on met le mot de passe en clair user=prenom.nom secret=mot_de_passe ; host=dynamic : l'adresse IP du poste sera connue lors de la connexion de celui-ci host=dynamic ; Contexte dans lequel se place ce poste (en gros, indique quels sont les numéros ; qu'il aura le droit d'appeler : ils doivent être dans le même contexte que lui) context=AUF ; Codec : on n'accepte que le codec ulaw (belle qualité, quasiment pas de compression. ; Asterisk effectuera la compression si besoin, par exemple pour une communication ; internationale avec un pays à faible bande passante. disallow=all allow=ulaw
- A ajouter dans `/etc/asterisk/auf/extensions.local`
; nnn est le numéro local du poste (sans le préfixe international) exten => nnn,1,Macro(AUFDial,prenom.nom)
- A ajouter dans `/etc/asterisk/auf/voicemail.local`
; nnn : le numéro local du poste concerné ; PASS : le mot de passe, idéalement 3 ou 4 chiffres (et uniquement des chiffres !) ; Note : on met un "-" devant le mot de passe afin qu'Asterisk ne tente pas de le ; changer ; nous cherchons cependant une solution permettant aux personnes ; de modifier leur mot de passe... nnn => -PASS,Prenom NOM,prenom.nom@auf.org
Pour des petits exemples plus concrets, voir /ExempleDeConfiguration
Annexes
Annexe 1 : suivi et débogage du serveur
Les commandes de base :
démarrer le serveur : /etc/init.d/asterisk start (mais cela est normalement fait au boot de la machine)
si vous avez modifié la configuration, demandez à Asterisk de la relire : /etc/init.d/asterisk reload. Attention : ne faites JAMAIS de restart sinon vous coupez les communications en cours !!
Asterisk dispose d'un mode console, en ligne de commande, très pratique et qu'il est conseillé d'approfondir si vous voulez vraiment vous amuser avec Asterisk. Ce mode console est disponible avec asterisk -r ou rasterisk. En ajoutant l'option -v vous pouvez de plus déboguer en direct (affichage des logs sur la console). Plus vous mettez de -v plus le niveau de débogage est élevé. Pour bien comprendre comment fonctionne Asterisk il est donc conseiller de lancer carrément la commande suivante :
$ sudo asterisk -rvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv == Parsing '/etc/asterisk/asterisk.conf': Found == Parsing '/etc/asterisk/extconfig.conf': Found Asterisk , Copyright (C) 1999 - 2005 Digium. Written by Mark Spencer <markster@digium.com> ========================================================================= Connected to Asterisk currently running on gatekeeper (pid = 29958) Verbosity is at least 80 serveur-voip*CLI>
Vous êtes alors en mode ligne de commande. Ca fonctionne un peu comme un Cisco. Tapez help pour avoir la liste des commandes, la touche [Tab] ou ? pour la complétion automatique, etc.
Une commande extrémement utile est reload :
gatekeeper*CLI> reload == Parsing '/etc/asterisk/extconfig.conf': Found (...) gatekeeper*CLI>
qui va demander à asterisk de relire tous ses fichiers de configuration. Vous pouvez être plus précis en ne demandant que la recharge de certains modules, par exemple :
reload pbx_config.so rechargera le fichier extensions.conf (c'est à dire, grosso modo le plan de numérotation des postes)
reload chan_iax2.so ne re-chargera que ce qui concerne IAX
Annexe 2 : quand tout est cassé, réinstallation complète d'Asterisk
Suppression complète (n'oubliez pas de copier d'abord au moins votre clé privée !) :
# /etc/init.d/asterisk stop # mkdir -p /root/asterisk-backup # cp -a /etc/asterisk /root/asterisk-backup/etc # on backup la configuration # cp -a /var/lib/asterisk/keys /root/asterisk-backup/keys # on fait une copie des clés # apt-get --purge remove asterisk asterisk-sounds-main # apt-get --purge remove asterisk-config-auf asterisk-config-auf-connexions # rm -rf /etc/asterisk /var/lib/asterisk /var/spool/asterisk /var/run/asterisk Pensez a copier les fichiers logs pour les statistiques /var/log/asterisk/...
- Reinstallation :
# aptitude install asterisk asterisk-config # aptitude install asterisk-config-auf Pourquoi installer le paquet asterisk-config avant, car celui-ci va installer le fichier zapata.conf, qui n'est pas présent dans asterisk-config-auf. asterisk-config sera ensuite enlevé lors de l'installation d'asterisk-config-auf.
Reconfiguration : reprendre votre clé privée et les configurations des postes clients (sip.local, iax.local, extensions.local, ...) que vous avez copié dans /root/asterisk-backup.
Annexe 4: installation d'un timer pour Asterisk (notamment pour "MeetMe")
Ici se trouvait une documentation pour l'installation d'un pilote "timer" appelé ztdummy. En pratique nous constatons qu'avec ce pilote la machine devient instable (freeze dès qu'on reload Asterisk). Si vous l'aviez installé, il est donc vivement conseillé de supprimer ce pilote de votre machine : rmmod puis suppression du paquet zaptel-module-*.
Ce module était utile pour l'application de conférence MeetMe : nous avons trouvé une alternative app_conference qui permet de proposer une fonction de conférence sans timer, qui plus est channel-indépendante. Mise en place prochainement (janvier 2007).
Annexe 5 : paquets asterisk-config-auf*
Les sources et l'actualité du développement ici : http://trac.sn.auf.org/asterisk-auf
Annexe 6 : statistiques
Voir la sous page /Stats : mise en place d'un système de statistiques pour Asterisk