Mar 07
Contre toute attente, la migration de mon IPBX perso a été parfaitement sans douleur. Après l’installation de la toute dernière version d’Asterisk sur mon domU NetBSD à l’aide de pkgin (puisqu’aucune option particulière ne m’était nécessaire), je me suis souvenu d’un article que j’avais initialement écrit sur le site Freephonie.org, dans lequel j’expliquais les diverses manipulations pour monter un Asterisk fonctionnel derrière du NAT.
Comme souvent, l’article a été peaufiné par quelques contributeurs, et son contenu est tout à fait valide pour la configuration d’un Asterisk 1.6.
Ainsi, mon dom0 GNU/Linux possède les règles suivantes :
# on accepte le traffic SIP et une plage destinée au RTP
-A INPUT -p udp -m udp --dport 5060 -j ACCEPT
-A INPUT -p udp -m udp --dport 10000:10100 -j ACCEPT
# On accepte le forward pour ces memes ports vers le domU qui accueille le PBX
-A FORWARD -d 10.20.30.1/32 -i eth0 -p udp -m udp --dport 5060 -j ACCEPT
-A FORWARD -d 10.20.30.1/32 -i eth0 -p udp -m udp --dport 10000:10100 -j ACCEPT
# On reroute le traffic vers ces ports sur le domU adéquat
-A PREROUTING -i eth0 -p udp -m udp --dport 5060 -j DNAT --to-destination 10.20.30.1
-A PREROUTING -i eth0 -p udp -m udp --dport 10000:10100 -j DNAT --to-destination 10.20.30.1
Sur le domU en question, ma configuration n’a guère changé, si ce n’est que j’ai réduit le pool de ports RTP dans le fichier rtp.conf :
; ces ports correspondent aux ports reroutés par iptables sur le dom0
rtpstart=10000
rtpend=10100
Le reste de la configuration est strictement identique à la documentation visible sur Freephonie.org.
Notez qu’afin de pouvoir débugger tranquillement avec votre utilisateur, grace à la commande asterisk -r, et pour pouvoir éditer les fichiers de configuration d’Asterisk sans peine, pensez à vous ajouter au groupe “asterisk”, autoriser l’ecriture pour le groupe dans /usr/pkg/etc/asterisk, et modifier les champs suivants dans le fichier asterisk.conf :
runuser = asterisk ; The user to run as
rungroup = asterisk ; The group to run as
[files]
astctlpermissions = 0660
astctlowner = asterisk
astctlgroup = asterisk
astctl = asterisk.ctl
Et enfin: “Allo Bob ? c’est Paul !”
May 20
Étrangement, il arrivait assez fréquemment qu’au boot de ma gate Asterisk, une seule des deux cartes FXO soient prise en compte par le driver wcfxo. Typiquement, je me mangeais ce genre de message :
Apr 29 12:51:55 home /netbsd: Registered Span 2 (‘WCFXO/0′) with 1 channels
Apr 29 12:51:55 home /netbsd: wcfxo0: Out of space to write register 06 with e0
Apr 29 12:51:55 home /netbsd: wcfxo0: Out of space to write register 0f with 10
Apr 29 12:51:55 home /netbsd: 0: Failed to init DAA, giving up…
Et autres messages du driver de type:
wcfxo0: can’t map interrupt
Après quelques rapides recherches, je lis qu’il est souhaitable dans ce type de situation de :
. Activer l’option “Plug and Play OS” dans son BIOS
. Ajouter le support ACPI dans son noyau. Exemple :
options MPBIOS # configure CPUs and APICs using MPBIOS
options MPBIOS_SCANPCI # find PCI roots using MPBIOS
options MPACPI # configure CPUs and APICs using ACPI
acpi0 at mainbus0
options ACPI_PCI_FIXUP # PCI interrupt routing via ACPI
options ACPI_ACTIVATE_DEV # If set, activate inactive devices
Recompilation, installation du nouveau noyau, et depuis, tout semble se dérouler pour le mieux
Apr 29
ca-y-est, je les ai reçues… 8}~

Sous NetBSD, avec le driver zaptel-netbsd (comms/zaptel-netbsd), on ajoute à son /etc/lkm.conf ceci :
/usr/pkg/lkm/mod_zaptel.o -s – /usr/pkg/sbin/zaptel_postinstall – -
/usr/pkg/lkm/mod_wcfxo.o -s – - – -
Et au boot on obtiendra :
FXO device: vendor=1057 product=5608 subvendor=1057
wcfxo0 at pci1 dev 11 function 0: Wildcard X100P
zaptel at wcfxo0 not configured
wcfxo0: interrupting at irq 6
Registered Span 2 (‘WCFXO/0′) with 1 channels
wcfxo: DAA mode is ‘FCC’
FXO device: vendor=1057 product=5608 subvendor=1057
wcfxo1 at pci1 dev 12 function 0: Wildcard X100P
zaptel at wcfxo1 not configured
wcfxo1: interrupting at irq 9
Registered Span 3 (‘WCFXO/1′) with 1 channels
wcfxo: DAA mode is ‘FCC’
Il est evidemment possible de faire ce chargement directement grace à modload -s (ne pas oublier le -s) et en prenant bien soin d’executer le script /usr/pkg/sbin/zaptel_postinstall qui créera les devices nodes nécessaires à l’exploitation de la carte.

Et maintenant, on va tout pêter le téléphone de la maison…
Recent Comments