11.2.3 Call type control

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

11.2.3.1 General

This state machine exists in parallel with the call control state machine for off-network private call as specified in clause 11.2.2.2.

11.2.3.2 Call type control state machine

The Figure 11.2.3.2-1 gives an overview of the states and transitions of the state machine.

Figure 11.2.3.2-1: Call type control state machine

When sending the message, MCPTT client indicates the stored current ProSe per-packet priority associated with the call type control state machine to the lower layers.

11.2.3.3 Call type control states

11.2.3.3.1 Q0: waiting for the call to be established

This state is the start state of this state machine.

11.2.3.3.2 Q1: in-progress private call

This state exists for UE, when the UE is part of an in-progress private call.

11.2.3.3.3 Q2: in-progress emergency private call

This state exists for UE, when the UE is part of an in-progress emergency private call.

11.2.3.4 Procedures

11.2.3.4.1 General
11.2.3.4.2 Outgoing call initiated

When in "Q0: waiting for the call to be established" state, upon an indication from the MCPTT user to initiate a call, the MCPTT client:

1) if the stored emergency state associated with emergency alert state machine described in 12.2.2.2 is set to "true" and the value of "/<x>/<x>/Common/PrivateCall/EmergencyCall/Authorised" leaf node present in the user profile as specified in 3GPP TS 24.483 [45] is set to "true":

a) shall set the stored current call type to "EMERGENCY PRIVATE CALL"; and

b) shall set the stored current ProSe per-packet priority to value corresponding to MCPTT off-network emergency private call as described in 3GPP TS 24.483 [45]; or

2) if the stored emergency state associated with emergency alert state machine described in 12.2.2.2 is set to "false":

a) if the user initiates an MCPTT emergency private call and the value of "/<x>/<x>/Common/PrivateCall/EmergencyCall/Authorised" leaf node present in the user profile as specified in 3GPP TS 24.483 [45] is set to "true":

i) shall set the stored current call type to "EMERGENCY PRIVATE CALL"; and

ii) shall set the stored current ProSe per-packet priority to value corresponding to MCPTT off-network emergency private call as described in 3GPP TS 24.483 [45]; or

b) if the user initiates an MCPTT private call:

i) shall set the stored current call type to "PRIVATE CALL"; and

ii) shall set the stored current ProSe per-packet priority to value corresponding to MCPTT off-network private call as described in 3GPP TS 24.483 [45].

11.2.3.4.3 Received incoming call

When in "Q0: waiting for the call to be established" state, upon receipt of a PRIVATE CALL SETUP REQUEST message by an idle MCPTT client, the MCPTT client:

1) if the Call type IE of the received PRIVATE CALL SETUP REQUEST message is set to "EMERGENCY PRIVATE CALL":

a) shall set the stored current call type to "EMERGENCY PRIVATE CALL"; and

b) shall set the stored current ProSe per-packet priority to value corresponding to MCPTT off-network emergency private call as described in 3GPP TS 24.483 [45];

2) if the Call type IE of the received PRIVATE CALL SETUP REQUEST message is set to "PRIVATE CALL":

a) shall set the stored current call type to "PRIVATE CALL"; and

b) shall set the stored current ProSe per-packet priority to value corresponding to MCPTT off-network private call as described in 3GPP TS 24.483 [45].

11.2.3.4.4 Establishing the private call

When in "Q0: waiting for the call to be established" state, upon receiving PRIVATE CALL ACCEPT message or PRIVATE CALL ACCEPT ACK message, the MCPTT client:

1) if the stored current call type is set to "EMERGENCY PRIVATE CALL":

a) shall start TFP8 (implicit downgrade) timer; and

b) shall enter "Q2: in-progress emergency private call" state; or

2) if the stored current call type is set to "PRIVATE CALL":

a) shall enter "Q1: in-progress private call" state.

11.2.3.4.5 Upgrade call
11.2.3.4.5.1 User upgrades private call to emergency private call

