TOC protocol
Encyclopedia
The TOC protocol, or Talk to OSCAR protocol, was a protocol used by some third-party AOL Instant Messenger
client
s and several clients that AOL
produced itself. Sometime near August 19, 2005, AOL discontinued support for the protocol and no longer uses it in any of the instant messaging clients it actively maintains, such as its Windows and Mac clients for the AOL Instant Messenger and ICQ
systems. However, it once did produce several of its own TOC clients, including TiK
and TAC
which are written in Tcl
/Tk, TNT which is written in Emacs
Lisp
, all of which are open source, and a Java client originally called TIC which later became the Quick Buddy web applet. AOL also provided the TOC protocol specification openly to developers in the hopes that they will use it instead of the proprietary
OSCAR protocol
they use themselves. The TOC2 protocol
is still supported.
TOC was an ASCII
-based protocol, while OSCAR is a binary protocol. In addition, TOC contained fewer features than its OSCAR counterpart. OSCAR provides such functionality as buddy icons, file transfer, and advertising
.
for the OSCAR protocol. In the grand scheme of things, the TOC server was nothing but an OSCAR client that happened to listen on a socket
, translating messages between the two protocols. Upon login, the TOC client specified an OSCAR login server (presumably either login.oscar.aol.com or login.icq.com) that the TOC server used on behalf of the client.
TOC used FLAP
to encapsulate its messages just as OSCAR does, however, FLAP has been hacked in such a way that it can be implemented on the same port as an HTTP server. By default, the TOC server operated in HTTP mode, indistinguishable from a typical web server. If a connecting client, in place of an HTTP request, writes the string "FLAPON" followed by two CRLFs, TOC would switch gears and start reading FLAP messages. Upon getting a user's profile, the client was expected to re-connect to TOC and use it as an HTTP server, which would host the user's profile in HTML
.
Once connected, two basic message formats for communications inside of FLAP existed. Client-to-server messages were sent in a format resembling a Unix
-style command line: commands with whitespace-separated arguments, quoting
and backslash
escape sequence
s. Server-to-client messages were much simpler: they were sent as colon
-separated ASCII
strings, in a manner similar to many Unix
config files. Thus, it was quite easy to write a client, as the incoming messages were very easy to parse, and outgoing commands were easy to generate.
This is in contrast to OSCAR, which due to the binary representation of data can be more difficult to understand.
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...
client
Client (computing)
A client is an application or system that accesses a service made available by a server. The server is often on another computer system, in which case the client accesses the service by way of a network....
s and several clients that 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...
produced itself. Sometime near August 19, 2005, AOL discontinued support for the protocol and no longer uses it in any of the instant messaging clients it actively maintains, such as its Windows and Mac clients for the AOL Instant Messenger and 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"...
systems. However, it once did produce several of its own TOC clients, including TiK
TiK
TiK is an open source instant messaging client for the AOL Instant Messenger system, which uses AOL's TOC protocol. It is a GUI client which is written in the Tcl/Tk programming language...
and TAC
TAC (software)
TAC is an open source instant messaging and chat client program written by AOL which uses the TOC protocol used by the AOL Instant Messenger system. It is written in Tcl, and is a command line client. It is a command line version of the GUI TiK client which is written in Tcl/Tk. Developing of TAC...
which are written in Tcl
Tcl
Tcl is a scripting language created by John Ousterhout. Originally "born out of frustration", according to the author, with programmers devising their own languages intended to be embedded into applications, Tcl gained acceptance on its own...
/Tk, TNT which is written in Emacs
Emacs
Emacs is a class of text editors, usually characterized by their extensibility. GNU Emacs has over 1,000 commands. It also allows the user to combine these commands into macros to automate work.Development began in the mid-1970s and continues actively...
Lisp
Lisp programming language
Lisp is a family of computer programming languages with a long history and a distinctive, fully parenthesized syntax. Originally specified in 1958, Lisp is the second-oldest high-level programming language in widespread use today; only Fortran is older...
, all of which are open source, and a Java client originally called TIC which later became the Quick Buddy web applet. AOL also provided the TOC protocol specification openly to developers in the hopes that they will use it instead of the proprietary
Proprietary software
Proprietary software is computer software licensed under exclusive legal right of the copyright holder. The licensee is given the right to use the software under certain conditions, while restricted from other uses, such as modification, further distribution, or reverse engineering.Complementary...
OSCAR protocol
OSCAR protocol
OSCAR or Open System for CommunicAtion in Realtime is AOL's flagship instant messaging and presence information protocol. Currently, OSCAR is in use for AOL's two main instant messaging systems: ICQ and AIM....
they use themselves. The 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...
is still supported.
TOC was an ASCII
ASCII
The American Standard Code for Information Interchange is a character-encoding scheme based on the ordering of the English alphabet. ASCII codes represent text in computers, communications equipment, and other devices that use text...
-based protocol, while OSCAR is a binary protocol. In addition, TOC contained fewer features than its OSCAR counterpart. OSCAR provides such functionality as buddy icons, file transfer, and advertising
Advertising
Advertising is a form of communication used to persuade an audience to take some action with respect to products, ideas, or services. Most commonly, the desired result is to drive consumer behavior with respect to a commercial offering, although political and ideological advertising is also common...
.
How it works
TOC acted as a wrapperWrapper
Wrapper generally refers to a type of packaging, such as a flat sheet made out of paper, cellophane or plastic to enclose an object.Wrapper may also refer to:* Wrapper , a woman's garment which is worn over nightwear or lingerie...
for the OSCAR protocol. In the grand scheme of things, the TOC server was nothing but an OSCAR client that happened to listen on a socket
Internet socket
In computer networking, an Internet socket or network socket is an endpoint of a bidirectional inter-process communication flow across an Internet Protocol-based computer network, such as the Internet....
, translating messages between the two protocols. Upon login, the TOC client specified an OSCAR login server (presumably either login.oscar.aol.com or login.icq.com) that the TOC server used on behalf of the client.
TOC used FLAP
Flap
Flap may refer to:* Flap , a hinged surface on the trailing edge of an airplane wing* Roof flap, an aerodynamic feature of race cars* Flapping, one of the basic mechanics of flight in birds...
to encapsulate its messages just as OSCAR does, however, FLAP has been hacked in such a way that it can be implemented on the same port as an HTTP server. By default, the TOC server operated in HTTP mode, indistinguishable from a typical web server. If a connecting client, in place of an HTTP request, writes the string "FLAPON" followed by two CRLFs, TOC would switch gears and start reading FLAP messages. Upon getting a user's profile, the client was expected to re-connect to TOC and use it as an HTTP server, which would host the user's profile in HTML
HTML
HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....
.
Once connected, two basic message formats for communications inside of FLAP existed. Client-to-server messages were sent in a format resembling a Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
-style command line: commands with whitespace-separated arguments, quoting
Quotation
A quotation or quote is the repetition of one expression as part of another one, particularly when the quoted expression is well-known or explicitly attributed by citation to its original source, and it is indicated by quotation marks.A quotation can also refer to the repeated use of units of any...
and backslash
Backslash
The backslash is a typographical mark used mainly in computing. It was first introduced to computers in 1960 by Bob Bemer. Sometimes called a reverse solidus or a slosh, it is the mirror image of the common slash....
escape sequence
Escape sequence
An escape sequence is a series of characters used to change the state of computers and their attached peripheral devices. These are also known as control sequences, reflecting their use in device control. Some control sequences are special characters that always have the same meaning...
s. Server-to-client messages were much simpler: they were sent as colon
Colon (punctuation)
The colon is a punctuation mark consisting of two equally sized dots centered on the same vertical line.-Usage:A colon informs the reader that what follows the mark proves, explains, or lists elements of what preceded the mark....
-separated ASCII
ASCII
The American Standard Code for Information Interchange is a character-encoding scheme based on the ordering of the English alphabet. ASCII codes represent text in computers, communications equipment, and other devices that use text...
strings, in a manner similar to many Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
config files. Thus, it was quite easy to write a client, as the incoming messages were very easy to parse, and outgoing commands were easy to generate.
This is in contrast to OSCAR, which due to the binary representation of data can be more difficult to understand.
External links
Implementations
May be erroneous:- Py-TOC (python)
- Net::AIM (perl)
- PHPTocLib (php)
- Tik (Tcl/Tk)
- TNT (Emacs Lisp)
- TAC (Tcl, non-GUI)
- AOL Quick Buddy Applet (TIC) (Java Applet)
- naimNaimnaim is a messaging and chat program written by Daniel Reed in C; it supports the protocols AIM, ICQ, IRC, and RPI's protocols. Unlike most messaging clients, it is not graphical; it runs from the console using the ncurses library. naim is free software, licensed under the GNU GPL.naim is a...
(ncurses, non-GUI) - miniaim (C++)
- SimpleAIM (Java)