5 SIP related procedures
24.1413GPPPresence service using the IP Multimedia (IM) Core Network (CN) subsystemRelease 17Stage 3TS
5.1 Introduction
5.2 Functional entities
5.2.1 User Equipment (UE)
A UE shall implement the role of a PUA (see subclause 5.3.1), a watcher (see subclause 5.3.2) or both.
5.2.2 Application Server (AS)
An AS may implement one or more of the roles of a PUA (see subclause 5.3.1), watcher (see subclause 5.3.2), PS (see subclause 5.3.3), RLS (see subclause 5.3.4), or PNA (see subclause 5.3.5).
5.3 Roles
5.3.1 Presence User Agent (PUA)
5.3.1.1 General
A PUA is an entity that provides presence information to a PS.
In addition to the procedures specified in subclause 5.3.1, the PUA shall support the procedures specified in 3GPP TS 24.229 [9] appropriate to the functional entity in which the PUA is implemented.
5.3.1.2 Publication of presence information
When the PUA intends to publish its own view of the presentity’s presence information, it shall generate a PUBLISH request by acting as an Event Publication Agent (EPA) in accordance with RFC 3903 [23].
NOTE 1: The contents of the presence event package containing the event state of the EPA, and how such information is constructed, are outside the scope of this version of the specification. However implementations will need to take into account the reporting needs of the EPA, and also the needs of the EPA to override information published by another EPA relating to the same presentity.
The PUA shall implement the "application/pidf+xml" content type as described in RFC 3863 [21] ,the Presence Information Data Format (PIDF) extensions defined in RFC 4480 [26].
The PUA may implement the PIDF extensions defined in RFC 4482 [32].
The PUA may implement location information according to the format defined in RFC 4119 [37].
NOTE 2: The categorization of presence attributes to generic information attributes and communication address specific attributes is done using the <person> and <tuple> elements as defined in RFC 4479 [44].
The PUA shall implement RFC 5196 [25] if it wants to make use of SIP user agent capabilities in the presence document. The extension may be used for describing the type of the service described by the presence tuple.
The PUA may implement RFC 5264 [45] if it wants to use the partial publication mechanism. The first partial PUBLISH request shall contain the full state. The PUA uses the "application/pidf-diff+xml" content type as described in RFC 5262 [38].
The PUA shall update the presence information, either 600 s before the publication expiration time if the publication period indicated from the PS in the response to the PUBLISH request was for greater than 1 200 s, or when half of the time has expired if the publication period was for 1 200 s or less, unless the PUA has determined that an update to the presence information is not required.
When the PUA intends to show different value of the same presence attribute to different watchers, the PUA shall publish a tuple or person element for every value it intends to show, all including a different value of the same presence attribute. The PUA shall label different information with different value of the <class> element in every published tuple or person element as defined in RFC 4480 [26]. The PUA shall also authorize different tuples to different watchers or watcher groups by manipulating the subscription authorization policy as defined in subclause 6.3.1.2.
If a local configuration information limiting the rate at which PUA is allowed to generate PUBLISH requests is available, then PUA shall take that information into account. Such local configuration information could be e.g. the shortest time period between consecutive PUBLISH requests.
5.3.1.3 Mapping of presence attributes
The eXtensible Markup Language (XML) Schema Definition of the "application/pidf+xml" format covers the definition of the 3GPP subscriber’s presence attributes and the PUA shall perform the following mapping:
– the communication address (containing communication means, status and contact address) attribute and the priority attribute are represented by a <tuple> element including a basic <status> element and a <contact> elements containing a priority attribute as defined in RFC 3863 [21].
The PUA represents subscriber specific information by including a <person> element defined in RFC 4479 [44]. The person element may contain e.g. <activities> and <place-type> elements both defined in RFC 4480 [26]. Further PIDF extensions as defined in RFC 4482 [32] can also be used.
NOTE 1: RFC 4479 [44] defines also a <device> element which can be used to present device specific information.
– the text attribute is represented by the <note> element as defined in RFC 3863 [21] for <tuple> elements and in RFC 4479 [44] for <person> and <device> elements; and
– the location attribute is represented by the elements defined in RFC 4119 [37] and the <place-type> element defined in RFC 4480 [26].
NOTE 2: Only information elements either relevant for the application or recommended by the presence-data model RFC 4479 [44] are included in the PUBLISH request. Attributes not relevant or available (e.g. the text attribute or the location attribute) are omitted.
Additional extensions can be used to express application specific attributes, but their usage is outside the scope of this version of the specification.
5.3.1.4 Storing presence attributes by multipart/related or content indirection
The PUA shall implement the "multipart/related" content type as described in RFC 2387 [14] if it wants to aggregate other Multipurpose Internet Mail Extensions (MIME) objects with the "application/pidf+xml" content type.
When a presence attribute has a value of a MIME object, the PUA shall either:
a) publish the presence document and the MIME object utilizing the "multipart/related" content-type in the PUBLISH request; or
b) make use of content indirection.
When the PUA decides to use the content indirection mechanism for publishing an initial or modified value of a presence attribute the PUA shall:
a) store the MIME object behind an HTTP URI on the PS or ensure that the MIME object and a HTTP URL pointing to that MIME object already exists on the PS; or
b) use the "multipart/related" content type as described in RFC 2387 [14] with the content indirection mechanism as specified in RFC 4483 [40] for the publication of presence information format as follows:
– set a CID URI referencing to other MIME multipart body. The other multipart body contains the content indirection information which is represented as the value of an XML element;
– include the presence document of the format "application/pidf+xml" or "application/pidf-diff+xml" in the root of the body of the "multipart/related" content; and
– specify the part having information about the MIME object by using the "message/external-body" content type, defining the HTTP URI, versioning information and other information about the MIME object as described in RFC 4483 [40].
NOTE 1: The versioning information is used for determining whether or not the MIME object indirectly referenced by a URI has changed or not;
When storing a MIME object on the PS the PUA shall:
a) construct as many HTTP URIs as the number of objects to be stored; and
b) formulate every HTTP URI according to a predefined directory structure.
NOTE 2: The PUA has the root directory for storing the MIME objects on the PS preconfigured.
NOTE 3: The PUA needs to store the MIME objects on the PS behind the HTTP URI(s) created previously using standard HTTP procedures as defined in RFC 7231 [52].
5.3.1.5 Subscription for the watcher information event template package
Upon activation of the presence service, the PUA application may subscribe for the watcher information state changes in accordance with RFC 3857 [28] and RFC 3858 [29]. Subscription is according to RFC 6665 [19] as per 3GPP TS 24.229 [9].
The PUA application may include filters in the body of the SUBSCRIBE request in accordance with RFC 4661 [30], and RFC 4660 [31] as updated by RFC 6665 [19].
5.3.1.6 Subscription for notification of state changes in XML document
In order to get notifications of changes to XML documents manipulated via the Ut reference point the PUA may generate a SUBSCRIBE request in accordance with RFC 5875 [43] and RFC 6665 [19].
5.3.2 Watcher
5.3.2.1 General
A watcher is an entity that subscribes to or requests presence information about a presentity from the PS.
In addition to the procedures specified in subclause 5.3.2, the watcher shall support the procedures specified in 3GPP TS 24.229 [9] appropriate to the functional entity in which the watcher is implemented.
5.3.2.2 Subscription for presence information state changes and notification acceptance
When the watcher intends to subscribe for presence information state changes of a presentity, it shall generate a SUBSCRIBE request in accordance with RFC 6665 [19] and RFC 3856 [27].
The watcher shall implement the "application/pidf+xml" content type as described in RFC 3863 [21] , the PIDF extensions defined in RFC 4480 [26].
The watcher may implement the PIDF extensions defined in RFC 4482 [32].
The watcher may implement location information according to the format defined in RFC 4119 [37].
The watcher shall implement RFC 5196 [25] if it wants to make use of SIP user agent capabilities extensions included in the presence document. The extension may be used by the watcher for interpreting the type of the service described by the presence tuple.
The watcher may include filters in the body of the SUBSCRIBE request in accordance with RFC 4661 [30], and RFC 4660 [31] as updated by RFC 6665 [19].
The watcher may indicate its support for partial notification using the Accept header field in accordance with RFC 5263 [24].
The watcher shall interpret the received presence information according to RFC 4479 [44] and the following:
a) a <person> element as defined in RFC 4479 [44] means information about the presentity;
b) a tuple including a <relationship> element defined in RFC 4480 [26] means information about an alternate contact to the presentity;
c) a tuple contains communication means specific information. The communication means described by the tuple is deduced from the URI scheme of the contact address information present in the <contact> element as defined in RFC 3863 [21]. If the URI scheme of the contact address information provides ambiguous information about the communication means, the watcher shall further examine other elements of the tuple to decide the communication mean. Such elements can be the <methods> element, any of the different media type specific elements as defined in RFC 5196 [25].
d) a <device> element as defined in RFC 4479 [44] means information about a device.
Additional extensions can be used to express application specific attributes, but their usage is outside the scope of this version of the specification.
5.3.2.3 Subscription for presence information state changes of presentity collections
When the watcher intends to subscribe for presence information state changes of a presentity collection, it shall generate a SUBSCRIBE request in accordance with RFC 4662 [22], additionally to the procedures described in subclause 5.3.2.2.
5.3.2.4 Subscription for the watcher information event template package
Upon activation of the presence service, the watcher may subscribe recursively for the watcher information state changes in accordance with RFC 3857 [28] and RFC 3858 [29]. Subscription is according to RFC 6665 [19] as per 3GPP TS 24.229 [9].
The watcher may include filters in the body of the SUBSCRIBE request in accordance with RFC 4661 [30], and RFC 4660 [31] as updated by RFC 6665 [19].
5.3.2.5 Subscription for notification of state changes in XML document
In order to get notifications of changes to XML documents manipulated via the Ut reference point the watcher may generate a SUBSCRIBE request in accordance with RFC 5875 [43] and RFC 6665 [19] as per 3GPP TS 24.229 [9].
5.3.3 Presence Server (PS)
5.3.3.1 General
A PS is an entity that accepts, stores, and distributes presence information.
In addition to the procedures specified in subclause 5.3.3, the PS shall support the procedures specified in 3GPP TS 24.229 [9] appropriate to the functional entity in which the PS is implemented.
5.3.3.2 Subscription acceptance to presence information and notification of state changes
When the PS receives a SUBSCRIBE request for the presence information event package, the PS shall first attempt to verify the identity of the source of the SUBSCRIBE request as described in 3GPP TS 24.229 [9] subclause 5.7.1.4, then perform authorization according to 3GPP TS 24.229 [9] subclause 5.7.1.5. In case of successful subscription, the PS shall generate a response to the SUBSCRIBE request and notifications in accordance with RFC 6665 [19] and RFC 3586 [27].
Additionally, in the special case of a watcher subscription if the subscription authorization policy results in the action to confirm the watcher subscription from the PUA and the PUA has a valid watcher information subscription, see RFC 3857 [28], then, the PS shall inform the PUA about the watcher subscription attempt.
If the watcher has indicated the need for partial notification using the Accept header field, then the PS shall generate partial notifications in accordance with RFC 5263 [24] and RFC 5262 [38].
If the body of the SUBSCRIBE request from the watcher contains filters, the PS shall apply the requested filtering function on notifications in accordance with RFC 4661 [30], and RFC 4660 [31] as updated by RFC 6665 [19].
If the watcher has indicated support for the "multipart/related" content type using the Accept header field, then the PS may generate notifications using "multipart/related" content type which aggregates "application/pidf+xml" formatted presence information with other MIME objects in accordance with RFC 2387 [14]. In this case, the PS shall modify the value of the presence attribute in the PIDF document to refer to the MIME object included in the corresponding MIME multipart body. If the watcher has not indicated support for the "multipart/related" or a MIME object cannot be accessed by the PS, the PS should exclude the presence attribute from the notification.
NOTE: How the PS takes presence information from various presence sources, in order to generate a final presence document, is outside the scope of this version of the specification. Implementations need a flexible approach to composition policy and therefore to the collection, filtering and composition of presence documents.
5.3.3.3 Publication acceptance of presence information
The PS shall act as an Event State Compositor (ESC).
When the PS receives a PUBLISH request, the PS shall first verify the identity of the source of the PUBLISH request as described in 3GPP TS 24.229 [9] subclause 5.7.1.4, then perform authorization according to 3GPP TS 24.229 [9] subclause 5.7.1.5. In case of successful authentication and authorization, the PS shall process the PUBLISH request in accordance with RFC 3903 [23].
If the PUBLISH request contains the "application/pidf-diff+xml" content-type as described in RFC 5262 [38], the PS shall process the PUBLISH request in accordance with RFC 3903 [23] and RFC 5264 [45].
If the PUBLISH request contains the "multipart/related" content type and the PS supports the content type, the PS shall process the content as follows:
– if a MIME multipart contains a MIME object of a content type supported by the PS, either store the MIME object in case of initial publication or replace an existing content in case of modify operation; and
– if a multipart includes the "message/external-body" content type and the content indirection as described in RFC 4483 [40] is supported by the PS, ensure that it has access to the MIME object indicated by the URI and that the MIME object exists; and associate the value of the presence attribute that refers to the MIME object with the MIME object and additional information about it.
If the PS does not support the content type used for publishing MIME objects then the PS shall send a 415 (Unsupported Media Type) response and indicate the supported content types in the Accept header.
NOTE: If the PS receives a HTTP request for storing a MIME object on the PS, meaning that the HTTP URI points to a predefined directory reserved for storing MIME objects and the request is an HTTP PUT request, the PS replaces any existing content referenced by the Request-URI with the content of the request. If the Request-URI points to an uncreated directory, the PS creates the directory, stores the content there and associates the content with the Request-URI. For all requests, i.e. HTTP PUT, HTTP GET and HTTP DELETE requests, the PS generates an appropriate response in accordance with RFC 7231 [52].
To receive 3GPP2 IP-CAN network presence information from the PNA, the PS shall support the XML extension defined in 3GPP2 X.S0027-004 [46].
5.3.3.4 Subscription acceptance to watcher information and notification of state changes
When the PS receives a SUBCRIBE request for the watcher information event template package, the PS shall first verify the identity of the source of the SUBSCRIBE request as described in 3GPP TS 24.229 [9] subclause 5.7.1.4, then perform authorization according to 3GPP TS 24.229 [9] subclause 5.7.1.5. In case of successful subscription, the PS shall generate a response to the SUBSCRIBE request and notifications in accordance with RFC 6665 [19], RFC 3857 [28] and RFC 3858 [29].
If the body of the SUBSCRIBE request from the PUA contains filters, the PS shall apply the requested filtering function on notifications in accordance with RFC 4661 [30], and RFC 4660 [31] as updated by RFC 6665 [19].
5.3.3.5 Subscription acceptance and notification of state changes in XML document
When the PS receives a SUBSCRIBE request having the Event header value "xcap-diff", the PS shall first verify the identity of the source of the SUBSCRIBE request as described in 3GPP TS 24.229 [9] subclause 5.7.1.4, then it shall perform authorization as described in 3GPP TS 24.229 [9] subclause 5.7.1.5. Afterwards, the PS shall generate a response to the SUBSCRIBE request and notifications in accordance with RFC 5875 [43] and RFC 6665 [19].
5.3.4 Resource List Server (RLS)
5.3.4.1 General
The Resource List Server (RLS) is an implementation of the presence list server. The RLS is an entity that accepts subscriptions to resource lists and sends notifications to update subscribers of the state of the resources in a resource list.
In addition to the procedures specified in subclause 5.3.4, the RLS shall support the procedures specified in 3GPP TS 24.229 [9] appropriate for an AS in which the RLS is implemented.
5.3.4.2 Subscription acceptance to resource lists and notification of state changes
When the RLS receives a SUBSCRIBE request for the presence information event package of a presentity collection, the RLS shall first verify the identity of the source of the SUBSCRIBE request as described in 3GPP TS 24.229 [9] subclause 5.7.1.4, then perform authorization according to 3GPP TS 24.229 [9] subclause 5.7.1.5. In case of successful subscription, the RLS shall generate a response to the SUBSCRIBE request and notifications in accordance with RFC 6665 [19] and RFC 4662 [22] by adding a Require header field with value "eventlist".
If the body of the SUBSCRIBE request from the watcher contains filters, the RLS shall apply the requested filtering function on notifications in accordance with RFC 4661 [30], and RFC 4660 [31] as updated by RFC 6665 [19].
5.3.4.3 Subscription to presence information
When the RLS receives a SUBSCRIBE request for the presence information event package of a presentity collection and installs the corresponding subscription, the RLS shall resolve the list URI to individual URIs and generate SUBSCRIBE requests for each of the individual URIs as per the procedures in RFC 6665 [19], RFC 3856 [27] and RFC 4662 [22] if the state information for the resource represented by the individual URI is otherwise not available.
For internal virtual subscriptions, the detection of loops potentially caused by lists of lists is possible in RLS. However for back-end subscriptions (see RFC 4662 [22]), the detection of such situations is not possible in RLS. To prevent loops in subscriptions to non-local resources the RLS shall not insert "eventlist" in the "Supported" header of back-end subscriptions.
5.3.4.4 Subscription acceptance and notification of state changes in XML document
When the RLS receives a SUBSCRIBE request having the Event header value "xcap-diff", the RLS shall first verify the identity of the source of the SUBSCRIBE request as described in 3GPP TS 24.229 [9] subclause 5.7.1.4, then it shall perform authorization as described in 3GPP TS 24.229 [9] subclause 5.7.1.5. Afterwards, the RLS shall generate a response to the SUBSCRIBE request and notifications in accordance with RFC 5875 [43] and RFC 6665 [19].
5.3.5 Presence Network Agent (PNA)
5.3.5.1 General
In addition to the procedures specified in subclause 5.3.5, the PNA shall support the procedures specified in 3GPP TS 24.229 [9] appropriate to the functional entity in which the PNA is implemented.
The PNA can collect presence information about the presentity from a number of core network entities. The PNA can combine information from various core network entities to form more complete presence information.
Among these core network entities, the S-CSCF uses SIP to deliver presence information to the PNA over the Pi reference point as specified in subclause 5.3.5.2.
NOTE: As part of the configuration of AS to provide a presence system, appropriate settings are downloaded to the initial filter criteria in the S-CSCF to ensure this occurs. The PNA will receive third-party REGISTER requests as specified in 3GPP TS 24.229 [9] subclauses 5.4.1.7 and 5.7.1.1.
5.3.5.2 Subscription to reg event package
On receiving a third-party REGISTER request which contains an Expires header with a non-zero value, the PNA shall, if no subscription already exists, subscribe to the reg event package for a particular user at the S-CSCF, as described in 3GPP TS 24.229 [9] subclause 5.7.1.1. As a result, the S-CSCF will then provide the presence-related information as reg event packages in NOTIFY requests to the PNA.
On receiving a third-party REGISTER request, the PNA may, if a subscription already exists, resubscribe to the reg event package for a particular user at the S-CSCF, as described in 3GPP TS 24.229 [9] subclause 5.7.1.1. As a result, the S-CSCF will then provide the presence-related information as reg event packages in NOTIFY requests to the PNA.
5.3.5.3 Publication of network presence information
To publish network presence information received from 3GPP2 IP-CAN, the PNA shall follow the procedures defined in 3GPP2 X.S0027-004 [46].