When in the "Q1: in-progress private call" state, upon an indication from MCPTT User to upgrade the call to emergency and the value of "/<x>/<x>/Common/PrivateCall/EmergencyCall/Authorised" leaf node present in the user profile as specified in 3GPP TS 24.483 [45] is set to "true", the MCPTT client:

1) shall generate and store emergency offer SDP as defined in clause 11.2.1.1.2;

2) shall update stored caller ID as own MCPTT user ID;

3) shall update stored callee ID as MCPTT user ID of the other user;

4) shall store current user location as user location;

5) shall set the stored current call type to "EMERGENCY PRIVATE CALL";

6) shall generate a PRIVATE CALL SETUP REQUEST message as specified in clause 15.1.5. In the PRIVATE SETUP REQUEST message, the MCPTT client:

a) shall set the Call identifier IE with the stored call identifier;

b) shall set the MCPTT user ID of the caller IE with stored caller ID;

c) shall set the MCPTT user ID of the callee IE with the stored callee ID;

d) shall set the Commencement mode IE as "AUTOMATIC COMMENCEMENT MODE";

e) shall set the Call type IE to the stored current call type;

f) shall set the SDP offer IE with emergency offer SDP; and

g) may set the User location IE with user location.

7) shall set the ProSe per-packet priority to the value corresponding to MCPTT off-network emergency private call as described in 3GPP TS 24.483 [45];

8) shall send the PRIVATE CALL SETUP REQUEST message towards other MCPTT client according to rules and procedures as specified in clause 11.2.1.1.1;

9) shall initialize the counter CFP1 (private call request retransmission) with value set to 1;

10) shall start timer TFP1 (private call request retransmission);

11) shall stop timer TFP6 (emergency private call cancel retransmission), if running; and

12) shall enter the "Q2: in-progress emergency private call" state.

11.2.3.4.5.2 Emergency private call setup request retransmission

When in the "Q2: in-progress emergency private call" state, upon expiry of timer TFP1 (private call request retransmission) and the value of CFP1 is less than the limit for CFP1, the MCPTT client:

1) may update the stored user location with current user location;

2) shall increment the value of the counter CFP1 (private call request retransmission) by 1;

3) shall generate a PRIVATE CALL SETUP REQUEST message as specified in clause 15.1.5. In the PRIVATE CALL SETUP REQUEST message, the MCPTT client:

a) shall set the Call identifier IE with the stored call identifier;

b) shall set the MCPTT user ID of the caller IE with stored caller ID;

c) shall set the MCPTT user ID of the callee IE with stored callee ID;

d) shall set the Commencement mode IE as "AUTOMATIC COMMENCEMENT MODE";

e) shall set the Call type IE to the stored current call type;

f) shall set the SDP offer IE with the stored emergency offer SDP; and

g) may set the User location IE with stored user location;

4) shall send the PRIVATE CALL SETUP REQUEST message towards other MCPTT client according to rules and procedures as specified in clause 11.2.1.1.1;

5) shall start timer TFP1 (private call request retransmission); and

6) shall remain in the "Q2: in-progress emergency private call" state.

11.2.3.4.5.3 Emergency private call setup request accepted

When in the "Q2: in-progress emergency private call" state, upon receiving a PRIVATE CALL ACCEPT message response to PRIVATE CALL SETUP REQUEST message with the same call identifier, the MCPTT client:

1) shall store the SDP answer IE received in the PRIVATE CALL ACCEPT message as emergency answer SDP;

2) shall generate a PRIVATE CALL ACCEPT ACK message as specified in clause 15.1.11:

a) shall set the Call identifier IE to the stored call identifier;

b) shall set the MCPTT user ID of the caller IE with stored caller ID; and

c) shall set the MCPTT user ID of the callee IE with the stored callee ID;

3) shall send the PRIVATE CALL ACCEPT ACK message in response to the request message according to rules and procedures as specified in clause 11.2.1.1.1;

4) shall stop timer TFP1 (private call request retransmission), if running;

