9A Functional Alias

24.3793GPPMission Critical Push To Talk (MCPTT) call controlProtocol specificationRelease 18TS

9A.1 General

Clause 9A.2 contains the procedures for management of Functional Alias at the MCPTT client, the MCPTT server serving the MCPTT user and the MCPTT server owning the Functional Alias.

Clause 9A.3 describes the coding used for management of Functional Aliases.

9A.2 Procedures

9A.2.1 MCPTT client procedures

9A.2.1.1 General

The MCPTT client procedures consist of:

– a functional alias status change procedure;

– a functional alias status determination procedure; and

– a location based functional alias status change procedure.

In order to obtain information about success or rejection of changes triggered by the functional alias status change procedure for an MCPTT user, the MCPTT client needs to initiate the functional alias status determination procedure for the MCPTT user before starting the functional alias status change procedure for the MCPTT user.

9A.2.1.2 Functional alias status change procedure

In order:

– to indicate that an MCPTT user requests to activate or to take-over one or more functional aliases;

– to indicate that the MCPTT user requests to deactivate one or more functional aliases;

– to indicate that the MCPTT user continues to have interest in one or more functional aliases due to near expiration of the expiration time of a functional alias with the status set to the "activated" state received in a SIP NOTIFY request in clause 9A.2.1.3;

– to indicate that the MCPTT client entering into or exiting from a location area triggers one or more functional aliases to be activated;

– to indicate that the MCPTT client entering into or exiting from a location area triggers one or more functional aliases to be deactivated; or

– any combination of the above;

the MCPTT client shall generate a SIP PUBLISH request according to 3GPP TS 24.229 [4], IETF RFC 3903 [37], and IETF RFC 3856 [51].

When the MCPTT user requests to deactivate a functional alias, the MCPTT client shall first check the <manual-deactivation-not-allowed-if-location-criteria-met> element within the <anyExt> element of the <entry> element corresponding to the functional alias within the <FunctionalAliasList> list element of the <anyExt> element of the <OnNetwork> element of the MCPTT user profile document (see the MCPTT user profile document in 3GPP TS 24.484 [50]). If the functional alias has been activated due to a location area trigger and the <manual-deactivation-not-allowed-if-location-criteria-met> element is set to a value of "true", the MCPTT client shall suppress the MCPTT user’s request.

NOTE 1: If the request is suppressed, a notification message can be displayed to the user.

In the SIP PUBLISH request, the MCPTT client:

1) shall set the Request-URI to the public service identity identifying the originating participating MCPTT function serving the MCPTT user;

2) shall include an application/vnd.3gpp.mcptt-info+xml MIME body. In the application/vnd.3gpp.mcptt-info+xml MIME body, the MCPTT client shall include the <mcptt-request-uri> element set to the MCPTT ID of the MCPTT user;

3) shall include the ICSI value "urn:urn-7:3gpp-service.ims.icsi.mcptt" (coded as specified in 3GPP TS 24.229 [4]), in a P-Preferred-Service header field according to IETF RFC 6050 [9];

4) if the MCPTT client requests to activate one or more functional aliases, shall set the Expires header field according to IETF RFC 3903 [37], to 4294967295;

NOTE 2: 4294967295, which is equal to 232-1, is the highest value defined for Expires header field in IETF RFC 3261 [24].

5) if the MCPTT client requests to deactivate one or more functional aliases, shall set the Expires header field according to IETF RFC 3903 [37], to zero; and

NOTE 3: Activation and deactivation of functional alias cannot be performed with the same PUBLISH request.

6) shall include an application/pidf+xml MIME body indicating per-user functional alias information according to clause 9A.3.1. In the MIME body, the MCPTT client:

a) shall include all functional aliases where the MCPTT user requests activation for the MCPTT ID;

b) shall include the MCPTT client ID of the targeted MCPTT client;

c) shall not include the "status" attribute and the "expires" attribute in the <>functionalAlias element;

d) if the MCPTT client has received an indication that take over of a functional alias is possible and intends to take over a functional alias, shall include a <take-over> child element in the <status> element set to "true"; and

NOTE 4: The MCPTT client learns that take over of a functional alias is possible from procedures specified in clause 9A.2.1.3 (i.e., when status attribute is set to "take-over-possible"). The take-over indication applies to all functional aliases.

e) shall set the <p-id-fa> child element of the <presence> root element to a globally unique value.

NOTE 5: This procedure deviates from IETF RFC 3903 [37] by possibly including an application/pidf+xml MIME body when refreshing the expiration time for one or more functional aliases. The use of this MIME body provides the ability to refresh activation or to deactivate of multiple functional aliases in a single message.

The MCPTT client shall send the SIP PUBLISH request according to 3GPP TS 24.229 [4].

9A.2.1.3 Functional alias status determination procedure

NOTE 1: The MCPTT UE also uses this procedure to determine which functional alias have been successfully activated for the MCPTT ID.

In order to discover functional aliases:

1) which are activated for the MCPTT user or which the MCPTT user is allowed to take-over; or

2) which another MCPTT user has activated;

the MCPTT client shall generate an initial SIP SUBSCRIBE request according to 3GPP TS 24.229 [4], IETF RFC 3856 [51], and IETF RFC 6665 [26].

In the SIP SUBSCRIBE request, the MCPTT client:

1) shall set the Request-URI to the public service identity identifying the originating participating MCPTT function serving the MCPTT user;

2) shall include an application/vnd.3gpp.mcptt-info+xml MIME body. In the application/vnd.3gpp.mcptt-info+xml MIME body, the MCPTT client shall include:

a) the <mcptt-request-uri> element set to the MCPTT ID of the targeted MCPTT user; and

b) the <request-type> element in the <anyExt> element of the <mcptt-Params> element of the <mcpttinfo> element set to the value "functional-alias-status-determination";

3) shall include the ICSI value "urn:urn-7:3gpp-service.ims.icsi.mcptt" (coded as specified in 3GPP TS 24.229 [4]), in a P-Preferred-Service header field according to IETF RFC 6050 [9];

4) if the MCPTT client wants to receive the current status and later notification, shall set the Expires header field according to IETF RFC 6665 [26], to 4294967295;

NOTE 2: 4294967295, which is equal to 232-1, is the highest value defined for Expires header field in IETF RFC 3261 [24].

5) if the MCPTT client wants to fetch the current state only, shall set the Expires header field according to IETF RFC 6665 [26], to zero;

6) shall include an Events header field set to "presence"; and

7) shall include an Accept header field containing the application/pidf+xml MIME type.

In order to re-subscribe or de-subscribe, the MCPTT client shall generate an in-dialog SIP SUBSCRIBE request according to 3GPP TS 24.229 [4], IETF RFC 3856 [51], and IETF RFC 6665 [26]. In the SIP SUBSCRIBE request, the MCPTT client:

1) if the MCPTT client wants to receive the current status and later notification, shall set the Expires header field according to IETF RFC 6665 [26], to 4294967295;

NOTE 3: 4294967295, which is equal to 232-1, is the highest value defined for Expires header field in IETF RFC 3261 [24].

2) if the MCPTT client wants to de-subscribe, shall set the Expires header field according to IETF RFC 6665 [26], to zero;

3) shall include an Events header field set to "presence"; and

4) shall include an Accept header field containing the application/pidf+xml MIME type.

Upon receiving a SIP NOTIFY request according to 3GPP TS 24.229 [4], IETF RFC 3856 [51], and IETF RFC 6665 [26], if SIP NOTIFY request contains an application/pidf+xml MIME body indicating per-user functional alias information constructed according to clause 9A.3.1, then the MCPTT client shall determine the status of each functional alias for the MCPTT user in the MIME body. If the <p-id-fa> child element of the <presence> root element of the application/pidf+xml MIME body of the SIP NOTIFY request is included, the <p-id-fa> element value indicates the SIP PUBLISH request which triggered sending of the SIP NOTIFY request.

If the MCPTT client detected a functional alias activation or deactivation, it shall perform the procedure specified in clause 9.2.1.7.

9A.2.1.4 Location based functional alias status change procedure

If a location criterion for functional alias activation or de-activation is met, the MCPTT client shall initiate the functional alias status change procedure as specified in clause 9A.2.1.2.

9A.2.2 MCPTT server procedures

9A.2.2.1 General

The MCPTT server procedures consist of:

– procedures of MCPTT server serving the MCPTT user; and

– procedures of MCPTT server owning the functional alias.

9A.2.2.2 Procedures of MCPTT server serving the MCPTT user

9A.2.2.2.1 General

The procedures of MCPTT server serving the MCPTT user consist of:

– a receiving functional alias status change from MCPTT client procedure;

– a receiving subscription to functional alias status procedure;

– a sending notification of change of functional alias status procedure;

– a sending functional alias status change towards MCPTT server owning the functional procedure;

– a functional alias status determination from MCPTT server owning the functional alias procedure;

– a functional alias resolution from MCPTT server owning the functional alias procedure; and

– a forwarding subscription to functional alias status towards another MCPTT server procedure, which is used to identify the status of functional aliases activated by a target user who is served by another MCPTT server.

9A.2.2.2.2 Stored information

The MCPTT server shall maintain a list of MCPTT user information entries. The list of the MCPTT user information entries contains one MCPTT user information entry for each served MCPTT ID.

In each MCPTT user information entry, the MCPTT server shall maintain:

1) an MCPTT ID. This field uniquely identifies the MCPTT user information entry in the list of the MCPTT user information entries; and

2) a list of functional alias information entries.

