Connexion n810 sur Asterisk over OpenVPN

Le tabletPC n810 de Nokia est un super jouet. La première chose installée est un client OpenVPN pour pouvoir se connecter à ses ressources en toute sécurité (relative) depuis n’importe où. Parmi ses ressources il y a un serveur Asterisk. Le n810 intègre, en effet, un client VoIP. De quoi s’amuser, téléphoner via un forfait depuis n’importe quel endroit et surtout recevoir des appels comme si on était chez soi.

Seulement voilà : çapamarche ! Impossible de s’enregistrer sur le serveur Asterisk pourtant  à l’autre bout du VPN. Après quelques recherche, il s’avère que le problème ne vient pas d’Asterisk et encore moins d’OpenVPN mais bien de la configuration sur le n810. Le bestiaux n’utilise pas l’adresse local VPN par défaut, il faut le lui préciser explicitement.

On ouvre donc un terminal (j’adore des périphériques mobiles avec un terminal), on passe en root avec root et on utilise :
mc-account set sip0 string:local-ip-address=ADRESSE_LOCALE_DU_VPN
Magie, le client sip/VoIP se connecte et tout roule.

Il est possible d’automatiser la configuration mais j’étais trop impatient pour configurer cela avant de poster. Explications sur : http://talk.maemo.org/archive/index.php/t-20921.html

Carte FXO X100P Zaptel Dahdi : Failed to initailize DAA, giving up

Heureux propriétaire que je suis d’une carte FXO X100P pour mon Asterisk, j’ai eu la mauvaise idée de mettre à jour mon kernel en 26.29 sur ma chère Debian. Là impossible de recompiler le module avec m-a. Après recherche et environs 50 checkout SVN… je me suis rendu compte qu’il n’y a pas que zaptel-source dans la vie mais aussi dahdi-source.

Ainsi, aptitude install dadhi-source, m-a -t a-i dahdi-source et modprobe wcfxo… et :
[874853.416148] dahdi: Telephony Interface Registered on major 196
[874853.416151] dahdi: Version:
[874853.418471] wcfxo 0000:03:07.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[874853.460005] NOTICE-wcfxo: WCFXO/0: Unknown DAA chip revision: REVB=0
[874853.460008] Failed to initailize DAA, giving up…
[874853.460058] wcfxo: probe of 0000:03:07.0 failed with error -5
Quoi what ? WTF ?

Le problème d’est l’IRQ, la solution c’est un petit bout de code :
Index: wcfxo.c
===================================================================
— wcfxo.c (revision 4616)
+++ wcfxo.c (working copy)
@@ -696,6 +696,16 @@
/* Hardware stuff */
/* Reset PCI Interface chip and registers */
outb(0x0e, wc->ioaddr + WC_CNTL);
+
+ /* Set all to outputs except AUX 4, which is an input */
+ outb(0xef, wc->ioaddr + WC_AUXC);
+
+ /* Reset the DAA (DAA uses AUX5 for reset) */
+ outb(0x00, wc->ioaddr + WC_AUXD);
+ set_current_state(TASK_INTERRUPTIBLE);
+ schedule_timeout(1 + HZ / 800);
+
+ /* Set hook state to on hook & un-reset the DAA */
if (wc->flags & FLAG_RESET_ON_AUX5) {
/* Set hook state to on hook for when we switch.
Make sure reset is high */
@@ -704,9 +714,7 @@
/* Set hook state to on hook for when we switch */
outb(0x24, wc->ioaddr + WC_AUXD);
}
– /* Set all to outputs except AUX 4, which is an input */
– outb(0xef, wc->ioaddr + WC_AUXC);

+
/* Back to normal, with automatic DMA wrap around */
outb(0x01, wc->ioaddr + WC_CNTL);
Donc, on apt-get source dahdi-source, on édite le fichier drivers/dahdi/wcfxo.c, puis on dpkg-buildpackage -rfakeroot pour enfin dpkg -i ../dahdi-source_2.2.0~dfsg~rc5-1_all.deb et re m-a.

Zou :
[876677.300909] dahdi: Telephony Interface Registered on major 196
[876677.300913] dahdi: Version:
[876677.360006] wcfxo: DAA mode is ‘FCC’
[876677.360009] Found a Wildcard FXO: Wildcard X100P
Bonheur !

Merci https://issues.asterisk.org/view.php?id=14232

Mutt et les types MIME

Heureux possesseur d’une carte FXO Novalink (merci eBay), je m’amuse comme un petit fou avec Asterisk. Pour l’heure il ne s’agit encore que d’un PABX simpliste avec renvoi d’appel via VoIP (ça sonne, Asterisk décroche, et renvoi l’appel sur un Soft Phone Ekiga sur le VPN). Si le poste VoIP est déconnecté ou occupé, le correspondant tombe sur la boîte vocale. Je n’ai donc, pour l’heure, un répondeur téléphonique construit sur un Intel QuadCore Q6600 :)

Mais l’objet de ce post n’est pas là. Lorsqu’un message est laissé, il arrive par mail sous la forme d’un fichier WAV à une adresse donnée. Comment dire à mon gentil Mutt via IMAP over SSL d’utiliser telle ou telle commande pour lire ce fichier ? La réponse c’est ~/.mailcap.

Le fichier ~/.mime.types permet d’associer une extension de fichier à un type MIME. Utile pour composer un mail et attacher correctement les fichiers. Pour l’association type/application c’est donc ~/.mailcap qu’il faut toucher.

Voici pour le WAV :
audio/wav;/usr/bin/play %s
audio/x-wav;/usr/bin/play %s
audio/x-pn-wav;/usr/bin/play %s
Et c’est tout. /usr/bin/play est le player livré avec le convertisseur de formats audio SoX. Ce n’est pas une astuce, ce n’est pas un hack. Ce post n’a pas d’autre réel intérêt que d’imprimer cela une bonne fois pour toute dans ma mémoire et éviter de chercher encore pendant 5mn la prochaine fois que je voudrai changer une association type/application ;)