Professional Documents
Culture Documents
Xavier Meunier
mxs@free.fr - http://mxs.free.fr
Installation
Tlchargement et compilation
Notes:
Installer les sons
Installation outils dadministration
Serveur Apache / MySQL
Serveur X11VNC
Serveur OpenSSH
Agent SNMP / Syslog
Lancer Asterisk
Notes:
Configuration dAsterisk
Configuration des quipements rseau
Qualit de service
Le NAT
SIP et le NAT
IAX
RTP
Configuration par fichiers de configuration
asterisk.conf
sip.conf
iax.conf
zapata.conf
voicemail.conf
musiconhold.conf
Configuration en Real Time
Configuration laide dune interface graphique
4
4
4
4
5
5
6
6
7
7
7
8
8
8
8
9
9
10
10
10
10
11
11
11
11
11
12
12
12
12
12
13
14
14
16
16
17
18
18
19
19
19
20
20
20
ACTOS
Exemples de configurations
Les connexions SIP
La messagerie unifie
Envoi dun e-mail davertissement
Configurer lenvoi dun e-mail de notification
Manager Asterisk
Haute disponibilit
Haute disponibilit au niveau application
Annexes
Commandes utiles
Fichier /etc/apt/sources.list
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.
Plus gnralement, RTP permet :
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
Systme dexploitation Linux (ici Ubuntu avec kernel 2.6)
Asterisk 1.2.4
Drivers ZapTel 1.2.3 utiles pour la Voicemail, IVR, etc.
Serveur web Apache (pour interface web)
Base SQL (MySQL, PostGre pour Asterisk en Real Time)
PHP pour interfaces web dynamiques
Serveur x11VNC pour prise contrle par interface graphique sans crer de nouvelle session gnome (%
CPU en moins)
serveur SSH (openSSH pour prise de contrle en ligne de commande)
Tlchargement et compilation
Il est ncessaire dinstaller certains paquets pour pouvoir compiler et lancer asterisk.
build-essentials pour la commande make
gcc-4.0 pour compiler asterisk
termcap-compat et libncurses5-dev pour compiler des programmes non-debian
cvs, libssl-dev, zlib1g-dev
Ensuite pour tlcharger et compiler asterisk:
Se logguer sur le serveur en tant quutilisateur normal cr pendant linstallation
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/
Ensuite pour compiler Asterisk, entrer les commandes suivantes:
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 aptget 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).
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).
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.).
Serveur Apache / MySQL
Le serveur MySQL est ncessaire pour se servir dAsterisk en mode Real Time (fichiers de configuration remplacs par des
bases de donnes). Il peut bien sr tre install sur la mme machine ou sur une machine distante.
Le serveur sinstalle avec la commande apt-get install mysql-server.
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.
Pour lancer ou relancer le serveur: /etc/init.d/ssh start
Le fichier de configuration du serveur SSH: /etc/ssh/sshd_config
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.
Agent SNMP / Syslog
5 sur 18
Lancer Asterisk
Paramtres
Effets
-c
-C <nomfichier>
-d
Mode debug
-f
-h
-p
-q
Mode silencieux
-v
-r
-x
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
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
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:
Pour configurer Asterisk en tant que client SIP:
[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
exten => _0.,1,Dial(SIP/${EXTEN:1]@nom_domaine_provider,30,r)
Pour configurer un compte SIP (a chaque compte SIP doit correspondre une extension ou route dans le fichier
extensions.conf):
[compte_utilisateur]
variable=valeur
et dans le fichier extensions.conf
exten => actions
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
Il sagit du fichier le plus important.
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.
=
=
=
=
=
=
127.0.0.1
asterisk
nom_utilisateur
mot_de_passe
3306
/tmp/mysql.sock
10 sur 18
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.
sudo apt-get install python2.4-gtk2
sudo apt-get install python2.4-dev
Pour installer le serveur Actos, il faut dabord recuprer le fichier actos_server-2.23.tar, le decompresser dans le repertoire
personnel et linstaller:
tar -xvf actos_server-2.23.tar.gz
sudo ./launch_me_to_install
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.
Pour le premier lancement, il faut dmarrer le serveur avec la commande:
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
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.
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]
Ensuite il faut crer un compte dans le fichier voicemail.conf:
[<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:
exten => 123,1,VoiceMailMain()
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
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
Pour l'lectricit, un onduleur en cas de panne peut tre suffisant.
En ce qui concerne le rseau, plusieurs facteurs doivent tre pris en compte
Haute disponibilit au niveau application
Elle peut se faire par lutilisation de 2 applications: heartbeat et cron.
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
top
free -m
df -h
who
sudo -s
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