Yohann Martineau, blog

Articles de 2009-03

Peers 0.3 is out!

2009-03-31 22:03:42
Date originale : 2008-06-02

The latest peers release is out!

I've been working hard on this release for nights... it includes new features, such as REGISTER management. Of course this implies register-refresh and unregister management. But a register implementation would probably be useless without digest support. That's the reason why MD5 algorithm and challenges have been added in peers, as specified in RFC2617. This registration implementation has been tested against openser: the reference proxy/registrar implementation. For the moment Proxy-authenticate header has not been implemented but it should not be too complicated as it is exactly the same principle as www-authenticate header.

This release has been tested against more softphones than the previous release:

Many issues have been fixed in this release, and a new test framework has been used: TestNG. This framework is very impressive and very useful to test and track thread concurrency issues. It relies on java annotations and offers an impressive list of features. This is really a great tool.

Lien permanent
protocol, peers, java, english

Commentaires

Ecouter de la musique celtique gratuitement

2009-03-31 22:02:05
Date originale : 10 décembre 2007

Etant apprenti sonneur (joueur de cornemuse), je suis amateur de musique celtique. Or celle-ci se fait plutôt rare sur le web... légalement tout du moins.

En effet, en parcourant le site allcelticmusic.com, je me suis rendu compte que ce n'était peut-être pas si difficile que ça d'entendre ses artistes préférés... En parcourant le site je me suis rendu compte qu'il était possible d'écouter en entier les chansons de certains albums. Si un lecteur flash peut lire cette musique, alors il doit être possible de la lire autrement ! Mon premier réflexe a été de faire une capture de ce qui circulait sur le réseau avec wireshark. Mais rien de très inspirant à priori... un player flash est retourné dans une page s'appelant player.html...

J'ai donc téléchargé à la main l'applet flash permettant d'écouter la musique. L'utilitaire file de linux m'a appris que ce fichier correspondait à :

Macromedia Flash compressed data, version 7.
Rien de surprenant, donc. Cependant, il est rare qu'une donnée compressée soit absoluement impossible à décompresser... Une recherche sur google m'a donc emmené vers un exécutable windows en version d'évaluation permettant de décompresser les fichiers .swf compressés. Le nom de cet exécutable est asvdemo, contenu dans une archive : asvdemo.zip.

Pour lancer cet exécutable windows sous linux, il suffit donc simplement de "l'enrouler" avec wine :

wine avsdemo.exe
Cet utilitaire une fois lancé, permet d'explorer le contenu du fichier .swf, c'est-à-dire de l'Action Script, intéressant. Il est également possible d'exporter le contenu de ce qui a pu être décompressé vers un simple fichier texte, c'est donc ce que j'ai fait, l'environement fourni par wine n'étant pas ce qu'il y a de plus ergonomique...

Un petit coup d'oeil sur ce fichier, et là ô miracle, une variable s'appelle fileUrl :

var fileUrl = "w47bc/";
Dans le fichier player.html retourné précédemment, il y avait tout de même une variable nommée file=297.mp3 dans une url ou dans les paramètres passés à l"objet flash"

C'est ce qui m'a mis sur la voie d'un wget bien inspiré :

wget http://www.allcelticmusic.com/w47bc/297.mp3
Le fichier téléchargé, je pouvais écouter à ma guise l'air que je cherchais de Robert Mathieson, un grand soliste de cornemuse écossaise ; ce sans lecteur flash et sans perte de qualité (un simple enregistrement du mixeur de mon système d'exploitation aurait permis l'enregistrement, mais avec une conversion numérique => analogique supplémentaire).

Malheureusement, dès aujourd'hui (manipulation réalisée hier, le 9 décembre 2007), le site a changé de présentation et le player flash n'est plus accessible, il n'est de plus plus possible d'écouter des titres en ligne... La supercherie aurait-elle été démasquée ? Aucune idée, cependant on ne pourra pas m'accuser de piratage, vu que cette astuce ne fonctionne plus désormais.

Cela dit, le principe de "décrypter" du flash pour retrouver des urls vers des fichiers multimédia reste valable et probablement applicable à d'autres sites. Il suffit de les chercher...

Lien permanent
protocol, multimedia, internet, français

