TOC protocol: Difference between revisions

Content deleted Content added
Der Keks (talk | contribs)
Bender the Bot (talk | contribs)
m HTTP to HTTPS for SourceForge
 
(16 intermediate revisions by 11 users not shown)
Line 1:
{{Short description|AOL instant messaging protocol}}
{{refimprove|date=July 2016}}
The '''TOC protocol''', or '''Talk to OSCAR protocol''', was a [[protocol (computing)|protocol]] used by some [[Third-party developer|third-party]] [[AOL Instant Messenger]] [[client (computing)|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 (software)|TAC]] which are written in [[Tcl]]/[[Tk (computing)|Tk]], [[TNT (instant messenger)|TNT]] which is written in [[Emacs]] [[Lisp programming language|Lisp]], all of which are open source, and a Java client originally called [[TIC (software)|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 software|proprietary]] [[OSCAR protocol]] they use themselves. In July 2012, AOL turned off the TOC2 servers and it is no longer possible to connect to AIM using this protocol.<ref>{{Cite web|url=http://monal.im/blog/possible-end-of-aim-support/|title = Possible end of AIM support &#91;Update: Confirmed&#93;|date = 27 July 2012}}</ref>
 
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 icon]]s, file transfer, and [[advertising]].
 
== How it works ==
TOC acted as a [[Wrapper pattern|wrapper]] 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 [[Internet socket|socket]], translating messages between the two protocols. Upon login, the TOC client specified an OSCAR login server (presumably either <tt>{{mono|login.oscar.aol.com</tt>}} or <tt>{{mono|login.icq.com</tt>}}) 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 "<tt>{{mono|FLAPON</tt>}}" followed by two [[CRLF]]s, 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 character|whitespace]]-separated arguments, [[quotation|quoting]] and [[backslash]] [[escape sequence]]s. Server-to-client messages were much simpler: they were sent as [[colon (punctuation)|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.
Line 28 ⟶ 29:
== See also ==
* [[Comparison of instant messaging protocols]]
 
== References ==
{{reflist}}
 
== External links ==
* [https://sourceforge.net/p/terraim/code/HEAD/tree/trunk/terraim_source/src/toc/TOC2.txt Detailed Specification] {{Dead link|date=March 20182019}}
* [httphttps://terraimwiki.cvsnina.sourceforge.netchat/*checkout*wiki/terraimProtocols/terraimTOC/src/toc/TOC11.txt0 TOC1 Protocol specification] {{Dead link|date=March 2018}}
* [httphttps://terraim.cvs.sourceforge.net/*checkout*/terraim/terraim/src/toc/TOC2.txt TOC2 Protocol specification] {{DeadWebarchive|url=https://web.archive.org/web/20220315083217/http://terraim.cvs.sourceforge.net/*checkout*/terraim/terraim/src/toc/TOC2.txt link|date=March2022-03-15 2018}}
* [https://web.archive.org/web/20031008231606/http://gridley.res.carleton.edu/~straitm/final/ History of AIM, OSCAR and TOC] {{Dead link|date=March 2018}}
 
=== Implementations ===
;TOC:
* [http://www.jamwt.com/Py-TOC/ Py-TOC] {{Webarchive|url=https://web.archive.org/web/20050308181006/http://jamwt.com/Py-TOC/ |date=2005-03-08 }} (python)
* [https://metacpan.org/release/Net-AIM Net::AIM] (perl)
* [httphttps://sourceforge.net/projects/phptoclib/ PHPTocLib] (php)
* [http://tik.sourceforge.net Tik] (Tcl/Tk)
* [http://tnt.sourceforge.net TNT] (Emacs Lisp)
* [http://users.tmok.com/~smike/ TAC] (Tcl, non-GUI)
* [http://toc.oscar.aol.com AOL Quick Buddy Applet (TIC)] {{Webarchive|url=https://web.archive.org/web/20050415035028/http://toc.oscar.aol.com/ |date=2005-04-15 }} (Java Applet)
* [[naim]] (ncurses, non-GUI)
* [http://www.miniaim.net miniaim] (C++)
* [http://simpleaim.sourceforge.net SimpleAIM] (Java)
;TOC2:
* [https://github.com/Animadoria/TOCSharp TOCSharp] (C#)
* [https://github.com/mlehman/Fluent.Toc Fluent.Toc] (C#)
* [http://plaza.ufl.edu/dmitrid/perl/ Raven::Aim] (perl)
* [http://forums.miranda-im.org/showthread.php?3993-AIM-TOC2-Plugin Plugin for Miranda Instant Messenger] {{Webarchive|url=https://web.archive.org/web/20120326195542/http://forums.miranda-im.org/showthread.php?3993-AIM-TOC2-Plugin |date=2012-03-26 }}
* [httphttps://sourceforge.net/projects/phptoclib PHPTocLib] (PHP)
* [http://www.therisenrealm.com/scripts/bluetoc/ BlueTOC] (PHP)
* [http://terraim.sourceforge.net TerraIM] (C++)
* [[TNT (instant messenger)|TNT]] ([[Emacs Lisp]])
 
{{AOL Inc.}}
== References ==
{{reflist}}
 
[[Category:Instant messaging protocols]]