This is part 3 of a series of blogs on getting IM working with a Google Talk client using XMPP. Parts 1 and 2 are here -
Jabbering with Google Talk over XMPP
Part2: Jabbering with Google Talk over XMPP
This one is going to be short one because I managed the last part of the Google Talk basic IM interaction which was presence and messaging without too much effort.
Presence is how you announce that you are available/unavailable/busy/whatever. It is through presence that people tell you that they have stepped away for a quick cuppa mocha - the part where you can have witty remarks show up against your name - basically your network availability.
The basic presence part is easy - requiring sending only a
Doing the presence part itself is optional - you can still send messages even if you have not announed your presence. The only difference is that messages directed to you are not sent by Google Talk because it is not aware of your avaiability and your friends won't know if you are online.
Presence has a bunch of interesting details which I won't go into mostly because I skipped most of them :-) but here's a quick list of what it can do -
- announce availability/unavailability plus a bunch of sub-states
- provide comments along with status
- allow for subscription (notification of presence of others on the server)
- change subscription
The whole IM bit is where I was leading through and here it is. I did cover in Part 2 the messaging part which was basically
<message from=\"XXXXXXXX@gmail.com/D922F673\" to=\"YYYY@gmail.com\" type='chat' xml:lang=\"en\"><body>TESTING!!!</body></message>
and this is pretty much it actually. You can have the following in the message though - subject(s), body and a thread.
So once you have set up a Thread reading from your response stream you get message stanzas from all your friends and you can send them your messages on the request stream - thats it. Google Talk behaves just fine identifying the program as a non-Google Talk client.
Here's a silly picture of the two clients talking to each other.