In each functional alias information, the MCPTT server shall maintain:

1) a functional alias ID. This field uniquely identifies the functional alias information entry in the list of the functional alias information entries;

2) a functional alias status;

3) an expiration time;

4) a functional alias p-id-fa; and

5) a next publishing time.

9A.2.2.2.3 Receiving functional alias status change from MCPTT client procedure

Upon receiving a SIP PUBLISH request such that:

1) Request-URI of the SIP PUBLISH request contains either the public service identity identifying the originating participating MCPTT function serving the MCPTT user, or the public service identity identifying the terminating participating MCPTT function serving the MCPTT user;

2) the SIP PUBLISH request contains an application/vnd.3gpp.mcptt-info+xml MIME body containing the<mcptt-request-uri> element which identifies an MCPTT ID served by the MCPTT server;

3) the ICSI value "urn:urn-7:3gpp-service.ims.icsi.mcptt" (coded as specified in 3GPP TS 24.229 [4]), in a P-Asserted-Service header field according to IETF RFC 6050 [9];

4) the Event header field of the SIP PUBLISH request contains the "presence" event type; and

5) SIP PUBLISH request contains an application/pidf+xml MIME body indicating per-user functional alias information according to clause 9A.3.1;

then the MCPTT server:

1) shall identify the served MCPTT ID in the <mcptt-request-uri> element of the application/vnd.3gpp.mcptt-info+xml MIME body of the SIP PUBLISH request;

2) if the Request-URI of the SIP PUBLISH request contains the public service identity identifying the originating participating MCPTT function serving the MCPTT user, shall identify the originating MCPTT ID from public user identity in the P-Asserted-Identity header field of the SIP PUBLISH request;

3) if the Request-URI of the SIP PUBLISH request contains the public service identity identifying the terminating participating MCPTT function serving the MCPTT user, shall identify the originating MCPTT ID in the <mcptt-calling-user-id> element of the application/vnd.3gpp.mcptt-info+xml MIME body of the SIP PUBLISH request;

4) if the originating MCPTT ID is different than the served MCPTT ID or the originating MCPTT ID is not authorized to modify functional alias status of the served MCPTT ID, shall send a SIP 403 (Forbidden) response and shall not continue with the rest of the steps;

5) if the Expires header field of the SIP PUBLISH request is not included or has nonzero value lower than 4294967295, shall send a SIP 423 (Interval Too Brief) response to the SIP PUBLISH request, where the SIP 423 (Interval Too Brief) response contains a Min-Expires header field set to 4294967295, and shall not continue with the rest of the steps;

6) if the Expires header field of the SIP PUBLISH request has nonzero value, shall determine the candidate expiration interval to according to IETF RFC 3903 [37];

7) if the Expires header field of the SIP PUBLISH request has zero value, shall set the candidate expiration interval to zero;

8) shall respond with SIP 200 (OK) response to the SIP PUBLISH request according to 3GPP TS 24.229 [4], IETF RFC 3903 [37]. In the SIP 200 (OK) response, the MCPTT server:

a) shall set the Expires header field according to IETF RFC 3903 [37], to the candidate expiration time;

9) if the "entity" attribute of the <presence> element of the application/pidf+xml MIME body of the SIP PUBLISH request is different than the served MCPTT ID, shall not continue with the rest of the steps;

10) shall consider an MCPTT user information entry such that:

a) the MCPTT user information entry is in the list of MCPTT user information entries described in clause 9A.2.2.2.2; and

b) the MCPTT ID of the MCPTT user information entry is equal to the served MCPTT ID;

as the served MCPTT user information entry;

11) shall consider a copy of the list of the MCPTT functional alias entries of the served MCPTT user information entry as the served list of the MCPTT functional alias information entries;

12) if the candidate expiration interval is nonzero, shall construct the candidate list of the MCPTT functional alias entries as follows:

a) for each functional alias ID which has a functional alias information entry in the served list of the functional alias information entries, such that the expiration time of the functional alias information entry has not expired yet, and which is indicated in a "functionalAliasID" attribute of a <functionalAlias> element of the <status> element of the <tuple> element of the <presence> root element of the application/pidf+xml MIME body of the SIP PUBLISH request:

i) shall copy the functional alias information entry into a new functional alias information entry of the candidate list of the functional alias information entries;

ii) if the functional alias status of the functional alias information entry is "deactivating" or "deactivated", shall set the functional alias status of the new functional alias information entry to the "activated" state and shall set the activating p-id-fa of the new functional alias information entry to the value of the <p-id-fa> element of the <presence> root element of the application/pidf+xml MIME body of the SIP PUBLISH request; and

iii) shall set the expiration time of the new functional alias information entry to the current time increased with the candidate expiration interval;

b) for each functional alias ID which has a functional alias information entry in the served list of the functional alias information entries, such that the expiration time of the functional alias information entry has not expired yet, and which is not indicated in any "functionalAliasID" attribute of the <functionalAlias> element of the <status> element of the <tuple> element of the <presence> root element of the application/pidf+xml MIME body of the SIP PUBLISH request:

i) shall copy the functional alias information entry into a new functional alias information entry of the candidate list of the functional alias information entries; and

ii) if the functional alias status of the functional alias information entry is "activated" or "activating":

– shall set the functional alias status of the new functional alias entry to the "deactivating" state; and

– shall set the expiration time of the new functional alias information entry to the current time increased with twice the value of timer F; and

c) for each functional alias ID:

i) which does not have a functional alias information entry in the served list of the functional alias entries; or

ii) which has a functional alias information entry in the served list of the functional alias information entries, such that the expiration time of the functional alias information entry has already expired;

and which is indicated in a "functionalAliasID" attribute of the <functionalAlias> element of the <status> element of the <tuple> element of the <presence> root element of the application/pidf+xml MIME body of the SIP PUBLISH request:

i) shall add a new functional alias information entry in the candidate list of the functional alias information list for the functional alias ID;

ii) shall set the functional alias status of the new functional alias information entry to the "activating" state;

iii) shall set the expiration time of the new functional alias information entry to the current time increased with the candidate expiration interval; and

iv) shall set the activating p-id-fa of the new functional alias information entry to the value of the <p-id-fa> element of the <presence> root element of the application/pidf+xml MIME body of the SIP PUBLISH request;

13) if the candidate expiration interval is zero, constructs the candidate list of the functional alias information entries as follows:

a) for each functional alias ID which has an entry in the served list of the functional alias information entries:

i) shall copy the functional alias entry of the served list of the functional alias information into a new functional alias information entry of the candidate list of the functional alias information entries;

ii) shall set the functional alias status of the new functional alias information entry to the "deactivating" state; and

iii) shall set the expiration time of the new functional alias information entry to the current time increased with twice the value of timer F;

14) shall replace the list of the functional alias information entries stored in the served MCPTT user information entry with the candidate list of the functional alias information entries;

15) shall perform the procedures specified in clause 9A.2.2.2.6 for the served MCPTT ID and each functional alias:

a) which does not have a functional alias information entry in the served list of the functional alias information entries and which has a functional alias information entry in the candidate list of the functional alias information entries with the functional alias status set to the "activating" state;

b) which has a functional alias information entry in the served list of the functional alias information entries with the expiration time already expired, and which has a functional alias information entry in the candidate list of the functional alias information entries with the functional alias status set to the "activating" state;

c) which has a functional alias information entry in the served list of the functional alias information entries with the functional alias status set to the "deactivating" state or the "deactivated" state and with the expiration time not expired yet, and which has an functional alias information entry in the candidate list of the functional alias information entries with the functional alias status set to the "activating" state; or

d) which has a functional alias information entry in the served list of the functional alias information entries with the functional alias status set to the "activated" state and with the expiration time not expired yet, and which has an functional alias information entry in the candidate list of the functional alias information entries with the functional alias status set to the "deactivating" state;

16) shall identify the handled p-id-fa in the <p-id-fa> child element of the <presence> root element of the application/pidf+xml MIME body of the SIP PUBLISH request; and

17) shall perform the procedures specified in clause 9A.2.2.2.5 for the served MCPTT ID.

9A.2.2.2.4 Receiving subscription to functional alias status procedure

Upon receiving a SIP SUBSCRIBE request such that:

1) Request-URI of the SIP SUBSCRIBE request contains either the public service identity identifying the originating participating MCPTT function serving the MCPTT user, or the public service identity identifying the terminating participating MCPTT function serving the MCPTT user;

2) the SIP SUBSCRIBE request contains an application/vnd.3gpp.mcptt-info+xml MIME body containing:

a) the<mcptt-request-uri> element which identifies an MCPTT ID served by the MCPTT server; and

b) the <mcpttinfo> element with the <mcptt-Params> element containing an <anyExt> element with the <request-type> element set to a value of "functional-alias-status-determination";

3) the ICSI value "urn:urn-7:3gpp-service.ims.icsi.mcptt" (coded as specified in 3GPP TS 24.229 [4]), in a P-Asserted-Service header field according to IETF RFC 6050 [9]; and

4) the Event header field of the SIP SUBSCRIBE request contains the "presence" event type;

the MCPTT server:

1) shall identify the served MCPTT ID in the <mcptt-request-uri> element of the application/vnd.3gpp.mcptt-info+xml MIME body of the SIP SUBSCRIBE request;

2) if the Request-URI of the SIP SUBSCRIBE request contains the public service identity identifying the originating participating MCPTT function serving the MCPTT user, shall identify the originating MCPTT ID from public user identity in the P-Asserted-Identity header field of the SIP SUBSCRIBE request;

