Journal Support du protocole MSNP...

Posté par .
Tags : aucun
0
21
juin
2007
Bonjour à tous,

Bon, ce n'est pas un journal pour annoncer une news phénoménale. Il s'agit juste de faire un point sur le support du protocole MSNP proposé par des implémentations libres.

Tout d'abord, qu'est-ce que MSNP ? Eh bien tout simplement, il s'agit du protocole utilisé par le trop célèbre logiciel de messagerie instantanée MSN Messenger / Windows Live Messenger (MS Network Protocol).

Microsoft avait ouvert la version 2 du protocole (datant de 1999). Les fonctionnalités basiques de ce protocole sont donc supportés par les implémentations libres. C'est la 1ère phase du "embrace, extend and extermine". Simplement, Microsoft, ajoute toujours de nouvelles fonctionnalités à son protocole (et bien sur, les nouvelles versions ne sont pas dévoilées), permettant alors d'utiliser des émoticones personnalisés, des wizz, des messages audios, des webcams, des micros etc. Bien sur, étant donné que ces nouvelles fonctionnalités ne sont pas supportées par les implémentations libres de MSN, je passe toujours pour un retardataire minable quand je converse avec mes amis sur MSN (Quoi, on peut même pas se parler par micro, quoi tu peux pas recevoir des messages audio etc..., mais c'est vraiment nul Linux. Bon alors, après on a beau faire sa sérénade sur les protocoles ouverts XMPP/Jabber/SIP et openwengo, ça ne marche pas...). C'est le extermine de Bill!

Cependant, les developpeurs de logiciel libre sont tout de même assez coriaces puisqu'il existe des projets de documentation du protocole MSN (en utilisant des sniffers notamments)
http://msnpiki.msnfanatic.com/index.php/Main_Page
On voit qu'en plus d'ajouter de nouvelles fonctionnalités, certaines commandes sont modfiées avec les différentes version du protocole.

Je me suis interressé au support du micro/conversation audio :
- Kopete : Micro non supporté
- Telepathy (Pymsn) : apparemement rien
- aMSN : support des messages vocaux dans la dernière version (0.97RC-1).

Webcams (Image) :
- Kopete : OK
- Telepathy : Apparemment non
- aMSN : OK

Les protocoles de transfert de fichier peer-to-peer son plus ou moins bien supportés. Bref, on constate que le support est limité, ce qui est bien normal.
Pour ceux qui ne connaissent pas telepathy, c'est une bibliothèque qui a pour vocation d'être universelle (backend), et donc de pouvoir être réutilisée dans n'importe quel logiciel de messangerie. Elle sera utilisée notamment dans les prochaines version de Kopete. C'est vrai que cela parait idiot que chaque logiciel développe sa propre bibliothèque (aMSN, Kopete etc...), au lieu de mutualiser les efforts ;-)

Pour finir, j'ai aussi testé le client officiel (WLM 8.1) sous le système d'exploitation édité par une société en abus de position dominante, chose que je n'avais pas fait depuis la version 6.
Quelques remarques :
- Que de pubs, ça clignote de partout !
- Propriétaire et Windows, Beurrrkk !
+ Interface jolie (mais c'est gaché par la pub). Désolé de dire ça mais c'est quand même mieux que le Tk de aMSN.
+ Conversation audio, messages vocaux. D'après moi, ce genre de truc, ça n'est pas du gadget inutile, c'est réellement pratique.
+ Gadgets inutiles ;-) , qui au final ne sont pas trop mal supportés par Kopete/aMSN : émoticones personnalisés (Qu'est-ce que ça peut m'énerver : un lol qui gigote dans dans tous les sens, un A+ qui devient un bonhomme qui dit au revoir etc..., rien que ça me donne envie d'utiliser Gaim !).
- Wizz : supportés par aMSN/Kopete
- Messages hors-lignes : pas de support libre (Fianlement assez pratique)
- Ecriture manuscripte : pas de support libre (inutile, mais alors ;-) a un point)
- Emoticones personnalisés : aMSN/Kopete (inutile aussi)
- Jeux : Aucune idée (inutile aussi)
J'ai aussi découvert un truc aberrant, certains sites proposent de PAYER, juste pour obtenir un avatar personnalisé ou des emoticones : incroyable mais vrai !
Bref, la seule chose qui m'a manqué quand je suis revenu sous Linux est le support de l'audio ! J'ai donc cherché à savoir quand ce sera supporté :
- Pas documenté dans MSN Piki
- Dans la roadmap de Kopete 1.0 :
"Telepathy plugin with support for text, voice and video channel." Euh là, si ils arrivent à faire ça pour KDE 4.0, qui devrait bientot arriver en BETA, je m'incline. Ce serait vraiment génial. Mais bon, je ne n'ai pas vraiment confiance dans ce genre d'affirmation vague ;-)
Ma question est donc : Y'a-t-il quelqu'un au courant du travail accompli sur Kopete au jour d'aujourd'hui ?
Enfin, je voulais signaler qu'au niveau des focntionnalités réellement utiles, Jabber n'était pas si en retard qu'on le dit (Support de l'audio via libjingle et SIP, messages hors-ligne)...

