
Catégorie : Uncategorized
A bientôt !!!
Je prends 3 semaines de vacance pour profiter de la vie en général et de ma famille en particulier. On se retrouve fin août pour la suite des aventures…
« L’optimiste se dit qu’un travailleur a droit à 5 semaines de congé par an.
Le pessimiste, lui, se dit que des tas de braves gens sont obligés d’interrompre chaque année leurs vacances pendant 47 semaines pour aller bosser. »Philippe Geluck
Attention: « DAHDI is the new name for ‘Zaptel’ as of May 19th 2008 »
/etc/zaptel.conf devient /etc/dahdi/system.conf
/etc/asterisk/zapata.conf devient /etc/asterisk/chan_dahdi.conf
Les cartes Digium sont indissociables d’Asterisk. Elles permettent la gestion de liaisons téléphoniques de type E1/T1, ISDN ou PSTN.
Nous allons dans ce billet détailler l’installation d’une carte Digium TE220 (compatible E1/T1) sous Linux.
Installation de la carte
Une fois la carte déballée, il faut vérifier que le jumper de sélection entre les normes T1 (US) et E1 (Europe) est bien positionné. Pour une liaison RNIS Européenne (E1), il faut que les jumpers soient fermés.
Une fois la carte installée physiquement dans le serveur (slot PCI-X), nous allons, dans un premier temps, vérifier qu’elle est bien identifiée par Linux:
# dmesg
…
Found a Wildcard: Wildcard TE220 (4th Gen)
…# lspci -n
…
04:08.0 0780: d161:0220 (rev 02)
…
On récupère sur le site de Digium la dernière version des librairies PRI:
# wget http://downloads.digium.com/pub/telephony/libpri/libpri-1.4.5.tar.gz
PS: Remplacer 1.4.5 par la dernière version disponible.
puis on les installe:
# tar zxvf libpri-1.4.5.tar.gz
# cd libpri-1.4.5
# make
# sudo make install
On enchaîne avec le téléchargement des drivers Zaptel:
# wget http://downloads.digium.com/pub/telephony/zaptel/zaptel-1.4.11.tar.gz
PS: Remplacer 1.4.11 par la dernière version disponible.
et leur installation:
# tar zxvf zaptel-1.4.11.tar.gz
# cd zaptel-1.4.11
# ./install_prereq test
=> On vérifie que les pre-requis sont OK (sinon on lance ./install_prereq install)
# ./configure
# make
# make install
# make config
La carte TE200 partage les mêmes drivers que les TE400 (module wct4xxp). Afin d’optimiser le démarrage des modules, j’ai également modifié le fichier /etc/sysconfig/zaptel en suppriment toutes les occurrences MODULES et en laissant la ligne suivante:
…
MODULES= »$MODULES wct4xxp »
…
Nous pouvons redémarrer le serveur pour vérifier que le module est bien lancé au démarrage. Pour vérifier:
# lsmod
…
wct4xxp 400512 0
zaptel 190852 3 wct4xxp
…
Attention: il faut installer libpri AVANT d’installer Asterisk sinon le driver ne sera pas généré. Si vous avez déjà Asterisk installé sur votre système, il faudra le réinstaller….
Configuration de la carte
Nous allons d’abord définir les caractéristiques de la carte dans le fichier /etc/asterisk/zapata.conf. Pour une liaison E1 PRI (standard en Europe), vous pouvez utiliser la configuration suivante (voir ici http://docs.tzafrir.org.il/dahdi-tools pour une liste complète des paramètres):
group=1
signalling=pri_cpe
switchtype=euroisdn
context=incoming
channel=>1-15,17-31
Puis les caractéristiques de la liaison E1/T1 utilisée. Pour cela, il faut éditer le fichier /etc/zaptel.conf:
span=1,1,0,ccs,hdb3
bchan=1-15,17-31
dchan=16
Initialisation de la carte
Si vous n’avez pas rebooter votre serveur depuis l’installation des drivers, il faut commencer par charger le driver Zaptel dans le noyau Linux:
# modprobe wct4xxp
Ensuite, on doit lancer la configuration (une fois la liaison E1 connectée sur la carte):
# ztcfg -vv
Vérification de l’état des liaisons E1
Le plus simple est d’utiliser l’utilitaire zttool qui affiche l’état des liaisons:
# zttool
Il est également possible de vérifier si les liaisons sont bien montées en lançant Asterisk en mode debug:
# asterisk -vvvr
Et voilou, et à bientôt pour voir comment utiliser ces liaisons avec Asterisk…
Place du Francais dans les blog
C’est en lisant le rapport mensuel du mois d’avril 2007 de Dave Sifry (CEO de Technorati) sur les blogs que je suis tombé sur le graphe suivant:
Il indique que la part des blog rédigés en français représente 2% des blogs mondiaux (réferencés par Technorati). La langue de Molière est donc au même niveau que le portugais mais en dessous de l’espagnol et de l’italien. La communauté Francaise à donc encore du retard à rattraper pour arriver au niveau du japonnais, grand vainqueur devant l’anglais et le chinois !
Je me demande si les skyblogs (qui vont bientôt atteindre le chiffre de 8 millions de blog), majoritairement rédigés en français sont intégrés dans ces statistiques ?
La Fedora Core 7 arrive…
La prochaine version de Fedora pass en version TEST1. Le plainning prevoit une version finale vers fin avril 2007.
Quelques évolutions enviseagées (cest une roadmap…):
- Regroupage des repos Core et Extra (enfin !)
- Amelioration des fonctions de l’annuaire LDAP
- Passage simplifié d’un compte utilisateur à un autre
- Remplacement du système de démarrage (init)
- Réecriture du système de mise à jour
- Versions optimisées pour les serveurs et pour les portables avec notamment un grand nombre de driver Wifi inclus de base dans la distribution.
VLC en ligne de commande
Nous allons regarder d’un peu plus prés le logiciel VLC (VideoLAN Media Player) dans sa version 0.8.6a et notamment son utilisation en ligne de commande. Les exemples suivants sont effectuée sous MacOS X, mais ils doivent fonctionner sans problème sous Linux.
En premier lieu on créé un alias vers l’executable vlc:
# alias vlc=’/Applications/VLC.app/Contents/MacOS/VLC’
Ensuite on lance la commande suivante pour vérifier que tout va bien…
# vlc -h
-> Affichage de l’aide en ligne
Jouer une video sur son écran
C’est la fonction de base de VLC, on prend en entrée un fichier video et on lance la commande suivante:
# vlc Elephants_Dream_HD.avi
-> Joue le fichier Elephants_Dream_HD.avi
On pointe déjà l’avantage de VLC par rapport aux autres « Player ». En effet, pas besoin de télécharger des codecs tous les jours. En effet, VLC inclue un grand nombre de codecs et à chaque version la liste s’agrandie.
Quelques touches racourcies quand une vidéo est en train de jouer:
– Touche « Espace »: Pause ou Play (si on est en pause)
– Touches « A »: Change l’aspect ratio
– Touches « T »: Affiche le temps écoulé/total
– Touches « S »: Active ou desactive les sous-titres (si disponible)
– Touches « D »: Active ou desactive les desentracellements
– Touche « ALT-F or POMME-F »: Pour passer en full-screen
– Touches « C »: Change le rognage
Flux de sortie de VLC
Nous allons enter dans le coeur du sujet de ce post: Les flux de sortie de VLC.
En effet, nous pouvons faire beaucoup plus que jouer une video, pour cela nous allons utiliser l’option –sout de la ligne de commande de VLC. Celle-ci permet d’utiliser des modules comme:
– standard: streaming sur le réseau ou encodage dans un nouveau fichier.
– transcodage: permet de changer à la volée le débit de sortie, le codec audio et/ou vidéo. Attention, cette option est grourmande en CPU…
– duplicate: permet de créer un nouveau flux de sortie (pouvant être traité de manière différente).
– display: permet de jouer la vidéo sur l’écran.
– rtp: streaming en RTP (compatible RTSP).
– es: Séparation du flux (par exemple pour un traitement différent du son et de la vidéo).
En ligne de commande, un transcodage, suivi d’un streaming se traduit par:
# vlc fichiersource.avi –sout ‘#transcode{options}:standard{options}’
La liste des options est disponible ici.
Streaming HTTP
Dans ce premier exemple, nous allons streamer (diffuser sur un réseau) une vidéo entre deux PC en utilisant le protocole HTTP.
Attention, pour streamer en utilisant le protocole HTTP, il faut que le fichier source soit encapsuler en: ps, mpeg1, ogg, asf ou mpjep.
Il faut donc passer par une phase de transcodage avant de pouvoir le streamer. Nous allons donc le transcoder en ogg. Le mux ogg est compatible avec les codecs MEPG 1/2/4, MJPEG, WMV 1/2 et Theora pour la vidéo et vorbix, flac, speex, a52 et l’audio MPEG pour l’audio. Notre fichier source d’exemple étant encodé en DIVX, il faut donc passer par une phase de transcodage avant de pouvoir le streamer. La commande à lancer sur le serveur est:
# vlc -vvv Elephants_Dream.avi –sout \ ‘#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:standard{access=http,mux=ogg,dst=:8080}’
Comme vous pouvez le voir dans la ligne de commande nous avons également fixé la bande passante (800 Kbps pour la vidéo et 128 Kbps pour l’audio).
Cette commande permet donc de créer l’équivalent d’un « serveur web » écoutant les requêtes sous le port TCP/8080 (il faut changer l’adresse IP par celle de votre PC). Il ne reste plus qu’a lancer sur une machine distante (cliente) la commande suivante:
# vlc http://:8080
Streaming UDP Multicast
Pour un streaming multicast utilisant le protocole UDP (on doit dans ce cas la encapsuler en ts).
Sur le serveur:
# vlc -vvv Elephants_Dream.avi –sout ‘#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128}:standard{access=udp,mux=ts,dst=239.10.11.12}’
Sur le client:
# vlc udp://@239.10.11.12:1234
Les combinaisons sont donc très grandes… à vos claviers !
Bluetooth / Nokia et Fedora
Je viens d’essayer de faire communiquer mon PC sous Fedora Core 6 et mon téléphone Nokia Bluetooth (Nokia ). Voici les quelques actions à faire.
La première chose (si vous n’avez pas la chance d’avoir un PC compatible Bluetooth) est d’acheter un dungle Bluetooth USB (on en trouve à environ 30€). Pour ma part j’utilise un dungle Trendnet TBW-102UB. Celui-ci est reconnue disrectement sous Fedora:
# tail -f /var/log/message
Jan 11 16:47:37 gollum kernel: Bluetooth: HCI USB driver ver 2.9
Jan 11 16:47:37 gollum kernel: usbcore: registered new driver hci_usb
Jan 11 16:47:37 gollum hcid[2060]: HCI dev 0 registered
Jan 11 16:47:37 gollum hcid[2060]: Register path:/org/bluez/hci0 fallback:0
Jan 11 16:47:37 gollum hcid[2060]: HCI dev 0 up
Jan 11 16:47:37 gollum hcid[2060]: Device hci0 has been added
Jan 11 16:47:37 gollum hcid[2060]: Starting security manager 0
Jan 11 16:47:37 gollum hcid[2060]: Device hci0 has been activated
Vous pouvez alors tester le téléchargement de fichier sous votre portable en faisant un click droit sur le fichier puis « Envoyer à … ». Une fenêtre s’ouvre alors, il suffit de selectionner le portable:
Votre portable devrait recevoir l’image (après vous avoir demandé l’autorisation).
D’autre fonction son aussi disponibles, comme la possibilité d’envoyer des SMS via son portable (pratique si comme moi vous n’êtes pas assez jeune pour connaitre la langue SMS…). Il faut pour cela installer un package nommé gnome-phone-manager.
(en root)
# yum install gnome-phone-manager
Au premier lancement du programme, il faut configurer avec quel equipement il va communiquer (votre téléphone portable Bluetooth dans notre cas). Pour cela allez dans le menu Preferences / Connection puis saisir les informations suivantes:
Phone Manager vous demandera alors un code PIN. D’abord sur votre portable puis sur votre PC.
Il ne vous reste plus qu’a rediger le SMS avec votre clavier !
Tunnel IPSec sous FreeBSD
Nous allons dans ce post décrire le moyen de créer un tunnel IPSec entre deux réseaux distants et ainsi former un réseau privée virtuel (ou VPN pour les intimes).
Un VPN ou Virtual Private Network, est un tunnel logique (par opposition au réseau privé) établi entre deux entités et dans lequel les données circulant ne sont pas « visibles » de l’extérieur. Cette « invisibilité » peut être due par exemple à un chiffrement des données ou à un protocole particulier des échanges de données. Dans le cas des VPN IPSEC, on aurait tendance à dire qu’un VPN assure que les données circulent de façon sécurisée : les deux entités sont authentifiées, l’intégrité des données est vérifiée, et les données peuvent circuler chiffrées sur le réseau IP.
IPSEC est un protocole réseau de niveau 3, comme le protocole IP, mais auquel ont été rajoutées des fonctions de sécurité, comme le chiffrement des données par exemple. Le protocole IPSEC est prévu en natif dans la nouvelle version du protocole IP : IPV6.
Le protocole IPSEC permet deux traitements des données dans le tunnel :
- L’authentification des extrémités et la vérification de l’intégrité des données ;
- L’authentification, l’intégrité et le chiffrement des données.
Le premier traitement correspond au protocole AH1 (Authentication Header). Ce protocole permet de s’assurer de l’identité des deux extrémités du tunnel et de l’intégrité des données (les données reçues sont bien les données envoyées, elles n’ont pas été modifiées au passage).
Mais il est important de savoir que les données circulent en clair. En fait, techniquement, le protocole AH consiste à rajouter une entête à la trame IP, mais la partie « data » de la trame IP n’est pas changée.
Le deuxième traitement correspond au protocole ESP2 (Encapsulation Security Payload) et assure en plus de l’authentification, le chiffrement des données. Techniquement, la trame IP originelle est chiffrée et réencapsulée dans une autre trame IP.
Enfin, on peut encore dire sur le protocole IPSEC que celui-ci est particulièrement souple et n’impose aucun algorithme de chiffrement ou de hachage. Les deux extrémités du tunnel se mettent d’accord entre elles sur les modalités avant l’établissement du VPN.
Le mode Tunnel remplace les en-têtes IP originaux et encapsule la totalité du paquet IP. Par exemple, l’adresse IPA externe pourra être celle de la passerelle de sécurité implémentant IPSec, et l’adresse IPB interne sera celle de la machine finale, sur le réseau derrière la passerelle.
La configuration suivante est donnée sur un système FreeBSD (4.x).
Il faut d’abord configurer sur les deux routeurs VPN les fichiers /etc/racoon.conf et /etc/psk.txt de la manière suivante:
Racoon.conf (commun)
path pre_shared_key « /usr/local/etc/racoon/psk.txt » ;
remote anonymous
{
exchange_mode aggressive,main,base;
lifetime time 24 hour; # sec,min,hourproposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key ;
dh_group 2 ;
}
}
sainfo anonymous
{
pfs_group 2;
lifetime time 12 hour;
encryption_algorithm 3des ;
authentication_algorithm hmac_sha1 ;
compression_algorithm deflate ;
}
psk.conf (sur routeur A)
psk.conf (sur routeur B)
Ensuite il faut monter le tunnel IPSec au demarrage de la machine (ou à la demande). Pour cela j’utilise un script que je met dans le répertoire /usr/local/etc/rc.d:
000.ipsec.sh (sur le routeur A)
#!/bin/shcase « $1 » in
start)
setkey -F
setkey -FP
setkey -c / / any -P out ipsec esp/tunnel/-/require ;
spdadd / / any -P out ipsec esp/tunnel/-/require ;
EOF
route add -net /
;;
stop)
route -n delete -net /
setkey -F
setkey -FP
;;
*)
echo « Usage: `basename $0` {start|stop} » >&2
;;
esacexit 0
Faire de même sur le routeur B en inversant les adresses IP.
Pour lancer le tunnel IPSec:
# /usr/local/etc/rc.d/000.ipsec.sh start
Pour detruire le tunnel IPSec:
# /usr/local/etc/rc.d/000.ipsec.sh stop
Voili A+
Eclipse avec PHP,Perl et C
Eclipse est devenu l’environnement de développement de référence pour les achitectures Java. Initialement créé par IBM, il a été offert à la communauté du libre (open source) qui l’a fait évolué vers un IDE multi language grâce à de nombreux plugins.
Dans ce post nous allons voir comment installer Eclipse (sous MacOS X, mais la procédure est la même sous Linux) avec les plugins suivant: C/C++, PHP et Perl.
La première chose à faire dest d’installer la derniere version d’Eclypse en se rendant sur le site Web à l’URL suivante: http://www.eclipse.org/downloads/
L’installation ne devrait pas poser de problème.
Ensuite, il faut lancer l’application, puis cliquer ensuite sur le menu Help / Software updates / Find and install.
Cliquer ensuite sur le bouton « New remote site » et saisir les informations suivantes:
Recommancer l’operation avec:
Selectionner ensuite les sites suivant, puis cliquer sur Finish:
Il faut alors selectionner les plugins C/C++, PHPEclipse et EPIC (Perl Eclipse) et finaliser l’installation.
Il ne reste plus qu’a importer vos projets existant ou bien de créer un nouveau projet pour profiter des nouvelles fonctions.
Bon codage !