3) if the Request-URI of the SIP SUBSCRIBE request contains the public service identity identifying the terminating participating MCPTT function serving the MCPTT user, shall identify the originating MCPTT ID in the <mcptt-calling-user-id> element of the application/vnd.3gpp.mcptt-info+xml MIME body of the SIP SUBSCRIBE request;

4) if the originating MCPTT ID is different than the served MCPTT ID and the originating MCPTT ID is not authorized to modify functional alias status of the served MCPTT ID, shall send a SIP 403 (Forbidden) response and shall not continue with the rest of the steps; and

5) shall generate a SIP 200 (OK) response to the SIP SUBSCRIBE request according to 3GPP TS 24.229 [4], IETF RFC 6665 [26].

For the duration of the subscription, the MCPTT server shall notify the subscriber about changes of the information of the served MCPTT ID, as described in clause 9A.2.2.2.5.

9A.2.2.2.5 Sending notification of change of functional alias status procedure

In order to notify the subscriber about changes of functional aliases of the served MCPTT ID, the MCPTT server:

1) shall consider an MCPTT user information entry such that:

a) the MCPTT user information entry is in the list of MCPTT user information entries described in clause 9A.2.2.2.2; and

b) the MCPTT ID of the MCPTT user information entry is equal to the served MCPTT ID;

as the served MCPTT user information entry;

2) shall generate an application/pidf+xml MIME body indicating per-user functional alias information according to clause 9A.3.1 and the served list of the MCPTT user information entries with the following clarifications:

a) the MCPTT server shall not include information from functional alias information entry with the expiration time already expired;

b) the MCPTT server shall not include information from a functional alias information entry with the functional alias status set to the "deactivated" state;

c) if this procedures is invoked by procedure in clause 9A.2.2.2.3 where the handled p-id-fa value was identified, the MCPTT server shall set the <p-id-fa> child element of the <presence> root element of the application/pidf+xml MIME body of the SIP NOTIFY request to the handled p-id-fa value; and

3) send a SIP NOTIFY request according to 3GPP TS 24.229 [4], and IETF RFC 6665 [26] for the subscription created in clause 9A.2.2.2.4. In the SIP NOTIFY request, the MCPTT server shall include the generated application/pidf+xml MIME body indicating per-user functional alias information.

9A.2.2.2.6 Sending functional alias status change towards MCPTT server owning the functional alias procedure

NOTE 1: Usage of one SIP PUBLISH request to carry information about change of functional alias state of several MCPTT users served by the same MCPTT server is not supported in this version of the specification.

In order:

– to send an activation request of a served MCPTT ID for a handled functional alias ID;

– to send a deactivation request of a served MCPTT ID for a handled functional alias ID;

– to send a take over request of a served MCPTT ID for a handled functional alias ID due to take over; or

– to send an activation request of a served MCPTT ID for a handled functional alias ID due to near expiration of the previously published information;

the MCPTT server shall generate a SIP PUBLISH request according to 3GPP TS 24.229 [4], IETF RFC 3903 [37] and IETF RFC 3856 [51]. In the SIP PUBLISH request, the MCPTT server:

1) shall set the Request-URI to the public service identity of the controlling MCPTT function associated with the handled functional alias ID;

2) shall include an application/vnd.3gpp.mcptt-info+xml MIME body. In the application/vnd.3gpp.mcptt-info+xml MIME body, the MCPTT server:

a) shall include the <mcptt-request-uri> element set to the handled functional alias ID; and

b) shall include the <mcptt-calling-user-id> element set to the served MCPTT ID;

3) shall include the ICSI value "urn:urn-7:3gpp-service.ims.icsi.mcptt" (coded as specified in 3GPP TS 24.229 [4]), in a P-Asserted-Service header field according to IETF RFC 6050 [9];

4) if sending an activation request, shall set the Expires header field according to IETF RFC 3903 [37], to 4294967295;

NOTE 2: 4294967295, which is equal to 232-1, is the highest value defined for Expires header field in IETF RFC 3261 [24].

5) if sending a deactivation request, shall set the Expires header field according to IETF RFC 3903 [37], to zero;

6) shall include a P-Asserted-Identity header field set to the public service identity of the MCPTT server according to 3GPP TS 24.229 [4];

7) shall set the current p-id-fa to a globally unique value;

8) shall consider an MCPTT user information entry such that:

a) the MCPTT user information entry is in the list of MCPTT user information entries described in clause 9A.2.2.2.2; and

b) the MCPTT ID of the MCPTT user information entry is equal to the served MCPTT ID;

as the served MCPTT user information entry;

9) for each functional alias information entry such that:

a) the functional alias information entry has the "activating" functional alias status, the functional alias ID set to the handled functional alias ID, the expiration time has not expired yet and the activating p-id-fa is not set; and

b) the functional alias information entry is in the list of the functional alias information entries of the served MCPTT user information entry;

shall set the activating p-id-fa of the functional alias information entry to the current p-id-fa; and

10) shall include an application/pidf+xml MIME body indicating per-functional alias status information constructed according to clause 9A.3.1.2. The MCPTT server shall indicate all served MCPTT user IDs, such that:

a) the functional alias status is set to "activating" with or without "take-over" element or "activated", and the expiration time has not expired yet in a functional alias information entry with the functional alias ID set to the handled functional alias;

b) the functional alias information entry is in the list of the functional alias information entries of an MCPTT user information entry; and

c) the MCPTT user information entry is a served MCPTT user information entry.

The MCPTT server shall set the <p-id-fa> child element of the <presence> root element to the current p-id-fa.

The MCPTT server shall not include the "expires" attribute in the <functionalAlias> element.

NOTE 3: The MCPTT server sets the "status" attribute in the <functionalAlias> element to indicate whether the request is for functional alias take over.

The MCPTT server shall send the SIP PUBLISH request according to 3GPP TS 24.229 [4].

If timer F expires for the SIP PUBLISH request sent for a (de)activation request of served MCPTT ID for the functional alias ID or upon receiving a SIP 3xx, 4xx, 5xx or 6xx response to the SIP PUBLISH request, the MCPTT server:

1) shall remove each functional alias ID entry such that:

a) the functional alias information entry has the functional alias ID set to the handled functional alias ID; and

b) the functional alias information entry is in the list of the functional alias information entries of the served MCPTT user information entry.

9A.2.2.2.7 Functional alias status determination from MCPTT server owning functional alias procedure

NOTE 1: Usage of one SIP SUBSCRIBE request to subscribe for notification about change of functional alias state of several MCPTT users served by the same MCPTT server is not supported in this version of the specification.

In order to discover whether a served MCPTT user successfully activated a handled functional alias in the MCPTT server owning the functional alias, the MCPTT server shall generate an initial SIP SUBSCRIBE request according to 3GPP TS 24.229 [4], IETF RFC 3856 [51], and IETF RFC 6665 [26].

In the SIP SUBSCRIBE request, the MCPTT server:

1) shall set the Request-URI to the public service identity of the controlling MCPTT function associated with the handled functional alias;

2) shall include an application/vnd.3gpp.mcptt-info+xml MIME body. In the application/vnd.3gpp.mcptt-info+xml MIME body, the MCPTT server:

a) shall include the <mcptt-request-uri> element set to the handled functional alias ID; and

b) shall include the <mcptt-calling-user-id> element set to the served MCPTT ID;

3) shall include the ICSI value "urn:urn-7:3gpp-service.ims.icsi.mcptt" (coded as specified in 3GPP TS 24.229 [4]), in a P-Asserted-Service header field according to IETF RFC 6050 [9];

4) if the MCPTT server wants to receive the current status and later notification, shall set the Expires header field according to IETF RFC 6665 [26], to 4294967295;

NOTE 2: 4294967295, which is equal to 232-1, is the highest value defined for Expires header field in IETF RFC 3261 [24].

5) if the MCPTT server wants to fetch the current state only, shall set the Expires header field according to IETF RFC 6665 [26], to zero;

6) shall include an Accept header field containing the application/pidf+xml MIME type;

7) shall include an Events header field set to "presence"; and

8) shall include an application/simple-filter+xml MIME body indicating per-user restrictions of presence event package notification information according to clause 9A.3.2, indicating the served MCPTT ID.

In order to re-subscribe or de-subscribe, the MCPTT server shall generate an in-dialog SIP SUBSCRIBE request according to 3GPP TS 24.229 [4], IETF RFC 3856 [51], and IETF RFC 6665 [26]. In the SIP SUBSCRIBE request, the MCPTT server:

1) if the MCPTT server wants to receive the current status and later notification, shall set the Expires header field according to IETF RFC 6665 [26], to 4294967295;

NOTE 3: 4294967295, which is equal to 232-1, is the highest value defined for Expires header field in IETF RFC 3261 [24].

2) if the MCPTT server wants to de-subscribe, shall set the Expires header field according to IETF RFC 6665 [26], to zero;

3) shall include an Events header field set to "presence"; and

4) shall include an Accept header field containing the application/pidf+xml MIME type.

Upon receiving a SIP NOTIFY request according to 3GPP TS 24.229 [4], IETF RFC 3856 [51], and IETF RFC 6665 [26], if SIP NOTIFY request contains an application/pidf+xml MIME body indicating per-functional alias information constructed according to clause 9A.3.1, then the MCPTT server:

1) for each served MCPTT ID such that the application/pidf+xml MIME body of SIP NOTIFY request contains:

a) a <tuple> element of the root <presence> element;

