Nachricht an ICQ-Nummer versenden

Eine kurze Geschichte meiner ICQ-Verbindung:
Erzaehlt in 2 Akten von Ethereal und Maerchen-Onkel reptiler ;)

1. Akt:
Verbindungsaufbau:
Die Verbindung wird mit login.icq.com (Alias fuer login.glogin.messaging.aol.com, IP 64.12.161.185) hergestellt.
Es werden dabei diverse Daten uebertragen, darunter natuerlich UIN, Passwort, Client und Version und andere Geschichten. Das alles mit dem Protokoll AIM. Alles ueber Port 5190.
Am Ende dieser Kommunikation bekomme ich im Feld BOS server string die IP 64.12.25.188 und wieder Port 5190 mitgeteilt.
Ich verbinde mit der erhaltenen IP, auch mittels AIM-Protokoll.
Durch das AIM-Generic-Protokoll wird mir die Liste der Supported Services geschickt. Darunter finden sich unter anderem AIM Buddylist, AIM User Lookup, AIM SSI und AIM ICQ.
Mit Versionsnummern versehen schicke ich die Capabilities meine Clients und erhalte die Capabilities des Servers, auch mit Versionsnummern, zurueck. Diese Capabilities decken sich mit den Supported Services.
Anschliessen sende ich, weiterhin mit AIM Generic und weiterhin an Port 5190, eine Self Info Request.
Der Self Info Reply enthaelt unter anderem meine UIN und meine IP. Auch ein Feld "Member since" ist enthalten.
Gleicher Port, anderes Protokoll, diesmal AIM BOS. Ich schicke einen "Rights Query".
Zurueck bekomme ich die "Max Invisible List Size" und die "Max Visible List Size".
Danach schicke ich einen recht umfangreichen ICQ Request ueber AIM ICQ und erhalte einen ICQ Response.
Ich schicke nun mittels ICQ Buddylist meine komplette Buddylist an den Server und sende danach "Request List" mittels AIM SSI.
Ich schicke einen weiteren ICQ Request, wieder mittels AIM ICQ. Auf diesen kam aber scheinbar nie ein Reply.
Mittlerweile kommt per AIM SSI die Info "No List" und ich sende, auch per AIM SSI, "Activate".

Zwischenspiel:
Die Verbindung ist nun soweit aufgebaut, das war schon ein Haufen Pakete.
Die komplette Kommunikation lief ueber TCP-Port 5190.
Nun will ich mal, ueber den Server, eine Message schicken. Da aufgrund der Zeitverschiebung keiner meiner Buddies online ist schicke ich einfach eine Testmessage an einen der nicht da ist. :)

2. Akt:
Die Nachricht:
Ich waehle einen meiner Buddies aus um ihm eine Nachricht (Inhalt: test) zukommen zu lassen.
Waehrend ich tippe wird dem Server schon mittels AIM Messaging eine "Mini Typing Notification" gesendet.
Dies wuerde den User, falls wir uns bereits unterhalten wuerden daruber informieren, dass ich gerade tippe und nicht schlafe.
Ein beherzter Druck auf "Send" veranlasst die Nachricht mittels AIM Messaging an den Server zu schicken. Enthalten sind natuerlich die UIN meines Buddies und die Nachricht.
Vom Server erhalte ich darauf ein simples Acknowledge, auch ueber AIM Messaging.


Wie an meiner kurzen Geschichte zu sehen ist, geht die meiste Kommunikation fuer die Verbindung selbst drauf.
Die Mini Typing Notifications kann man sich hoechstwahrscheinlich sparen wenn man mittels PHP oder einer anderen Sprache senden will. Wieviel vom Verbindungsaufbau in der beobachteten Form durchgefuehrt werden muss und was ausgelassen werden kann muss ausprobiert werden. Ich denke man kann es sich schenken die Aktion mit der Buddylist durchzufuehren. Moeglicherweise kann man auch gleich nach Verbindung zum 2. Server die Nachricht senden.
Auf jeden Fall ist die ganze Angelegenheit recht komplex.
 
Irgendwie werde ich das Gefühl nicht los, dass es einfacher währe dem User ein ganz normale Mail zu schicken..... und damit er benachrichtigt wird, aktiviert er im Messenger seiner Wahl einfach den Mail-Alert. ;)
 
Das waere natuerlich wesentlich einfacher. :)
Aber darum ging es ja hier erstmal nicht. Darum dachte ich mir ich schau mir mal die Kommunikation an.
 
Natürlich ging es nicht darum.... aber nach dem was hier so gepostet wurde, ist es halt doch aufwändiger als vorher angenommen (mail an uin@pager.icq.com ).
Ausserdem sollte er dem User auch die Wahl lassen, die Option zu deaktivieren (könnte ja u.U. ganz schön nerven ;) ).
Mir stellt sich dann aber auch noch die Frage ob es auch ein ICQ Clienten für z.b. Mac gibt?
Ich kenn halt seine Zielgruppe nicht.
 
Ich denke dass die Nachricht eher an ihn selbst und moeglicherweise sein Admin-/Mod-Team geschickt werden soll.
Er schrieb ja, dass die Message an bestimmte ICQ-User gehen soll.

Daher nehme ich an, dass die entsprechenden Leute auch ICQ haben.
Auch gehe ich davon aus, dass es fuer MacOS mindestens einen ICQ-Client gibt.
 
Hmm, stimmt auch wieder, aber wenn es wirklich nur wenige Leute wie Mods/Admins sind, dann lohnt der Aufwand ja erst recht nicht.
Er schrieb ja auch schon dass er es nicht zu kompliziert werden lassen will.
Wenn es ein Forum in der Grössenordnung wie diesem ist, dann würde sich der Aufwand ja lohnen.
Aber nicht für ein Forum wo von mir aus 50 Leute sind und diese auch noch eher gelegentlich reinschauen.
Das sind jetzt aber wieder alles nur Spekulationen.... darüber haben wir ja keine Infos.

Nun war ich aber neugierig, es gibt tatsächlich ICQ for Mac.... sogar offiziell, guckst Du hier.
Für Linux brauche ich erst garnicht gucken, wenn nicht offiziell, dann zumindest als Clone.
 
Zurück