Commentaires

Ecouter des extraits sur le site de la FNAC sous debian

2009-03-31 22:01:34
Date originale : 10 décembre 2007

Comme le titre de cet article le laisse supposer, ce n'est pas immédiat sous debian de lire des extraits musicaux d'albums sur le site de la fnac. Cela dit, à coeur vaillant rien d'impossible, il est donc possible de lire ces flux mutlimedia d'une façon (un peu) détournée.

Prenons un exemple, je vais sur l'album de Peter Cincotti : East of Angel Town. Je clique sur Goodbye Philadelphia, et je choisis ouvrir, avec un éditeur de texte, gedit fera très bien l'affaire. Là, je vois que ce fichier contient simplement une URI :

pnm://multimedia.fnac.com/audio/3/9/7/0093624991793A02.ra
Première observation, je ne connais pas le préfixe de cette URI, en revanche l'extension du fichier ne semble pas totalement inconnue : .ra extension des fichiers Real Player. Après une petite recherche sur google, j'apprends que ce protocole est le nouveau nom du protocole PNA, dont j'ignore la signification. En investigant légèrement plus je découvre que ce protocole est assez proche du RTSP, intéressant... Autre point intéressant à noter, le port part défaut de ce protocole est le port 7070.

Je décide donc de tenter ma chance avec mplayer, car bien que mplayer ne supporte ce procole PNM, il supporte le procole RTSP. Je lance donc la commande suivante dans mon terminal préféré :

mplayer rtsp://multimedia.fnac.com:7070/audio/3/9/7/0093624991793A02.ra
et là, ô surprise, après un léger temps de mise en mémoire tampon, la lecture du début de la chanson commence !

Le "hasard" faisant plutôt bien les choses, si vous voulez écouter plusieurs chansons, elles sont dans l'ordre, la prochaine chanson, Be Careful, peut s'écouter avec l'URI suivante :

rtsp://multimedia.fnac.com:7070/audio/3/9/7/0093624991793A03.ra

Lien permanent
protocol, multimedia, linux, internet, debian, français

Commentaires

Peers : nouveau softphone SIP

2009-03-31 22:00:52
Date originale : 2 décembre 2007

Bonjour,

Après plusieurs mois de développement, la première version de Peers est sortie ! Peers est un softphone SIP minimaliste écrit en java. Peers est donc un logiciel permettant de téléphoner d'un ordinateur à un autre sur un réseau local. Pour appeler une personne, il suffit de taper : sip:192.168.0.1 avec la bonne adresse. L'ordinateur appelé décroche automatiquement et l'appel est établi. Ensuite, l'appelé ou l'appelant peuvent raccrocher avec le bouton "hang up".

Pourquoi ?

En effet, il existe déjà d'autres piles SIP écrites en java, alors pourquoi se lancer dans cette implémentation ? Pour deux raisons. Premièrement, il n'existe à ma connaissance pas plus de deux implémentations open source en java d'une pile SIP :

  • Jain-sip, implémentée par NIST, un institut de recherche américain,
  • MjSip, implémentée par l'université de Parme.
Dans les deux cas, ces implémentations sont des implémentations complètes de la spécification de SIP : la RFC 3261, c'est-à-dire qu'il est possible de créér tous les éléments d'un réseau SIP grâce à ces implémentations : User-Agent, Proxy, Registrar, etc. Or, réaliser l'abstraction entre ces différents rôles ajoute une complexité importante aux implémentations. De plus, les ressources nécessaires dans la vie de tous les jours pour implémenter ces rôles sont très différentes. Je m'explique, un User-Agent est un softphone, c'est donc un logiciel qui va se lancer sur l'ordinateur d'un utilisateur. Cet utilisateur utilisera des fonctions éventuellement avancées au niveau media mais pas au niveau contrôle de session. SIP intervient au niveau du contrôle de sessions. Le User-Agent est en gros un logiciel client. Pour les autres rôles (Registrar, Proxy, ...) il s'agit d'implémenter des serveurs n'ayant aucune interface utilisateur et étant optimisés au maximum pour gérer un maximum de sessions en parallèle ou un maximum de messages, etc.

