Ok, here is my progress to date:
User Agent identification has been handled for MSN, XMPP (Jabber), and IRC
User Agent Advertising has been handled fro MSN, XMPP (Jabber), and IRC
an OperationSet has been designed and implemented by all the above protocols (UserAgentOperationSet)
I followed the EXCELLENT lead that Damian gave me and have handled sending the GetInfoCmd SNAC for OSCAR protocols (AIM/ICQ) AND parsing the response SNAC from the server. All that needs to be done for user agent identificaiton to be handled for the OSCAR protocols is to figure out what resources the example code Damian linked is using (I had a previous e-mail in the dev mailing list that better explains what I'm talking about). Once that is done, advertising the user agent for the OSCAR protocols is as easy as sending a SNAC to the OSCAR server with the correct information (easy enough, I just need to know WHAT information to send).
Currently, I'm all out of ideas on how to get the Yahoo! protocol user agent/ client info. I've asked on the mailing list once or twice and all leads didn't work out. I've also asked on some Yahoo! protocol forums and I e-mailed some INFORMAL Yahoo! protocol developers, but so far I haven't heard back.
I've asked Yana and we believe that, besides the above, all that is left is to review/clean the code and write JUnit test cases. I've attached a patch that HOPEFULLY (I'm still new to making patches :P) has all of my UserAgent related code. I've also attached some JPG's of the UserAgent being advertised and identified for the MSN, OSCAR (AIM/ICQ), XMPP (Jabber), and IRC protocols. The OSCAR picture is a picture of the response SNAC being parsed.
An implemenation note:
Currently, the user agent is being queried EACH time a message is being sent. This is just testing purposes FOR NOW. Later on my GUI plug-in will request the UserAgent and it will be queried then and then saved so it doesn't have to be queried again.
For the MSN protocol you have to send TWO messages before the UserAgent is advertised; after that it is advertised on every messsage. So, if you are talking to yourself on MSN using SIP for sending and receiving (like my example picture) then the user agent won't be parsed until the second message and every subsequent message afterward.
*whew* Long message; I hope everyone has a good day/morning/night/afternoon/whatever. Cheers!
P.S. Thanks again for all of the help and support guys!
P.P.S Sorry if I forgot anything. e-mail and I'll send whatever you need in a jiffy. Later guys & gals!
patch.txt (108 KB)