Proxmox : Asterisk dans un conteneur OpenVZ

Asterisk fonctionne de base sans problèmes dans un conteneur OpenVZ sauf que, si on veut pouvoir mettre en place des salles de conférence pour « parler à plusieurs », cela ne fonctionnera pas.

Pourquoi ?

MeetMe, le module de conférence d’Asterisk a besoin d’un timer pour synchroniser les voix des différents participants. Il doit pour cela accéder au hardware de la machine hors celui-ci est géré par l’OS hôte : Proxmox.

Il nous faut donc autoriser le conteneur OpenVZ à accéder au hardware de Proxmox.

Proxmox est un OS 64 bits. On devra donc obligatoirement virtualiser un OS 64 bits dans le conteneur OpenVZ pour pouvoir avoir accès au hardware et ainsi pouvoir activer la fonctionnalité de conférence d’Asterisk.

Mise en place d’Asterisk dans un conteneur 64 bits

On installe donc Asterisk sur un OS virtualisé 64 bits. Je prends l’exemple ici de la distribution Debian stable Lenny 5.0.

On update la liste des paquets puis on applique les dernières mises à jour de sécurité :

# aptitude update && aptitude safe-upgrade

On installe Asterisk :

# aptitude install asterisk

Compilation de Zaptel dans Proxmox

Une fois que c’est fait, on se connecte en SSH directement sur l’OS hôte : Proxmox, où l’on va installer le module hardware permettant la prise en charge de la conférence : Zaptel.

Zaptel se compile très bien avec la version de noyau 2.6.24 de proxmox. On vérifie que l’on est bien sur ce noyau :

# uname -a

Le cas échéant, on installe le noyau 2.6.24.

Une fois que l’on est sûr d’avoir le bon noyau, on installe module-assistant (outil Debian permettant de compiler facilement les modules) :

# aptitude install module-assistant

On prépare le système à compiler des modules :

# module-assistant prepare

Puis on compile le module zaptel :

# module-assistant auto-install zaptel

zaptel-module va automatiquement être créé et toutes les dépendances nécessaires seront installées.

Remarque : Il ne faut jamais compiler et installer des outils de compilation sur un serveur en production. Il est préférable et même obligatoire de faire ces manipulations sur un serveur de test. Un paquet zaptel-module.deb va automatiquement être créé dans /usr/src/, c’est ce paquet compilé qu’il faudra installer sur le serveur en production.

Après installation, si le lancement du module pose problème, c’est sans doute parce qu’il manque son fichier de configuration /etc/zaptel.conf. Il faut le générer avec cette commande :

# genzaptelconf

On démarre le service zaptel :

# /etc/init.d/zaptel start

Une fois zaptel installé et fonctionnel sur Proxmox, on donne l’accès au hardware dans le conteneur OpenVZ (on suppose que le conteneur est le n° 101):

# modprobe ztdummy# vzctl set 101 --devnodes zap/pseudo:rw --save

Les manipulations sur le serveur Proxmox sont terminées.

Finalisation de l’installation d’Asterisk

On se connecte maintenant au conteneur OpenVZ.

On donne les bons droits d’accès au device zaptel :

# chown root:dialout /dev/zap/pseudo# chmod 660 /dev/zap/pseudo

Afin de pouvoir gérer plus facilement les utilisateurs, on installe Asterisk Gui, une application web dédiée à ce travail.

On télécharge la dernière version :

$ svn checkout http://svn.digium.com/svn/asterisk-gui/trunk asterisk-gui

On entre dans le répertoire asterisk-gui et on « configure » :

$ ./configure

On « make »:

$ make

Puis on installe:

$ make install

Là, l’installeur va vérifier que tout est OK au niveau de la config Asterisk. Suivre les instructions à l’écran, notamment lors de la création d’un compte d’admin dans le fichier manager.conf.

Note : pour pouvoir administrer Asterisk depuis un autre PC que localhost, il faut que :

bindaddr = 0.0.0.0

…dans les fichiers http.conf et manager.conf du répertoire /etc/asterisk/.

Une fois l’installation terminée, un dernier réglage. Asterisk-gui ne s’installe pas dans le bon répertoire Debian.

On efface dans /usr/share/asterisk/ le répertoire static-http :

# rm -R /usr/share/asterisk/static-http/

On crée un lien symbolique :

# ln -s /var/lib/asterisk/static-http/ /usr/share/asterisk/

On rétablit les bons droits :

# chown -R asterisk:asterisk /var/lib/asterisk/static-http/

On redémarre le daemon:

# /etc/init.d/asterisk restart

Asterisk-gui est maintenant accessible à cette adresse :

http://ip.de.la.machine:8088/asterisk/static/config/index.html

2 réflexions au sujet de « Proxmox : Asterisk dans un conteneur OpenVZ »

  1. Merci pour ce tuto, mais il semble que le module zaptel ne soit plus maintenu.
    J’ai la belle erreur : »Unable to locate package zaptel-source » lors de l’installation.
    Avez-vous une autre solution pour mettre en place les conférences?
    Merci encore

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *