mardi 28 septembre 2004

VOIP : Mon modem m'appelle...

Il y a quelques jours, j'ai fait un entretien d'embauche pour un poste dans le domaine de la voix sur IP. Ceci a réveillé un vieux projet que j'avais : dépoussiérer le vieux modem-voice Olitec SmartMemory 56000 (déniché dans une brocante d'Amboise) et l'utiliser pour créer des services vocaux, un peu comme ceux que je faisais chez CarpeDiem.

La première étape du développement a été couronnée de succès hier : mon pc sous linux commande le modem, qui m'appelle sur mon portable, et me joue un mp3 avant de racrocher.

Si on regarde sous le capot, voici les commandes AT utilisées :

AT&K3#CLS=8#VBS=4#VLS=0#BDR=16#VRN=255#VRA=45
ATDT014379xxxx
(attendre le retour VCON, qui mets plusieurs secondes à arriver)
AT#VTX
(Ctrl+A J) # cat /tmp/BORISmod.RVO > /dev/ttyS1
           # fg
ATH

Le fichier /tmp/BORISmod.RVO est au format ADPCM 4bits 7200Hz. Il faut bien prendre soin de doubler chaque octet de valeur 0x10 et terminer par les octets 0x10 0x03. Un éditeur hexadécimal fera ca très facilement.

Ce que je dois améliorer :

  • passer du format ADPCM 4bits 7200Hz au format PCM 8bits 11025Hz (c'est le maxi supporté par le modem) : penser à augmenter la vitesse de connexion et celle du port série.
  • essayer d'améliorer la détection du décroché (trop long + bips audibles)

La seconde étape consiste à encoder un flux audio vers le format PCM 8/11025 en temps réel, et le rediriger vers le modem.

La troisième étape, qui rejoint enfin la VoIP, est plus ambitieuse : il s'agit d'ajouter un plugin à Asterisk, le IP-PABX opensource pour faire de la terminaison de Voix sur IP avec la ligne téléphonique gratuite de la Freebox !

PS: Bravo à Olitec pour leur documentation très complète

jeudi 16 septembre 2004

Un ajout à ma collection de bugs

Ca faisait un bon moment que je n'avais pas étoffé ma collection de bugs, voici donc une belle photo d'un panneau de contrôle en train de rebooter.

lundi 13 septembre 2004

Sysadmin : régler les problèmes du quotidien

Pas mal de petits problèmes aujourd'hui :

  • j'ai été surpris de voir que la commande seq (dans les GNU core utils) n'existe pas sur Freebsd ! Il existe jot en standard, et seq2 dans les ports, mais qui n'utilisent pas les mêmes paramètres. Il semble qu'il s'agisse d'un problème de license. Frank Cuny a fini par réécrire seq avec une license BSD. J'espère qu'elle sera inclue dans Freebsd bientôt !
  • un file system full (ça arrive). Réglé : j'ai effacé 8000 vieux spams (vive mutt : T~m 1-8000 puis ;d ), il m'en reste un bon millier !
  • une mise à jour de mysql 3.23 vers mysql 4.0 qui casse un peu dotclear (entre autre). En effet, le plugin 'syslog' de dotclear utilise des noms de champ qui sont des mots-clés réservés (key, table) : réglé.
  • une mise à jour apache / php avec ApacheToolbox dont la compil plante sur php.imap_ssl : en cours.

UPDATE: J'ai trouvé ! seq se trouve dans /usr/ports/sysutils/coreutils et s'appelle gseq