User configurable resource priority

Billy Crook billycrook at gmail.com
Wed Oct 31 08:14:01 EDT 2007


Not all networks even support resource priorities.  What I would like to see
is better control over which computer messages/conversations are sent to
when multiple computers log in to the same account from multiple places.

The XMPP spec includes resource priorities and I believe these can be
changed dynamically without reconnecting.  This is to allow a client to
adjust its priority based upon away and idle information.  I would like the
routing of conversations to occur deterministically and involve some other
factor than just the away / idle status.  I use a couple programs that cause
a machine to stay in a busy state occasionally.  Their program obviously has
a bug, which THEY need to fix, not pidgin.  However, on another computer,
for security reasons, I can not publish information relating or alluding to
whether that computer is being supervised at the moment.  I specifically do
not want applications aware of a person using the computer or not.  In
either case, I want more control over where messages are routed than just
setting idles and aways.

I understand that in XMPP networks, it is the sender, not the recipient, who
decides to what resource a conversation will be directed.  The recipient
however, can give the sender hints in for form of assigning priorities to
each resource.  Today, I think gaim is adjusting these priorities based on
the away status and they are hard coded.  What I would like is a default
priority of 0 at all times.  Then each account could augment that by some
integer, as could each away state.  The account priority augmentation would
probably also default to 0 since developers won't know in advance which
computers have prioroty if any.  The away-state priority augmentation should
default either to the standard for that protocol, or to the middle of evenly
spaced sections in that procol's valid range, and in the same order as it is
today so there will be no behavioral change for users by default.

e.g.: If there were 4 states from "do not disturb" to available, and in xmpp
the minimum is -128 and max is 128, states augmenters -96, -32, +32, +96
This would give maximum buffer between the states, and allow per account
augmenters of -10 or +10 to make a given computer more or less favorable. a
-256 or +256 would completely negate the away-status based priorities.
There should also be some way to stick a resource at a particular priority
and have it stay there.

I understand this is a pretty complex problem as not all protocols know what
resources are, or tag each message with its conversation.  I'm not done
thinking this through yet, but would like to solicit feedback and ideas
before I consider filing a feature request.  I'm trying to avoid 'loosing'
messages when I'm sitting in the same room as another person, they IM me,
and it goes to a computer in another state.  That is not... desirable.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://pidgin.im/pipermail/devel/attachments/20071031/c7094165/attachment.html>


More information about the Devel mailing list