Trac is being migrated to new services! Issues can be found in our new YouTrack instance and WIKI pages can be found on our website.

Protocols: AIM, ICQ, IRC, MSN, MYSPACE, XMPP, Yahoo!

To design the privacy subsystem from ground up, following protocol specific information needs to be considered:


Has two lists: block list and allow list, and has the following five options for the privacy settings:

  • Allow all users to contact me
  • Allow only users on my buddy list
  • Allow only the users on the allow list
  • Block all users
  • Block only the users on the block list

Blocking here refers to stopping messages as well as presence information. We also support being invisible to everyone irrespective of the above settings.


ICQ has three lists: visible list, invisible list and block list. Whereas visible and invisible lists deal with controlling the presence information, the block list deals with messages. An ICQ UIN can has following settings:

  • Visible (same as not choosing any setting ?)– receives both messages and presence
  • Invisible – receives messages, but not presence
  • Visible + Block – receives presence, but not messages
  • Invisible + Block -- doesn't receive messages or presence

ICQ also supports being invisible to everyone irrespective of above settings, accepting messages only from the contacts and sharing presence with ICQ and web users.


No server side features, hence can't block presence, only messages can be blocked that too dropping after being received by the client. Simple ignore list client side implementation.


Has two lists in context of privacy: Allow list (AL) and Block List (BL). There is a meta contact “all others” that can be placed either in AL or in BL. Default action is to include all the buddies in the AL and include all others in BL. Messages as well notifications are blocked.

Being invisible to everyone is supported irrespective of above settings.


The protocol has not been completely reverse engineered yet, the following features are probably supported:

  • Show presence to anyone or people on the contact list
  • Receive messages from anyone or people on the contact list
  • Accept list and Block list – (both presence and messages ??)


Privacy features are handled by XMPP extension XEP-0016, but it has been deemed too complex for implementation. Other extensions like Simple Communications Blocking, XEP-0191 has at least partially been implemented recently in Pidgin. For invisibility XEP-0186 has come to be the most favoured extension that doesn’t break the core XMPP rules, but I am not sure if Pidgin developers want to implement it just yet.

-- I'd like to see the XEP advance to Draft before any implementation is merged into im.pidgin.pidgin; I'm also unaware of any server implementations. darkrain42

From XEP-0191:

The requirements for simple communications blocking are straightforward:

  • A user must be able to block communications with a specific contact.
  • A user should be able to determine which contacts are blocked.
  • A user should be able to unblock communications with a specific contact.

The default privacy list will be equivalent to the blocklist. Duration of the block is unlimited and applies across the sessions. The blocked contact doesn’t receive any presence information, and is unable to send any XML stanzas to the user. So the presence and messages are stopped both ways.


Yahoo only has one Block list. Presence and messages are both blocked, and the protocol forces us to remove the contact from the buddy list before adding to the block list. Block list is always active.

There is an option to “ignore everyone not on list”, which is implemented client side, and messages and other requests are dropped by the client.

There is also “appear permanently offline list”, which lists the contacts to whom only the presence information is blocked.

While in an invisible session, we can create “appear online” list by individually sending presence to specific contacts. But that is only valid for the session, or till we go un-invisible again.

Last modified 15 years ago Last modified on May 25, 2009, 9:24:47 PM
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!