# Nachricht an ICQ-Nummer versenden



## Eistee (23. Juli 2005)

Hi,
ich möchte in meinem Forum gerne eine Nachricht an bestimmte ICQ-Nummern versenden, sobald es einen neuen Beitrag gibt.
Nun habe ich hier im Forum auch berreits dazu gesucht und hereus gefunden, dass dies wohl auch gehen müsse.
So kann man wohl eine einfache email an die adresse uin@pager.icq.com schicken - die nachricht der mail geht dann wohl direkt an die entsprechende nummer. Ich habe das auch direkt mal ausprobiert - allerdings ohne Erfolg 
Wäre super, wenn ihr mir dazu noch weitere Infos geben könntet. Wo liegt mein fehler? Ist das evtl. auch anders möglich?
Danke für eure Antworten!


----------



## Dr Dau (23. Juli 2005)

Hallo!

Mann kann zwar per HTML-Formular eine Mitteilung schicken, hierbei kommt aber eine Sicherheitsabfrage (diese komischen Bilder mit zufällig generiertem Text, den man dann eingeben muss).
Mit uin@pager.icq.com geht es jedenfalls nicht.... die Domain gibt es garnicht mehr.
Du brauchst ja nur mal "ping pager.icq.com" machen.... unbekannter Host.
Beim Versuch über GMX eine Mail zu schicken kommt dies von GMX zurück:


			
				MAILER-DAEMON@mail.gmx.net hat gesagt.:
			
		

> Hi. This is the qmail-send program at mail.gmx.net.
> I'm afraid I wasn't able to deliver your message to the following addresses.
> This is a permanent error; I've given up. Sorry it didn't work out.


Gruss Dr Dau


----------



## Dennis Wronka (23. Juli 2005)

Soweit ich das hier auf tutorials.de richtig verfolgt habe ist es wohl moeglich mittels PHP mit IRC zu interagieren.
Dies laesst mich jetzt einfach mal annehmen, dass dies auch mit ICQ moeglich ist.

Ich nehme an, dass laeuft ueber Sockets.

Uebrigens, um an die Ports zu kommen und an die Daten die so ausgetauscht werden kann man entweder mal in den Source von OpenSource-Implementationen von ICQ schauen (wie z.B. LICQ) oder mittels einem Paketsniffer (z.B. Ethereal) den Netzverkehr beobachten und auswerten.
Moeglicherweise bekommt man den Port auch aus der Liste der Well-Known-Services, oder durch einen simplen Port-Scan bei laufendem ICQ. Zum Scannen der Ports kann ich nMap empfehlen, welcher sogar schon zum Filmstar wurde (Matrix, ich glaub Teil 2)


----------



## Dr Dau (23. Juli 2005)

ICQ nutzt gleich mehrere Ports..... ausserdem hat auch AOL seine Finger dazwischen.
Vom Prinzip würde es mit PHP klappen..... wenn da nicht diese blöde Sicherheitsabfrage währe.


----------



## Dennis Wronka (23. Juli 2005)

Ich denk ich hab heute Nachmittag mal etwas Zeit, da werd ich mal ein wenig mein ICQ belauschen.


----------



## Blaschki (23. Juli 2005)

Wenn du die Suchfunktion einmal genutzt hättest würdest du wissen das es nicht so einfach geht und schon einige hier daran gescheitert sind.

Aber hier mal mein Wissen dazu:
<b>Ein paar Linkz</b>
es gibt ja insgesamt 9 Protokollversionen vom ICQ-Protokoll
ich werde noch das der Version 2 verwendenm, da es noch genutzt wird und nicht so aufgebläht ist. (go.icq.com nutzt es noch)

!alles in Englisch!

*eine Doku dazu ist hier (sehr gut)*
http://www.student.nada.kth.se/~d95-mih/icq/spec/v2/icq091.txt

*für die version 3 gibt es hier nee gute Zusammenstellung*
http://www.student.nada.kth.se/~d95-mih/icq/spec/v4/v4-notes.txt

*und speziell sortiert nach client und server hir (nicht ganz vollständig)*

Client:  http://iserverd.khstu.ru/documents/client.html
Server: http://iserverd.khstu.ru/documents/server.html

* Hier ist was für version 5 *
http://www.algonet.se/~henisak/icq/icqv5.html

* Für Version 7-9 ist hier noch was, aber nicht so tool geschrieben find ich *
http://iserverd.khstu.ru/oscar/


Hier kann man meinen Beitag von damals noch mal nachlesen. 
http://www.tutorials.de/tutorials162705.html
Damals ging es uns nur erstmal um den LOGIN auf dem ICQ-Serverr.

Also viel Spass


----------



## Eistee (23. Juli 2005)

kurzum:
mit wenig aufwand ist mein vorhaben wohl nicht zu realisieren?!
ich wollt es nun wirklich nicht allzu kompliziert werden lassen. es sollte lediglich automatisch eine kurze mitteilung über icq verschickt werden, sobald sich in meinem forum etwas tut...


----------



## XEMO (23. Juli 2005)

Tja so wie ich das sehe wirds Zeit das sich endlich ma jemand diesem Problem annimmt, alleine is das ein wenig viel Arbeit, aber wenn wir uns zusammentun könnten wir das schon hinkriegen. *optimist*

Ich hab mir mal die Links angeschaut, sieht jedenfalls sehr vielversprechend aus.
Gibts dazu noch mehr Quellen?

