10.2.3 Call type control

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

10.2.3.1 General

This state machine exists in parallel with the basic call control state machine for off-network group call as specified in clause 10.2.2.2.

10.2.3.2 Call type control state machine

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

Figure 10.2.3.2-1: Call type control state machine

The following pieces of information are associated with the call type control state machine:

a) the stored current call type;

b) the stored current ProSe per-packet priority;

c) the stored last call type change time of the call; and

d) the stored last user to change call type of the call.

When sending the message, MCPTT client indicates the stored current ProSe per-packet priority (as described in 3GPP TS 24.483 [45]) associated with the call type control state machine to the lower layers.

10.2.3.3 Call type control states

10.2.3.3.1 T0: waiting for call to establish

This state is the start state of this state machine.

10.2.3.3.2 T1: in-progress emergency group call

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

10.2.3.3.3 T2: in-progress basic group call

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

10.2.3.3.4 T3: in-progress imminent peril group call

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

10.2.3.4 Procedures

10.2.3.4.1 General
10.2.3.4.1.1 Implicit downgrade (emergency) timer calculation

The MCPTT client shall set the TFG13 (implicit downgrade emergency) timer as follows:

1) TFG13 (implicit downgrade emergency) = X – (Y – Z) seconds, where:

a) X = value of "/<x>/<x>/OffNetwork/EmergencyCallCancel" leaf node present in group configuration as specified in 3GPP TS 24.483 [45];

b) Y = current UTC time, in seconds since midnight UTC of January 1, 1970 (not counting leap seconds); and

c) Z = Last call type change time IE of the GROUP CALL ANNOUNCEMENT message or the Last call type change time IE of the GROUP CALL EMERGENCY END message.

10.2.3.4.1.2 Implicit downgrade (imminent peril) timer calculation

The MCPTT client shall set the TFG14 (implicit downgrade imminent peril) timer as follows:

1) TFG14 (implicit downgrade imminent peril) = X – (Y – Z) seconds, where:

a) X = value of "/<x>/<x>/OffNetwork/ImminentPerilCallCancel" leaf node present in group configuration as specified in 3GPP TS 24.483 [45];

b) Y = current UTC time, in seconds since midnight UTC of January 1, 1970 (not counting leap seconds); and

c) Z = Last call type change time IE of the GROUP CALL ANNOUNCEMENT message or the Last call type change time IE of the GROUP CALL IMMINENT PERIL END message.

10.2.3.4.2 User initiated the call probe

When in the "T0: waiting for the call to establish " state, upon an indication from an MCPTT user to initiate a group call probe for an MCPTT group, 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/AllowedEmergencyCall" leaf node present in group configuration as specified in 3GPP TS 24.483 [45] is set to "true":

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

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

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

a) if the user initiates an MCPTT emergency call and the values of "/<x>/<x>/Common/MCPTTGroupCall/EmergencyCall/Enabled" leaf node present in the user profile and "/<x>/<x>/Common/AllowedEmergencyCall" leaf node present in group configuration as specified in 3GPP TS 24.483 [45] are set to "true":

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

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

b) if the user initiates an MCPTT imminent peril group call and the values of "/<x>/<x>/Common/MCPTTGroupCall/ImminentPerilCall/Authorised" leaf node present in the user profile "/<x>/<x>/Common/AllowedImminentPerilCall " leaf node present in group configuration as specified in 3GPP TS 24.483 [45] are set to "true":

i) shall set the stored current call type to "IMMINENT PERIL GROUP CALL"; and

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

c) if the user initiates an MCPTT group call which is not an MCPTT emergency call and which is not an MCPTT imminent peril group call:

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

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

3) shall set the stored last call type change time to current UTC time;

4) shall set the last user to change call type to own MCPTT user ID; and

5) shall remain in "T0: waiting for the call to establish" state.

10.2.3.4.3 Received GROUP CALL ANNOUNCEMENT message as a response to GROUP CALL PROBE message

When in the "T0: waiting for the call to establish " state, upon receipt of a GROUP CALL ANNOUNCEMENT message as a response to GROUP CALL PROBE message, the MCPTT client:

