A question was recently posed by a friend. He noticed that as long as his AIM client was signed in on the iPhone, actively or just for Push Notification, that messages would no longer be sent to his desktop client anymore. This sort of behavior could render the “always signed in” Push Notification useless if the desktop client can no longer receive messages while the iPhone application is considered to be signed in.
It turns out that AOL uses a precedence order in deciding which client should get the message, or in some cases both. Here is the precedence order:
Available (1)
Away (0)
Idle (-1)
Invisible (*)
AIM clients with the same precedence “score,” the number in parenthesis, will get the same message. If one client has a higher score, no other clients will get the message. Idle time will subtract one from the score. Available + Idle is the same thing as Away + Active.
For example if both clients are Available and not Idle, both will get the message. If one is Available and the other Away, the Available client will only get the message. Here is where things get interesting, if a client is Available and Idle, and the other is Away but Active both get the message.
The most effective way to use both the iPhone AIM client and a desktop client like Adium, iChat, or AIM, you need to have the desktop client set to Available and the iPhone client set to Away. The desktop client shouldn’t be set to artificially Idle, or both will get the message.
This is a little annoying because I tend to set Adium to Away all the time. Going forward to utilize AIM for the iPhone I’ll have to keep available and not idle, otherwise messages are going to start appearing on my phone. I guess this promotes some additional honesty about my actual status.
I hope this solves the mystery for someone. I couldn’t find anything too definitive elsewhere on the web.
*Note: Setting Invisible in one client changes your status in all logged in clients. It’s not possible to be Away in one, and invisible in another. I was hoping I could leverage this somehow by setting the iPhone to invisible so that it would only get messages if the desktop client went offline.