Protocolo OSCAR - OSCAR protocol

OSCAR ( S caneta S istema para C ommunic Um ção em R ealtime ) é AOL 's proprietária mensagens instantâneas e informação de presença de protocolo . Foi usado pelo sistema de mensagens instantâneas AIM da AOL e pelo ICQ .

Apesar do nome, as especificações do protocolo permanecem proprietárias. A AOL não mediu esforços para impedir que os concorrentes (a saber , Microsoft , XMPP e Cerulean Studios) implementassem clientes compatíveis para seus sistemas de mensagens proprietários. Em 2002, a AOL assinou um contrato com a Apple, Inc. , permitindo-lhes usar OSCAR (bem como as próprias bibliotecas de código da AOL) em seu aplicativo iChat . Isso permitiu que os usuários do iChat interagissem com os usuários do ICQ e AIM diretamente. O acordo também permitiu usuários de Apple .Mac serviço para iniciar sessão para a rede AIM usando seus endereços de e-mail .Mac. (Isso foi transportado para o serviço MobileMe da Apple .)

Em 2009, grandes partes do protocolo foram submetidas a engenharia reversa e implementadas por vários clientes de terceiros.

O protocolo OSCAR pode ser usado separadamente da rede da AOL. Na verdade, a AOL expande o conceito geral de OSCAR, adicionando sistemas para listas de amigos e ícones do lado do serviço, bem como recursos para transferência de arquivos usando Bonjour .

Em 6 de março de 2006, a AOL lançou o AIM SDK e lançou um site de desenvolvedor, permitindo aos desenvolvedores construir plug-ins para AIM Triton e construir seus próprios clientes personalizados, que se conectam por meio do protocolo OSCAR. Eles não haviam, entretanto, divulgado qualquer informação sobre o protocolo em si.

Em 5 de março de 2008, a AOL lançou partes da documentação do protocolo OSCAR. O Google também forneceu a capacidade de entrar na rede AIM por meio do cliente Google Talk integrado ao Gmail .

Estrutura do pacote

Todos os pacotes enviados por OSCAR são encapsulados da mesma maneira. Todos os inteiros de 16 bits enviados pela rede não têm sinal e são big endian (consulte Endianness .) Isso é o mesmo para inteiros de 32 bits e inteiros de 8 bits (ou bytes).

Cabeçalho FLAP

Um contêiner especial Frame Layer Protocol (FLAP) envolve cada pacote. Ele carrega informações sobre o tamanho do pacote, canal e seu número em sequência.

Offset ( hex ) Campo Tipo / tamanho (em bytes) Observações
00 FLAP ID byte / 1 Sempre contém 2A. É a marca do início do pacote.
01 Canal byte / 1 1 = login, 2 = camada SNAC, 3 = erro, 4 = desconectar
02 Número em sequência int16 / 2 Incrementado em 1 cada vez que um pacote é enviado. Volta para 0 após FFFF.
04 Tamanho dos dados int16 / 2 O tamanho não inclui cabeçalho FLAP

Dados SNAC

Em quase todos os pacotes enviados pelo canal 2, os pacotes contêm um SNAC (Simple Network Atomic Communication). Sempre há um ou zero deles contidos em um pacote e, portanto, eles não contêm (nem precisam) um comprimento.

Offset ( hex ) Campo Tipo / tamanho (em bytes) Observações
00 Grupo de comida int16 / 2 O tipo geral do pacote
02 Modelo int16 / 2 O tipo específico do pacote
04 Bandeiras int16 / 2
06 Identificação do Pedido int32 / 4 Um ID de solicitação, pode ser aleatório, mas os clientes não podem enviá-lo com o conjunto de bits de pedido mais alto.

Implementações


Linguagem de programação
Implementações
C libpurple
GnomeICU
C # NOscar
C ++ QOscar (Qt)
C # 2.0 OscarLib
Java joscar
Instant Messenger Lib
daim
Objective-C LibOrange
OCaml mlOscar
Pitão TwistedWords
Perl Net :: OSCAR
PHP WebIcqPro

Veja também

Referências

links externos