11.1.5 Private call call-back

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

11.1.5.1 General

Clause 11.1.5 describes the MCPTT client procedures, the participating MCPTT function procedures and the controlling MCPTT function procedures for private call call-back.

In the procedures in clause 11.1.5.2:

– the term "requesting MCPTT client" is used to refer to the client that initiates a private call call-back request, initiates a private call call-back cancel request or receives a private call call-back fulfilment;

– the term "requesting MCPTT user" is used to refer to the MCPTT user that requests a private call call-back or requests a private call call-back cancel;

– the term "target MCPTT client" is used to refer to the client that generates a private call call-back response, generates a private call call-back cancel response or initiates a private call call-back fulfilment; and

– the term "target MCPTT user" is used to refer to the MCPTT user that is targeted for a private call call-back request or a private call call-back cancel request,

The requesting MCPTT client needs to store the MCPTT ID of the target MCPTT user together with state information as specified in Table G.13-1. In the procedures in clause 11.1.5.2, the notation {MCPTT-ID, private call call-back requesting client state} is used to describe the information that the requesting MCPTT client stores.

The target MCPTT client needs to store the MCPTT ID of the requesting MCPTT user together with state information as specified in Table G.13-2. Additionally, for a private call call-back request, the target MCPTT client needs to store the urgency of the request and the time of the request. In the procedures in clause 11.1.5.2, the notation {MCPTT ID, private call call-back target client state, urgency, time-of-request} is used to describe the information that the target MCPTT client stores.

The {MCPTT-ID, private call call-back requesting client state} entry on the requesting MCPTT client is known as the "PCCB requesting client entry".

The {MCPTT ID, private call call-back target client state, urgency, time-of-request} entry on the target MCPTT client is known as the "PCCB target client entry".

When a private call call-back request is cancelled or when a private call call-back is fulfilled, the "PCCB requesting client entry" is deleted on the requesting MCPTT client and the "PCCB target client entry" is deleted on the target MCPTT client.

11.1.5.2 MCPTT client procedures

11.1.5.2.1 Requesting client procedures for call-back requests

Upon receiving a request from the MCPTT user to send a private call call-back request, if the <allow-request-private-call-call-back> element of the <ruleset> element is not present in the MCPTT user profile document (see the MCPTT user profile document in 3GPP TS 24.384 [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 the MCPTT user to send a private call call-back cancel request, if the <allow-cancel-private-call-call-back> element of the <ruleset> element is not present in the MCPTT user profile document (see the MCPTT user profile document in 3GPP TS 24.384 [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 the requesting MCPTT user to send a private call call-back request or to send a private call call-back cancel request, that has been authorised successfully by the requesting MCPTT client, 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 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] in the SIP MESSAGE request;

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

3) 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];

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

5) shall include in a "uri" attribute of <entry> element of a <list> element of the <resource-lists> element of an application/resource-lists+xml MIME body the MCPTT ID of the targeted MCPTT user, according to rules and procedures of IETF RFC 5366 [20];

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 the <anyExt> element containing:

a) if the request is a private call call-back request:

i) the <request-type> set to a value of "private-call-call-back-request>;

ii) the <urgency-ind> set to a value of "low", "normal" or "high" to indicate the urgency of the call-back request; and

iii) the <time-of-request> set to the date and time of the request using the format specified in clause F.1.3; and

b) if the request is a private call call-back cancel request, the <request-type> set to a value of "private-call-call-back-cancel-request";

7) shall store a "PCCB requesting client entry" containing the MCPTT ID of the targeted user and:

a) if the request is a private call call-back request, shall set the private call call-back requesting client state to "PCCB-I2: confirm-pending"; and

b) if the request is a private call call-back cancel request, shall set the private call call-back requesting client state to "PCCB-I4: cancel-pending"; and

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

On receiving a SIP 4xx response a SIP 5xx response or a SIP 6xx response to the SIP MESSAGE request in step 8), the MCPTT client shall set the private call call-back requesting client state of the "PCCB requesting client entry" matching the MCPTT ID of the targeted MCPTT user, to "PCCB-I1: no-call-back", shall delete the "PCCB requesting client entry" and shall exit this procedure.

Upon receiving a "SIP MESSAGE request for private call call-back response for terminating client" with an <mcptt-calling-user-id> element in the application/vnd.3gpp.mcptt-info+xml MIME body set to an MCPTT-ID matching a "PCCB requesting client entry" stored on the client, if the private call call-back requesting client state is set to "PCCB-I2: confirm-pending", then the MCPTT client shall set the private call call-back requesting client state to "PCCB-I3: confirmed".

Upon receiving a "SIP MESSAGE request for private call call-back cancel response for terminating client" with an <mcptt-calling-user-id> element in the application/vnd.3gpp.mcptt-info+xml MIME body set to the an MCPTT-ID matching a "PCCB requesting client entry" entry stored on the client, if the private call call-back requesting client state is set to "PCCB-I4: cancel-pending", then the MCPTT client set the private call call-back requesting client state to "PCCB-I1: no-call-back" and shall delete the "PCCB requesting client entry" associated with the target MCPTT user.