1) if the Call type IE of the received GROUP CALL ANNOUNCEMENT message is set to "EMERGENCY GROUP CALL":

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

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

c) shall set the stored last call type change time to the Last call type change time IE of the GROUP CALL ANNOUNCEMENT message;

d) shall set the stored last user to change call type to the Last user to change call type IE of the GROUP CALL ANNOUNCEMENT message;

e) shall start timer TFG13 (implicit downgrade emergency) with value as specified in clause 10.2.3.4.1.1; and

f) shall enter "T1: in-progress emergency group call" state;

2) if the Call type IE of the received GROUP CALL ANNOUNCEMENT message is set to "IMMINENT PERIL GROUP CALL", and if the stored current call type is other than "EMERGENCY GROUP CALL":

a) shall set the stored current call type to "IMMINENT PERIL GROUP CALL";

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

c) shall set the stored last call type change time to the Last call type change time IE of the GROUP CALL ANNOUNCEMENT message;

d) shall set the stored last user to change call type to the Last user to change call type IE of the GROUP CALL ANNOUNCEMENT message;

e) shall start timer TFG14 (implicit downgrade imminent peril) with value as specified in clause 10.2.3.4.1.2; and

f) shall enter "T3: in-progress imminent peril group call" state; and

3) if the Call type IE of the received GROUP CALL ANNOUNCEMENT message is set to "BASIC GROUP CALL", and if the stored current call type is "BASIC GROUP CALL":

a) shall set the stored last call type change time to the Last call type change time IE of the GROUP CALL ANNOUNCEMENT message;

b) shall set the stored last user to change call type to the Last user to change call type IE of the GROUP CALL ANNOUNCEMENT message; and

c) shall enter "T2: in-progress basic group call" state.

10.2.3.4.4 Received GROUP CALL ANNOUNCEMENT with MCPTT user acknowledgement required

When in the "T0: waiting for the call to establish" state, upon receipt of a GROUP CALL ANNOUNCEMENT message by an idle MCPTT client when MCPTT user acknowledgement is required, the MCPTT client:

1) if the Call type IE of the received GROUP CALL ANNOUNCEMENT message is set to "EMERGENCY GROUP CALL":

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

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

2) if the Call type IE of the received GROUP CALL ANNOUNCEMENT message is set to "IMMINENT PERIL GROUP CALL":

a) shall set the stored current call type to "IMMINENT PERIL GROUP CALL"; and

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

3) if the Call type IE of the received GROUP CALL ANNOUNCEMENT message is set to "BASIC GROUP CALL":

a) shall set the stored current call type to "BASIC GROUP CALL";

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

4) shall set the stored last call type change time to the Last call type change time IE of the GROUP CALL ANNOUNCEMENT message;

5) shall set the last user to change call type to the Last user to change call type IE of the GROUP CALL ANNOUNCEMENT message; and

6) shall remain in "T0: waiting for the call to establish" state.

10.2.3.4.5 Received GROUP CALL ANNOUNCEMENT without MCPTT user acknowledgement required

When in the "T0: waiting for the call to establish" state, upon receipt of a GROUP CALL ANNOUNCEMENT message by an idle MCPTT client when MCPTT user acknowledgement is not required, the MCPTT client:

1) shall set the stored last call type change time to the Last call type change time IE of the GROUP CALL ANNOUNCEMENT message;

2) shall set the last user to change call type to the Last user to change call type IE of the GROUP CALL ANNOUNCEMENT message;

3) if the Call type IE of the received GROUP CALL ANNOUNCEMENT message is set to "EMERGENCY GROUP CALL":

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

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

c) shall start timer TFG13 (implicit downgrade emergency) with value as specified in clause 10.2.3.4.1.1; and

d) shall enter "T1: in-progress emergency group call" state;

4) if the Call type IE of the received GROUP CALL ANNOUNCEMENT message is set to "IMMINENT PERIL GROUP CALL":

a) shall set the stored current call type to "IMMINENT PERIL GROUP CALL";

b) shall set the stored current ProSe per-packet priority to value corresponding to MCPTT off-network imminent peril group call as described in3GPP TS 24.483 [45];

c) shall start timer TFG14 (implicit downgrade imminent peril) with value as specified in clause 10.2.3.4.1.2; and

