joscar and oscar.jar have been merged into one project. The website is still http://joust.kano.net . The new forum is http://groups.google.com/group/joscar-discuss/ and the new issue tracker is http://code.google.com/p/joscar/issues/list
joscar is an extensible library into AOL's proprietary OSCAR protocol. The library supports use of such features as File Transfer, and Direct IM, secure IM, and typing notification, and is the only known open-source library supporting features like rate limiting, Get File, and secure IM. (While the library supports development of both a client and a server, the focus is mainly on client use.)
Additions in 0.9.3 include a full implementation of AIM 5.2's new secure IM, chat room, and direct connection functionality; support for Trillian's own Secure IM protocol; support for iChat availability messages and AIM Expressions; and a new, faster command used by AIM 5.2 to retrieve a user's info/away message.
See http://joust.kano.net/weblog/archives/000040.html for details on how to get the JoscarTester demo to run in joscar 0.9.2.
joscar is an extensible library into AOL's proprietary OSCAR protocol. The library supports use of such features as File Transfer, and Direct IM, and typing notification, and is the only known open-source library supporting features like rate limiting and Get File. (While the library supports development of both a client and a server, the focus is mainly on client use.)
Changes in version 0.9.2 are minor, removing extraneous console output and fixing the tester demo.
joscar is an extensible Java interface into AOL Instant Messenger's OSCAR protocol. On the client side, Joscar implements File Transfer, Direct IM, Get File, Send Buddy List, typing notification, the buddy icon server, the AOL Proxy Server protocol, rate limiting, and many other features not available in any other open-source OSCAR library.
joscar provides the only known open-source implementations of many aspects of the protocol such as Get File, Send Buddy List, rate limiting, the new Buddy Icon erver protocol, and AIM 5.2 beta's new AOL Proxy Server feature. joscar also provides the most robust and complete implementations of many aspects of the protocol of any known open-source project.... read more
After nearly eight months of development, joscar's first public release, version 0.9, is available. joscar is an extensible Java interface into AOL Instant Messenger's OSCAR protocol. On the client side, Joscar implements File Transfer, Direct IM, Get File, Send Buddy List, typing notification, the buddy icon server, the AOL Proxy Server protocol, and many other features not available in any other open-source OSCAR library.... read more
sam has tricked me into writing a weblog about my adventures with joust/joscar. it is up at http://joust.kano.net/weblog/ and I update it with my various frustrations or other news somewhat frequently so far.
I decided to give into sam and commit the joscar source to the project CVS repository. it will be updated daily.
I'm still working on joscar. release sometime.
so joscar is coming along well, status updates are at http://joust.kano.net telling you how far along I am. I just finished chat (as in chat rooms) today, leaving but four snac families to go (granted, they are sort of big ones, but not that big). fun!
hi, i'm rewriting joust, and splitting it up into three packages, instead of the previous two.
the first package is joscar, which is the raw protocol, and you can use it for lots of neat stuff like an aim server, an aim client, a proxy (both a client and a server), and, well, that's about it, really. but it's a raw implementation of the *protocol* and not a specific *implementation* or *use* of the protocol. it contains classes for handling and sending specific AIM-related commands, but you are not restricted to those. you can create your own command handlers, and your own commands, and send whatever you want over the connection.... read more
okay, I'm back working on Joust. still the buddy list. :) I'm making progress, etc. I'll keep all of you updated!
hey. I've been getting kano.net back up and working on this scheduler applet for my school (RPI) and working on this room rearranger applet (look for it on kano.net) because my roommate dropped out and I now have a single and a bunch of crap to rearrange. joust development will come, don't worry.
it's christmas break. work will continue when I get back to school and am bored again.
hi. been a bit busy and discouraged lately with christmas and things. I got a sony TRV240 camera for christmas too, so that'll keep me away from the computer as well.
the discouraged comes from U GUESSD IT!! the buddy list. but i've been thinking a lot about it and I sort of have a better idea of how i want it to work each time I rewrite it :) I'm going to rewrite the implementation of the client API - I'm done with the rawish server side stuff.... read more
hello again. this is the most exciting status update of all. a partially functional buddy list API (and internal system) is finished. it has some bugs (mainly related to delays in server synchronization) and isn't threadsafe but both of those are relatively easily fixable. oh and it doesn't properly check some arguments and so on for validity before performing various actions.
but the decisions are really the hardest part of this process, especially when it's something so fragile as an AIM account and its buddy list without any published specs or expected behavior or explanations. I decided to restrict users of Jouscar to total WinAIM compatibility. the server allows a ton of stuff you'd never really want, but I was trying to implement anyways, all with a simple API. and I've decided that's far from practical. corrupting (parts of) the buddy list for winAIM users is something I decided is totally unacceptable, especially when the results of such actions are useless (having a buddy in a group twice, for example, is allowed on the server, but winAIM ignores it and won't let users do it). so that made my life a lot easier. after four weeks (I think?) of sitting here rewriting the buddy list again and again, I've finally got something that I'm pretty sure will be a good API for both the client developer and for power over the list. it's a little harder to use (for the developer) than I had originally intended, but hey. I might even write a little wrapper around the whole thing for people who don't want to deal with the concept of creating a group *and* adding it to the buddy list (for example).... read more
hi. still working, though with going home for thanksgiving and such I didn't have too much time to work on it. I posted javadoc for what is done of the client interface, at sam's request, at the project page (http://joustim.sf.net). it's so hard to come up with a good interface for the buddy list, and that's what I've been (STILL) working on. but trust me, the client interface for the buddy list will be awesome (compared to the sort of poorly designed (in my opinion, anyway) server-side stuff). also, I'm sort of working on rate limiting again, and I'm going to email someone from AOL i stalked, I mean found, LOLOLOLOL, on some newsgroups. I hope he will help me (AOL's people are cool though, in my experience). I'm thinking now there may be some sort of exponential dropoff based on time, but I'm not quite sure how the algorithm will look right now, if that is the case. I'm getting somewhat inconsistent rate limiting results (for example, sending ten messages every 300ms produces roughly the same rate limiting results as sending messages twice as often at 150ms apart). but we'll figure that out soon enough, hopefully with the help of "jay the mail guy."... read more
currently I'm working on the server-side buddy list stuff. I laughed when I saw that gaim's ssi.c was 1500 lines of code, but it is really complicated stuff, if you want to do it right (which I wouldn't even quite say gaim does...). my main goals for the buddy list code are:
1. ease and simplicity of use for client developer
2. preservation of all unknown data (for example, if winaim adds a new field to a buddy, I don't want to erase it when I send up a buddy update)
3. correct handling of corruption (buddies in nonexistent groups, etc)... read more
so IM works, and buddy icons work, and the buddy list is being worked on.. no UI still (I'm only working on the protocol right now).. I'm projecting a usable client in two months. maybe far less, but I really don't know how long other stuff (file transfer, direct IM, chat rooms) are going to take. but honestly I'm hoping for something usable within a month or even less, but I never find enough time to work on this thing. I try to only commit to cvs when stuff works, and the buddy list and rate limiting, my two most recent endeavors, do not work yet, so I don't commit. if anyone would like to help, or just wants me to commit more, tell me in email. k bye :)
Joust now connects to AIM and logs in, and not in some cheap hacky way, which I could've done weeks ago. It knows what it's doing and it steps through login as any normal client would. (What I mean is, I don't just throw byte arrays into a socket to try to mimic AIM....well unless I have to :). Anyway, it's 530am, but that's okay, because now it connects. And I see it online from my screenname. And it's got the little blue icon in gaim, which I think means I did something wrong, but we'll see.... read more
So far Joust connects to the OSCAR AUTH server (login.oscar.aol.com), and logs in and retrieves the "connection cookie" to use to authenticate itself with the actual OSCAR server. this is after two workdays, four calendar days of work. GUI within two weeks? let's hope.
Hi. For all of you seeing this new java oscar aim client in the planning stage, i will let you in on the fun. well, newswise. I'm currently hax0ring gaim for the protocol. I decided it's not worth reading all of the .c files in gaim/src/protocol/oscar (it's many thousands of lines total). instead I added a few lines to output what gaim is sending and receiving to/from the server, and I'll just copy that and figure out what it does later when I get bored. I'm not lazy, just practical. I hope to get this at least connecting within a week. Email me if you want to help and you know java (or oscar). Not sure what I will need help with the most.