11.1.5.2.2 Target client procedures for handling call-back requests

Upon receiving a "SIP MESSAGE request for private call call-back request for terminating client", the MCPTT client:

1) shall store a "PCCB target client entry" entry with:

a) the MCPTT ID set to the MCPTT ID contained in the <mcptt-calling-user-id> element in the application/vnd.3gpp.mcptt-info+xml MIME body;

b) the private call call-back receiving client state set to "PCCB-I2: private-call-pending";

c) the urgency set to the value of the <urgency-ind> element in the application/vnd.3gpp.mcptt-info+xml MIME body; and

d) the time-of-request set to the value of the <time-of-request> element in the application/vnd.3gpp.mcptt-info+xml MIME body; and

2) shall notify the user of the stored information related to the private call call back request.

Upon receiving a "SIP MESSAGE request for private call call-back cancel request for terminating client" where the "PCCB target client entry" associated with the MCPTT ID in the <mcptt-calling-user-id> element in the application/vnd.3gpp.mcptt-info+xml MIME body contains a private call call-back requesting client state set to "PCCB-R2: private-call-pending", the MCPTT client shall set the private call call-back requesting client state to "PCCB-R1: no-call-back" and shall delete the "PCCB target client entry" associated with the requesting MCPTT user.

The MCPTT client:

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

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] in the SIP MESSAGE request;

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

4) 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];

5) shall set the Request-URI in the SIP MESSAGE request to the public service identity identifying the participating MCPTT function serving the MCPTT user;

6) shall include in a "uri" attribute of <entry> element of a <list> element of the <resource-lists> element of an application/resource-lists+xml MIME body the MCPTT ID contained in the <mcptt-calling-user-id> element in the application/ vnd.3gpp.mcptt-info+xml MIME body of the received SIP MESSAGE request;

7) 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 the <anyExt> element containing:

a) if the received SIP MESSAGE was a "SIP MESSAGE request for private call call-back request for terminating MCPTT client", the <response-type> element set to a value of "private-call-call-back-response"; and

b) if the received SIP MESSAGE was a "SIP MESSAGE request for private call call-back cancel request for terminating MCPTT client", the <response-type> element set to a value of "private-call-call-back-cancel-response"; and

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

11.1.5.2.3 Private call call-back fulfilment

When the target MCPTT user wants to make a private call call-back, the target MCPTT client shall initiate a private call in manual commencement mode towards the requesting MCPTT client using the MCPTT ID of the requesting MCPTT user as found in the "PCCB target client entry" stored on the UE, by following the procedures in:

1) clause 11.1.1.2.1.1 or clause 11.1.1.2.2.1 for private call with floor control; or

2) clause 11.1.2.2 for private call without floor control;

Upon sending a SIP 200 (OK) response to the request for establishment of a private call as specified in clause 11.1.1.2.1.1, clause 11.1.1.2.2.1 or clause 11.1.2.2, if the "PCCB requesting client entry" of the target MCPTT user contains a private call call-back requesting client state set to "PCCB-I3: confirmed", then the requesting MCPTT client shall set the private call call-back requesting client state to "PCCB-I1: no-call-back" and shall delete the "PCCB requesting client entry" associated with the target MCPTT user.

Upon receiving a SIP 2xx response to the SIP INVITE request or SIP REFER request for establishment of the private call, as specified in clause 11.1.1.2.1.1, clause 11.1.1.2.2.1 or clause 11.1.2.2, if the "PCCB target client entry" of the requesting MCPTT user contains a private call call-back target client state set to "PCCB-R2: private-call-pending", then the target MCPTT client shall set the private call call-back target client state to "PCCB-R1: no-call-back" and shall delete the "PCCB target client entry" associated with the requesting MCPTT user.

11.1.5.3 Participating MCPTT function procedures

11.1.5.3.1 Originating procedures

Upon receiving a "SIP MESSAGE request for private call call-back 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.

2a) 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;