d) shall enter "T3: in-progress imminent peril group call" state; and

5) if the Call type IE of the received GROUP CALL ANNOUNCEMENT message is set to "BASIC GROUP CALL":

a) shall set the stored current call type to "BASIC GROUP CALL";

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

c) shall enter "T2: in-progress basic group call" state.

10.2.3.4.6 Call started

When in state "T0: waiting for the call to establish", if:

a) the MCPTT user accepts the call when MCPTT user acknowledgement is required; or

b) the MCPTT client sends a GROUP CALL ANNOUNCEMENT message on expiry of timer TFG1 (wait for call announcement) associated with the basic call control state machine;

the MCPTT client:

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

a) shall start timer TFG13 (implicit downgrade emergency) with value as specified in clause 10.2.3.4.1.1; and

b) shall enter "T1: in-progress emergency group call" state;

2) if the stored current call type is set to "IMMINENT PERIL GROUP CALL"

a) shall start timer TFG14 (implicit downgrade imminent peril) with value as specified in clause 10.2.3.4.1.2; and

b) shall enter "T3: in-progress imminent peril group call" state; or

3) if the stored current call type is set to "BASIC GROUP CALL"

a) shall enter "T2: in-progress basic group call" state.

10.2.3.4.7 Upgrade call
10.2.3.4.7.1 Originating user upgrading the call

When in the "T2: in-progress basic group call" state, upon receiving an indication from the user to upgrade the call to "IMMINENT PERIL GROUP CALL" or "EMERGENCY GROUP CALL" or when in the "T3: in-progress imminent peril group call" state, upon receiving an indication from the user to upgrade the call to "EMERGENCY GROUP CALL", the MCPTT client:

1) if the user request is to upgrade the call to "EMERGENCY GROUP CALL" and the value of "/<x>/<x>/OffNetwork/EmergencyCallChange" 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 GROUP CALL";

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

c) shall store the current UTC time as last call type change time of the call;

d) shall store own MCPTT user ID as last user to change call type of the call;

e) shall start timer TFG13 (implicit downgrade emergency) with value as specified in clause 10.2.3.4.1.1;

f) shall stop timer TFG11 (emergency end retransmission), if running;

g) shall stop timer TFG14 (implicit downgrade imminent peril), if running; and

h) shall enter "T1: in-progress emergency group call" state;

2) if the user request is to upgrade the call to "IMMINENT PERIL GROUP CALL" and the value of "/<x>/<x>/OffNetwork/ ImminentPerilCallChange" leaf node present in the user profile as specified in 3GPP TS 24.483 [45] set to "true":

a) shall set the stored current call type to "IMMINENT PERIL GROUP CALL";

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

c) shall store the current UTC time as last call type change time of the call;

d) shall store own MCPTT user ID as last user to change call type of the call;

e) shall start timer TFG14 (implicit downgrade imminent peril) with value as specified in clause 10.2.3.4.1.2;

f) shall stop timer TFG12 (imminent peril end retransmission), if running; and

g) shall enter "T3: in-progress imminent peril group call" state;

3) shall generate a GROUP CALL ANNOUNCEMENT message as specified in clause 15.1.3. In the GROUP CALL ANNOUNCEMENT message, the MCPTT client:

a) shall set the Call identifier IE to the stored call identifier of the call associated with the basic call control state machine;

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

c) shall set the Refresh interval IE to the stored refresh interval of the call associated with the basic call control state machine;

d) shall set the SDP IE to the stored SDP body of the call associated with the basic call control state machine;

e) shall set the Originating MCPTT user ID IE to the stored originating MCPTT user ID of the call associated with the basic call control state machine;

f) shall set the MCPTT group ID IE to the stored MCPTT group ID of the call associated with the basic call control state machine;

g) shall set the call start time IE to the stored call start time of the call;

h) shall set the Last call type change time IE to the stored last call type change time of the call; and

i) shall set the Last user to change call type IE to the stored last user to change call type of the call; and

4) shall send the GROUP CALL ANNOUNCEMENT message as specified in clause 10.2.1.1.1;

