Thoughts on live chat 
Filed under

xmpp

 

Choosing Reliability for MSN and AIM

I’ve been trying to replicate the Hab.la experience on AIM and on MSN since around July of 2008. Today, after working on this problem off and on for far too many months, improving the existing pure python libraries for OSCAR (AIM’s protocol) and MSN, and finally rewriting everything using libpurple (the brains behind meebo, pidgin, adium, and finch). I have to admit defeat (at least in the short run).

It appears that the rate limiting on both MSN and AIM, makes it far too unreliable to try to build a bot, that sends a high number of status messages to the AIM and MSN servers (key to some of the protocol hacks I needed to make it work). After trying a lot of hacks, and getting everything working for small numbers of concurrent users, I’ve decided to stop bringing webusers online and offline as visitors come to your website – I could not stand behind the reliability of the service. From now on MSN and AIM users will have access to a limited version of Hab.la where they will not be able to easily initiate conversations with visitors to their websites. Although, their visitors will have no problem initiating conversations with them, and operators can still attempt to follow particular users by sending the message “/follow” to a webuser buddy on their buddylist.

We may add a few other modes of use for these protocols to make it easier to initiate conversations in the future, or bring back the old method if we can decrease our MSN or AIM ratelimit effectively, but this is unlikely to be a high priority in the near future.

We continue to recommend either connecting to Hab.la directly using a Jabber(XMPP) client. Or using Hab.la with an existing Gtalk or Jabber client. You will be able to take advantage of all of Hab.la’s features with either of these two approaches. Most notably: monitor visitor location on a website and initiate conversations directly with these visitors.

Filed under  //   aol   hab.la   jabber   livehelp   msn   xmpp  
Posted by Olark 

Comments [0]

Hab.la now supports Google Talk

Astute users may have noticed that we very quietly rolled out a new feature last week: Hab.la now works directly with your existing Google Talk account. Here’s how to add Google Talk to Hab.la.

First, log in to Hab.la and go to the account settings panel. You’ll notice a new section for “Other Chat Networks”.

Click on the “Google Talk” link and add your Gmail address. Then press “Save.”

GTalk will now show up as active.

Now log in to Google Talk. Hab.la will send you some chat invitations over the next few minutes. Approve each one by clicking “yes.”

That’s it. Now, when you’re signed in to Google Talk, visitors to your web site will be able to chat with exactly as they can with your regular Hab.la account. In addition, any other Jabber-based chat network that supports the server-to-server protocol (“S2S”) will work in the exact same manner.

We’re working on connecting more big chat networks with Hab.la, but each one has its own quirks. Look for more options in the coming months.

Filed under  //   google   gtalk   jabber   quiet   rollouts   s2s   server   talk   to   xmpp  
Posted by Olark 

Comments [0]

Exciting Progress -- Hab.la Building Relationships

So I spent way to much time trying to figure out exactly how Adium and Meebo handle updating nicknames in a buddy list (roster). The answer is, while they are both based on libpurple/gaim they both pretty much ignore setting the nickname in presence updates and messages. Let’s just say I spent a lot of time figuring out exactly how adium deals with this: i.e. doing traces through libpurple’s source code: http://www.google.com/codesearch?hl=en&q=+libpurple..,

I tried to find a socks proxy where I could rewrite packets and watch jabber messages, but I couldn’t find anything that quite fit my needs, so I ended up modifying something called PySocks (which hasn’t been updated in a few years, and required a bit of hacking to evne run, but works quite well as a socks proxy for rewriting packets and monitoring jabber to figure out what’s going on. [sourceforge.net/projects/pysocks/]

So google codesearch, grep, and pysocks was the method, but what was the result? And why does this matter to you?

Good questions self!

The idea is to have your hab.la buddy list become more personal, so instead of having visitors appear as “webuser1” and “webuser2”, they’ll appear as “John the Spammer”, and “Fred the friendly reader”. I.e. your buddy list will not only tell you you have 2 people browsing your site, but also who those people are [if they’ve chatted with you using hab.la in the past]

Hab.la building relationships – sounds like a good motto to me :-)

Filed under  //   adium   backend   jabber   meebo   python   xmpp  
Posted by Olark 

Comments [0]

Buddy lists and whatnot

OK, I guess I'll break the cherry on this blog. I spent some time last week reading up on the XMPP spec for presence notification and buddy list (sorry, "roster") management. It's not really that complicated, but it's written in that typical RFC style that is really hard to understand.

As of yesterday I had basically everything working nicely in iChat, which seemed great. But then today I tried Adium, and of course the buddy lists don't show up at all there; same for gaim.

The nice thing about working with open source stuff, however, is that I can look at the code and see where it's going awry. Or, recompile the whole thing as a development build and step through it with a debugger. Which I am doing now.

Filed under  //   adium   buddy   debugging   gaim   ichat   lists   oss   xmpp  
Posted by Olark 

Comments [0]