Idea for adding MSN/WLM support to iChat - need help

Discussion in 'Mac Programming' started by mbarriault, Dec 3, 2008.

  1. mbarriault macrumors regular

    Dec 3, 2008
    The lack of good Windows Live Messenger-compatible clients for Mac is no secret. Microsoft Messenger is buggy, Adium tries too much and breaks Cocoa standards, Proteus uses too old of a protocol, aMSN is ugly, the list goes on. However every Mac comes with a great, simple, multiprotocol IM client: iChat. Which unfortunately lacks support for what is (also unfortunately) now the world's largest IM network (I know no AIM users outside southern US for instance).

    Note that I've also tried using Psi to set up a transport, but that was met with less than favourable results (messages were often not sent, half of my contacts appeared offline when they weren't, status message support wasn't there, and it re-added every contact I had deleted in the several years I had been using that account).

    I came up with what I think would work very well to add WLM support to iChat (in fact to any Jabber/XMPP client). I would do it myself, but the blunt of my programming experience is in black hole simulations and solving differential equations and whatnot. So I'm looking for some people to do the grunt work (and obviously take credit, I'm just an idea man).

    Basically the idea is to make a WLM client with no GUI or CLI. It would probably be best to base it on an existing up-to-date implementation like Emesene or msn-pecan (via libpurple). All interactions would be done via the Jabber protocol. This is a far more integrated implementation than a simple transport (and also much more secure as all interaction would be happening on your own computer).

    The idea, essentially, is very analogous to a GUI in the model-view-controller paradigm. An end-user would enter login information into the GUI which the controller recognizes and sends to the mode, which speaks to the servers. The server then sends information back to the model, whether the login was successful or not, the user's contact list, etc. The controller then reads this information and sends it back to the view (GUI) which formats the information into something user-readable.

    In the scenario I'm referring to, the "view" is simply Jabber. The controller takes the Jabber commands sent by the client program (such as iChat) and sends them directly to Windows Live. Then anything it recieves from WL it sends directly to the client as Jabber commands. A contact signs in, it tells the client that that user has signed in. And it has this display picture, and personal message. If it loses contact with the client, it sends the signout signal to WL. It loses it's connection to WL it disconnects from the client. And so forth.

    I don't have any idea on what kind of scope this project would have. As I said, my programming expertise is entirely in math. But any half-seasoned developer who thinks this might actually work, let me know. Or at least where might be a good place to seek developers who would help. Also, I'm aware of how abstract the idea is, so if there are any questions please ask and I'll be happy to explain.
  2. Catfish_Man macrumors 68030


    Sep 13, 2001
    Portland, OR
    I don't see how this differs from a transport + local xmpp server, tbh. Are you sure the issues you've run into aren't the result of buggy transports, rather than a problem with the transport spec?

Share This Page