10.2.3.4.7.2 Terminating UE receiving a GROUP CALL ANNOUNCEMENT message when participating in the ongoing call

When in the "T1: in-progress emergency group call" state or "T2: in-progress basic group call" state or "T3: in-progress imminent peril group call" state, upon receiving a GROUP CALL ANNOUNCEMENT message with the MCPTT group ID IE matching with MCPTT group ID of the ongoing call and the Call Identifier IE being the same as the stored call identifier of the call, the MCPTT client:

1) if the stored last user to change call type of the call is same as the Last user to change call type IE of the GROUP CALL ANNOUNCEMENT message and the stored last call type change time is smaller than Last call type change time IE of the GROUP CALL ANNOUNCEMENT message:

a) shall set the stored last call type change time of the call to Last call type change time IE of the GROUP CALL ANNOUNCEMENT message;

b) if the Call type IE of the received GROUP CALL ANNOUNCEMENT message is set to "EMERGENCY GROUP CALL" and the stored call type is other than "EMERGENCY GROUP CALL":

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

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

iii) shall stop timer TFG14 (implicit downgrade imminent peril), if running;

iv) shall start timer TFG13 (implicit downgrade emergency) with value as specified in clause 10.2.3.4.1.1; and

v) shall enter "T1: in-progress emergency group call" state;

c) if the Call type IE of the received GROUP CALL ANNOUNCEMENT message is set to "IMMINENT PERIL GROUP CALL" and the stored call type is other than "IMMINENT PERIL GROUP CALL":

i) shall set the stored current call type to "IMMINENT PERIL GROUP CALL";

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

iii) shall stop timer TFG13 (implicit downgrade emergency), if running;

iv) shall start timer TFG14 (implicit downgrade imminent peril) with value as specified in clause 10.2.3.4.1.2; and

v) shall enter "T3: in-progress imminent peril group call" state; and

d) if the Call type IE of the received GROUP CALL ANNOUNCEMENT message is set to "BASIC GROUP CALL" and the stored call type is other than "BASIC GROUP CALL":

i) shall set the stored current call type to "BASIC GROUP CALL";

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

iii) shall stop timer TFG13 (implicit downgrade emergency), if running;

iv) shall stop timer TFG14 (implicit downgrade imminent peril), if running; and

v) shall enter "T2: in-progress basic group call" state; and

2) if the stored last user to change call type of the call is different from the Last user to change call type IE of the GROUP CALL ANNOUNCEMENT message and:

a) if the stored call type is same as Call type IE in the received GROUP CALL ANNOUNCEMENT message and the stored last call type change time is smaller than Last call type change time IE of the GROUP CALL ANNOUNCEMENT message:

i) shall set the stored last call type change time of the call to Last call type change time IE of the GROUP CALL ANNOUNCEMENT message; and

ii) shall set the stored last user to change call type of the call to Last user to change call type IE of the GROUP CALL ANNOUNCEMENT message;

b) if the Call type IE of the received GROUP CALL ANNOUNCEMENT message is set to "EMERGENCY GROUP CALL" and the stored call type is other than "EMERGENCY GROUP CALL":

i) shall set the stored last call type change time of the call to Last call type change time IE of the GROUP CALL ANNOUNCEMENT message;

ii) shall set the stored last user to change call type of the call to Last user to change call type IE of the GROUP CALL ANNOUNCEMENT message;

iii) shall set the stored current call type to "EMERGENCY GROUP CALL";

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

v) shall stop timer TFG14 (implicit downgrade imminent peril), if running;

vi) shall start timer TFG13 (implicit downgrade emergency) with value as specified in clause 10.2.3.4.1.1; and

vii) shall enter "T1: in-progress emergency group call" state; and

c) if the Call type IE of the received GROUP CALL ANNOUNCEMENT message is set to "IMMINENT PERIL GROUP CALL" and the stored call type is "BASIC GROUP CALL":

i) shall set the stored last call type change time of the call to Last call type change time IE of the GROUP CALL ANNOUNCEMENT message;

ii) shall set the stored last user to change call type of the call to Last user to change call type IE of the GROUP CALL ANNOUNCEMENT message;

iii) shall set the stored current call type to "IMMINENT PERIL GROUP CALL ";

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

