Once upon a time, in the nineties, computers were large, the grass was green, and the water was wet. In these fabulous times, someone had the Internet at home, someone at work, but almost no one had it both there and there. And so the Internet on the phone was not at all, no one. (And people lived, by the way! Isn't it hard to believe in it?)

Coming up with ICQ, its authors naturally looked at the world around it (and there was nothing more to look at, there were no other instant messengers at that golden time) and decisions were made appropriate to this world:
- no one works via the Internet, no one needs working contacts at home, let's keep a contact list on the client;
- one person cannot sit at two keyboards; we will not allow one UIN to join in parallel from two places.
')
But the world, of course, changed. Already at the beginning of the two thousandth people began to work actively from home (and some rare instances took up personal affairs at work, but let's not give them out), and the contact lists moved to the server. And in 2011, it's time to change another rule of the nineties.
The need to communicate with two devices in the age of mobile Internet is obvious. If you include ICQ in the morning, coming to work, and in the evening, returning home, in general, it is not difficult, then something special to press on the mobile, each time moving away from the computer for a meeting or a smoke break - idiocy. So, the client on the mobile should always be online (push-notifications, fortunately, allow), and as a result - the client on the PC should not “knock out” it. Thus, it is time to forget the message about “Your UIN is used on another's computer" or, at least, to modify it significantly.
Unfortunately, this time we are not the pioneers of change, it is possible to look not only at the world around us, but also at how the competitor colleagues implemented the functionality. The most interesting question is, of course, which of the clients to deliver the message, if several are connected to the server at once. To deliver to everyone is bad, superfluous notifications are annoying, not to deliver to everyone is scary, all of a sudden, we will not deliver the necessary information. To be honest, in our opinion, the existing solutions now leave the question open rather than answer it. The XMPP standard gives quite a few indications, but in the most interesting place from the practical point of view it writes the following:
It’s possible to make sure that it’s possible to use it.
tools.ietf.org/html/rfc3921#section-11And most implementations, both XMPP-based and closed, often send messages just to all available connections - certainly not lost.
Returning to ICQ. Infrastructurally, we are ready to support several simultaneous connections, the server code is written, most of the clients (including unofficial ones) are tested, all that remains is to turn on. The only thing that stops us from this step is uncertainty with the algorithm for sending messages, or, in fact, deciding which some other rule would be most convenient for users. Those who want to help with the answer to this question are invited to comment. In addition, we can now enable the possibility of parallel connections for individual UINs, volunteers can send their numbers in private.
Thanks in advance for your help!