b) the "id" attribute of the <tuple> element indicating the served MCPTT ID;

c) an <functionalAlias> child element of the <status> element of the <tuple> element; and

d) the "expires" attribute of the <functionalAlias> element indicating expiration of activation of functional alias;

perform the following:

a) if a functional alias information entry exists such that:

i) the functional alias information entry has the "activating" functional alias status, the functional alias ID set to the handled functional alias ID, and the expiration time has not expired yet;

ii) the functional alias information entry is in the list of the functional alias information entries of an MCPTT user information entry with the MCPTT ID set to the served MCPTT ID; and

iii) the MCPTT user information entry is in the list of MCPTT user information entries described in clause 9A.2.2.2.2;

shall set the functional alias status of the functional alias information entry to "activated"; and

shall set the next publishing time of the functional alias information entry to the current time and half of the time between the current time and the expiration of the functional alias; and

2) for each functional alias information entry such that:

a) the functional alias information entry has the "activated" functional alias status or the "deactivating" functional alias status, the functional alias ID set to the handled functional alias ID, and the expiration time has not expired yet;

b) the functional alias information entry is in the list of the functional alias information entries of an MCPTT user information entry with the MCPTT ID set to a served MCPTT ID; and

c) the MCPTT user information entry is in the list of MCPTT user information entries described in clause 9A.2.2.2.2; and

for which the application/pidf+xml MIME body of SIP NOTIFY request does not contain:

a) a <tuple> element of the root <presence> element;

b) the "id" attribute of the <tuple> element indicating the served MCPTT ID; and

c) an <functionalAlias> child element of the <status> child element of the <tuple> element.

perform the following:

a) shall set the functional alias status of the functional alias information entry to "deactivated"; and

b) shall set the expiration time of the functional alias information entry to the current time; and

3) if a <p-id-fa> element is included in the <presence> root element of the application/pidf+xml MIME body of the SIP NOTIFY request, then for each functional alias information entry such that:

a) the functional alias information entry has the "activating" functional alias status, the functional alias ID set to the handled functional alias ID, the expiration time has not expired yet and with the activating p-id-fa set to the value of the <p-id-fa> element;

b) the functional alias information entry is in the list of the functional alias information entries of an MCPTT user information entry with the MCPTT ID set to a served MCPTT ID; and

d) the MCPTT user information entry is in the list of MCPTT user information entries described in clause 9A.2.2.2.2; and

for which the application/pidf+xml MIME body of SIP NOTIFY request does not contain:

a) a <tuple> element of the root <presence> element;

b) the "id" attribute of the <tuple> element indicating the served MCPTT ID; and

c) an <functionalAlias> child element of the <status> child element of the <tuple> element;

perform the following:

a) shall set the functional alias status of the functional alias information entry to "deactivated"; and

b) shall set the expiration time of the functional alias information entry to the current time.

9A.2.2.2.8 Functional alias resolution from MCPTT server owning the functional alias procedure

In order to discover the MCPTT users that have successfully activated a handled functional alias in the MCPTT server owning the functional alias, the MCPTT server shall generate an initial SIP SUBSCRIBE request according to 3GPP TS 24.229 [4], IETF RFC 3856 [51], and IETF RFC 6665 [26].

In the SIP SUBSCRIBE request, the MCPTT server:

1) shall set the Request-URI to the public service identity of the controlling MCPTT function associated with the handled functional alias;

2) shall include an application/vnd.3gpp.mcptt-info+xml MIME body. In the application/vnd.3gpp.mcptt-info+xml MIME body, the MCPTT server shall include the <mcptt-request-uri> element set to the handled functional alias ID;

3) shall include the ICSI value "urn:urn-7:3gpp-service.ims.icsi.mcptt" (coded as specified in 3GPP TS 24.229 [4]), in a P-Asserted-Service header field according to IETF RFC 6050 [9];

4) shall set the Expires header field according to IETF RFC 6665 [26] to zero;

NOTE: if the MCPTT server wants to receive the current status and later notification, can set the Expires header field according to IETF RFC 6665 [26], to 4294967295, which is the highest value defined for Expires header field in IETF RFC 3261 [24].

5) shall include an Accept header field containing the application/pidf+xml MIME type;

6) shall include an Events header field set to "presence"; and

7) shall include an application/simple-filter+xml MIME body indicating per-functional alias restrictions of presence event package notification information indicating the served functional alias.

9A.2.2.2.9 Forwarding subscription to functional alias status towards another MCPTT server procedure

Upon receiving a SIP SUBSCRIBE request such that:

1) Request-URI of the SIP SUBSCRIBE request contains the public service identity identifying the originating participating MCPTT function serving the MCPTT user;

2) the SIP SUBCRIBE request contains an application/vnd.3gpp.mcptt-info MIME body containing the<mcptt-request-uri> element which identifies an MCPTT ID not served by MCPTT server;

3) the ICSI value "urn:urn-7:3gpp-service.ims.icsi.mcptt" (coded as specified in 3GPP TS 24.229 [4]), in a P-Asserted-Service header field according to IETF RFC 6050 [9]; and

4) the Event header field of the SIP SUBSCRIBE request contains the "presence" event type;

then the MCPTT server:

1) shall identify the target MCPTT ID in the <mcptt-request-uri> element of the application/vnd.3gpp.mcptt-info MIME body of the SIP SUBSCRIBE request;

2) shall identify the originating MCPTT ID from public user identity in the P-Asserted-Identity header field of the SIP SUBSCRIBE request;

3) shall generate a SIP SUBSCRIBE request from the received SIP SUBSCRIBE request. In the generated SIP SUBSCRIBE request, the MCPTT server:

a) shall set the Request-URI to the public service identity identifying the terminating participating MCPTT function serving the target MCPTT ID;

b) shall include a P-Asserted-Identity header field containing the public service identity identifying the originating participating MCPTT function serving the MCPTT user;

c) shall include an application/vnd.3gpp.mcptt-info+xml MIME body. In the application/vnd.3gpp.mcptt-info+xml MIME body, the MCPTT server:

A) shall include the <mcptt-request-uri> element set to the target MCPTT ID; and

B) shall include the <mcptt-calling-user-id> element set to the originating MCPTT ID; and

d) shall include other signalling elements from the received SIP SUBSCRIBE request; and

4) shall send the generated SIP SUBSCRIBE request according to 3GPP TS 24.229 [4].

The MCPTT server shall forward to the originating MCPTT ID any received SIP responses to the SIP SUBSCRIBE request, and for the duration of the subscription any received SIP NOTIFY requests and any received SIP responses to the SIP NOTIFY request according to 3GPP TS 24.229 [4].

9A.2.2.3 Procedures of MCPTT server owning the Functional alias

9A.2.2.3.1 General

The procedures of MCPTT server owning the functional alias consist of:

– receiving functional alias status change procedure;

– receiving subscription to functional alias status procedure;

– sending notification of change of functional alias status procedure;

– modification of functional alias eligibility check procedure; and

– receiving subscription to functional alias resolution procedure; and

– sending notification of functional alias resolution procedure.

9A.2.2.3.2 Stored information

The MCPTT server shall maintain a list of functional alias information entries.

In each functional alias information entry, the MCPTT server shall maintain:

1) a functional alias ID. This field uniquely identifies the functional alias information entry in the list of the functional alias information entries; and

2) a list of MCPTT user information entries.

In each MCPTT user information entry, the MCPTT server shall maintain:

1) an MCPTT ID. This field uniquely identifies the MCPTT user information entry in the list of the MCPTT user information entries;

2) a take-over possible indication; and

3) an expiration time.

9A.2.2.3.3 Receiving functional alias status change procedure

Upon receiving a SIP PUBLISH request such that:

1) Request-URI of the SIP PUBLISH request contains the public service identity of the controlling MCPTT function associated with the served functional alias;

2) the SIP PUBLISH request contains an application/vnd.3gpp.mcptt-info+xml MIME body containing the <mcptt-request-uri> element and the <mcptt-calling-user-id> element;

3) the ICSI value "urn:urn-7:3gpp-service.ims.icsi.mcptt" (coded as specified in 3GPP TS 24.229 [4]), in a P-Asserted-Service header field according to IETF RFC 6050 [9];

4) the Event header field of the SIP PUBLISH request contains the "presence" event type; and

5) SIP PUBLISH request contains an application/pidf+xml MIME body indicating per-functional alias information constructed according to clause 9A.3.1.2;

then the MCPTT server:

1) shall identify the served functional alias in the <mcptt-request-uri> element of the application/vnd.3gpp.mcptt-info+xml MIME body of the SIP PUBLISH request;

2) shall identify the handled MCPTT ID in the <mcptt-calling-user-id> element of the application/vnd.3gpp.mcptt-info+xml MIME body of the SIP PUBLISH request;

3) if the Expires header field of the SIP PUBLISH request is not included or has nonzero value lower than 4294967295, shall send a SIP 423 (Interval Too Brief) response to the SIP PUBLISH request, where the SIP 423 (Interval Too Brief) response contains a Min-Expires header field set to 4294967295, and shall not continue with the rest of the steps;

4) if the functional alias does not exist in the MCPTT server, shall reject the SIP PUBLISH request with SIP 403 (Forbidden) response to the SIP PUBLISH request according to 3GPP TS 24.229 [4], IETF RFC 3903 [37] and IETF RFC 3856 [51] and skip the rest of the steps;

4a) if SIP PUBLISH request is for activation of a functional alias then:

a) if handled MCPTT ID does not match with any of the entries in the <mcptt-user-list> which contains the MCPTT IDs of MCPTT users which are allowed to activate the functional alias; or

b) if no local policy exists that authorizes the request by the handled MCPTT ID;

shall reject the SIP PUBLISH request with SIP 403 (Forbidden) response according to 3GPP TS 24.229 [4], IETF RFC 3903 [37] and IETF RFC 3856 [51] and skip the rest of the steps;

5) if SIP PUBLISH request is for activation of a functional alias and the number of activations for the handled functional alias is equal <max-simultaneous-activations>, shall reject the SIP PUBLISH request with SIP 403 (Forbidden) response to the SIP PUBLISH request according to 3GPP TS 24.229 [4], IETF RFC 3903 [37] and IETF RFC 3856 [51] and skip the rest of the steps;

6) if SIP PUBLISH request is for take over of a functional alias, the MCPTT server shall use the <allow-takeover> element of the MCPTT service configuration document and the <allow-takeover-functional-alias-other-user> element of the MCPTT user profile document (see 3GPP TS 24.484 [50]) to determine if take over is possible. If take over is not possible, the MCPTT server shall reject the SIP PUBLISH request with SIP 403 (Forbidden) response to the SIP PUBLISH request according to 3GPP TS 24.229 [4], IETF RFC 3903 [37] and IETF RFC 3856 [51] and skip the rest of the steps;

7) shall respond with SIP 200 (OK) response to the SIP PUBLISH request according to 3GPP TS 24.229 [4], IETF RFC 3903 [37]. In the SIP 200 (OK) response, the MCPTT server:

a) shall set the Expires header field according to IETF RFC 3903 [37], to the selected expiration time;

8) if the "entity" attribute of the <presence> element of the application/pidf+xml MIME body of the SIP PUBLISH request is different than the served functional alias ID, shall not continue with the rest of the steps;

9) if the handled MCPTT ID is different from the MCPTT ID in the "id" attribute of the <tuple> element of the <presence> root element of the application/pidf+xml MIME body of the SIP PUBLISH request, shall not continue with the rest of the steps;

10) shall consider a functional alias information entry such that:

a) the functional alias information entry is in the list of functional alias information entries described in clause 9A.2.2.3.2; and

b) the functional alias ID of the functional alias information entry is equal to the served functional alias ID;

as the served functional alias information entry;

11) if the selected expiration time is zero:

a) shall remove the MCPTT user information entry such that:

i) the MCPTT user information entry is in the list of the MCPTT user information entries of the served functional alias information entry; and

ii) the MCPTT user information entry has the MCPTT ID set to the served MCPTT ID;

12) if the selected expiration time is not zero:

a) shall consider an MCPTT user information entry such that:

i) the MCPTT user information entry is in the list of the MCPTT user information entries of the served functional alias information entry; and

ii) the MCPTT ID of the MCPTT user information entry is equal to the handled MCPTT ID;

as the served MCPTT user information entry;

b) if the MCPTT user information entry does not exist:

i) shall insert an MCPTT user information entry with the MCPTT ID set to the handled MCPTT ID into the list of the MCPTT user information entries of the served functional alias information entry; and

ii) shall consider the inserted MCPTT user information entry as the served MCPTT user information entry; and

c) shall set the expiration time according to the selected expiration time in the served MCPTT user information entry;

13) shall identify the handled p-id-fa in the <p-id-fa> child element of the <presence> root element of the application/pidf+xml MIME body of the SIP PUBLISH request; and

14) shall perform the procedures specified in clause 9A.2.2.3.5 for the served functional alias ID.

9A.2.2.3.4 Receiving subscription to functional alias status procedure

NOTE: Usage of one SIP SUBSCRIBE request to subscribe for notification about change of functional alias state of several MCPTT users served by the same MCPTT server is not supported in this version of the specification.

Upon receiving a SIP SUBSCRIBE request such that:

1) Request-URI of the SIP SUBSCRIBE request contains the public service identity of the controlling MCPTT function associated with the served functional alias;

2) the SIP SUBSCRIBE request contains an application/vnd.3gpp.mcptt-info+xml MIME body containing the<mcptt-request-uri> element and the <mcptt-calling-user-id> element;

3) the ICSI value "urn:urn-7:3gpp-service.ims.icsi.mcptt" (coded as specified in 3GPP TS 24.229 [4]), in a P-Asserted-Service header field according to IETF RFC 6050 [9];

4) the Event header field of the SIP SUBSCRIBE request contains the "presence" event type; and

5) the SIP SUBSCRIBE request contains an application/simple-filter+xml MIME body indicating per-user restrictions of presence event package notification information according to clause 9A.3.2 indicating the same MCPTT ID as in the <mcptt-calling-user-id> element of the application/vnd.3gpp.mcptt-info+xml MIME body of the SIP SUBSCRIBE request;

then the MCPTT server:

1) shall identify the served functional alias ID in the <mcptt-request-uri> element of the application/vnd.3gpp.mcptt-info+xml MIME body of the SIP SUBSCRIBE request;

2) shall identify the handled MCPTT ID in the <mcptt-calling-user-id> element of the application/vnd.3gpp.mcptt-info+xml MIME body of the SIP SUBSCRIBE request;

3) if the Expires header field of the SIP SUBSCRIBE request is not included or has nonzero value lower than 4294967295, shall send a SIP 423 (Interval Too Brief) response to the SIP SUBSCRIBE request, where the SIP 423 (Interval Too Brief) response contains a Min-Expires header field set to 4294967295, and shall not continue with the rest of the steps;

4) if a functional alias does not exist in the MCPTT server, shall reject the SIP PUBLISH request with SIP 403 (Forbidden) response to the SIP PUBLISH request according to 3GPP TS 24.229 [4], IETF RFC 3903 [37] and IETF RFC 3856 [51] and skip the rest of the steps;

5) if the handled MCPTT ID based on local policy is not authorized for notifications of the functional alias identified by the served functional alias ID, shall reject the SIP SUBSCRIBE request with SIP 403 (Forbidden) response to the SIP SUBSCRIBE request according to 3GPP TS 24.229 [4], IETF RFC 3903 [37] and IETF RFC 3856 [51] and skip the rest of the steps; and

6) shall generate a SIP 200 (OK) response to the SIP SUBSCRIBE request according to 3GPP TS 24.229 [4], IETF RFC 6665 [26].

For the duration of the subscription, the MCPTT server shall notify subscriber about changes of the information of the served MCPTT ID, as described in clause 9A.2.2.3.5.

9A.2.2.3.5 Sending notification of change of functional alias status procedure

In order to notify the subscriber identified by the handled MCPTT ID about changes of the functional alias status of the served functional alias ID, the MCPTT server:

1) shall consider a functional alias information entry such that:

a) the functional alias information entry is in the list of functional alias information entries described in clause 9A.2.2.3.2; and

b) the functional alias ID of the functional alias information entry is equal to the served functional alias ID;

2) shall consider an MCPTT user information entry such:

a) the MCPTT user information entry is in the list of the MCPTT user information entries of the served functional alias information entry; and

b) the MCPTT ID of the MCPTT user information entry is equal to the handled MCPTT ID;

as the served MCPTT user information entry;

3) shall generate an application/pidf+xml MIME body indicating per-functional alias information according to clause 9A.3.1 and the served list of the served MCPTT user information entry of the functional alias information entry with following clarifications:

a) the MCPTT server shall include the "expires" attribute in the <functionalAlias> element; and

b) if this procedures is invoked by procedure in clause 9A.2.2.3.3 where the handled p-id-fa was identified, the MCPTT server shall set the <p-id-fa> child element of the <presence> root element of the application/pidf+xml MIME body of the SIP NOTIFY request to the handled p-id-fa value; and

4) send a SIP NOTIFY request according to 3GPP TS 24.229 [4], and IETF RFC 6665 [26] for the subscription created in clause 9A.2.2.3.4. In the SIP NOTIFY request, the MCPTT server shall include the generated application/pidf+xml MIME body indicating per-functional alias information.

9A.2.2.3.6 Functional alias status automatic deactivation procedure

In order to deactivate a functional alias associated with a target MCPTT ID:

1) externally triggered by an MCPTT administrator by a mechanism outside of the scope of the standard; or

2) directly by the MCPTT function owning the functional alias as a result of an internal trigger like the expiration of the functional alias association;

the MCPTT server

1) shall consider a functional alias information entry such that:

a) the functional alias information entry is in the list of functional alias information entries described in clause 9A.2.2.3.2; and

b) the functional alias ID of the functional alias information entry is equal to the served functional alias ID;

as the served functional alias information entry;

2) shall remove the MCPTT user information entry such that:

a) the MCPTT user information entry is in the list of the MCPTT user information entries of the served functional alias information entry; and

b) the MCPTT user information entry has the MCPTT ID set to the target MCPTT ID; and

3) shall perform the procedures specified in clause 9A.2.2.3.5 for the served functional alias ID.

9A.2.2.3.7 Receiving subscription to functional alias resolution procedure

Upon receiving a SIP SUBSCRIBE request such that:

1) Request-URI of the SIP SUBSCRIBE request contains the public service identity of the controlling MCPTT function associated with the requested functional alias;

2) the ICSI value "urn:urn-7:3gpp-service.ims.icsi.mcptt" (coded as specified in 3GPP TS 24.229 [4]), in a P-Asserted-Service header field according to IETF RFC 6050 [9];

3) the Event header field of the SIP SUBSCRIBE request contains the "presence" event type; and