v) shall start timer TFG14 (implicit downgrade imminent peril) with value as specified in clause 10.2.3.4.1.2; and

vi) shall enter "T3: in-progress imminent peril group call" state; and

d) if the Call type IE of the received GROUP CALL ANNOUNCEMENT message is set to "BASIC GROUP CALL" and the stored call type is other than "BASIC GROUP CALL":

i) shall set the stored current call type to "BASIC GROUP CALL";

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

iii) shall stop timer TFG13 (implicit downgrade emergency), if running;

iv) shall stop timer TFG14 (implicit downgrade imminent peril), if running; and

v) shall enter "T2: in-progress basic group call" state.

10.2.3.4.8 Downgrade call
10.2.3.4.8.1 Originating user downgrading emergency group call

When in the "T1: in-progress emergency group call" state, upon receiving an indication from:

1) the MCPTT user who upgraded the MCPTT group call; or

2) an authorized MCPTT user with the value of "/<x>/<x>/Common/MCPTTGroupCall/EmergencyCall/CancelMCPTTGroup" leaf node present in the user profile as specified in 3GPP TS 24.483 [45] is set to "true",

to downgrade "EMERGENCY GROUP CALL", the MCPTT client:

1) shall set the stored current call type to "BASIC GROUP CALL";

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

3) shall set current UTC time as last call type change time of the call;

4) shall store own MCPTT user ID as last user to change call type of the call;

5) shall generate a GROUP CALL EMERGENCY END message as specified in clause 15.1.15. In the GROUP CALL EMERGENCY END message, the MCPTT client:

a) shall set the Call identifier IE to the stored call identifier of the call associated with the basic call control state machine;

b) shall set the Originating MCPTT user ID IE to the stored originating MCPTT user ID of the call associated with the basic call control state machine;

c) shall set the MCPTT group ID IE to the stored MCPTT group ID of the call associated with the basic call control state machine;

d) shall set the Last call type change time IE to the stored last call type change time of the call; and

e) shall set the Last user to change call type IE to the stored last user to change call type of the call;

6) shall send the GROUP CALL EMERGENCY END message as specified in clause 10.2.1.1.1;

7) shall stop timer TFG13 (implicit downgrade emergency);

8) shall initialize the counter CFG11 (emergency end retransmission) with value set to 1;

9) shall start timer TFG11 (emergency end retransmission); and

10) shall enter the "T2: in-progress basic group call" state.

10.2.3.4.8.2 Retransmitting GROUP CALL EMERGENCY END

When in the "T2: in-progress basic group call" state, upon expiry of timer TFG11 (emergency end retransmission), the MCPTT client:

1) shall generate a GROUP CALL EMERGENCY END message as specified in clause 15.1.15. In the GROUP CALL EMERGENCY END message, the MCPTT client:

a) shall set the Call identifier IE to the stored call identifier of the call associated with the basic call control state machine;

b) shall set the Originating MCPTT user ID IE to the stored originating MCPTT user ID of the call associated with the basic call control state machine;

c) shall set the MCPTT group ID IE to the stored MCPTT group ID of the call associated with the basic call control state machine;

d) shall set the Last call type change time IE to the stored last call type change time of the call; and

e) shall set the Last user to change call type IE to the stored last user to change call type of the call;

2) shall send the GROUP CALL EMERGENCY END message as specified in clause 10.2.1.1.1;

3) shall increment the value of the counter CFG11 (emergency end retransmission) by 1;

4) shall start timer TFG11 (emergency end retransmission) if the value of the associated counter CFG11 (emergency end retransmission) is less than the upper limit; and

5) shall remain in "T2: in-progress basic group call" state.

10.2.3.4.8.3 Terminating user downgrading emergency group call

When in the "T1: in-progress emergency group call" state, upon receiving GROUP CALL EMERGENCY END message, the MCPTT client:

1) shall set the stored last call type change time to the Last call type change time IE of the received GROUP CALL EMERGENCY END message;

2) shall set the stored last user to change call type to the Last user to change call type IE of the received GROUP CALL EMERGENCY END message;

3) shall set the stored current call type to "BASIC GROUP CALL";

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

