So, want to chat with more than just your Google Talk contacts on your Phone? And have the messages sent to you via push so the client doesn't suck up your battery? Here's a little tutorial on how to do just that.
You might not know it, but Google Talk actually uses the XMPP (Jabber) protocol. XMPP allows you to add what are called transports, which are essentially gateways to other servers and even other chat services. While Google allows you to add transports, it does not offer an interface to do so. A way around this is to download an XMPP client that does provide an interface.
Before we get going, here are some reasons you might or might not want to set things up this way.
- No need for another chat client on your phone
- New messages are pushed to your phone (client doesn't have to poll the server constantly = battery savings)
- Integration with Android (online status is shown in your Android address book)
- Chats are logged to Gmail
- Access to your chat contacts from anywhere via Gmail, your phone, the official Google Talk client, or any XMPP client.
- Transports can see your login details and could hypothetically be insecure (not necessarily any worse than Meebo, etc.)
- Transports can go offline and if the transport is offline, you can't talk to those contacts
- Chat only (no video, no audio, no extra features)
- If you use another client elsewhere to connect to any of your chat services directly (i.e. not via Gtalk), you may get kicked off Gtalk and vice versa
If you are convinced that this is right for you, first sign out of Gtalk EVERYWHERE (close Gmail in your browser, close the Gtalk client on your computer, turn off "Automatically sign in" in the settings of Gtalk on your phone and then sign out, etc.) and download Psi and connect to your Google Talk account.
The first time you open it, tell it to use an exising account.
Enter your Gmail e-mail address for the Jabber ID and your Gmail password for the password.
Go online by clicking where it says "Offline"
From the "General" menu, choose "Service Discovery"
Ignore the error message. Google just doesn't have any services setup at gmail.com, which it defaults to.
Type an XMPP server address in the "Address" box. I recommend jabber.hot-chilli.net. Find a transport for the service you want to use, right-click on it and choose "Register".
Enter your login details and click "Register". Yes, the transport server is going to see them. Be aware of this if you are paranoid.
You should now see the transport in your contact list.
It will ask to see whether you are online. Choose "Add/Auth".
It will ask to ask to add your existing contacts to your roster (contact list). Choose "Add/Auth".
Gtalk should receive your contacts. Log out of Psi.
Open Gmail in your browser. It should ask you to approve the new contacts. It might take a minute for this to appear. Approve them all. Yes, you have to do each one manually.
Once they have been added, you should be able to see your contacts in Gmail or any other Google Talk client, including the Android client. The contacts will be saved to your Gmail contacts as e-mail addresses in the form of username@transport. In this case, you can see it is ten.illihc-toh.rebbaj.qci|rebmun_qci#ten.illihc-toh.rebbaj.qci|rebmun_qci. This will look slightly different depending on the service, but the general format is the same. Special characters in the username (such as an at [@] symbol) will be treated differently depending on the transport. MSN usernames, for example, look something like moc.liamtoh|emanresu#moc.liamtoh|emanresu. Instead of the resulting username in Gtalk having two @ symbols, some transports convert the @ in the username into a %, so it ends up looking like username%hotmail.com@transport. This is a problem for Android. If it sees a % in the username, the Google Talk client will crash. That is why I recommend jabber.hot-chilli.net: they implement one of the newer XMPP standards and encode special characters in a way that does NOT crash Google Talk on Android.
To add additional transports, make sure you log out of Gtalk everywhere again, sign back into Gtalk with Psi and follow the rest of the directions again.
Once you have added all your contacts, head on over to the Google Contacts page (either http://mail.google.com/mail/#contacts or http://www.google.com/contacts - slightly different interfaces for the same thing). If you have various contacts that all belong to the same person (AIM, MSN, Gtalk, etc.), you can merge them together and even assign custom labels to each if you choose:
This ends up looking like this on your phone:
Notice how both interfaces will even tell you when the contacts are online! If you have IM contacts that you don't want to see in your phone's address book, make sure to remove them from the My Contacts group on the Google Contacts page.
If you find that Google doesn't prompt you to authorize some of your contacts and as such they never show up in Google Talk, make sure you add them to the server-side contact list of the respective service. Google should then prompt you the next time you log in.
This can be done with the Web interfaces for most services:
This is not necessary for Facebook or other services where you can't manually add contacts anyway.
You can add your Facebook account using the same process with the hot-chilli transport. To login, you will need to use:
Jabber ID: YourFacebookUsername@chat.facebook.com
Password: Your Facebook password
You might not have a Facebook username, but if you do, you picked it yourself at some point. To find it, go to your profile and look at the URL. It should be http://www.facebook.com/YourFacebookUsername. If you do not have one, you can claim yours here: http://www.facebook.com/username/
After you add/authorize the Facebook transport, you will most likely receive a "Resource Conflict" message unless you live in Germany. You will need to go to the Facebook website and log back in and authenticate yourself. The transport is located somewhere in Germany, so Facebook will think there is some unauthorized account activity going on. After you verify yourself, the authorization requests will come pouring in. The names of some accounts may not be set automatically. This is of course somewhat annoying, as they just show up as -FacebookID\email@example.com, where FacebookID is the internal account number of that user. To manually set the names, you can either right click on the users in Psi and choose "User Info" to find the user's name on Facebook, which you can then use to rename the contacts directly in Psi, or you can copy the Facebook ID number and go to http://www.facebook.com/profile.php?id=FacebookID to see that user's profile (e.g. if the username shows up as -123456789\firstname.lastname@example.org, go to http://www.facebook.com/profile.php?id=123456789).