4) the SIP SUBSCRIBE request contains an application/simple-filter+xml MIME body indicating per-functional alias restrictions of presence event package notification information according to clause 9A.3.2;

then the MCPTT server:

1) shall identify the requested functional alias ID in the <mcptt-request-uri> element of the application/vnd.3gpp.mcptt-info+xml MIME body of the SIP SUBSCRIBE request;

2) if the Expires header field of the SIP SUBSCRIBE request is not included or has nonzero value lower than 4294967295, shall send a SIP 423 (Interval Too Brief) response to the SIP SUBSCRIBE request, where the SIP 423 (Interval Too Brief) response contains a Min-Expires header field set to 4294967295, and shall not continue with the rest of the steps;

3) if the requested functional alias does not exist in the MCPTT server, shall reject the SIP SUBSCRIBE request with SIP 403 (Forbidden) response to the SIP PUBLISH request according to 3GPP TS 24.229 [4], IETF RFC 3903 [37] and IETF RFC 3856 [51] and skip the rest of the steps; and

4) shall generate a SIP 200 (OK) response to the SIP SUBSCRIBE request according to 3GPP TS 24.229 [4], IETF RFC 6665 [26].

For the duration of the subscription, the MCPTT server shall notify subscriber about changes of the information of the requested functional alias, as described in clause 9A.2.2.3.8.

9A.2.2.3.8 Sending notification to functional alias resolution procedure

In order to notify the subscriber about the MCPTT users that have successfully activated the functional alias corresponding to the requested functional alias ID, the MCPTT server:

1) shall consider a functional alias information entry such that:

a) the functional alias information entry is in the list of functional alias information entries described in clause 9A.2.2.3.2; and

b) the functional alias ID of the functional alias information entry is equal to the requested functional alias ID;

2) shall consider any MCPTT user information entry such that the MCPTT user information entry is in the list of the MCPTT user information entries of the served functional alias information entry, as the served MCPTT user information entry;

3) shall generate an application/pidf+xml MIME body indicating per-functional alias information according to clause 9A.3.1 and the served list of the served MCPTT user information entry of the functional alias information entry

4) send a SIP NOTIFY request according to 3GPP TS 24.229 [4], and IETF RFC 6665 [26] for the subscription created in clause 9A.2.2.3.7. In the SIP NOTIFY request, the MCPTT server shall include the generated application/pidf+xml MIME body indicating per-functional alias information.

9A.3 Coding

9A.3.1 Extension of application/pidf+xml MIME type

9A.3.1.1 Introduction

The clauses of the parent clause describe an extension of the application/pidf+xml MIME body specified in IETF RFC 3863 [52]. The extension is used to indicate:

– per-user functional alias information; and

– per-functional alias status information.

9A.3.1.2 Syntax

The application/pidf+xml MIME body indicating per-user functional alias information is constructed according to IETF RFC 3863 [52] and:

1) contains a <presence> root element according to IETF RFC 3863 [52];

2) contains an "entity" attribute of the <presence> element set to the MCPTT ID of the MCPTT user;

3) contains one <tuple> child element according to IETF RFC 3863 [52] per <presence> element;

4) can contain a <p-id-fa> child element defined in the XML schema defined in table 9A.3.1.2-1, of the <presence> element set to an identifier of a SIP PUBLISH request;

5) contains an "id" attribute of the <tuple> element set to the MCPTT client ID;

6) contains one <status> child element of each <tuple> element;

7) contains one <functionalAlias> child element defined in the XML schema defined in table 9A.3.1.2-1, of the <status> element, for each functional alias in which the MCPTT user is interested;

8) contains a "functionalAliasID" attribute of each <functionalAlias> element set to the functional alias ID of the functional alias in which the MCPTT user is interested;

9) can contain a "status" attribute of each <functionalAlias> element indicating the activation status of functional alias for the MCPTT user;

10) can contain an "expires" attribute of each <functionalAlias> element indicating expiration of activation of the functional alias for the MCPTT user; and

11) can contain one <take-over> child element of the <status> element set to "true" indicating that the MCPTT user is interested to take over the functional aliases.

The application/pidf+xml MIME body indicating per-functional alias status information is constructed according to IETF RFC 3856 [51] and:

1) contains the <presence> root element according to IETF RFC 3863 [52];

2) contains an "entity" attribute of the <presence> element set to the functional alias ID of the functional alias;

3) contains one <tuple> child element according to IETF RFC 3863 [52] of the <presence> element;

4) can contain a <p-id-fa> child element defined in the XML schema defined in table 9A.3.1.2-1, of the <presence> element set to an identifier of a SIP PUBLISH request;

5) contains an "id" attribute of the <tuple> element set to the functional alias ID;

6) contains one <status> child element of each <tuple> element;

7) contains one <functionalAlias> child element defined in the XML schema defined in table 9A.3.1.2-1, of the <status> element, for each MCPTT ID for which functional alias information is provided;

8) contains one "user" attribute defined in the XML schema defined in table 9A.3.1.2-1, of the <functionalAlias> element set to the MCPTT client ID; and

9) can contain an "expires" attribute defined in the XML schema defined in table 9A.3.1.2-1, of the <functionalAlias> element indicating expiration of activation of the functional alias for the MCPTT user.

Table 9A.3.1.2-1: XML schema with elements and attributes extending the application/pidf+xml MIME body

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema

targetNamespace="urn:3gpp:ns:mcpttPresInfoFA:1.0"

xmlns:xs="http://www.w3.org/2001/XMLSchema"

xmlns:mcpttPIFA10="urn:3gpp:ns:mcpttPresInfoFA:1.0"

elementFormDefault="qualified" attributeFormDefault="unqualified">

<!– MCPTT functional alias specific child elements of presence element –>

<xs:element name="p-id-fa" type="xs:string"/>

<!– MCPTT functional alias specific child elements of status element –>

<xs:element name="functionalAlias" type="mcpttPIFA10:functionalAliasType"/>

<xs:complexType name="functionalAliasType">

<xs:sequence>

<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>

</xs:sequence>

<xs:attribute name="functionalAliasID" type="xs:anyURI" use="optional"/>

<xs:attribute name="user" type="xs:anyURI" use="optional"/>

<xs:attribute name="status" type="mcpttPIFA10:statusType" use="optional"/>

<xs:attribute name="expires" type="xs:dateTime" use="optional"/>

<xs:anyAttribute namespace="##any" processContents="lax"/>

</xs:complexType>

<xs:element name="take-over" type="xs:boolean"/>

<xs:simpleType name="statusType">

<xs:restriction base="xs:string">

<xs:enumeration value="activating"/>

<xs:enumeration value="activated"/>

<xs:enumeration value="deactivating"/>

<xs:enumeration value="take-over-possible"/>

</xs:restriction>

</xs:simpleType>

</xs:schema>

The application/pidf+xml MIME body refers to namespaces using prefixes specified in table 9A.3.1.2-2.

Table 9A.3.1.2-2: Assignment of prefixes to namespace names in the application/pidf+xml MIME body

Prefix

Namespace

mcpttPIFA10

urn:3gpp:ns:mcpttPresInfoFA:1.0

NOTE: The "urn:ietf:params:xml:ns:pidf" namespace is the default namespace so no prefix is used for it in the application/pidf+xml MIME body.

9A.3.2 Extension of application/simple-filter+xml MIME type

9A.3.2.1 Introduction

The clauses of the parent clause describe an extension of the application/simple-filter+xml MIME body specified in IETF RFC 4661 [63].

The extension is used to indicate per-user restrictions of presence event package notification information for functional alias information and per-functional alias restrictions of presence event package notification information.

9A.3.2.2 Syntax

The application/simple-filter+xml MIME body indicating per-user restrictions of presence event package notification information is constructed according to IETF RFC 4661 [63] and:

1) contains a <filter-set> root element according to IETF RFC 4661 [63];

2) contains a <ns-bindings> child element according to IETF RFC 4661 [63], of the <filter-set> element;

3) contains a <ns-binding> child element according to IETF RFC 4661 [63], of the <ns-bindings> element where the <ns-binding> element:

A) contains a "prefix" attribute according to IETF RFC 4661 [63] set to "pidf"; and

B) contains a "urn" attribute set to the "urn:ietf:params:xml:ns:pidf" value;

4) contains a <ns-binding> child element according to IETF RFC 4661 [63], of the <ns-bindings> element where the <ns-binding> element:

A) contains a "prefix" attribute according to IETF RFC 4661 [63], set to "mcpttPIFA10"; and

B) contains an "urn" attribute according to IETF RFC 4661 [63], set to the "urn:3gpp:ns:mcpttPresInfoFA:1.0" value;

5) contains a <filter> child element according to IETF RFC 4661 [63], of the <filter-set> element where the <filter> element;

A) contains an "id" attribute set to a value constructed according to IETF RFC 4661 [63];

B) does not contain an "uri" attribute of the <filter> child element according to IETF RFC 4661 [63]; and

C) does not contain an "domain" attribute according to IETF RFC 4661 [63];

6) contains a <what> child element according to IETF RFC 4661 [63], of the <filter> element; and

7) contains an <include> child element according to IETF RFC 4661 [63], of the <what> element where the <include> element;

A) does not contain a "type" attribute according to IETF RFC 4661 [63]; and

B) contains the value, according to IETF RFC 4661 [63], set to concatenation of the ‘//pidf:presence/pidf:tuple[@id="’ string, the MCPTT ID, and the ‘"]’ string.

