PDA

Voir la version complète : [RESOLU] Utilisation d'ASTERISK + DAHDI dans un conteneur LXC



libresurf
20/08/2014, 17h21
Bonjour,

jusqu'à maintenant j'utilisais Asterisk en mode switch SIP (VoIP) derrière un conteneur LXC (http://fr.wikipedia.org/wiki/Lxc) sans aucun problème (Debian Wheezy 7).

Or je viens d’acquérir une carte analogique Digium A4B (http://www.digium.com/en/products/telephony-cards/analog/4-port) avec un module FXO pour pouvoir relier mon IPBX au service téléphonique.
Cette dernière utilise le driver DAHDI wcaxx et accède donc au hardware via les fichiers devices /dev/dahdi/*.

D'après plusieurs discussions sur les forums, il faut paramétrer son conteneur LXC pour partager avec l'hôte ces fichiers devices :
http://asteriskfaqs.org/2011/06/08/asterisk-users/lxc-and-dahdi.html

En suivant ce post, j'ai donc rajouté au fichier de configuration de mon conteneur /srv/lxc/asterisk/config:


lxc.cgroup.devices.allow = c 196:0 rwm # /dev/dahdi/ctl
lxc.cgroup.devices.allow = c 196:253 rwm # /dev/dahdi/timer
lxc.cgroup.devices.allow = c 196:254 rwm # /dev/dahdi/channel
lxc.cgroup.devices.allow = c 196:255 rwm # /dev/dahdi/pseudo


Je précise que mon fichier /etc/fstab est bien configuré pour supporter cgroup :


root@astuce:~# cat /etc/fstab
# /etc/fstab: static file system information.
#
[...]
# Utilisation de cgroup pour LXC
cgroup /sys/fs/cgroup cgroup defaults 0 0


Je relance mon conteneur asterisk, me connecte par ssh et vérifie le répertoire /dev :


root@asterisk:~# ls -ltr /dev/dahdi
ls: impossible d'accéder à /dev/dahdi: Aucun fichier ou dossier de ce type
root@asterisk:~#


alors que sur l'hôte, j'ai bien :


root@server:~# ls -ltr /dev/dahdi
total 0
crw-rw---T 1 root root 196, 253 août 20 10:16 timer
crw-rw---T 1 root root 196, 255 août 20 10:16 pseudo
crw-rw---T 1 root root 196, 0 août 20 10:16 ctl
crw-rw---T 1 root root 196, 254 août 20 10:16 channel
drwxr-xr-x 3 root root 60 août 20 10:16 chan
lrwxrwxrwx 1 root root 12 août 20 10:16 4 -> chan/001/004
lrwxrwxrwx 1 root root 12 août 20 10:16 3 -> chan/001/003
lrwxrwxrwx 1 root root 12 août 20 10:16 2 -> chan/001/002
lrwxrwxrwx 1 root root 12 août 20 10:16 1 -> chan/001/001
root@server:~#


Donc la liaison des fichiers devices entre l'hôte et le conteneur ne se fait pas.

Est-ce que quelqu'un parmi vous a déjà été confronté à ce problème et a su le corriger ?

Merci d'avance, car je bloque depuis une bonne journée !!!

libresurf
21/08/2014, 09h40
Grâce à une aide sur le canal IRC de debian-fr, j'ai enfin la solution : Il faut recréer les fichiers devices !!! car les paramètres lxc.cgroup.devices.allow autorisent l'accès aux devices mais sans les utiliser ! :non:

Pour pourvoir les utiliser dans le conteneur, il faut donc les recréer.
Dans Debian, la création des fichiers devices de dahdi s'effectue avec le paquet dahdi-linux.

Pour cela, trois solutions à essayer dans l'ordre suivant :

Solution 1 :
# dpkg-reconfigure dahdi-linux

Solution 2 :
# aptitude reinstall dahdi-linux

Solution 3 :
# sh /usr/share/doc/dahdi-linux/examples/make_static_nodes