OSCAR protocol
Encyclopedia
OSCAR or Open System for CommunicAtion in Realtime is AOL
AOL
AOL Inc. is an American global Internet services and media company. AOL is headquartered at 770 Broadway in New York. Founded in 1983 as Control Video Corporation, it has franchised its services to companies in several nations around the world or set up international versions of its services...

's flagship instant messaging
Instant messaging
Instant Messaging is a form of real-time direct text-based chatting communication in push mode between two or more people using personal computers or other devices, along with shared clients. The user's text is conveyed over a network, such as the Internet...

 and presence information
Presence information
In computer and telecommunications networks, presence information is a status indicator that conveys ability and willingness of a potential communication partner—for example a user--to communicate...

 protocol. Currently, OSCAR is in use for AOL's two main instant messaging systems: ICQ
ICQ
ICQ is an instant messaging computer program, which was first developed and popularized by the Israeli company Mirabilis, then bought by America Online, and since April 2010 owned by Mail.ru Group. The name ICQ is a homophone for the phrase "I seek you"...

 and AIM
AOL Instant Messenger
AOL Instant Messenger is an instant messaging and presence computer program which uses the proprietary OSCAR instant messaging protocol and the TOC protocol to allow registered users to communicate in real time. It was released by AOL in May 1997...

.

Despite its name, the specifications for the protocol remain proprietary
Proprietary protocol
In telecommunications, a proprietary protocol is a communications protocol owned by a single organization or individual.-Enforcement:Proprietors may enforce restrictions through patents and by keeping the protocol specification a trade secret...

. AOL has gone to great lengths to keep competitors (namely Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

, XMPP
Extensible Messaging and Presence Protocol
Extensible Messaging and Presence Protocol is an open-standard communications protocol for message-oriented middleware based on XML . The protocol was originally named Jabber, and was developed by the Jabber open-source community in 1999 for near-real-time, extensible instant messaging , presence...

, and Cerulean Studios
Cerulean Studios
Cerulean Studios is a software house based in Connecticut, United States, notable for developing Trillian, an instant messaging client.It was founded in May 1998 by Kevin Kurtz and Scott Werndorfer. While still living at his parent's home, Werndorfer used $10,000 of his savings to start Cerulean...

) from implementing compatible clients for their proprietary messaging systems. In 2002, AOL signed a contract with Apple, Inc.
Apple Computer
Apple Inc. is an American multinational corporation that designs and markets consumer electronics, computer software, and personal computers. The company's best-known hardware products include the Macintosh line of computers, the iPod, the iPhone and the iPad...

, allowing them to use OSCAR (as well as AOL's own code libraries) in their iChat
IChat
iChat is an instant messaging software application developed by Apple Inc. exclusively for its Mac OS X operating system. It has audio, video and screen-sharing capabilities as well as text messaging...

 application. This allowed iChat users to interact with ICQ and AIM users directly. The deal also permitted users of Apple's .Mac service to log into the AIM network using their .Mac email addresses. (This has carried over to Apple's MobileMe
MobileMe
MobileMe was a subscription-based collection of online services and software offered by Apple Inc. Originally launched on January 5, 2000, as iTools, a free collection of Internet-based services for users of Mac OS 9, Apple relaunched it as .Mac on July 17, 2002, when it became a paid subscription...

 service.)

large parts of the protocol have been reverse-engineered
Reverse engineering
Reverse engineering is the process of discovering the technological principles of a device, object, or system through analysis of its structure, function, and operation...

 and implemented by an ever-increasing number of 3rd party clients.

The OSCAR protocol can be used separately from AOL's network. In fact, AOL expands on the general concept of OSCAR, adding systems for service side buddy lists and icons, as well as features for file transfers (using Bonjour
Bonjour (software)
In computing, Bonjour is Apple Inc.'s trade name for its implementation of Zeroconf, a group of technologies that includes service discovery, address assignment, and name resolution...