5) shall stop timer TFG13 (implicit downgrade emergency); and

6) shall enter the "T2: in-progress basic group call" state.

10.2.3.4.8.4 Originating user downgrading imminent peril group call

When in the "T3: in-progress imminent peril group call" state, upon receiving an indication from:

1) the MCPTT user who upgraded the call; or

2) an authorized user with the value of "/<x>/<x>/Common/MCPTTGroupCall/ImminentPerilCall/Cancel" leaf node present in the user profile as specified in 3GPP TS 24.483 [45] is set to "true",

to downgrade "IMMINENT PERIL GROUP CALL", the MCPTT client:

1) shall set the stored current call type to "BASIC GROUP CALL";

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

3) shall set current UTC time as last call type change time of the call;

4) shall store own MCPTT user ID as last user to change call type of the call;

5) shall generate a GROUP CALL IMMINENT PERIL END message as specified in clause 15.1.14. In the GROUP CALL IMMINENT PERIL END message, the MCPTT client:

a) shall set the Call identifier IE to the stored call identifier of the call associated with the basic call control state machine;

b) shall set the Originating MCPTT user ID IE to the stored originating MCPTT user ID of the call associated with the basic call control state machine;

c) shall set the MCPTT group ID IE to the stored MCPTT group ID of the call associated with the basic call control state machine;

d) shall set the Last call type change time IE to the stored last call type change time of the call; and

e) shall set the Last user to change call type IE to the stored last user to change call type of the call;

6) shall send the GROUP CALL IMMINENT PERIL END message as specified in clause 10.2.1.1.1;

7) shall stop timer TFG14 (implicit downgrade imminent peril);

8) shall initialize the counter CFG12 (imminent peril end retransmission) with value set to 1;

9) shall start timer TFG12 (imminent peril end retransmission); and

10) shall enter the "T2: in-progress basic group call" state.

10.2.3.4.8.5 Retransmitting GROUP CALL IMMINENT PERIL END

When in the "T2: in-progress basic group call" state, upon expiry of timer TFG12 (imminent peril end retransmission), the MCPTT client:

1) shall generate a GROUP CALL IMMINENT PERIL END message as specified in clause 15.1.14. In the GROUP CALL IMMINENT PERIL END message, the MCPTT client:

a) shall set the Call identifier IE to the stored call identifier of the call associated with the basic call control state machine;

b) shall set the Originating MCPTT user ID IE to the stored originating MCPTT user ID of the call associated with the basic call control state machine;

c) shall set the MCPTT group ID IE to the stored MCPTT group ID of the call associated with the basic call control state machine;

d) shall set the Last call type change time IE to the stored last call type change time of the call; and

e) shall set the Last user to change call type IE to the stored last user to change call type of the call;

2) shall send the GROUP CALL IMMINENT PERIL END message as specified in clause 10.2.1.1.1;

3) shall increment the value of the counter CFG12 (imminent peril end retransmission) by 1;

4) shall start the timer TFG12 (imminent peril end retransmission) if the value of the associated counter CFG12 (imminent peril end retransmission) is less than the upper limit; and

5) shall remain in "T2: in-progress basic group call" state.

10.2.3.4.8.6 Terminating user downgrading imminent peril group call

When in the "T3: in-progress imminent peril group call" state, upon receiving GROUP CALL IMMINENT PERIL END message, the MCPTT client:

1) shall set the stored last call type change time to the Last call type change time IE of the received GROUP CALL IMMINENT PERIL END message;

2) shall set the stored last user to change call type to the Last user to change call type IE of the received GROUP CALL IMMINENT PERIL END message;

3) shall set the stored current call type to "BASIC GROUP CALL";

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

5) shall stop timer TFG14 (implicit downgrade imminent peril); and

6) shall enter the "T2: in-progress basic group call" state.

10.2.3.4.8.7 Void
10.2.3.4.8.8 Implicit emergency priority end

When in the "T1: in-progress emergency group call" state, upon expiry of timer TFG13 (implicit downgrade emergency), the MCPTT client:

1) shall store the current UTC time as the stored last call type change time of the call;

2) shall store the originating MCPTT user ID as the stored last user to change call type of the call;

