SoC: XMPP Improvements


This year, I completely forgot to post my inital greeting blog post, so I’ll do that now 🙂

Last year I implemented a Smack-based XMPP plugin, completely replacing the one based on libgaim (as libpurple was called back in the days). However, it got scrapped well after I finished it (more information is available in this blog post).
So, I’m doing the same thing again now, but this time in libpurple. On the one hand, this is much more difficult, since I have to learn a huge codebase, and fiddle around with it. On the other hand, I don’t have to implement all the basics like buddy management, since they’re already there and are working fine (more or less). So, my plan for this summer is slightly different, and can be found at the Google SoC page (this link will probably cease to work next year).

Since I’ve already started, there are already some things done, which I’d like to list right here:

  • I implemented an XML console that logs all communication with the server, which allows easier problem tracking and enables advanced users to use XMPP features not (yet) implemented in Adium.
  • PEP is implemented (no config, just publishing, retrieving and subscribing — should be good enough for now)
  • Based on that, I implemented user mood, user avatar, user tune and user nickname.
  • I implemented fields requests, which allow libpurple to display forms in Adium and get responses. This not only benefits XMPP, but also other prpls like ICQ. On XMPP, this enables registation forms, setting the account password, setting the vCard’s information, and some more I’d like to implement later.

Well, that’s all for now, but more is yet to come! I’m really looking forward to having a fully featured XMPP integration right in my favorite client 🙂


  1. Too bad your original project was thrown away.

    Good luck with the new one, we look forward to see it live and used by millions of happy users.

  2. You are not the only one looking for Xmpp improvemnts for adium 🙂 Can’t wait for finally using adium for jabber MUCs 🙂

  3. Hi, i like the product is very stable and i can chat easily with everyone but what about video chats, i’m looking forward to do this with adium, please add this feature!!!

  4. hooray! 🙂
    good luck!

  5. Dear Andreas,

    just learned that the Jive guys are implementing message archiving. if you have the time it would be reaaaally cool if adium would support this, too 😉

    best regards and good luck with your project.

  6. Hi,
    any news on when XMPP/Jabber Filetransfer will finally be fixed in Adium ?
    (can’t file a bug right now, trac is down)

    The problem appears when a client is multihomed (i.e. has more than one ip, i.e. is connected to the internet and a home net)

    Every reasonable jabber client sends _all_ of his ips in the file transfer request, letting the receiver figure out the best way to connect.

    Not Adium 🙁 🙁
    Adium only looks at the the first recieved ip (often the wrong one) or even _worse_ when initiating a file transfer Adium will not send all of it’s IPs, but only one (and preferably the local net ip i.e. 192.168…,)
    Thats really quite exasperating !!!!! and could be handled a lot smarter

Post a Comment

Logged in as - Logout