5) if timer TFP8 is not running, shall start TFP8 (implicit downgrade) timer;

6) shall establish a media session based on the SDP body of the stored emergency answer SDP, if not already established based on the received SDP body of the stored emergency answer SDP; and

7) shall remain in the current state.

NOTE: PRIVATE CALL ACCEPT ACK message is retransmitted, as described in this clause, every time a PRIVATE CALL ACCEPT message is received.

11.2.3.4.5.4 Emergency private call setup request rejected

When in the "Q2: in-progress emergency private call" state, upon receiving a PRIVATE CALL REJECT message in response to PRIVATE CALL SETUP REQUEST message with Call identifier IE same as stored call identifier, the MCPTT client:

1) shall stop timer TFP1 (private call request retransmission), if running;

2) shall set the ProSe per-packet priority to the value corresponding to the MCPTT off-network private call as described in 3GPP TS 24.483 [45];

3) shall set the stored current call type to "PRIVATE CALL"; and

4) shall enter the "Q1: in-progress private call" state.

11.2.3.4.5.5 No response to emergency private call setup request

In the "Q2: in-progress emergency private call" state, when timer TFP1 (private call request retransmission) expires and the value of the counter CFP1 (private call request retransmission) is equal to the upper, the MCPTT client:

1) shall release the stored current call type;

2) shall release the stored Prose per-packet priority; and

3) shall enter "Q0: waiting for the call to be established".

11.2.3.4.5.6 Responding to emergency private call setup request when participating in the ongoing call

When in the "Q1: in-progress private call" state or "Q2: in-progress emergency private call" state, upon receiving a PRIVATE CALL SETUP REQUEST message with the Call identifier IE same as the stored call identifier of the call, the Call type IE set as "EMERGENCY PRIVATE CALL", the MCPTT client:

1) if the media session declared in SDP body of PRIVATE CALL SETUP REQUEST message can be established:

a) shall generate and store emergency answer SDP based on received SDP offer IE in PRIVATE CALL SETUP REQUEST message, as defined in clause 11.2.1.1.2;

b) shall update the stored caller ID with the MCPTT user ID of the caller IE as received in the PRIVATE CALL SETUP REQUEST message;

c) shall update the stored callee ID with own MCPTT user ID;

d) shall generate a PRIVATE CALL ACCEPT message as specified in clause 15.1.7:

i) shall set the Call identifier IE to the stored call identifier;

ii) shall set the MCPTT user ID of the callee IE with stored callee ID;

iii) shall set the MCPTT user ID of the caller IE with stored caller ID; and

iv) shall set the SDP answer IE with the stored emergency answer SDP;

e) if in the "Q1: in-progress private call" state, shall set the ProSe per-packet priority to the value corresponding to MCPTT off-network emergency private call as described in 3GPP TS 24.483 [45];

f) if in the "Q1: in-progress private call" state, shall stop timer TFP6 (emergency private call cancel retransmission), if running;

g) if in the "Q1: in-progress private call" state, shall start timer TFP8 (implicit downgrade);

h) shall send PRIVATE CALL ACCEPT message in response to the request message according to rules and procedures as specified in clause 11.2.1.1.1;

i) if in the "Q1: in-progress private call" state, shall set the stored current call type to "EMERGENCY PRIVATE CALL"; and

j) if in the "Q1: in-progress private call" state, shall enter the "Q2: in-progress emergency private call" state; otherwise remain in the "Q2: in-progress emergency private call" state;

2) if the media session declared in SDP body of PRIVATE CALL SETUP REQUEST message cannot be established:

a) shall generate a PRIVATE CALL REJECT message as specified in clause 15.1.8;

b) shall set the call identifier IE with the call identifier in the received message;

c) shall set the MCPTT user ID of the caller IE with the caller ID in the received message;

d) shall set the MCPTT user ID of the callee IE with the callee ID in the received message;