3) shall set the stored current call type to "BASIC GROUP CALL";

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

5) shall enter the "T2: in-progress basic group call" state.

10.2.3.4.8.9 Implicit imminent peril priority end

When in the "T3: in-progress imminent peril call" state, upon expiry of timer TFG14 (implicit downgrade imminent peril), the MCPTT client:

1) shall store the current UTC time as the stored last call type change time of the call;

2) shall store the originating MCPTT user ID as the stored last user to change call type of the call;

3) shall set the stored current call type to "BASIC GROUP CALL";

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

5) shall enter the "T2: in-progress basic group call" state.

10.2.3.4.9 Merge of two calls

When in the "T1: in-progress emergency group call" state or "T2: in-progress basic group call" state or "T3: in-progress imminent peril group call" state, upon receiving a GROUP CALL ANNOUNCEMENT message with the MCPTT group ID IE matching the stored MCPTT group ID of the call and:

1) the Originating MCPTT user ID IE is different from the stored originating MCPTT user ID of the call; or

2) the Call identifier IE is different from the stored call identifier of the call;

then:

1) if the stored current call type is "BASIC GROUP CALL" and the value of the Call type IE of GROUP CALL ANNOUNCEMENT message is either "IMMINENT PERIL GROUP CALL" or "EMERGENCY GROUP CALL"; or

2) if the stored current call type is "IMMINENT PERIL GROUP CALL" and the value of the Call type IE of GROUP CALL ANNOUNCEMENT message is "EMERGENCY GROUP CALL"; or

3) if the stored current call type being equal to the Call type IE of the GROUP CALL ANNOUNCEMENT message and the Call start time IE of the GROUP CALL ANNOUNCEMENT message being lower than the stored call start time of the call; or

4) if the stored current call type being equal to the Call type IE of the GROUP CALL ANNOUNCEMENT message and the Call start time IE of the GROUP CALL ANNOUNCEMENT message being equal to the stored call start time of the call and the Call identifier IE of the GROUP CALL ANNOUNCEMENT message being lower than the stored call identifier of the call;

the MCPTT client:

1) shall store the value of the Last call type change time IE of the received GROUP CALL ANNOUNCEMENT message as the last call type change time of the call;

2) shall store the value of the Last user to change call type IE of the GROUP CALL ANNOUNCEMENT message as the last user to change call type of the call;

3) shall store the value of the Call type IE of the GROUP CALL ANNOUNCEMENT message as the current call type of the call;

4) if the Call type IE of GROUP CALL ANNOUNCEMENT message is set to "EMERGENCY GROUP CALL":

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

b) shall stop timer TFG14 (implicit downgrade imminent peril), if running;

c) shall start timer TFG13 (implicit downgrade emergency), if not started already, with values as specified in clause 10.2.3.4.1.1; and

d) shall enter "T1: in-progress emergency group call" state; and

5) if the Call type IE of GROUP CALL ANNOUNCEMENT message is set to "IMMINENT PERIL GROUP CALL":

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

b) shall start timer TFG14 (implicit downgrade imminent peril), if not started already, with values as specified in clause 10.2.3.4.1.2; and

c) shall enter "T3: in-progress imminent peril group call" state.

10.2.3.4.10 Call release after call establishment

When in state T1: in-progress emergency group call" or "T2: in-progress basic group call" or "T3: in-progress imminent peril group call" or upon receiving an indication from MCPTT user to release the call, the MCPTT client:

1) shall release stored current call type;

2) shall release stored ProSe per-packet priority;

3) shall release Last call type change time;

4) shall release Last user to change call type; and

5) shall enter "T0: waiting for the call to establish" state.

10.2.3.4.11 Call release or reject before call establishment

When in state "T0: waiting for the call to establish", upon receiving an indication from MCPTT user to release or reject the call, the MCPTT client:

1) shall release stored current call type;

2) shall release stored ProSe per-packet priority;

3) shall release Last call type change time;

4) shall release Last user to change call type;

5) shall remain in "T0: waiting for the call to establish" state.

10.2.3.4.12 Error handling
10.2.3.4.12.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.

10.2.3.4.12.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.

10.2.3.4.12.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.