.)

On March 6, 2006, AOL released the AIM SDK and launched a developer website, allowing developers to build plugins for AIM Triton, and build their own custom clients, which connect over the OSCAR protocol. They had not, at that point, however, released any information about the protocol itself.

On March 5, 2008, AOL released portions of the OSCAR protocol documentation. Google also provides the ability to sign into AIM network via the Google Talk client built into Gmail
Gmail
Gmail is a free, advertising-supported email service provided by Google. Users may access Gmail as secure webmail, as well via POP3 or IMAP protocols. Gmail was launched as an invitation-only beta release on April 1, 2004 and it became available to the general public on February 7, 2007, though...

.

Packet structure

All packets sent over OSCAR are encapsulated in the same manner. All 16-bit integers sent over the network are unsigned, and big endian (see Endianness
Endianness
In computing, the term endian or endianness refers to the ordering of individually addressable sub-components within the representation of a larger data item as stored in external memory . Each sub-component in the representation has a unique degree of significance, like the place value of digits...

.) This is the same for 32-bit integers, and 8-bit integers (or bytes.)

FLAP header

A special FLAP (Frame Layer Protocol) container encloses every packet. It carries information about packet size, channel, and its number in sequence.
Offset (hex
Hexadecimal
In mathematics and computer science, hexadecimal is a positional numeral system with a radix, or base, of 16. It uses sixteen distinct symbols, most often the symbols 0–9 to represent values zero to nine, and A, B, C, D, E, F to represent values ten to fifteen...

)
Field Type/Size (in bytes) Remarks
00 FLAP ID byte/1 Always contains 2A. It is mark of packet start.
01 Channel byte/1 1 = login, 2 = SNAC layer, 3 = error, 4 = disconnect
02 Number in sequence int16/2 Incremented by 1 each time a packet sent. Wraps to 0 after FFFF.
04 Data size int16/2 Size does not include FLAP header

SNAC data

Within almost every packet sent over channel 2, packets contain a SNAC (Simple Network Atomic Communication). There is always either one or zero of these contained in a packet, and therefore they do not contain (nor do they need to) a length.
Offset (hex
Hexadecimal
In mathematics and computer science, hexadecimal is a positional numeral system with a radix, or base, of 16. It uses sixteen distinct symbols, most often the symbols 0–9 to represent values zero to nine, and A, B, C, D, E, F to represent values ten to fifteen...

)
Field Type/Size (in bytes) Remarks
00 Foodgroup int16/2 The general type of the packet
02 Type int16/2 The specific type of the foodgroup
04 Flags int16/2
06 Request ID int32/2 A request ID, this can be random but clients cannot send this with the Highest Order Bit set.

See also

  • Comparison of instant messaging clients
    Comparison of instant messaging clients
    The following tables compare general and technical information for a number of instant messaging clients. Please see the individual products' articles for further information. This article is not all-inclusive or necessarily up-to-date...

  • Comparison of instant messaging protocols
  • TOC protocol
    TOC protocol
    The TOC protocol, or Talk to OSCAR protocol, was a protocol used by some third-party AOL Instant Messenger clients and several clients that AOL produced itself...

    , AOL's free but deprecated messaging protocol
  • TOC2 protocol
    TOC2 protocol
    The TOC2 protocol is an updated version of the TOC protocol, or "Talk to OSCAR" protocol. Its existence was never documented by AOL and it is only used in a few AOL Instant Messenger clients. Some clients are beginning to offer plugins for TOC2 in light of AOL's recent shutdown of their TOC servers...

    , , the current version of the TOC protocol

Protocol information


Implementations

Programming
language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

Implementations
C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

libpurple
GnomeICU
C# NOscar
C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

QOscar (Qt)
C# 2.0 OscarLib
Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

joscar
Instant Messenger Lib
daim
OCaml mlOscar
Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

TwistedWords
Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...

Net::OSCAR
PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...

WebIcqPro
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK