Server providing AIM services to old clients. Make your own chat network. Fuck Docker.
Find a file
2021-12-24 14:51:54 -05:00
aimerror Location Services 2021-12-19 17:17:47 -05:00
models scripts to build and deploy to dockerhub 2021-12-24 14:51:54 -05:00
oscar store messages sent through ICBM 2021-12-18 21:02:47 -05:00
scripts scripts to build and deploy to dockerhub 2021-12-24 14:51:54 -05:00
services Dockerize service 2021-12-24 13:38:22 -05:00
util add tests for Word and Dword; change them to work correctly 2021-12-20 13:41:12 -05:00
.dockerignore scripts to build and deploy to dockerhub 2021-12-24 14:51:54 -05:00
.gitignore local db, write TLV for message routine 2021-12-18 22:47:57 -05:00
Dockerfile Dockerize service 2021-12-24 13:38:22 -05:00
go.mod make our own Buffer, add sql, add test 2021-12-16 17:41:17 -05:00
go.sum make our own Buffer, add sql, add test 2021-12-16 17:41:17 -05:00
main.go Dockerize service 2021-12-24 13:38:22 -05:00
message_delivery_routine.go a little more organization 2021-12-24 12:41:16 -05:00
online_routine.go Dockerize service 2021-12-24 13:38:22 -05:00
package-lock.json move service to services package 2021-12-24 12:43:40 -05:00
package.json script 2021-12-19 02:27:02 -05:00
Readme.md readme 2021-12-24 13:45:42 -05:00
service_manager.go move fix service manager 2021-12-24 12:44:40 -05:00
session_manager.go a little more organization 2021-12-24 12:41:16 -05:00

AIM Oscar Server

Run your own AIM chat server, managing users and groups. Hook up a vintage client and get chatty.

Goals

  • Have a vintage client authenticate with the server
  • Add buddies
  • See buddy online/away status
  • Chat with buddy
  • Set away status
  • See away status
  • Look up buddy
  • Buddy icons
  • Rate limiting + warn system
  • Web Signup
  • Federation with other servers

Getting Started

Clone this repository, make sure you have Go installed in your terminal's path, then run:

$ go build && ./aim-oscar

Configuration

Environment flags:

  • OSCAR_HOST: hostname of the server
  • OSCAR_PORT: port to bind to
  • OSCAR_BOS_HOST: hostname of Basic OSCAR Service that provides core client features
  • OSCAR_BOS_PORT: port of Basic OSCAR Service

Flags:

  • -host: hostname of server
  • -port: port to bind to
  • -boshost: hostname of Basic OSCAR Service
  • -bosort: port of Basic OSCAR Service
  • -h: see help information about flags

Terms

mirrored from iserverd

  • BOS: Basic OSCAR Service. This term refers to the services that form the core of the Instant Messenger service. These services include Login/Logoff, Locate, Instant Message, Roster management, Info management and Buddy List
  • FLAP is a low-level communications protocol that facilitates the development of higher-level, record-oriented, communications layers. It is used on the TCP connection between all clients and servers.
  • SNAC: A SNAC is the basic communication unit that is exchanged between clients and servers. The SNAC communication layers sits on top of the FLAP layer.
  • TLV: Type Length Value. A tuple allowing typed opaque information to be passed through the protocol. Typically TLV's are intended for interpretation at the core layer. Being typed, new elements can be added w/o modifying the lower layers.
  • ICBM: Inter Client Basic Message. ICBM is a channelized client-to-client mechanism. Currently the most user visible channel is used for Instant Messages.