The application/simple-filter+xml MIME body indicating per-functional alias restrictions of presence event package notification information is constructed according to IETF RFC 4661 [63] and:

1) contains a <filter-set> root element according to IETF RFC 4661 [63];

2) contains a <ns-bindings> child element according to IETF RFC 4661 [63], of the <filter-set> element;

3) contains a <ns-binding> child element according to IETF RFC 4661 [63], of the <ns-bindings> element where the <ns-binding> element:

A) contains a "prefix" attribute according to IETF RFC 4661 [63] set to "pidf"; and

B) contains a "urn" attribute set to the "urn:ietf:params:xml:ns:pidf" value;

4) contains a <ns-binding> child element according to IETF RFC 4661 [63], of the <ns-bindings> element where the <ns-binding> element:

A) contains a "prefix" attribute according to IETF RFC 4661 [63], set to "mcpttPIFA10"; and

B) contains a "urn" attribute according to IETF RFC 4661 [63], set to the "urn:3gpp:ns:mcpttPresInfoFA:1.0" value;

5) contains a <filter> child element according to IETF RFC 4661 [63], of the <filter-set> element where the <filter> element;

A) contains an "id" attribute set to a value constructed according to IETF RFC 4661 [63];

B) does not contain an "uri" attribute of the <filter> child element according to IETF RFC 4661 [63]; and

C) does not contain a "domain" attribute according to IETF RFC 4661 [63];

6) contains a <what> child element according to IETF RFC 4661 [63], of the <filter> element; and

7) contains an <include> child element according to IETF RFC 4661 [63], of the <what> element where the <include> element;

A) does not contain a "type" attribute according to IETF RFC 4661 [63]; and

B) contains the value, according to IETF RFC 4661 [63], set to concatenation of the ‘//pidf:presence/pidf:tuple[@id="’ string, the functional alias ID, and the ‘"]’ string.

9A.4 Functional alias to group binding for the MCPTT user procedures

9A.4.1 General

This clause describes the functional alias to group binding for the MCPTT user procedures for on-network.

For on-network functional alias to group binding for the MCPTT user, the procedures for originating MCPTT clients, participating MCPTT functions and controlling MCPTT function are specified in clause 9A.2.

An MCPTT user can bind the same functional alias with multiple MCPTT groups but an MCPTT user cannot bind multiple functional aliases to the same MCPTT group.

Only the activated functional aliases are used for creating a binding with a MCPTT group or list of MCPTT groups.

9A.4.2 On-network functional alias to group binding

9A.4.2.1 Client procedures

9A.4.2.1.1 General

On request from an MCPTT user at MCPTT client, a request to create binding of a functional alias with group for the MCPTT user is initiated by the MCPTT client towards the participating MCPTT function.

9A.4.2.1.2 Functional alias to group binding

Upon receiving a request from an MCPTT user to bind a functional alias with an MCPTT group or a list of MCPTT groups for the MCPTT user, if the <allow-functional-alias-binding-with-group> element of the <ruleset> element is not present in the MCPTT user profile document (see the MCPTT user profile document in 3GPP TS 24.484 [50]) or is set to a value of "false", the MCPTT client shall inform the MCPTT user and shall exit this procedure.

Upon receiving a request from an MCPTT user to bind a functional alias with an MCPTT group or a list of MCPTT groups for the MCPTT user, if the requested functional alias is not activated by MCPTT user at MCPTT client, the MCPTT client shall inform the MCPTT user and shall exit this procedure.

Upon receiving a request from an MCPTT user to bind a functional alias with an MCPTT group or a list of MCPTT groups for the MCPTT user, the MCPTT client shall generate a SIP MESSAGE request in accordance with 3GPP TS 24.229 [4] and IETF RFC 3428 [33] with the clarifications given below.

The MCPTT client:

1) shall set the Request-URI to the public service identity identifying the participating MCPTT function serving the MCPTT user;

2) shall include the ICSI value "urn:urn-7:3gpp-service.ims.icsi.mcptt" (coded as specified in 3GPP TS 24.229 [4]), in a P-Preferred-Service header field according to IETF RFC 6050 [9];

3) shall include an Accept-Contact header field containing the g.3gpp.mcptt media feature tag along with the "require" and "explicit" header field parameters according to IETF RFC 3841 [6];

4) shall include an Accept-Contact header field with the media feature tag g.3gpp.icsi-ref with the value of "urn:urn-7:3gpp-service.ims.icsi.mcptt" along with parameters "require" and "explicit" according IETF RFC 3841 [6];

5) may include a P-Preferred-Identity header field in the SIP MESSAGE request containing a public user identity as specified in 3GPP TS 24.229 [4];

6) shall include an application/vnd.3gpp.mcptt-info+xml MIME body as specified in clause F.1 with the <mcpttinfo> element containing the <mcptt-Params> element with:

a) the <request-type> element set to a value of "fa-group-binding-req";

b) the <binding-ind> element set to a value of "true";

c) the <binding-fa-uri> element set to the URI of an activated functional alias that shall be bound with the specified list of MCPTT groups in "uri" attributes of <entry> elements of a <list> element of the <resource-lists> element in an application/resource-lists+xml MIME body;

d) the <mcptt-client-id> element set to the MCPTT client ID of the originating MCPTT client; and

e) if the MCPTT client needs to include an active functional alias in the SIP MESSAGE request, the <anyExt> element with the <functional-alias-URI> element set to the URI of the used functional alias;

7) shall include an application/resource-lists+xml MIME body containing a <resource-lists> element containing a <list> element containing one or more <entry> elements each containing a "uri" attribute set to an MCPTT group ID; and

8) shall send the SIP MESSAGE request according to rules and procedures of 3GPP TS 24.229 [4].

On receiving a SIP 2xx response to the SIP MESSAGE request, the MCPTT client shall inform the MCPTT user of success in binding of a functional alias with the MCPTT group or list of MCPTT groups for the MCPTT user.

On receiving a SIP 4xx response a SIP 5xx response or a SIP 6xx response to the SIP MESSAGE request, the MCPTT client shall inform the MCPTT user of unsuccess in binding of a functional alias with the MCPTT group or list of MCPTT groups for the MCPTT user, possibly taking into account Warning header information for the failure reason.

9A.4.2.1.3 Functional alias to group unbinding

Upon receiving a request from an MCPTT user to unbind a functional alias with an MCPTT group or a list of MCPTT groups for the MCPTT user, if the <allow-functional-alias-binding-with-group> element of the <ruleset> element is not present in the MCPTT user profile document (see the MCPTT user profile document in 3GPP TS 24.484 [50]) or is set to a value of "false", the MCPTT client shall inform the MCPTT user and shall exit this procedure.

Upon receiving a request from an MCPTT user to unbind a functional alias with an MCPTT group or a list of MCPTT groups for the MCPTT user, the MCPTT client shall generate a SIP MESSAGE request in accordance with 3GPP TS 24.229 [4] and IETF RFC 3428 [33] with the clarifications given below.

The MCPTT client:

1) shall set the Request-URI to the public service identity identifying the participating MCPTT function serving the MCPTT user;

2) shall include the ICSI value "urn:urn-7:3gpp-service.ims.icsi.mcptt" (coded as specified in 3GPP TS 24.229 [4]), in a P-Preferred-Service header field according to IETF RFC 6050 [9];

3) shall include an Accept-Contact header field containing the g.3gpp.mcptt media feature tag along with the "require" and "explicit" header field parameters according to IETF RFC 3841 [6];

4) shall include an Accept-Contact header field with the media feature tag g.3gpp.icsi-ref with the value of "urn:urn-7:3gpp-service.ims.icsi.mcptt" along with parameters "require" and "explicit" according IETF RFC 3841 [6];

5) may include a P-Preferred-Identity header field in the SIP MESSAGE request containing a public user identity as specified in 3GPP TS 24.229 [4];

6) shall include an application/vnd.3gpp.mcptt-info+xml MIME body as specified in clause F.1 with the <mcpttinfo> element containing the <mcptt-Params> element with:

a) the <request-type> element set to a value of "fa-group-binding-req";

b) the <binding-ind> element set to a value of "false";

c) the <unbinding-fa-uri> element set to the URI of a functional alias that shall be unbound from the specified list of MCPTT groups in "uri" attributes of <entry> elements of a <list> element of the <resource-lists> element in an application/resource-lists+xml MIME body;

d) the <mcptt-client-id> element set to the MCPTT client ID of the originating MCPTT client; and

e) if the MCPTT client needs to include an active functional alias in the SIP MESSAGE request, the <anyExt> element with the <functional-alias-URI> element set to the URI of the used functional alias;

7) shall include an application/resource-lists+xml MIME body containing a <resource-lists> element containing a <list> element containing one or more <entry> elements each containing a "uri" attribute set to an MCPTT group ID; and

8) shall send the SIP MESSAGE request according to rules and procedures of 3GPP TS 24.229 [4].

On receiving a SIP 2xx response to the SIP MESSAGE request, the MCPTT client shall inform the MCPTT user of success in unbinding the functional alias with the MCPTT group or list of MCPTT groups for the MCPTT user.

On receiving a SIP 4xx response a SIP 5xx response or a SIP 6xx response to the SIP MESSAGE request, the MCPTT client shall inform the MCPTT user of unsuccess in unbinding of a functional alias with the MCPTT group or list of MCPTT groups for the MCPTT user, possibly taking into account Warning header information for the failure reason.

9A.4.2.2 Participating MCPTT function procedures

9A.4.2.2.1 General

