Q: What is YMSG?
It is the technical name of the protocol used by Yahoo instant messaging and
chat software - Yahoo Messenger.
Q: What is jYMSG?
It's an API (a software library, or 'package' in Java parlance) which enables
Java programmers to interact with Yahoo's messaging/chat services, with the
minimum of fuss.
Q: What protocol version does this package support?
Version ten - although some peripheral features are not supported. (See 'Is it
version 10 or 11?' below.)
Q: What is YCHT, and is it supported?
YCHT is a dedicated Yahoo chat protocol (Yahoo Chat), for
use in simple chat clients. It is preferred by some programmers because of its
more readable data format. Many have predicted that Yahoo will phase out YCHT
in favour of its big brother, YMSG, eventually. This API does not support
YCHT - but does supports the chat features of its bigger brother, YMSG.
Q: Is this API in any way endorsed or supported by Yahoo! Inc. themselves?
No.
Q: Yahoo changed its login a while back, can your API still connect?
Yes. Although many (all?) third party Yahoo projects were locked out for a
while, jYMSG was one of the first wave to get back in, less than four days
later. Also, this project has one of the cleanest and most efficient (and best
documented) implementations of the modified post-January 2004 login process.
Q: Is it version 10 or 11?
There is a discrepancy in the way some third party Yahoo code is versioned. At
the time of writing the latest protocol version of Yahoo is version 11 -
however Yahoo servers tend to support at least two protocol versions at a time,
and their client software also can switch between protocol versions, making it
hard to match features with their correct version. When Yahoo changed their
service in September 2003, they dropped support for version 9, and changed the
login process. This means that the new login process is available from version
10 onwards. My policy is to use the lowest version number that a
feature is supported in - so I call the new login process 'version 10
authentification'. Other programmers call it 'version 11' - seemingly for no
other reason than it was switched on at a time when 11 was the most recent
version.
Q: Hold on, if this is really version 10, then doesn't that mean...?
Yes, in the new Yahoo clients there might be yet another authentification
protocol, lying dormant, to be activated when version 10 is switched off! A
chilling thought, isn't it? :-)
Q: Is the package 100% pure Java?
Yes, it is written entirely in Java, with no native code at all.
Q: What version of Java is required?
It is known to work under J2SE v1.3, but it will probably work even as far back
as JDK v1.1 . The support API requires Swing, and Java2.
Q: What dependencies are there to run/use this package?
None, just the standard J2SE API.
Q: What about J2EE and J2ME?
I see no reason why this package should not work with Enterprise Edition,
although it doesn't have any enterprise-specific functionality (whatever
that might be!) This package will not work under J2ME, however it might be
possible to strip it down and include a radically cut back version in a MIDP
2.0 application. I was hoping to have a stab at this myself, but someone
appears to have beaten me to it. Check out the Hiptop project in the links
further down the page.
Q: Are you writing an actual Yahoo client in Java?
No. Feel free if you want to write one yourself. Yahoo used to have its own
Java client applet, but it was next to useless. A good, solid, highly-functional,
messenger client for Java is sorely needed IMHO!
Q: When will webcam be supported in chatrooms?
Yahoo's webcam facility relies upon the JPEG 2000 image format. It might be
possible to build in a webcam feature to the support package, thanks to the
Java implementations found at this site: Java
implementation of JPEG 2000. Alternatively, JPEG 2000 plugins reportedly
exist for Sun's Java
Advanced Imaging API. If anyone has a go, let us know how you get on!
Q: When will voice be supported in chatrooms?
This technology, to the best of my knowledge, relies upon third party 'codec'
type software which Yahoo has licensed and/or brought into their messenger
software. Until support for these libraries is available for Java, any
attempt to add voice code to jYMSG would be folly. But if you know better,
then please get in touch... :-)
Q: When will text messaging to phones be supported?
Again, this relies upon third party code. I'm not entirely sure how Yahoo
communicates with mobile/cell phones, but presumably there is some gateway
type service which Yahoo runs, translating data from the Internet to phone
networks. Interoperability with phone networks like this is beyond the
scope of this API.