[icq-devel] Migration sequence info...

Zoe Smale skyerat at hotmail.com
Mon Dec 9 07:11:46 CET 2002

> About migration sequence. Yes. This is work for icq2k clients.
> Yesterday I tried to migrate icq2k client (icq2000, icq2002)
> via my ICQ server to another icq server running on same database.
> And it works.

It works because ICQ supports most if not all of the OSCAR protocol - even
those parts that it doesn't need. I suspect that the real ICQ server never
uses migration though, and I'd be very surprised if very many clones support
it (unless they're AIM clones sharing an OSCAR code base). Not that I'm
saying they shouldn't support it, but I wouldn't rely on it if I were
writing an ICQ server.

> Server send: (AIM docs call this packet - "pause", but icq2k client
> responds with SNAC(1,0C)and works after that packet as ussual, so I
> call this packet srv_get_connection_families request)

Well technically speaking it is a "pause" command since it basically halts
most outgoing packets from the client. Certain packets are sent with a
special override flag that allows them to ignore the pause (which is how the
1/0C acknowledge gets out). The pause can be undone with a "resume" packet
(SNAC 1/0D), or if an actual migration takes place, after SNAC 1/02 is sent.

If an attempt is made to send a packet during the paused state, that packet
is buffered until the resume or until SNAC 1/02 is sent. At that point all
the buffered packets are finally passed on.


More information about the icq-devel mailing list