Modifications entre les versions 33 et 41 (s'étendant sur 8 versions)
Version 33 à la date du 2008-02-27 09:07:12
Taille: 17930
Éditeur: ThomasNoël
Commentaire: C'est parti...
Version 41 à la date du 2008-09-19 10:09:51
Taille: 2614
Commentaire:
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
## page was renamed from Asterisk/Version1.4 ||<tablestyle="float:right; font-size: 0.9em; background: #f0f0f0; margin: 0 0 1em 1em;" style="padding:0.5em;"> Sous-pages : <<PageList(title:re:^Asterisk/)>> Voir aussi [[VoIP]] et [[Projet/VoIP]] ||
Ligne 3: Ligne 3:
<<TableOfContents>>

= 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) : [[attachment:fr_voip4d_it46_release_web.pdf]] (copié localement, disponible aussi sur le [[http://voip4d.it46.se/|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 =

Vous devez disposer d'une machine Debian Etch 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 1 : 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 =

Si vous avez déjà un serveur en Debian Etch qui tourne avec l'ancienne version Asterisk 1.2, vous devez le mettre à jour. Ces paquets ne sont en effet plus maintenus. La mise à jour est simple et ne demande que 10 minutes d'interruption de service VoIP. La procédure est disponible ici : [[/MiseAJour14]]

Si votre serveur est encore en Debian Sarge, vous devez le migrer vers Etch. Les paquets VoIP pour Debian Sarge ne sont plus maintenus (depuis très longtemps).

= Installation du système Asterisk AUF =

Si vous avez déjà un système Asterisk AUF en version 1.2, reportez-vous à la section ci-dessus (Mise à jour).

La version Asterisk fournie par Debian Etch est la 1.2, elle un peu ancienne et non supportée par les développeurs d'Asterisk. Nous avons donc construit des paquets compatibles avec Debian Etch proposant la version 1.4 d'Asterisk. Ces paquets sont en partie construits à partir des paquets disponibles dans la future version Debian Lenny.

L'installation n'est disponible que pour Debian Etch.
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».
Ligne 41: Ligne 6:
== Ajout des sources == == Infrastructures matérielle et réseau nécessaire ==
 . La mise en place du serveur nécessite quelques précisions, principalement au niveau de la configuration réseau à mettre en place (règles sur le pare-feu). Tout est détaillé sur la page [[/Infrastructures]].
Ligne 43: Ligne 9:
Il faut ajouter les sources de paquets suivantes dans le fichier `/etc/apt/sources.list`: == Installation du système Asterisk AUF ==
 . Si vous n'avez pas encore de serveur Asterisk ou si vous désirez le ré-installer sur une machine neuve, la procédure est détaillée sur la page [[/Installation]].
 . Si vous avez déjà un serveur en Debian Etch qui tourne avec l'ancienne version Asterisk 1.2, vous '''devez''' le mettre à jour car ces paquets ne sont plus maintenus. La mise à jour est simple et ne demande que 10 minutes d'interruption de service VoIP. La procédure est disponible ici : [[/MiseAJour14]]
Ligne 45: Ligne 13:
 {{{
#
# (... extrait de /etc/apt/sources.list ...)
#
# Source AUF Etch commune (pour auf-keyring)
deb http://apt.auf.org/ etch auf
# Source AUF Etch voip
deb http://apt.auf.org/ etch voip
}}}
== Configuration des comptes clients ==
 . Une fois votre serveur configuré et fonctionnel, vous devez le configurer pour que les postes clients (téléphones IP ou logiciels) s'y connectent et puissent l'utiliser. La page /ConfigurationClients détaille cette étape.
Ligne 55: Ligne 16:
Comme après toute modification de `sources.list`, mettre à jour la liste des paquets disponibles dans les sources :
 {{{
# aptitude update
}}}
== Suivi et dépannage ==
 . Pour voir ce qui se passe au niveau de votre serveur Asterisk vous pouvez regarder les logs, mais le plus efficace est d'utiliser l'interface de pilotage en ligne de commande. Tout est expliqué sur la page /SuiviEtDépannage.
Ligne 60: Ligne 19:
Notez bien : ces sources de paquets sont signées, pour que APT leur fasse confiance il vous faut ajouter la clé publique du [[Projet/DépôtAPT|dépôt AUF]]. 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
}}}
== Mise en place d'un système de statistiques ==
 . Afin d'étudier l'utilisation de votre serveur VoIP, des outils permettent d'analyser les logs et de générer des rapports statistiques. Voir la sous-page [[/Stats]] pour cela.
Ligne 65: Ligne 22:
== 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
 * ainsi que plusieurs bibliothèques nécessaires à Asterisk 1.4 telles que : `libasound2 libgsm1 libiksemel3 libogg0 libpri1.0 libradiusclient-ng2 libsensors3 libsnmp-base libsnmp9 libspeex1 libsqlite0 libsysfs2 libtonezone1 libvorbis0a libvorbisenc2`

Note : durant cette installation, un message vous sera affiché de la part du paquet `asterisk-config-auf` vous signalant que vous n'avez pas encore de clefs pour Asterisk. C'est normal... vous n'en avez pas encore ;-) Continuez la lecture de cette procédure d'installation, tout y est expliqué.

== 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 installez un nouveau serveur mais que vous aviez déjà le service VoP en place, utilisez la clé privée de votre ancien serveur au lieu d'en gérer une nouvelle.''' Il suffira ensuite de mettre à jour votre enregistrement DNS `voip.xx.auf.org` pour qu'il pointe vers l'adresse IP de votre nouveau serveur.

 1. Pour générer vos clés (uniquement si vous n'en aviez pas déjà) :
 {{{
$ /usr/sbin/astgenkey -q -n auf-implantation # exemples : auf-dakar, auf-ifmt, auf-montreal
}}}
 Note : `astgenkey` nécessite `openssl`. Si `astgenkey` ne fonctionne pas, faites un `aptitude install openssl`

 1. 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 /usr/share/asterisk/keys/*.pub
# chmod 640 /usr/share/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 la page [[/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`. Vous pourrez ensuite appeler tous les sites qui mettront à jour ce paquet sur leur système, puisqu'ils disposeront de votre clé publique et sauront donc vous reconnaître.

== 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 paquet 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 rapides sur le paquet `asterisk-config-auf` :
 * Ce paquet remplace `asterisk-config` qui est la configuration basique livrée d'Asterisk. Il propose un ensemble de fichier de configuration `/etc/asterisk/*.conf` adapté au contexte AUF. Plusieurs de ces fichiers sont surchargeables par des `/etc/asterisk/auf/*.local` via des ''include''.
 * Il configure le fichier `/etc/asterisk/auf/extensions-globals.local` qui contient entre autre votre code d'authentification, c'est-à-dire le nom de votre implantation VoIP et la clé privée à utiliser pour se connecter.
 * S'ils n'existent pas déjà, il génère des fichiers modèles dans `/etc/asterisk/auf/` (`sip.local`, `iax.local`, `extensions.local`, `voicemail.local`). Vous devrez adapter ces fichiers et y ajouter tous 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` :
 {{{
# (... extrait de /etc/default/asterisk ...)
# RUNASTERISK: If set to anything other that 'yes', the asterisk init.d script
# will not run. The default is 'yes'.
RUNASTERISK=yes
# (...)
}}}

Puis 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.

 1. `/etc/asterisk/auf/sip.local` : les comptes SIP locaux
 1. `/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é.
 1. `/etc/asterisk/auf/extensions.local` : les associations entre numéro de téléphone et compte local à appeler
 1. `/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 ! Evitez si possible même de faire un reload, cela peut avoir des conséquences également sur 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 :

 {{{
# rasterisk -vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv # on met "plein" de "v"
Asterisk 1.4.17~dfsg-1auf3, Copyright (C) 1999 - 2007 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
This package has been modified for the Debian GNU/Linux distribution
... et ensuite par l'AUF ! Envoyez les bugs à thomas.noel@auf.org
=========================================================================
  == Parsing '/etc/asterisk/extconfig.conf': Found
Connected to Asterisk 1.4.17~dfsg-1auf3 currently running on voip (pid = 5607)
Verbosity is at least 55
voip*CLI>
}}}

Vous êtes alors en mode ligne de commande (''CLI = command line interface''). Elle fonctionne un peu comme sur la ligne de commande d'un Cisco : tapez `help` pour avoir la liste des commandes, utilisez la touche [Tab] ou `?` pour la complétion automatique, etc.

Une commande extrémement utile est `module reload` :

 {{{
gatekeeper*CLI> module reload
  == Parsing '/etc/asterisk/extconfig.conf': Found
  (...)
gatekeeper*CLI>
}}}
qui va demander à asterisk de relancer tous ses modules. Chacun va relire son fichier de configuration. Vous pouvez être plus précis en ne demandant la recharge que de certains modules, par exemple :

 * `dialplan reload` rechargera le fichier extensions.conf (c'est-à-dire le plan de numérotation des postes)
 * `iax2 reload` ne re-chargera que ce qui concerne IAX

== Annexe 2 : quand tout est cassé, réinstallation complète d'Asterisk ==

 1. 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 garde une copie de la configuration
# cp -a /usr/share/asterisk/keys /root/asterisk-backup/keys # on garde une copie des clés
# aptitude purge asterisk asterisk-config-auf asterisk-config-auf-connexions asterisk-app-conference asterisk-prompt-fr asterisk-sounds-main asterisk-moh-auf
# rm -rf /etc/asterisk /usr/share/asterisk /var/lib/asterisk /var/spool/asterisk /var/run/asterisk

}}}

Note : éventuellement, pensez à copier les fichiers de logs pour les statistiques, contenus dans `/var/log/asterisk/`.

 1. Réinstallation :
 {{{
# mkdir -p /usr/share/asterisk/keys # on remet en place la clé privée (début)
# cp -a /root/asterisk-backup/keys/*.key /usr/share/asterisk/keys # on remet en place la clé privée (fin)
# aptitude install asterisk
}}}

 1. Reconfiguration : reprendre les configurations des postes clients (`sip.local`, `iax.local`, `extensions.local`, etc.) que vous avez copiées dans `/root/asterisk-backup/etc`.

== Annexe 3 : statistiques ==

Voir la sous page [[/Stats]] : mise en place d'un système de statistiques pour Asterisk
== Pour des informations plus générales sur la VoIP et Asterisk ==
 * Le [[Projet/VoIP]] de l'AUF, ainsi que la description du système [[VoIP]] qui en a débouché
 * /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) : [[http://voip4d.it46.se/|site d'origine]])
 * Le site du logiciel Asterisk : http://www.asterisk.org/
Ligne 288: Ligne 29:
CatégorieLogiciel [[CatégorieVoIP]] [[CatégorieRecommandationDRI]] CatégorieLogiciel [[CatégorieVoIP]] [[CatégorieRecommandationsARI]]

Sous-pages :

Voir aussi VoIP et Projet/VoIP

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».

Infrastructures matérielle et réseau nécessaire

  • La mise en place du serveur nécessite quelques précisions, principalement au niveau de la configuration réseau à mettre en place (règles sur le pare-feu). Tout est détaillé sur la page /Infrastructures.

Installation du système Asterisk AUF

  • Si vous n'avez pas encore de serveur Asterisk ou si vous désirez le ré-installer sur une machine neuve, la procédure est détaillée sur la page /Installation.

  • Si vous avez déjà un serveur en Debian Etch qui tourne avec l'ancienne version Asterisk 1.2, vous devez le mettre à jour car ces paquets ne sont plus maintenus. La mise à jour est simple et ne demande que 10 minutes d'interruption de service VoIP. La procédure est disponible ici : /MiseAJour14

Configuration des comptes clients

  • Une fois votre serveur configuré et fonctionnel, vous devez le configurer pour que les postes clients (téléphones IP ou logiciels) s'y connectent et puissent l'utiliser. La page /ConfigurationClients détaille cette étape.

Suivi et dépannage

  • Pour voir ce qui se passe au niveau de votre serveur Asterisk vous pouvez regarder les logs, mais le plus efficace est d'utiliser l'interface de pilotage en ligne de commande. Tout est expliqué sur la page /SuiviEtDépannage.

Mise en place d'un système de statistiques

  • Afin d'étudier l'utilisation de votre serveur VoIP, des outils permettent d'analyser les logs et de générer des rapports statistiques. Voir la sous-page /Stats pour cela.

Pour des informations plus générales sur la VoIP et Asterisk


CatégorieLogiciel CatégorieVoIP CatégorieRecommandationsARI

Asterisk (dernière édition le 2008-09-19 10:09:51 par ChristopheVillemer)