Update: This setup no longer works. Microsoft, Google et al. have abandoned these platforms. Read about the deprecated APIs on the Adium help page. I think most people have unfortunately moved to Twitter and other social media platforms.
Like most technology people I know, I have multiple Instant Messenger (IM) accounts because not all the people I chat with are using the same provider. My personal favourite is Google Talk because I like simple interfaces, open platforms and Larry Page is a University of Michigan alumnus (Go Blue!).
But most of my family and friends have settled on either one of MSN, AOL, or Yahoo. At first, I downloaded each of the client applications but tired of installing and launching multiple IM clients, each with a unique interface. I wanted one protocol to bind them and one client to rule them all. I discovered the wonderful world of multi-protocol instant messaging clients like GAIM.
A free chat client used by millions. Connect easily to MSN, Google Talk, Yahoo, AIM and other chat networks all at once.
Wow, I thought. That sounds awesome! Yes. It is. I downloaded GAIM and several plug-ins, and for a while, I was quite happy. Users can log in to multiple accounts on multiple IM networks simultaneously and chat with their friends on AOL, MSN and Yahoo. This worked well for a while. GAIM even supports Lotus Sametime, which is used at my employer. Now I had one client to rule them all. But I soon discovered that Yahoo support started failing. Then it was fixed. Then MSN support started failing. And it was fixed. Then AOL support started failing. And it was fixed. And on and on.
Of course, the problem is that the major IM providers all use different proprietary systems and protocols. They kept making changes to their systems which would break the functionality of GAIM. The GAIM developers would update the software, and then the IM vendors would change the protocol and .......on and on.
The search for a solution
Then I bought an Apple Mac mini and a MacBook, and I had to start the process all over again. I discovered that OS-X's iChat messaging client supported on iChat, AOL and Jabber. I never got GAIM to work on OS-X but I did find IM clients based on GAIM such as Adium. Adium was no better than GAIM and crashed very often. I searched for a better way, and that way was Cavemonkey.
While Googling for a solution I came across and article on the Cavemonkey blog. The blog's author, Ronald Heft, Jr. is a freshman at Penn State in Lehigh Valley, PA. He details how to use the Jabber protocol to add Google Talk, MSN, Yahoo and AOL connectivity to iChat. I followed his directions and was soon using iChat to ping my friends. It was when I returned to work the following day and logged into Google Talk that I discovered the brilliance of this solution. All of the IM protocols were bound to my Google Talk account. I could IM my friend on MSN from Google Talk. The magic is that Google Talk is built on the Extensible Messaging and Presence Protocol (XMPP) protocol that was developed by the Open-source Jabber community.
"[Jabber is] an open, secure, ad-free alternative to consumer IM services like AIM, ICQ, MSN, and Yahoo (see the IM quickstart). Under the hood, Jabber is a set of streaming XML and technologies that enable any two entities on the Internet to exchange messages, presence, and other structured information in close to real time." -- jabber.org
Jabber supports the concepts of transports. A "transport" is a small computer program that runs on a Jabber server and “translates” messages from other networks into the Jabber format.
So enough already! How do we do this? My buddy Chris P. was excited when I mentioned that he could use Google Talk to communicate with the other IMs. So these instructions are written for Chris P.
The Google Talk servers do not provide transports so we will use another jabber server and client to bind the transports back to our Google Talk server accounts. A list of public Jabber servers can be found here but for this example I will use the jam. At server. NOTE: I did this on Windows Vista beta two, but it will work on Windows XP.
- Download and install Google Talk.
- Download and install Psi.
- Setup Psi to use your Google Talk account. The instructions are here.
- Now add the public Jabber server to Psi and create an account on that server. Click the Psi symbol in the lower left corner of the Psi application window and select "Account Setup" to launch the Account Manager. In the account manager, click on the add button. On this screen, enter in anything you want to call the account and be sure to check the register new account check box.
- Now, enter in a user name in the Jabber ID box, and add @[your main Jabber server] to the end of it. Choose a password, and click register. We’re done setting up the account!
- Now we want to attach transports to the Google Talk account. Make sure you are logged into the jabber and the Google Talk account. Right-click the account and select "Online."
- To add transports right-click the Google Talk server icon again and click "Service Discovery." This will bring up a window with a list of service transports. Since Google Talk servers do not provide transports, we need to first connect to a server with the transports we require. Just enter in the server with the transports in the address field and click browse. Now both Google Talk and regular Jabber users are in sync.
We will add the MSN transport first, but each of the others can be added just as quickly.
- Right-click the MSN transport and click "Register." Enter your MSN password and click "Register." Do the same for all the other transports. Once you’ve registered all your transports, click close, and close Psi. You no longer need it.
- Launch and log-in to Google Talk and your contacts should appear instantly.
That's all there is to it. Now you can use Google Talk to communicate with your buddies on other IM services. There is one caveat regarding adding contacts. When adding contact you will have to use the following format: [contact name]@[protocol].[server]. So if you wanted add a Yahoo account ( email@example.com) on the jabber server you would use firstname.lastname@example.org. MSN contacts ( email@example.com ) are a little different: firstname.lastname@example.org.