e) shall set the Reason IE as "FAILED", if requested to restrict notification of call failure and the value of "/<x>/<x>/Common/PrivateCall/FailRestrict" leaf node present in the user profile as specified in 3GPP TS 24.483 [45] is set to "true". Otherwise, shall set the reason IE as "MEDIA FAILURE";

f) shall send a PRIVATE CALL REJECT message in response to the request message according to rules and procedures as specified in clause 11.2.1.1.1; and

g) shall remain in the current state.

11.2.3.4.6 Downgrade call
11.2.3.4.6.1 User cancels the emergency private call

When in the "Q2: in-progress emergency private call" state, upon an indication from:

1) the caller of the emergency private call; or

2) the recipient of the emergency private call with the value of "/<x>/<x>/Common/PrivateCall/EmergencyCall/CancelPriority" leaf node present in the user profile as specified in 3GPP TS 24.483 [45] set to "true",

to cancel the emergency private call, the MCPTT client:

1) shall generate a PRIVATE CALL EMERGENCY CANCEL message as specified in clause 15.1.12. In the PRIVATE CALL EMERGENCY CANCEL message, the MCPTT client:

a) shall set the Call identifier IE to the stored call identifier;

b) shall set the MCPTT user ID of the caller IE with the stored caller; and

c) shall set the MCPTT user ID of the callee IE with the stored callee.

2) shall send the PRIVATE CALL EMERGENCY CANCEL message according to rules and procedures as specified in clause 11.2.1.1.1;

3) shall stop TFP1 (private call request retransmission), if running;

4) shall stop TFP8 (implicit downgrade) timer;

5) shall initialize the counter CFP6 (emergency private call cancel retransmission) with the value set to 1;

6) shall start timer TFP6 (emergency private call cancel retransmission);

7) shall set the stored current call type to "PRIVATE CALL"; and

8) shall enter the "Q1: in-progress private call" state.

11.2.3.4.6.2 Emergency private call cancel retransmission

When in the "Q1: in-progress private call" state, upon expiry of timer TFP6 (emergency private call cancel retransmission) and the value of the counter CFP6 (emergency private call cancel retransmission) is less than upper limit, the MCPTT client:

1) shall generate a PRIVATE CALL EMERGENCY CANCEL message as specified in clause 15.1.12. In the PRIVATE CALL EMERGENCY CANCEL message, the MCPTT client:

a) shall set the Call identifier IE to the stored call identifier;

b) shall set the MCPTT user ID of the caller IE with the stored caller ID; and

c) shall set the MCPTT user ID of the callee IE with store callee ID.

2) shall send the PRIVATE CALL EMERGENCY CANCEL message according to rules and procedures as specified in clause 11.2.1.1.1;

3) shall increment the value of the timer CFP6 (emergency private call cancel retransmission) by 1;

4) shall start timer TFP6 (emergency private call cancel retransmission); and

5) shall remain in the "Q1: in-progress private call" state.

11.2.3.4.6.3 Emergency private call cancel accepted

When in the "Q1: in-progress private call" state, upon receiving a PRIVATE CALL EMERGENCY CANCEL ACK message response to PRIVATE CALL EMERGENCY CANCEL message with the same "call identifier", the MCPTT client:

1) shall stop timer TFP6 (emergency private call cancel retransmission), if running;

2) shall establish a media session based on the SDP body of the stored answer SDP;

3) shall set the ProSe per-packet priority to the value corresponding to MCPTT off-network private call as described in 3GPP TS 24.483 [45]; and

4) shall remain in the "Q1: in-progress private call" state.

11.2.3.4.6.4 No response to emergency private call cancel

In the "Q1: in-progress private call" state, when timer TFP6 (emergency private call cancel retransmission) expires and the value of the counter CFP6 (emergency private call cancel retransmission) is equal to the upper limit, the MCPTT client:

1) shall release the stored current call type;

2) shall release the stored Prose per-packet priority; and

3) shall enter "Q0: waiting for the call to be established".