Ich werd mich auf jeden Fall damit ausseinander setzen und mich melden wenns fortschritte oder Neuigkeiten gibt.

Greez @all 
da XEMO


----------



## Dennis Wronka (23. Juli 2005)

Ich hab schon meinen Ethereal aktualisiert und werd mir gleich mal etwas Traffic anschauen.
Mal schauen ob man daraus schlau wird.


----------



## XEMO (23. Juli 2005)

Der Traffic ist glaub ich nich das Problem, 
wenn du dir mal die Dokumente anschaust stellst du fest das da ziemlich viel bekannt is.
Stellt sich nur die Frage wie die verschiedenen Ports zusammenarbeiten.


----------



## Dennis Wronka (23. Juli 2005)

Und gerade das denke ich kann man durch eine geschickte Analyse des Traffics ganz gut nachvollziehen.


----------



## Matthias Reitinger (23. Juli 2005)

Vielleicht würde ja ein Umweg über den IRC-ICQ-Gateway BitlBee das Vorhaben erleichtern. Nur mal so als Gedankenanstoß


----------



## Dennis Wronka (24. Juli 2005)

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.


----------



## Dr Dau (24. Juli 2005)

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.


----------



## Dennis Wronka (24. Juli 2005)

Das waere natuerlich wesentlich einfacher. 
Aber darum ging es ja hier erstmal nicht. Darum dachte ich mir ich schau mir mal die Kommunikation an.


----------



## Dr Dau (24. Juli 2005)

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.


----------



## Dennis Wronka (24. Juli 2005)

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.


----------



## Dr Dau (24. Juli 2005)

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.


----------



## Dennis Wronka (24. Juli 2005)

Den offiziellen Client gibt's glaub ich nicht, aber es gibt genuegend Clones.
Ich selbst nutze LICQ.


----------



## Dr Dau (24. Juli 2005)

Das gleiche hat mir  auch verraten..... LICQ stand gleich an erster stelle.


----------



## fanste (24. Juli 2005)

Und warum machz ihr es nicht einfach so wie hier? Muss man halt den Text von dem Bild eingeben. Dafür hat man aber nicht soviel aufwand.


----------



## XEMO (25. Juli 2005)

Mhm die Traffik-Analyse is ja doch interessanter als ich dachte...  
Sieht aber nach verdammt viel Arbeit aus.

Fakt ist solch ein Script braucht die Welt, denn das ist eine Funktion die den meisten Communitys noch fehlt und die sicher den ein oder anderen User schon ansprechen würde.


----------



## Dennis Wronka (25. Juli 2005)

So eine Trafficanalyse kann einem so einiges erzaehlen.
Aufgrund der grottenschlechten Dokumentation zum SMB-Protokoll hat das Samba-Team auf diesem Wege die meisten Informationen ueber SMB erhalten um es dann schliesslich selbst zu implementieren.


----------



## XEMO (25. Juli 2005)

@ Matthias; kannst du uns bitte schnell erläutern wie du dir das mit BitlBee genau vorstellst. Ich kannte das Prog (bis eben) nicht. Sieht allerdings interressant aus.

Der Nachteil (Vorteil) wäre jedoch das das Ding nur auf Linux läuft.


----------



## Matthias Reitinger (25. Juli 2005)

BitlBee ist wie gesagt ein IRC-IM-Gateway. Es bildet einen Instant Messenger (z.B. ICQ) auf eine IRC-Umgebung ab. Am besten du verbindest dich einfach mal mit dem IRC-Client deiner Wahl nach im.bitlbee.org und schaust dir an, wie das im Detail aussieht.

Meine Idee wäre jetzt gewesen, einen BitlBee-IRC-Server zu verwenden, um die Nachrichten an ICQ-Kontakte zu versenden. Der Vorteil dabei wäre, dass das IRC-Protokoll 1. simpler und 2. besser dokumentiert ist als das ICQ-Protokoll. Außerdem gibt es schon fertige IRC-Packages im PEAR.


----------



## Smokers (14. Juni 2008)

Ich wollte mal den Stand der Dinge erfragen...vllt hat sich ja was seit 2005 getan 
Gerade bei Dennis Wronka, er scheint mir da der richtige Mann für zu sein ^^°

Beschäftige mich auch zZ damit, und hab schon viele alte ICQ Klassen gefunden die mal get haben , aber nun leider nicht mehr...

Ich werde mich auch versuchen in das ICQ Protokoll ein wenig einzuarbeiten, aber muss ehrlich gesetehn das ich nu nicht DER Vorreiter iin Sachen Sockets etc bin...


Darum interessiert mich der Stand ein wenig =) 


lg #

Smoki


----------



## Dennis Wronka (15. Juni 2008)

Also ich hab seitdem nichts mehr daran gemacht. Und auch damals hab ich im Grunde nur den auf Seite 1 geposteten "Traffic-Report" erstellt.
Code fuer ICQ-Kommunikation hab ich nie geschrieben, ansonsten waere wahrscheinlich eine Klasse draus geworden. 

Ich denk mal dass die Kommunikation immer noch so ablaeuft wie dort beschrieben, aber eine Analyse mittels Wireshark sollte kein Problem darstellen und viele wichtige Informationen liefern.


----------



## Geordi (23. Juni 2009)

Um das dingen warm zu halten:
Ich suche auch noch immer ne Lösung dafür. Aber außer den alten, nicht mehr funktionierenden, habe ich auch noch nichts gefunden.


----------