The participating MCPTT function has procedures to:

– receive a request for binding/unbinding of a functional alias with the MCPTT group(s) for the MCPTT user from the MCPTT Client.

9A.4.2.2.2 Receipt of a SIP MESSAGE request for binding/unbinding of a functional alias with the MCPTT group(s) for the MCPTT user

Upon receipt of a "SIP MESSAGE request for binding of a functional alias with the MCPTT group(s) for the MCPTT user for originating participating MCPTT function", the participating MCPTT function:

1) if unable to process the request due to a lack of resources or a risk of congestion exists, may reject the SIP MESSAGE request with a SIP 500 (Server Internal Error) response. The participating MCPTT function may include a Retry-After header field to the SIP 500 (Server Internal Error) response as specified in IETF RFC 3261 [24] and skip the rest of the steps;

2) shall determine the MCPTT ID of the calling user from the public user identity in the P-Asserted-Identity header field of the SIP MESSAGE request;

NOTE 1: The MCPTT ID of the calling user is bound to the public user identity at the time of service authorisation, as documented in clause 7.3.

3) if the participating MCPTT function cannot find a binding between the public user identity and an MCPTT ID or if the validity period of an existing binding has expired, then the participating MCPTT function shall reject the SIP MESSAGE request with a SIP 404 (Not Found) response with the warning text set to "141 user unknown to the participating function" in a Warning header field as specified in clause 4.4, and shall not continue with any of the remaining steps;

4) if the <request-type> element in the application/vnd.3gpp.mcptt-info+xml MIME body of the SIP MESSAGE request is set to a value of "fa-group-binding-req" and:

a) the <allow-functional-alias-binding-with-group> element of the <ruleset> element is not present in the MCPTT user profile document (see the MCPTT user profile document in 3GPP TS 24.484 [50]) or is set to a value of "false", shall reject the SIP MESSAGE request with a SIP 403 (Forbidden) response including warning text set to "176 user not authorized to request for binding/unbinding of a functional alias with the MCPTT group(s) for the MCPTT user" in a Warning header field, and shall not continue with the rest of the steps in this clause;

b) the SIP MESSAGE request does not contain an application/resource-lists+xml MIME body or the < binding-ind> element and the <binding-fa-uri> element in the application/vnd.3gpp.mcptt-info+xml MIME body, shall reject the SIP MESSAGE request with a SIP 403 (Forbidden) response including warning text set to "unable to determine target functional alias or group for creating/removing a binding information for the MCPTT user" in a Warning header field, and shall not continue with the rest of the steps in this clause; and

c) the SIP MESSAGE request does not contain an application/resource-lists+xml MIME body or the < binding-ind> element and the <unbinding-fa-uri> element in the application/vnd.3gpp.mcptt-info+xml MIME body, shall reject the SIP MESSAGE request with a SIP 403 (Forbidden) response including warning text set to "177 unable to determine target functional alias or group for creating/removing a binding information for the MCPTT user" in a Warning header field, and shall not continue with the rest of the steps in this clause;

5) shall generate a SIP MESSAGE request in accordance with 3GPP TS 24.229 [4] and IETF RFC 3428 [33];

6) shall set the Request-URI of the outgoing SIP MESSAGE request to the public service identity of the controlling MCPTT function for the binding of a functional alias with the MCPTT group(s) for the MCPTT user service associated with the originating user’s MCPTT ID identity;

7) shall copy the contents of the application/vnd.3gpp.mcptt-info+xml MIME body in the received SIP MESSAGE request into an application/vnd.3gpp.mcptt-info+xml MIME body as specified in clause F.1 included in the outgoing SIP MESSAGE request;

8) if the received SIP MESSAGE request contains a <functional-alias-URI> element of the application/vnd.3gpp.mcptt-info+xml MIME body, shall check the status of the functional alias for the MCPTT ID. If the functional alias status is activated, then the participating MCPTT function shall set the <functional-alias-URI> element of the application/vnd.3gpp.mcptt-info+xml MIME body in the outgoing SIP MESSAGE request to the received value, otherwise it shall not include a <functional-alias-URI> element;

9) shall set the <mcptt-calling-user-id> contained in <mcptt-Params> element of the application/vnd.3gpp.mcptt-info+xml MIME body to the MCPTT ID determined in step 2) above;

10) shall copy the contents of the application/resource-lists+xml MIME body in the received SIP MESSAGE request into an application/resource-lists+xml MIME body in the outgoing SIP MESSAGE request;

11) shall set the P-Asserted-Identity in the outgoing SIP MESSAGE request to the public user identity in the P-Asserted-Identity header field contained in the received SIP MESSAGE request;

12) shall include an Accept-Contact header field containing the g.3gpp.mcptt media feature tag along with the "require" and "explicit" header field parameters according to IETF RFC 3841 [6];

13) shall include an Accept-Contact header field with the media feature tag g.3gpp.icsi-ref with the value of "urn:urn-7:3gpp-service.ims.icsi.mcptt" along with parameters "require" and "explicit" according to IETF RFC 3841 [6];

14) shall include the ICSI value "urn:urn-7:3gpp-service.ims.icsi.mcptt" (coded as specified in 3GPP TS 24.229 [4]), into the P-Asserted-Service header field of the outgoing SIP MESSAGE request; and

15) shall send the SIP MESSAGE request as specified to 3GPP TS 24.229 [4].

Upon receipt of a SIP 2xx response in response to the SIP MESSAGE request sent in step 15):

1) shall generate a SIP 200 (OK) response as specified in 3GPP TS 24.229 [4] with the following clarifications:

a) shall include the public user identity received in the P-Asserted-Identity header field of the incoming SIP 200 (OK) response into the P-Asserted-Identity header field of the outgoing SIP 200 (OK) response; and

2) shall send the SIP 200 (OK) response to the MCPTT client according to 3GPP TS 24.229 [4].

Upon receipt of a SIP 4xx, 5xx or 6xx response to the SIP MESSAGE request, shall forward the error response to the MCPTT client.

9A.4.2.3 Controlling MCPTT function procedures

9A.4.2.3.1 General

The participating MCPTT function has procedures to:

– receive a request for binding/unbinding of a functional alias with the MCPTT group(s) for the MCPTT user from the MCPTT Client.

9A.4.2.3.2 Receipt of a SIP MESSAGE request for binding/unbinding of a functional alias with the MCPTT group(s) for the MCPTT user

Upon receiving a:

– "SIP MESSAGE request for binding of a functional alias with the MCPTT group(s) for the MCPTT user for controlling MCPTT function";

the controlling MCPTT function:

1) if unable to process the request due to a lack of resources or a risk of congestion exists, may reject the SIP MESSAGE request with a SIP 500 (Server Internal Error) response. The controlling MCPTT function may include a Retry-After header field to the SIP 500 (Server Internal Error) response as specified in IETF RFC 3261 [24] and skip the rest of the steps;

2) shall reject the SIP request with a SIP 403 (Forbidden) response and not process the remaining steps if an Accept-Contact header field does not include the g.3gpp.icsi-ref media feature tag containing the value of "urn:urn-7:3gpp-service.ims.icsi.mcptt";

3) the SIP MESSAGE request does not contain an application/resource-lists+xml MIME body or the <binding-ind> element and the <binding-fa-uri> element in the application/vnd.3gpp.mcptt-info+xml MIME body, shall reject the SIP MESSAGE request with a SIP 403 (Forbidden) response including warning text set to "177 unable to determine target functional alias or group for creating/removing a binding information for the MCPTT user " in a Warning header field, and shall not continue with the rest of the steps in this clause;

4) the SIP MESSAGE request does not contain an application/resource-lists+xml MIME body or the <binding-ind> element and the <unbinding-fa-uri> element in the application/vnd.3gpp.mcptt-info+xml MIME body, shall reject the SIP MESSAGE request with a SIP 403 (Forbidden) response including warning text set to "177 unable to determine target functional alias or group for creating/removing a binding information for the MCPTT user" in a Warning header field, and shall not continue with the rest of the steps in this clause;

5) if any of the <entry> elements of a <list> element of the <resource-lists> element in the application/resource-lists+xml MIME body of the incoming SIP MESSAGE request contains a "uri" attribute set to an MCPTT group ID where the indicated MCPTT group has an existing binding with any other functional alias from same MCPTT user, shall reject the SIP MESSAGE request with a SIP 403 (Forbidden) response including warning text set to "178 MCPTT group binding already exists with other functional alias" in a Warning header field as specified in clause 4.4, and shall skip the rest of the steps;

6) if the application/vnd.3gpp.mcptt-info+xml MIME body of the SIP MESSAGE request contains the <request-type> element set to a value of "fa-group-binding-req" and:

a) if the <binding-ind> element is set to a value of "true", shall update or store the record for the MCPTT client, and create a binding information for the functional alias specified in the <binding-fa-uri> element with the list of the MCPTT group(s) included in an application/resource-lists+xml MIME body; or

b) if the <binding-ind> element is set to a value of "false", shall update or store the record for the MCPTT client, and remove a binding information of the functional alias specified in the <unbinding-fa-uri> element from the list of the MCPTT group(s) included in an application/resource-lists+xml MIME body;

7) shall generate a SIP 200 (OK) response as specified in 3GPP TS 24.229 [4]with the following clarifications:

a) shall include the public user identity in the P-Asserted-Identity header field of the outgoing SIP 200 (OK) response; and

8) shall send the SIP 200 (OK) response to the MCPTT client according to 3GPP TS 24.229 [4].