Liens :
-MSN sur Wikipédia : http://fr.wikipedia.org/wiki/MSN_Messenger
-Documentation de MSNP : http://msnpiki.msnfanatic.com/index.php/Main_Page
-Kopete MSN : http://wiki.kde.org/tiki-index.php?page=Kopete+MSN
-Kopete Roadmap : http://techbase.kde.org/Projects/Kopete/Roadmap
- aMSN, "features" : http://www.amsn-project.net/features.php
  • # Message hors ligne

    Posté par . Évalué à 2.

    Messages hors-lignes : pas de support libre (Fianlement assez pratique)

    C'est supporté par aMSN.

    Tu as oublié le whiteboard qui est pris en charge par msn également.
    • [^] # Re: Message hors ligne

      Posté par . Évalué à 1.

      Cette fonctionnalité existe dans mon pidgin 2.0.2 aussi :)
      • [^] # Re: Message hors ligne

        Posté par (page perso) . Évalué à 1.

        + Gadgets inutiles ;-) , qui au final ne sont pas trop mal supportés par Kopete/aMSN : émoticones personnalisés (Qu'est-ce que ça peut m'énerver : un lol qui gigote dans dans tous les sens, un A+ qui devient un bonhomme qui dit au revoir etc..., rien que ça me donne envie d'utiliser Gaim !).

        pidgin le supporte uniquement pour l'affichage on ne peut pas en avoir soit même par contre ...
        • [^] # Re: Message hors ligne

          Posté par . Évalué à 1.

          Oui, comme vous avez pu le remarquer, je ne me suis pas du tout interressé à pidgin/gaim dans ce journal car je croyais qu'il était tres en retard apparemment, ce n'est pas le cas... Je vais donc le tester !

          Dans Kopete on peut également recevoir les smilies perso. mais pas en avoir. Je m'aperçois au passage que je n'ai pas du tout parlé des winks qui semblent supportés par aMSN
    • [^] # Re: Message hors ligne

      Posté par . Évalué à 3.

      Effectivement, après vérification, aMSN supporte bien les messages hors-ligne. Merci de ta précision !

      Par contre pour le WhiteBoard, je n'ai pas trouvé l'option correspondante...Et lorsque mon correspondant essaye de lancer une session whiteboard, ça marche pas ! Peut-être que j'ai pas trouvé, le menu/l'option... (ou alors c'est sur la version SVN uniquement)

      Pour ce qui est du support des messages vocaux sous aMSN 0.97-RC1, ça marche nickel-chrome pour la réception mais apparemment, lors de l'envoi, mon correspodant me dit que les messages sont hachés et de mauvaise qualité alors que quand je les lis chez moi, c'est nickel...
      • [^] # Re: Message hors ligne

        Posté par . Évalué à 1.

        demande lui de fixer une font par défaut pour toi dans son client.

        ca devrait régler le probleme.
  • # GSoC

    Posté par . Évalué à 3.

    Il y a un Google Summer of Code pour le support de la dernière version de MSNP dans Kopete: http://code.google.com/soc/kde/appinfo.html?csaid=F3389CEA02(...)
    Le blog du mec qui s'en occupe'pas très bavard...): http://pyzhang.blogspot.com/
    C'est un des trucs que j'attends le plus dans Kopete avec le "Guest Mode" promit pour KDE 4.2 (combien de fois des amis m'ont dit: « Mais c'est trop compliqué ton truc! Moi je veux juste me connecter! » ).
    • [^] # Re: GSoC

      Posté par . Évalué à 3.

      Oui, effectivement, rien de très précis dans ce blog ni dans la description du GSoC.

      On a juste la promesse d'un Kopete ayant toutes les fonctionnalités de Windows Live Messnger 8.1... Je demande à voir !
  • # A propos de Kopete

    Posté par . Évalué à 10.

    Oui je suis au courant pour Kopete, je suis un des développeurs après tout même si je ne suis plus vraiment actif ces jours-ci. D'ailleurs c'est moi qui a écrit la Roadmap pour savoir où concentrer nos efforts pour la version 1.0 (KDE 4.0) mais on manque cruellement de personnes actif en ce moment.

    Je vais commencer par le plugin Telepathy, puisque j'en suis l'auteur. Le plugin Telepathy supporte la conversation texte, l'envoi et la réception d'avatars. Le support du video et de l'audio est implementé dans QtTapioca, qui est la bibliothèque que j'utilise pour supporter Telepathy, mais ceux-ci ne sont pas gérés dans Kopete. Je vais essayer de m'y attaquer avant d'aller à l'université cette automne, mais aucune promesse ! :P

    Pour le point principal du journal, je suis aussi le fou qui avait commencé la réécriture du plugin MSN pour Kopete 1.0. Le nouveau plugin se nommer Messenger et utilise libpapillon que j'ai commencé en même temps que le nouveau protocole. Cette implémentation n'est pas très avancé. Le problème avec le protocol MSNP13 et plus c'est les foutus web services qui utilisent SOAP/WSDL ! Ces web services sont utilisés pour rapatrier la liste de contacts, les messages hors-lignes et obtenir le token de login. Mais j'utilise encore la veille technique pour obtenir le token, beaucoup plus simple.

    Ce point me retarde depuis maintenant un an parce que j'ai trouvé aucun outil qui me satisfaisait et l'écriture de mon propre outil me prend du temps et je manque de movitation pour terminer cette outil. Parce que je vois cet outil comme un fardeau qui me bloque. J'aurais pû écrire le code moi-même mais pour la maintenance futur utiliser un générateur SOAP/WSDL -> Qt C++ est la meilleur option. Pour votre information, l'outil est écrit en Ruby.

    Par rapport à la voix, si quelqu'un le documente un jour, il sera implemté par un implémentation libre ça je te l'assure.

    Cet été, je n'ai pas le temps de travailler sur tout ça parce que je fais un SoC pour KDevelop4 pour le support Ruby et c'est vraiment complexe.
    • [^] # Re: A propos de Kopete

      Posté par (page perso) . Évalué à 2.

      Concernant la conversion SOAP -> c++

      Pourquoi ne pas utiliser gsoap [http://www.cs.fsu.edu/~engelen/soap.html] par exemple ?
      Je l'utilise actuellement pour un projet dans ma boite et ça marche pas mal du tout.
      Il prend un fichier wsdl pour le traduire en c++ (ou c) mais par contre, il ne le traduit pas en qt.
      Mais cela peut être une base intéressante si c'est possible de le modifier suffisament facilement
    • [^] # Re: A propos de Kopete

      Posté par . Évalué à 2.

      Merci de ta réponse très fournie est très complète. Faut dire, que tu étais bien placé pour en parler !
      C'est donc toi qui avait fait un GSoC sur MSNP13...

      Pour ce qui est de Kopete, le principal problème que vous rencontrez est le manque de développeurs actifs. Mais si je suis bien, actuellement, dans Kopete (SVN, version pour KDE 4.0), il y a deux plugins qui gèrent la connexion au service MSN Messenger : la libpapillon (héritée de la version 0.12) et télépathy (qui est moins avancée moins sera utilisée dans KDE 4.0). Il faudrait donc dans, un premier temps, transposé tout ce qui à été fait dans libpapillion vers le module MSN de télépathy... Ca va prendre du temps ça, non ?

      Pour ce qui est du support de la voix, est-ce qu'il est possible d'aider à la documentation en ayant de modestes connaissances en programmation (je connais assez le python, un tout petit peu le C/C++, en fait, j'ai juste les bases du langage mais je ne connais aucune lib.) et en réseaux (je comprends le modèle OSI, je vois ce qu'est TCP/IP, SOAP,WDSL, XML etc...). Parce qu'en théorie, il suffit de lancer une communication audio, de sniffer (à l'aide de wireshark, tcpdump) et d'essayer de comprendre ce qui signife ce qu'on récupère. Est-ce qu'il y a un début de documentation de la voix sous MSN (MSN Piki ?) et à partir de quelle version de protocle le support de la voix est arrivé, comment ça a évolué ? Dernière chose, est-ce que cela fait appel à une communication P2P entre les deux PC, ou est-ce que la com. audio passe toujours par les serveurs SwitchBoard ?
      • [^] # Re: A propos de Kopete

        Posté par . Évalué à 2.

        En ce qui concerne l'audio, les récentes versions utilisent une espèce de SIP pas très standard.

        Il me semblerait donc logique de documenter ça sur le site brokensip.org récemment créé (après une discussion au FOSTEL 2007).

        Ensuite, concernant l'implémentation, il sera plus facile de le faire dans un logiciel faisant déjà du chat MSN et de la VoIP SIP. S'il y a ici des gens motivés pour travailler sur le WengoPhone...
  • # pidgin

    Posté par (page perso) . Évalué à 4.

    C'est pas le but de la libpurple, de simplifier la gestion des outils de messagerie ? Ou alors est-ce prévu uniquement au sein de pidgin ?
    Et aura-t-on droit au même noeud qu'avec alsa, oss, et toutes les autres API interdépendantes et mutuellement récursives ?
  • # Et pourquoi...

    Posté par (page perso) . Évalué à 7.

    Plutôt que d'essayer d'impleter un protocol, pourquoi on essaye pas plutôt d'étendre celui de Jabber pour ajouter Wizz & Cam & co ?
    Même si c'est nul, y'a que comme ça que les "djeuz kikoololeur" changerons.
    • [^] # Re: Et pourquoi...

      Posté par . Évalué à 3.

      Je ne pense pas que ça suffira, beaucoup de personnes ont leur liste de contact sur msn. Même si la personne en question aimerai changer, il ne le fera pas à cause de ça.

      J'ai bien essayé de promouvoir jabber dans mon école ( d'info ), personne n'était receptif. Ce n'est que 3 ans plus tard, que quelques personnes se sont décidées a utiliser le jabber de google.

      Et la on parle de mecs qui travaillent dans l'info...

      Il va falloir du temps et un bon support des kikoolol features top moumoute par jabber pour que les utilisateurs puissent s'y intéresser.

      En clair, c'est pas gagné ...
      • [^] # Re: Et pourquoi...

        Posté par (page perso) . Évalué à 3.

        Même avec toutes les features du monde, les gens utiliseront pas jabber tant qu'il y aura pas du monde dessus.

        Pour ça, on pourrait imaginer que les fournisseurs se mettent à offrir un compte jabber avec la messagerie, avec le même login/mot de passe. Grosso modo ce que fait google. Mais j'ai du mal à voir la valeur ajouté pour eux.

        On peut imaginer une entrée en douce via le monde de l'entreprise, ou il y a plus de chances de trouver des personnes pour monter un serveur. Même si j'ai des doutes à ce niveau la.

        Et sinon, on peut imaginer une killer feature avec jabber, comme l'édition musical partagé avec jokosher( http://blog.mikeasoft.com/2007/06/18/jokosher-network-instru(...) ), ou inkskape. À ce niveau la, il y des discussions autour de gnome ( http://guadec.org/node/521 ), et je pense que telepathy va permettre d'aller plus loin.
        Le seul bemol, c'est que telepathy marche aussi avec msnp, donc je ne sais pas si ça va forcément aider xmpp.
      • [^] # Re: Et pourquoi...

        Posté par (page perso) . Évalué à 3.

        Et la on parle de mecs qui travaillent dans l'info...

        Ouais, moi au moins, avec mes potes, j'utilise talk et write.
  • # hum

    Posté par (page perso) . Évalué à 3.

    - Ecriture manuscripte : pas de support libre (inutile, mais alors ;-) a un point)

    Bon moi je suis sous Gajim, mais l'écriture manuscrite ce n'est pas le truc qui permet d'écrire qqch avec sa souris ? Moi je trouverai ça super pratique pour passer un petit schéma vite fait... bon après je n'ai jamais utilisé WLM.

    - Jeux : Aucune idée (inutile aussi)

    En soit jouer c'est inutile. La fonctionalité ne l'ai pas. Si j'ai envie de jouer avec un ami il faut qu'on se donne rendez-vous sur un serveur de jeu, je trouve cela plus simple de le faire via le clien de messagerie. Bien entendu sous Linux on aurait pu imaginer que le protocole ne sert que d'intermédiaire pour faire rencontre le gens et que les jeux soient des programmes à part.

    Le pbm de MSN reste l'effet réseau. Et les clients libres supportant MSN ne peuvent qu'être en retard. Dommage que Jabber avance si lentement.
    • [^] # Re: hum

      Posté par (page perso) . Évalué à 4.

      > Dommage que Jabber avance si lentement.

      Surtout qu'il y a quand même trés largement le choix des projets ou contribuer, il y en a pour tout les gouts. Du python ( gajim ), du c++ ( psi, gossip ), du tcl ( tkabber ), du java ( openfire, spark ), du C ( bitlbee, telepathy, pidgin, jabberd ), du perl ( djabberd ), de l'erlang ( ejabberd ).

      Tout le monde fait peut être de l'assembleur ou de l'haskell et ne trouve pas chaussure à son pied ?

      De plus, avoir un standard ouvert et documenté, c'est vachement plus simple à implementer que de devoir sniffer des structures binaires, de devoir gérer des versions et de devoir tester sans savoir exactement ce que l'implémentation de reference fait, car c'est un binaire proprio qui fait transité tout par un serveur distant.

      Et du travail pour les débutants, il y en a des tonnes. Des trucs simples à rajouter, il y a le support de ping ( xep-0199 ), celui de last:time ( xep-0012 ), ou simplement divers morceaux manquants des grosses extensions ( notament pour les multi users chats, ou je pense qu'il manque des trucs genre request voice ). Ou la vérification du standard.

      Ou plus simplement, prendre les clients en version de dev, et faire des bugs reports ( et des patchs aussi , ç'est en général assez rapide ).

      J'ai donc pas l'impression que le probléme soit la difficulté de contribuer. Ni même le temps, ça demande pas des investissements énorme à ce niveau la pour les taches simples ( genre le wiki de jabberfr ).

      Il y a simplement un manque d'intêret à ce niveau la, les gens n'utilisent pas jabber, ou ceux qui l'utilisent donnent peut être avant tout leur msn sans savoir que leur contact a aussi jabber. Au bout d'un moment, ils arrêtent d'utiliser leur compte jabber car ils ont pas de contact, et voila.
      • [^] # Re: hum

        Posté par . Évalué à 3.

        Je sais qu'à une époque, j'avais entendu parler d'un dispositif dans les passerelles jabber-msn qui permettait, si les 2 personnes en utilisaient, de se reconnaitre et d'échanger les adresses jabber pour passer en direct par la suite.
        Est-ce toujours d'actualité ? Ca pourrait être une aide utile à la migration...

        Pourrait-on prévoir une fonction dans les clients multiprotocoles qui ajouterait dans le profil MSN un commentaire du style "aussi joignable sur xmpp:.... " ?
    • [^] # Re: hum

      Posté par (page perso) . Évalué à 2.

      En soit jouer c'est inutile. La fonctionalité ne l'ai pas. Si j'ai envie de jouer avec un ami il faut qu'on se donne rendez-vous sur un serveur de jeu, je trouve cela plus simple de le faire via le clien de messagerie. Bien entendu sous Linux on aurait pu imaginer que le protocole ne sert que d'intermédiaire pour faire rencontre le gens et que les jeux soient des programmes à part.
      Je l'ai fait à une époque pour gaim.
      C'est un truc absoluement ignoble, qui ne marche pas avec les dernieres versions de gaim, qui utilise un truc que presque personne ne connait à savoir GGZGamingZone, j'en avais d'ailleur fait un journal.
      C'etait un truc qui était strictement contraire à l'ethique jabber, à savoir que j'envoyais un texte qui était formé d'une certaine maniere, donc le mec qui avait pas le plugin correspondant ce demande ce qu'il se passait,mais ca supporte déjà un nombre important de jeux (une vingtaine à vue de nez), dont quelques jeux externes au projet (bon je sais plus trop lesquels sont supportés), en plus à l'epoque je ne connaissais rien à la programmation en Gtk, et je parle meme pas de plugin gaim (d'ailleur ca a pas changé entre temps.).
      Bon donc pour avoir accès à ca (je penses que ca interessera personne m'enfin bon), cherchez sur http://www.ggzgamingzone.org aux dernieres nouvelles il fait partie de ggz-gtk (ou alors cherchez dans votre gestionnaire de package mais je suis pas tout a fait sur)
  • # Mercury Messenger

    Posté par (page perso) . Évalué à 3.

    Il y a aussi Mercury, qui n'est pas libre, mais qui a un support assez complet et qui tourne partout où il y a un JRE :
    [http://www.mercury.to/]
    • [^] # Re: Mercury Messenger

      Posté par . Évalué à 3.

      Plus précisement, le support de MSNP11 est stable, la dernière version stable(18) supporte aussi MSNP13 mais c'est marqué comme "unstable" et la version de dév(19rc5) permet aussi de choisir MSNP14 qui lui est marqué comme "experimental".

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.