| Anwendung | OSCAR | ||||
| Transport | TCP | ||||
| Internet | IP (IPv4, IPv6) | ||||
| Netzzugang | Ethernet | Token Bus |
Token Ring |
FDDI | … |
OSCAR (Open System for Communication in Realtime) ist ein Instant Messaging-Protokoll, welches von AOL für den AOL Instant Messenger (AIM) entwickelt wurde und nach der Übernahme von ICQ für beide Messenger verwendet wird.
Das Protokoll war lange Zeit unveröffentlicht, auch wenn das "open" im Namen Gegenteiliges vermuten ließ. Daher waren sämtliche Dokumentationen keineswegs Spezifikationen, sondern lediglich durch Reverse Engineering entstandene Werke. Mit der Vorstellung der AIM-Entwicklerplattform Open AIM 2.0 durch AOL im März 2008 wurde auch das OSCAR-Protokoll offen gelegt. Diese Maßnahme wird zu weniger Kompatibilitätsproblemen mit Multi-Protokoll-Messengern führen, welche oftmals bei Protokolländerungen auftraten.
Inhaltsverzeichnis |
Fehlerhafterweise wird OSCAR auch als ICQv7, v8, v9 und v10 bezeichnet. Dies ist nicht korrekt, da das originale ICQ-Protokoll stets von Direktverbindungen zwischen den Clients Gebrauch macht, OSCAR hingegen ist von Grund auf anders aufgebaut und setzt auf Verbindungen über den Server. Außerdem unterscheiden sich Version 7-10 nicht im Protokoll, sondern lediglich in den vom Server angebotenen Services, was von OSCAR sehr liberal gehalten wird.
OSCAR arbeitet auf einer bestehenden TCP-Verbindung und besteht selbst aus zwei Protokollschichten.
Die niedrigere, genannt Frame Layer Protocol (FLAP), setzt direkt auf TCP auf. Der FLAP-Header beginnt mit dem hexadezimalen Wert 2A zur Erkennung des FLAP-Pakets. Es folgt ein Channel (siehe unten), eine Sequenznummer zur Fehlererkennung und die Größe der angehängten Daten.
Der Channel ist ähnlich den Ports bei TCP und UDP, steht allerdings stets für einen bestimmten Vorgang. Mögliche Channels sind:
| 1 | Neuer Verbindungsaufbau |
| 2 | SNAC-Paket (siehe unten) |
| 3 | FLAP-Fehler |
| 4 | Verbindungsaufbau beenden |
| 5 | Keep-Alive |
Wird ein anderer Channel als 2 verwendet, werden meist Daten im Type-Length-Value-Format (TLV) angehängt.
Auf Channel 2 folgt ein Paket des Typs Simple Network Atomic Communication (SNAC), dem zweiten großen Teil des OSCAR-Protokolls. SNAC-Paket-Typen sind organisiert in sogenannten Foodgroups. Jede Foodgroup hat eine ID-Nummer und jeder darin organisierte Nachrichten-Typ eine weitere Kennung. So steht z. B. Foodgroup 4, Typ 20 für eine Nachricht, in welcher ein Client den anderen informiert, dass sein Nutzer gerade einen Text tippt oder aber damit aufgehört hat. Prinzipiell kann dieser Nachrichten-Typ auch über andere Vorgänge informieren, definiert sind aber nur die beiden. Typ 1 jeder Foodgroup stellt eine spezifische Fehlermeldung dar.
Nach dem Login teilt der Server mit, welche Foodgroups er unterstützt; nur diese kann/soll der Client nutzen. Nach Spezifikation folgt auf das Senden anderer ein Verbindungsabbruch durch den Server. Die Foodgroups sind von Programmierern prinzipiell beliebig erweiterbar.
Definiert sind:
| 1 | OSERVICE | Grundlegende Dienste: Begrüßung und Bekanntgabe der unterstützten Foodgroups, Behandlung der Durchsatz-Limitierung (Antispam-Maßnahme) und Migration zu einem anderen Server (um den aktuellen warten zu können) |
| 2 | LOCATE | Setzen und Abrufen von Benutzer-Informationen wie Profildaten oder Abwesenheitsnotizen |
| 3 | BUDDY | Benachrichtigungen über den Status anderer Nutzer |
| 4 | ICBM | Inter Client Basic Message - Behandeln von Textnachrichten |
| 6 | INVITE | Einladen von Nutzern (per E-Mail); nur AIM |
| 9 | PD | Permit/Deny - Sichtbarkeit für einzelne Nutzer verwalten |
| 16 | BART | Buddy Art - Up- und Download von Buddy Icons, Sounds und Wallpapern |
| 19 | FEEDBAG | Verwalten der serverseitigen Kontaktliste und Einstellungen |
iServed dokumentiert im Gegensatz zur Spezifikation auch die Foodgroups 5, 7, 8, 10 - 15, 21 und 23
Im folgenden werden Clients aufgelistet, die ausschließlich das OSCAR-Protokoll und das alte ICQ-Protokoll unterstützen. Außerdem gibt es Multi-Protokoll-Clients, die neben ICQ auch AIM, IRC, Jabber, MSN, Yahoo! und weitere unterstützen.
Vor dem Einsatz der aufgeführten Clients sind die Einschränkungen über die Nutzung alternativer Clients in den Nutzungsbedingungen der Dienstanbieter z. B. in den Nutzungsbedingungen von ICQ oder den Nutzungsbedingungen von AIM nachzulesen, da oft nicht autorisierte Programme explizit verboten sind.
Betriebssysteme, unter denen die Clients laufen (ohne Emulation).
| Windows | Mac OS X | Unix, Linux, BSD | AmigaOS | J2ME | |
|---|---|---|---|---|---|
| &RQ | Ja | Nein | Nein | Nein | Nein |
| Adium | Nein | Ja | Nein | Nein | Nein |
| AIM | Ja | Ja | Ja | Nein | Nein |
| ICQ | Ja | Ja | Nein | Nein | Nein |
| eMP.CQ! | Ja | Nein | Nein | Nein | Nein |
| Jimm | Nein | Nein | Nein | Nein | Ja |
| climm | Ja 1 | Ja | Ja | Ja | Nein |
| Kopete | Nein | Nein | Ja | Nein | Nein |
| Pidgin | Ja | Nein | Ja | Nein | Nein |
| qip | Ja | Nein | Nein | Nein | Nein |
| YsmICQ | Ja | Ja | Ja | Nein | Nein |
| Windows | Mac OS X | Unix, Linux, BSD | AmigaOS | J2ME |
Fußnote 1: Benötigt ein ANSI-kompatibles Terminal.
Information darüber, welche Funktionen die einzelnen Programme unterstützen.
| Verschlüsselung | Dateitransfer | Grafische Smileys | Spiele | veränderbares Aussehen | Plugin-System 3 | Externe Zusatzprogramme 4 | |
|---|---|---|---|---|---|---|---|
| &RQ | Teilweise6 | Ja | Ja | Nein | Ja | Ja | Ja |
| AIM | Nein | Ja | Ja | Teilweise | Ja | Nein | Ja |
| ICQ | Nein | Ja | Ja | Ja | Ja | Ja | Ja |
| eMP.CQ! | Nein | Ja | Ja | Nein | Nein | Nein | Nein |
| Jimm | Nein | Ja2 | Ja | Nein | Nur Farben | Ja | Nein |
| climm | Ja5 | Ja | Nein | Nein | Ja | Nein | Nein |
| Kopete | Ja | Ja | Ja | Nein | Nein | Ja | Nein |
| Pidgin | Ja | Ja | Ja | Nein | Nein | Ja | Nein |
| qip | Ja6 | Ja | Ja | Nein | Ja | Inoffiziell | Ja |
| YsmICQ | Ja6 | Ja | Nein | Nein | Nein | Nein | Nein |
| Verschlüsselung | Dateitransfer | Grafische Smileys | Spiele | veränderbares Aussehen | Plugin-System | Externe Zusatzprogramme |
Fußnote 2: Nur Senden.
Fußnote 3: Plugin-System, um die standardmäßigen Features zu erweitern oder neue hinzuzufügen (Client oder Protokoll).
Fußnote 4: Add-ons werden in der Regel nicht vom Autoren vorgesehen und sind eigenständige Programmteile.
Fußnote 5: SSL-verschlüsselte Direktverbindung; kompatibel sind licq, climm und SIM.
Fußnote 6: Proprietär; nur zu sich selbst kompatibel.
Informationen darüber, welche sonstigen Möglichkeiten der Kommunikation die Clienten unterstützen.
| Audio Chat | Multi-Person Audio Chat | Video Chat | Multi-Person Video Chat | SMS (mobile) Messaging | |
|---|---|---|---|---|---|
| &RQ | Nein | Nein | Nein | Nein | Ja |
| AIM | Ja | Ja | Ja | Ja (Nur nach Update) | Ja |
| ICQ | Ja | Ja (seit Version pro2003b) | Ja | Ja | Ja |
| eMP.CQ! | Nein | Nein | Nein | Nein | Nein |
| Jimm | Nein | Nein | Nein | Nein | Nein |
| climm | Nein | Nein | Nein | Nein | Ja |
| qip | Nein | Nein | Nein | Nein | Nein |
| YsmICQ | Nein | Nein | Nein | Nein | Nein |
| Audio Chat | Multi-Person Audio Chat | Video Chat | Multi-Person Video Chat | SMS (mobile) Messaging |