11.2.3.4.6.5 Responding to emergency private call cancel

When in the "Q1: in-progress private call" state or "Q2: in-progress emergency private call" state, upon receiving a PRIVATE CALL EMERGENCY CANCEL message with the same "call identifier" IE, the MCPTT client:

1) shall generate a PRIVATE CALL EMERGENCY CANCEL ACK as specified in clause 15.1.13:

a) shall set the Call identifier IE to the stored call identifier;

b) shall set the MCPTT user ID of the callee IE with own MCPTT user ID; and

c) shall set the MCPTT user ID of the caller IE with MCPTT user ID of the caller IE in received message;

2) shall send PRIVATE CALL EMERGENCY CANCEL ACK message according to rules and procedures as specified in clause 11.2.1.1.1;

3) if in the "Q2: in-progress emergency private call" state, shall stop timer TFP8 (implicit downgrade);

4) shall establish a media session based on the SDP body of the stored answer SDP;

5) shall set the ProSe per-packet priority to the value corresponding to MCPTT off-network private call as described in 3GPP TS 24.483 [45]; and

6) shall enter the "Q1: in-progress private call" state and set the stored current call type to "PRIVATE CALL", if current state is the "Q2: in-progress emergency private call" state.

11.2.3.4.6A Implicit downgrade

When in the "Q2: in-progress emergency private call" state, upon expiry of TFP8 (implicit downgrade) timer, the MCPTT client:

1) shall establish a media session based on the SDP body of the stored answer SDP;

2) shall set the ProSe per-packet priority to the value corresponding to MCPTT off-network private call as described in 3GPP TS 24.483 [45];

3) shall set the stored current call type to "PRIVATE CALL"; and

4) shall enter the "Q1: in-progress private call" state.

11.2.3.4.7 Call Release

When in state "Q1: in-progress private call" or "Q2: in-progress emergency private call", upon receiving an indication from MCPTT user to release the call or upon receiving PRIVATE CALL RELEASE message, the MCPTT client:

1) shall release the stored current call type;

2) if in the "Q2: in-progress emergency private call" state, shall stop timer TFP1 (private call request retransmission), if running;

3) if in the "Q1: in-progress private call" state, shall stop timer TFP6 (emergency private call cancel retransmission), if running;

4) if in the "Q2: in-progress emergency private call" state, shall stop timer TFP8 (implicit downgrade);

5) shall release the stored Prose per-packet priority; and

6) shall enter "Q0: waiting for the call to be established".

11.2.3.4.7A Private call setup request accepted

When in the "Q1: in-progress private call" state, upon receiving a PRIVATE CALL ACCEPT message response to PRIVATE CALL SETUP REQUEST message with the same call identifier, the MCPTT client:

1) shall generate a PRIVATE CALL ACCEPT ACK message as specified in clause 15.1.11:

a) shall set the Call identifier IE to the stored call identifier;

b) shall set the MCPTT user ID of the caller IE with stored caller ID; and

c) shall set the MCPTT user ID of the callee IE with the stored callee ID;

2) shall send the PRIVATE CALL ACCEPT ACK message in response to the request message according to rules and procedures as specified in clause 11.2.1.1.1; and

3) shall remain in the current state.

NOTE: PRIVATE CALL ACCEPT ACK message is retransmitted, as described in this clause, every time a PRIVATE CALL ACCEPT message is received.

11.2.3.4.8 Error handling
11.2.3.4.8.1 Unexpected MONP message received

Upon receiving a MONP message in a state where there is no handling specified for the MONP message, the MCPTT client shall discard the MONP message.

11.2.3.4.8.2 Unexpected indication from MCPTT user

Upon receiving an indication from the MCPTT user in a state where there is no handling specified for the indication, the MCPTT client shall ignore the indication.

11.2.3.4.8.3 Unexpected expiration of a timer

Upon expiration of a timer in a state where there is no handling specified for expiration of the timer, the MCPTT client shall ignore the expiration of the timer.