Pour en revenir aux autres implémentations, elles permettent donc de réaliser tous les éléments d'un réseau SIP, mais ce n'est pas le but de Peers. Le but de Peers est d'écrire un logiciel permettant le maximum d'interactions possibles avec les autres utilisateurs, et que ces fonctionnalités soient facilement évolutives. L'implémentation de Peers se veut simple. Malgré ses 10 000 lignes de code (environ), l'implémentation de peers se veut minimaliste et évolutive. C'est son évolutivité qui lui donne se volume. Le but de Peers n'est pas de devenir un serveur, mais bel et bien d'être lancé sur un poste utilisateur.

La deuxième raison est la possibilité d'apprendre par la pratique. Rien n'est plus formateur que de comparer son implémentation avec les plus réputées pour voir d'où viennent les problèmes, et ceci tout en lisant plusieurs fois les RFCs pour bien comprendre les concepts et ne pas tomber dans une implémentation uniquement empirique. SIP est pour moi un protocol nouveau, il y a un an, je ne connaissais rien à SIP.

Pour plus d'informations, vous pouvez me contacter par mail, voir ma page contact.

Lien permanent
protocol, peers, multimedia, java, internet, development, français

Commentaires

Outil de traduction

2009-03-31 21:59:55
Date originale : 10 février 2007

Bonjour,

Après avoir repris le logiciel babytrans de Frédéric Jolliton, permettant de taduire des mots anglais vers différentes langues sous linux, j'ai effectué quelques modifications pour le rendre plus facilement utilisable, et l'ai mis en ligne ici. Les instructions d'installations sont présentes dans le fichier YOHANN.README de cette archive.
Cet outil est basé sur d'anciens dictionnaires du célèbre outil de traduction babylon. Ces anciens dictionnaires sont mis à disposition (ou plutôt laissés à disposition), par l'université de grenoble. Il est ainsi possible de traduire des mots anglais vers de nombreuses langues : le français, l'allemand, le hollandais, l'italien, le portugais et l'espagnol. Il serait également possible de traduire de l'anglais vers l'hébreux et le japonais. Mais des modifications supplémentaires seraient à réaliser. Il faudrait installer les polices nécessaires dans QT pour pouvoir afficher les caractères correctement.

Cet outil est très pratique, car il peut traduire automatiquement lors de la selection de texte. Ainsi, très peu d'opérations sont nécessaires afin d'obtenir la traduction d'un mot recherché.

Lien permanent
debian, français

Commentaires

radio.blog crawler

2009-03-31 21:57:54
Date originale : 4 février 2007

Après avoir constaté à plusieurs reprises le bridage des ports utilisés par les torrents par mon fournisseur d'accès internet, j'ai décidé de réagir, à mon échelle, mais de faire quelque chose. J'ai donc développé un crawler du diffuseur de musique radio.blog qui permet de rappatrier en local les fichiers de musique stockés sur les serveurs diffusant des radio.blog. Le but est d'utiliser ce crawler pour charger le port HTTP qui n'est à priori pas bridé par mon fournissur d'accès afin de lui faire comprendre qu'il ne sert à rien de brider les débits à un endroit et pas à un autre.

Pour information mon fournisseur d'accès internet est club-internet, et je suis en zone non-dégroupée. Ce problème n'existe pas chez ce fournisseur d'accès en zone dégroupée, mais la popularité du post sur leur forum concernant ce problème est la preuve de l'existence d'un vrai problème (plus de 840 pages de posts !).

Au cas où la version normale ne marcherait pas, j'ai également mis en ligne une archive contenant directement toutes les dépendances. Une version relativement récente d'un JRE est nécessaire pour pouvoir lancer ce programme.

Lien permanent
multimedia, java, internet service provider, français

Commentaires

Premier article

2009-03-31 21:55:51
Date originale : 4 février 2007

Bonjour,

voici le premier article de mon nouveau blog, le but de ce blog sera d'exprimer principalement des "astuces" techniques sur des problèmes rencontrés afin de ne pas avoir à réinventer la roue à chaque problème.

Ce blog sera alternativement en français, en anglais et certains article seront probablement traduits tels quels.

Merci de me lire.

Lien permanent
français

Commentaires