1.3.1.4 Subscriber List Management

In the enhanced presence model, when a publisher receives a new subscription, the server returns the data according to the publisher's containers. The publisher is not informed of the new subscription unless there is a context element in the body of the subscription XML. The subscriber list is the mechanism used to inform a publisher about new subscribers.

The subscriber list serves two main purposes:

  • Level of access: SIP protocol clients typically set up containers to give subscribers a minimum, default level of access. Subscribers can use this mechanism to notify publishers, which can cause SIP protocol clients to prompt the publisher to determine the correct level of presence data to be returned to this subscriber.

  • Social: This is the most common way users add each other to their contact lists.

The server maintains a list of subscriber URIs. Each item in this list has a Boolean attribute, acknowledged. The semantics for this list are as follows:

  • After an enhanced presence subscription with a context element is received and processed normally, this list is searched for an entry that matches the URI of the subscriber. If one is found, no further action is taken.

  • If an entry is not found, a new entry is added for the subscriber's URI with the acknowledged attribute's value set to false.

  1. A notification is sent to the publisher containing all URIs in this list with the acknowledged attribute value set to false. This notification is sent using the self SUBSCRIBE dialog, which is discussed in section 1.3.1.5.

  2. The SIP protocol client then informs the server to set the acknowledged attribute to true for one or more URIs in this list.

The acknowledged attribute is needed to ensure that notification of the new subscribers happens reliably at least once and can be roamed to other endpoints belonging to the publisher for deferral of the acknowledgment until a later time.

These semantics also imply that the publisher will subscribe to this list through self SUBSCRIBE and receive notifications when the list changes. For simplicity, only full state change notifications are supported in the notifications. That is, all entries in the subscriber list are present in notifications, and not just the ones that changed.

The SIP protocol client can send a setSubscriber request to set the acknowledged attribute associated with the subscriber to true.

The server can remove the subscriber entry from the subscriber list after receiving acknowledgement for it from the SIP protocol client. This is to avoid enlarging the list of subscribers stored on the server.

For details about subscriber list management, see section 2.2.2.6 and section 3.6.