3) if the "SIP MESSAGE request for private call call-back for originating participating MCPTT function" contains the <request-type> element set to a value of "private-call-call-back-request", and the <allow-request-private-call-call-back> element of the <ruleset> element is not present in the MCPTT user profile document (see the MCPTT user profile document in 3GPP TS 24.384 [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 "151 user not authorised to make a private call call-back request" in a Warning header field as specified in clause 4.4, and shall not continue with the rest of the steps in this clause;

4) if the "SIP MESSAGE request for private call call-back for originating participating MCPTT function" contains the <request-type> element set to a value of "private-call-call-back-cancel-request", and the <allow-cancel-private-call-call-back> element of the <ruleset> element is not present in the MCPTT user profile document (see the MCPTT user profile document in 3GPP TS 24.384 [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 "152 user not authorised to make a private call call-back cancel request" in a Warning header field as specified in clause 4.4, and shall not continue with the rest of the steps in this clause;

5) shall determine the public service identity of the controlling MCPTT function for the private call call-back service for the MCPTT user;

NOTE 2: The public service identity can identify the controlling MCPTT function in the primary MCPTT system or in a partner MCPTT system.

NOTE 3: If the controlling MCPTT function is in a partner MCPTT system in a different trust domain, then the public service identity can identify the MCPTT gateway server that acts as an entry point in the partner MCPTT system from the primary MCPTT system.

NOTE 4: If the controlling MCPTT function is in a partner MCPTT system in a different trust domain, then the primary MCPTT system can route the SIP request through an MCPTT gateway server that acts as an exit point from the primary MCPTT system to the partner MCPTT system

NOTE 5: How the participating MCPTT function determines the public service identity of the controlling MCPTT function for the private call call-back service for the MCPTT user or of the MCPTT gateway server in the partner MCPTT system is out of the scope of the present document.

NOTE 6: How the primary MCPTT system routes the SIP request through an exit MCPTT gateway server is out of the scope of the present document.

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

7) shall set the Request-URI of the outgoing SIP MESSAGE request to the public service identity of the controlling MCPTT function determined in step 5);

8) 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;

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 13), the participating MCPTT function shall generate a SIP 200 (OK) response and forward the SIP 200 (OK) response to the MCPTT client.

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

11.1.5.3.2 Terminating procedures

Upon receiving a "SIP MESSAGE request for private call call-back for terminating 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 use the MCPTT ID present in the <mcptt-request-uri> element of the application/vnd.3gpp.mcptt-info+xml MIME body of the incoming SIP MESSAGE request to retrieve the binding between the MCPTT ID and public user identity;

3) if the binding between the MCPTT ID and public user identity does not exist, then the participating MCPTT function shall reject the SIP MESSAGE request with a SIP 404 (Not Found) response. Otherwise, continue with the rest of the steps;

4) shall generate an outgoing SIP MESSAGE request as specified in clause 6.3.2.2.11;

5) 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 INVITE request; and

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

Upon receipt of SIP 2xx responses to the outgoing SIP MESSAGE requests, the participating MCPTT function shall forward the SIP 2xx response to the controlling MCPTT function.

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

11.1.5.4 Controlling MCPTT function procedures

Upon receiving a:

– "SIP MESSAGE request for private call call-back request for controlling MCPTT function";

– "SIP MESSAGE request for private call call-back cancel request for controlling MCPTT function"; or

– "SIP MESSAGE request for private call call-back responses 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]. Otherwise, continue with 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) if the incoming SIP MESSAGE request does not contain an application/resource-lists+xml MIME body or contains an application/resource-lists+xml MIME body with more than one total <entry> element in all <list> elements of the <resource-lists> element, shall reject the SIP MESSAGE request with a SIP 403 (Forbidden) response including warning text set to "145 unable to determine called party" in a Warning header field as specified in clause 4.4, and shall not continue with the rest of the steps;

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

5) 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];

6) 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];

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 included in the outgoing SIP MESSAGE request;

8) shall copy the MCPTT ID of the MCPTT user listed in the MIME resources body of the incoming SIP MESSAGE request, into the <mcptt-request-uri> element in the application/vnd.3gpp.mcptt-info+xml MIME body of the outgoing SIP MESSAGE request;

9) shall set the Request-URI to the public service identity of the terminating participating MCPTT function associated to the MCPTT user to be invited;

NOTE 1: The public service identity can identify the terminating participating MCPTT function in the primary MCPTT system or in a partner MCPTT system.

NOTE 2: If the terminating participating MCPTT function is in a partner MCPTT system in a different trust domain, then the public service identity can identify the MCPTT gateway server that acts as an entry point in the partner MCPTT system from the primary MCPTT system.

NOTE 3: If the terminating participating MCPTT function is in a partner MCPTT system in a different trust domain, then the primary MCPTT system can route the SIP request through an MCPTT gateway server that acts as an exit point from the primary MCPTT system to the partner MCPTT system

NOTE 4: How the controlling MCPTT function determines the public service identity of the terminating participating MCPTT function associated with the MCPTT user to be invited or of the MCPTT gateway server in the partner MCPTT system is out of the scope of the present document.

NOTE 5: How the primary MCPTT system routes the SIP request through an exit MCPTT gateway server is out of the scope of the present document.

10) shall include a P-Asserted-Service header field with the value "urn:urn-7:3gpp-service.ims.icsi.mcptt";

11) shall copy the public user identity of the calling MCPTT user from the P-Asserted-Identity header field of the incoming SIP MESSAGE request into the P-Asserted-Identity header field of the outgoing SIP MESSAGE request; and

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

Upon receipt of SIP 2xx responses to the outgoing SIP MESSAGE requests, the controlling MCPTT function shall generate a SIP 200 (OK) response and forward the SIP 200 (OK) response to the originating participating MCPTT function.

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