Académique Documents
Professionnel Documents
Culture Documents
Asterisk2 PDF
Asterisk2 PDF
Xavier Meunier
mxs@free.fr - http://mxs.free.fr
Asterisk sur Ubuntu
Introduction
4
Applications
4
Fonctionnement / dfinitions
4
SIP
4
RTP
5
IAX
5
Installation
6
Tlchargement et compilation
6
Notes:
7
Installer les sons
7
Installation outils dadministration
7
Serveur Apache / MySQL
8
Serveur X11VNC
8
Serveur OpenSSH
8
Agent SNMP / Syslog
8
Lancer Asterisk
9
Notes:
9
Configuration dAsterisk
10
Configuration des quipements rseau
10
Qualit de service
10
Le NAT
10
SIP et le NAT
11
IAX
11
RTP
11
Configuration par fichiers de configuration
11
asterisk.conf
11
sip.conf
12
iax.conf
12
zapata.conf
12
voicemail.conf
12
musiconhold.conf
12
Configuration en Real Time
13
Configuration laide dune interface graphique
14
i
Asterisk sur Ubuntu
ACTOS
14
Exemples de configurations
16
Les connexions SIP
16
La messagerie unifie
17
Envoi dun e-mail davertissement
18
Configurer lenvoi dun e-mail de notification
18
Manager Asterisk
19
Haute disponibilit
19
Haute disponibilit au niveau application
19
Annexes
20
Commandes utiles
20
Fichier /etc/apt/sources.list
20
ii
Introduction
Asterisk est un PBX-IP open source capable de concurrencer des systmes commerciaux tels que les Call Manager de
Cisco System. Dans ce document je vais tenter dexpliquer ma dmarche pour installer Asterisk sur un Linux (distribution
Ubuntu 5.04 ou 5.10 en mode normal ou serveur).
Le but de ce papier est de faire une interconnexion entre 2 PABX Asterisk en IAX (dans les rseaux natts). Le premier sera
install sous Ubuntu et le second sous windows avec AsteriskW32 (www.asteriskw32.org). Celui sous linux sera entirement
OpenSource avec notamment lutilisation du codec iLBC (voir section qui lui est consacr), des interfaces utilisateurs GNU,
etc.
Le but final est de pouvoir proposer un systme dIPBX moindre cot capable dtre mis en production avec des
contraintes fortes (PABX dentreprise multi-sites, offre de plate-forme dIP-Centrex, etc.)
Applications
Le but de ce type dapplication est de fournir des services tlphoniques personnaliss des utilisateur locaux ou distants.
De plus le principe de la VoIP permet de rduire les cots tlphonique de lentreprise (rseau converg, capacit liaisons
WAN utilises, quipe technique unique) ou de lutilisateur (utilisation dInternet au lieu du rseau RTC ce qui rduit les
cots).
Fonctionnement / dfinitions
Asterisk est donc une solution complte de PABX-IP logiciel fonctionnant sur divers systmes dexploitation comme Linux,
BSD, Windows et Mac OS X. Asterisk fournit tout les services de base dun PABX comme la connexion des postes entre
eux (quils soient locaux ou distants), messagerie unifie, services Web intgrs (ex: annuaire, gestion salle de confrence,
etc.), service de rpondeur interactif (IVR), musique dattente, interconnexion avec le rseau tlphonique public, etc.
Asterisk est bas comme le Cisco Call Manager sur le principe de canaux (Channels), de plan de numrotation (Dial Plan) et
de contextes (search spaces pour le Cisco Call Manager).
Quand un appel arrive sur canal, par exemple le canal SIP, le but du PABX - grce au plan de numrotation - est de trouver
le canal de sortie qui peut tre le mme canal SIP dans le cas dun appel en VoIP l'intrieur du btiment, ce canal de sortie
peut galement tre un des autres type de canaux gr par asterisk. Les contextes servent rduire (ou augmenter) les
possibilits de sortie dun appel. Cel peut par exemple servir pour autoriser les appels l'international pour certains
utilisateurs seulement, pour crer des services dIVR (lors dun appel sur un numro, on fait appel un contexte qui droule
le script du rpondeur automatique, etc.).
Asterisk peut tre de multiples canaux dentre/sortie qui peuvent tre de type IP comme MGCP, IAX, SIP, H.323, skinny,
etc. ou de type tlphonie classique avec entre autre Zap (FXS et FXO), ISDN (BRI et PRI).
SIP
Protocole de signalisation de vido et voix sur IP qui est bas sur des messages en clair et fonctionnant sur le port 5600 en
TCP et UDP.
1 sur 18
RTP
Le but de RTP et de fournir un moyen uniforme de transmettre sur IP des donnes soumises des contraintes de temps
rel (audio, vido, ... ). Le rle principal de RTP consiste mettre en oeuvre des numros de squence de paquets IP pour
reconstituer les informations de voix ou vido mme si le rseau sous-jacent change l'ordre des paquets.
IAX
Protocole de signalisation de voix/ vido sur IP utilis par Asterisk (Inter Asterisk eXchange). Ce protocole fonctionne sur le
port 4569 en UDP et transporte la fois les donnes (voix) et la signalisation. Lintrt principal de ce protocole est dtre fait
pour traverser le NAT et quil est possible de crer des trunks IAX entre les serveurs dans lesquels les communications RTP
sont multiplexes ainsi on conomise les surcharges d'enttes IP.
2 sur 18
Installation
Asterisk 1.2.4
Serveur x11VNC pour prise contrle par interface graphique sans crer de nouvelle session gnome (%
CPU en moins)
Tlchargement et compilation
Il est ncessaire dinstaller certains paquets pour pouvoir compiler et lancer asterisk.
Taper les commandes suivante en tant que Root (avec la commande sudo) afin de tlcharger Asterisk:
cd /usr/src
export CVSROOT=:pserver:anoncvs@cvs.digium.com:/usr/cvsroot
cvs login (password, use anoncvs)
cvs checkout asterisk
ou cvs checkout -r v1-2-0 zaptel libpri asterisk
Ces commandes permettent de tlcharger la toute dernire version dAsterisk (version CVS de dveloppement). A viter
pour la mise en production. La dernire commande permet de rcuprer la version stable 1.2.0 avec les drivers zaptel et
libpri. On peut galement rcuprer des sons et add-on en ajoutant asterisk-addons et asterisk-sounds
3 sur 18
Il est bien sr possible de tlcharger les fichiers par HTTP ou FTP sur le serveur de Digium ladresse ftp.digium.com/pub/
telephony/asterisk/
cd /usr/src/asterisk
sudo make clean
sudo make
sudo make install
sudo make samples
la commande make samples permet de crer des fichiers de configuration de base. il faut excuter cette commande avec
sudo car il est ncessaire de crer le rpertoire /etc/asterisk.
Notes:
Chemin des fichiers de configuration: /etc/asterisk/
/usr/sbin/asterisk/ contient le dmon asterisk, sil ny a rien cest que la compilation cest mal passe.
Si la compilation est mal faite cest que des paquets ne sont pas installs
Asterisk peut galement tre install partir des dpts universe dubuntu breezy avec la commande apt-
get install. Sur ces dpts sont galement disponibles dautres packages tel que les fichiers sons franais,
etc. La version est moins rcente (1.0.9 actuellement).
Pour rcuprer les sons en franais, tlcharger le package ladresse http://mxs.free.fr/asterisk/FrenchPrompts.tar (cd /
var/lib/asterisk/ puis rapatrier le fichier avec sudo wget).
Il est ncessaire dinstaller les sons par dfaut en anglais et ceux en franais qui seront placs dans les rpertoires /var/
lib/asterisk/sounds/fr et /var/lib/asterisk/digits/fr/.
Les fichiers sont au format GSM par dfaut, ce qui consomme plus de bande passante (64kb/s) que les
formats G.729a (soumis licence) ou iLBC (OpenSource).
Le serveur Apache permet des modifications simples des fichiers de configuration comme lajout dun utilisateur.
Le serveur OpenSSH permet une administration distance en ligne de commande. Cel permet galement une scurit
accrue avec notamment une authentification par cl publique/cl prive. De plus il peut tre envisager de faire du VNC sur
du SSH. Sur une Ubuntu serveur, seul SSH peut tre utilis (sauf installer x11) pour administrer le serveur.
4 sur 18
Lagent SNMP permet denvoyer des information essentielles un serveur SNMP telles que la consommation mmoire,
CPU, rseau, les coupures rseau, etc.) qui peut son tour les retransmettre loprateur (par alarmes visuelles, e-mail,
SMS, etc.).
Pour plus de simplicit il est possible dinstaller PHPMyAdmin (le package PHPMyAdmin intgre le serveur Apache 2, PHP
et modules dapache pour le PHP). Il suffit ensuite de se logguer sur http://@IP_serveur/phpmyadmin et de rentrer le mot de
passe root. Pour asterisk en mode Real Time, crer un utilisateur asterisk (aucun droit dadministration) et une base du
mme nom.
Pour les informations mettre dans cette base, voir le chapitre Configuration en Real Time.
Serveur X11VNC
Le serveur X11VNC permet de rediriger la session X11 en cours dutilisation vers un hte distant en VNC cel lavantage
de rduire la consommation CPU lors des phases dadministrations.
Serveur OpenSSH
Le serveur SSH sinstalle par la commande apt-get install openssh-server.
Paramtres importants:
PermitEmptyPasswords no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys2
AllowUsers <nom_utilisateur>
il faut placer les cls publiques RSA des htes autoriss dans le rpertoire ~/.ssh/authorized_keys2. La commande
AllowUsers est trs importante car elle permet de limiter laccs la machine.
Pour crer un couple de cls prive/publique, il faut utiliser la commande ssh-keygen -t rsa. Ensuite copi la cl
publique la suite des autres cls dans le fichier (voir ci-dessus) et vrifier que la variable PubkeyAuthentication est
yes.
5 sur 18
Lancer Asterisk
Paramtres Effets
-d Mode debug
-q Mode silencieux
Notes:
asterisk -vvvvvvc: Lance un serveur Asterisk en avant-plan
6 sur 18
Configuration dAsterisk
Le but de cette section est de montrer le fonctionnement gnral dAsterisk et les diffrentes manires de le paramtrer.
Pour une configuration plus avance, se reporter au chapitre sur les exemples de configurations.
Qualit de service
Le NAT
Dans notre cas, le serveur Asterisk sous Ubuntu est dans un rseau priv comme le montre le schma suivant:
Sur le routeur charg du NAT, il faut rediriger les ports SIP (port 5060 TCP et UDP) et IAX (4569 en UDP) vers le serveur afin
de pouvoir utiliser des postes distants (utile pour faire un serveur de IPBX dcentralis (IP-Centrex).
7 sur 18
Voici un exemple de schma simple de rseau local informatique avec sparation des rseaux Voix et Data par des VLAN
avec prioritisation des flux du VLAN Voix sur le switch (champs 802.1p) et sur lInternet avec le champs ToS des enttes IP.
Lintrt de rediriger les ports SIP et IAX est de permettre des postes IP relis Internet de senregistrer sur lIPBX. le
protocole IAX est plus simple a configurer pour traverser le NAT car il peut transporter la fois la voix et la signalisation. IAX
est galement trs intressant pour reli 2 IPBX asterisk.
SIP et le NAT
IAX
RTP
[class]
variable=valeur
objet => paramtres et/ou fonctions
asterisk.conf
Fichier de configuration principal, contient la liste des rpertoires utilis par le processus asterisk
[directories]
astetcdir => /etc/asterisk
astmoddir => /usr/lib/asterisk/modules
8 sur 18
astvarlibdir => /var/lib/asterisk
astagidir => /var/lib/asterisk/agi-bin
astspooldir => /var/spool/asterisk
astrundir => /var/run
astlogdir => /var/log/asterisk
Note: En cas de messages derreurs de type droits dcriture dans des rpertoire, vrifier la configuration de ces variables
sip.conf
Fichier de configuration des paramtres globaux et des comptes SIP.
Ce fichier permet galement de configurer les canaux SIP vers des fournisseurs (asterisk en tant que client SIP).
Le fichier comprend une partie de paramtres globaux indiqus dans la partie [general] et de comptes SIP, chaque compte
tant une classe:
[general]
register => user[:secret[:authuser]]@host[:port][/extension]
Il faut ensuite cre un compte de type peer, en effet lenregistrement permet seulement dtre appel, pour transmettre des
appels vers lextrieur, il faut crer un compte SIP de type peer et crer une extension (en fait une route) dans le fichier
extensions.conf de type
[compte_utilisateur]
variable=valeur
et dans le fichier extensions.conf
iax.conf
Comme pour le fichier sip.conf, permet de configurer des clients ou peers avec le protocole IAX qui permet une meilleure
gestion de la bande passante ainsi quune facilit de traverse des rseaux NAT.
zapata.conf
Permet de configurer les cartes daccs FXO, BRI et PRI de digium (ou assimil) qui utilisent les drivers zapata.
voicemail.conf
Ce fichier permet de configurer les paramtres gnraux de la voicemail (configuration e-mail davertissement), les zones de
temps (pour lheure de rception du messages) et enfin les boites vocales.
[<context_voicemail>]
nextension => mot_de_passe,nom_utilisateur,adresse_email
musiconhold.conf
Permet de configurer les rpertoires et les classes de musique dattente.
Par dfaut asterisk utilise le player mpg123 (pas libre de droit pour utilisation commerciale) mais dans ce fichier il est possible
den changer.
Pour que la musique dattente fonctionne, il faut installer mpg123 (sudo apt-get install mpg123)
9 sur 18
extensions.conf
Cest dans ce fichier que lon cre le Dial Plan, les extensions de postes, les macros, les contextes (search spaces). Il se
prsente sous la forme suivante:
[macro-<nom_macro>]
objet => parametres
[<nom_contexte]
exten => <numero_ou_route_pattern>,<n_seq>,parametres/fonctions
Plusieurs fonctions peuvent tre utilises dans ce fichier que nous verrons dans le chapitre sur les exemples de
configuration.
Le Real Time permet de stocker les informations de configuration (comptes SIP, etc.) dans des tables SQL (serveur MySQL,
PostGre via ODBC) au lieu des fichiers de configurations standards. Cela permet des mises jour en temps rel et la
possibilit de crer des interfaces WEB personnelles.
Pour activer le mode Real Time,il faut avoir tlcharger les fichiers add-ons sur le serveur de digium (voir chapitre
tlchargement).
Ensuite, lancer les commandes suivantes pour compiler et installer les fichiers ncessaire au fonctionnement en Real Time
avec MySQL:
cd /usr/asterisk/asterisk-addons
sudo make
sudo make install
sudo cp ./configs/res_mysql.conf.sample /etc/asterisk/res_mysql.conf
Le fichier /etc/asterisk/res_mysql.conf contient les informations ncessaires pour se connecter au serveur
MySQL:
dbhost = 127.0.0.1
dbname = asterisk
dbuser = nom_utilisateur
dbpass = mot_de_passe
dbport = 3306
dbsock = /tmp/mysql.sock
Le problme de la configuration en Real Time cest quelle ne permet pas lutilisation de toutes les
fonctionnalits comme la traverse du NAT.
10 sur 18
Configuration laide dune interface graphique
Il peut tre intressant davoir une interface graphique pour manager un serveur asterisk, bien sr une interface graphique
permet moins de souplesse dune configuration directe des fichiers mais avec une interface Web par exemple, une
programmation personnelle peut tre faite pour des besoins spcifiques.
Interface Utilisateur
Interface Configuration
Interface Administrateur
Interface Statut
Dans ce chapitre nous allons voir comment sinstalle et se configure plusieurs interfaces graphique avec les points forts et
faible de chacune.
ACTOS
Actos (Asterisk Configuration Tool Open Source) est une application qui fonctionne en client/serveur. Un serveur sinstalle
sur le serveur asterisk et envoie les fichiers de configuration vers un client qui se connecte ce serveur via une socket TCP.
Le client peut tre soit sur Windows soit sur Linux.
La premire tape consiste installer le serveur Actos pour cela seul le package pour le langage de programmation Python
est ncessaire.
Pour installer le serveur Actos, il faut dabord recuprer le fichier actos_server-2.23.tar, le decompresser dans le repertoire
personnel et linstaller:
Cet excutable placera le dmon actos_server.py dans le rpertoire /usr/bin/ et les fichiers dans /usr/share/
actos/ . Il y aura galement un nouvel utilisateur qui aura les droits sur les fichiers de configuration dasterisk.
actos_server.py -manage
Il faudra crer une autorisation (un mot de passe) afin de scuriser l'change entre le serveur et le client.
Ensuite lors des lancements suivants il faudra se logguer en utilisateur actos et lancer le serveur:
11 sur 18
Par dfaut le port utilis est le 8007
Pour installer un client Actos sur Windows, il faut installer gtk pour windows et dcompresser (zip) larchive astos pour
Windows. Ensuite lancer le fichier wininstall.bat.
Lors du premier lancement, le programme essayera de rcuprer des fichiers en local, il y aura donc des erreurs. Pour
rcuprer les fichiers sur le serveur asterisk, il faut aller dans le menu Import Asterisk conguration et choisir Import "om
a remote machine running Actos-server. Il faut alors rentrer ladresse IP du serveur asterisk, le port (8007 par dfaut), le mot
de passe (celui de lautorit ajoute lors du premier lancement du serveur) et laisser Remote directory par dfaut.
12 sur 18
Exemples de configurations
Le but de cette section est de montrer comment utiliser les fonctionnalits dasterisk pour en faire un IPBX rpondant aux
demandes des clients.
[marielle]
accountcode = marielle
callerid = "Marielle Kermarrec" <1002>
13 sur 18
dmtfmode = rfc2833
qualify = yes
nat = no
mailbox = 1002@default
secret = vertigo
context = default
host = dynamic
type = friend
language = fr
1. bindadress: adresse IP sur laquelle le serveur coute les requetes qui lui sont envoyes. Si le routeur na quune seule
interface rseau, il faut laisser par dfaut (0.0.0.0).
2.
3. context de recherche pour les appels entrants, il faut donc sassurer que les extensions qui doivent tre joignables sont
bien dans ce context.
La messagerie unifie
Pour crer des boites de messagerie vocale aux utilisateurs, il faut indiquer un identifiant de messagerie dans les comptes
(sip,iax,zaptel) avec la commande mailbox=<identifiant>[@context_voicemail]
[<context_voicemail>]
nextension => mot_de_passe,nom_utilisateur,adresse_email
Dans ce fichier on peut galement crer des zones ce qui permet par exemple de rgler les fuseaux horaires, le format de
lheure, etc. Ces zones se crent dans la classe
[zonemessages]
Exemple simple, numroter le 123 pour accder au menu principal de la messagerie unifie. Lutilisateur doit ensuite rentrer
son login et mot de passe. Dans extensions.conf:
Ainsi pour lutilisateur 1000, en numrotant le 100099, lutilisateur accde directement la demande de mot de passe. Par
contre il faut que dans le compte de lutilisateur la variable callerid soit indique (ex: callerid = xavier meunier <1000>).
14 sur 18
Envoi dun e-mail davertissement
La messagerie intgre asterisk permet lenvoi un e-mail lorsquun message vocal arrive. Il est possible de mettre le
message en pice jointe au mail (par exemple au format wave). La configuration se fait dans le fichier voicemail.conf
Le but de la messagerie unifie est dinformer par e-mail lutilisateur de la rception dun message vocal. Asterisk permet de
le faire et la configuration se trouve dans le fichier voicemail.conf.
15 sur 18
Manager Asterisk
Le but de ce chapitre est d'tudier la possibilit de mise en production et donc la facilit et les possibilits de management
et dexploitation de ce logiciel.
Haute disponibilit
Pou quun serveur asterisk puisse tre utilis en production, il doit tre dans un environnement dit de haute disponibilit
cest--dire avec une redondance tous les niveaux intervenant dans le bon fonctionnement du service ToIP fournit par
Asterisk.
Electricit
Rseau
Serveur
La 1re permet de tester la disponibilit du serveur matre et dans le cas dune panne de celui de relayer avec le second
serveur (ou plus). Il existe dautre solutions comme le logiciel ultramonkey qui permet lui aussi de crer un cluster.
Les fichiers de configurations peuvent ainsi tre changs entre les 2 serveurs par tes scripts cron.
16 sur 18
Annexes
Commandes utiles
voici des commandes pouvant aider pour ladministration du serveur:
Commande
apt-cache search <mot> Permet de chercher un package Debian contenant le mot <mot>
find / -name <mot> Permet de chercher un fichier dont le nom contient <mot>
more ./* | grep <mot> Exemple de tunnel redirigeant la sortie du 1er vers lentre du second.
Ici on demande dafficher le contenu de tout les fichiers du rpertoire courant et de filtrer
avec grep en affichant que les lignes avec le mot <mot>.
Fichier /etc/apt/sources.list
Ce fichier contient la liste des serveurs de dpts sur lesquels se trouvent les packages debian (.deb) ncessaire au
fonctionnement dasterisk. Pour trouver tout les packages ncessaires la compilation de voici la liste des dpts
ncessaires:
17 sur 18
18 sur 18