6.3.6 Dual floor control
24.3803GPPMission Critical Push To Talk (MCPTT) media plane controlProtocol specificationRelease 18TS
6.3.6.1 General
Dual floor control is used when a floor participant requests floor with a pre-emptive floor priority allowing the floor control in clause 6.3.4 to continue without revoking the floor from the MCPTT client permitted to send media as specified in 3GPP TS 23.379 [5] clause 10.9.1.3.2.2.
The floor control server arbitration logic in the floor control server shall behave according to the state diagram and state transitions specified in this clause.
Figure 6.3.6.1-1 shows the ‘dual floor control operation’ states (D states) and the state transition diagram.
Figure 6.3.6.1-1: Floor control server state transition diagram for ‘dual floor control operation’
The floor control arbitration logic in the floor control server shall keep one instance of the ‘dual floor control operation’ state machine for a floor participant with pre-emptive floor priority where this MCPTT user is allowed to talk without revoking a current speaker with lower flow priority.
NOTE: Only one MCPTT user with this type of pre-emptive floor priority can exist within an MCPTT call.
The floor participant associated to the ‘dual floor control operation’ state machine is in the following clauses referred to as the overriding MCPTT client.
If floor control messages or RTP media packets arrives in a state where there is no procedure specified in the following clauses the floor control arbitration logic in the floor control server:
1. shall discard the floor control message;
2. shall request the media distributor in the MCPTT server to discard any received RTP media packet; and
3. shall remain in the current state.
State details are explained in the following clauses.
6.3.6.2 State: ‘Start-stop’
6.3.6.2.1 General
When a new instance of the ‘dual floor control operation’ state machine is initiated, before any floor control related input is applied, the state machine is in ‘Start-stop’ state. Similarly when the media burst is released the state machine shall return to the ‘Start-Stop’ state or the related MCPTT call is released.
6.3.6.2.2 Receive Floor Request message with overriding pre-emptive floor priority (R: Floor Request)
When a floor participant request floor with an overriding pre-emptive priority is granted the floor the floor control arbitration logic:
1. shall create one instance of the ‘dual floor control operation’ state machine;
2. shall store the SSRC of floor participant;
3. if a Track Info field is included in the Floor Request message, shall store the received Track Info field associated with the floor control server state transition diagram for ‘dual floor control operation’, and
4 shall enter the state ‘D: Floor Taken’ as specified in the clause 6.3.6.3.2.
6.3.6.3 State: ‘D: Floor Taken’
6.3.6.3.1 General
The floor control arbitration logic in the floor control server uses this state when it has permitted one floor participant to override a current speaker in an MCPTT call to send media.
Timer T11 (End of RTP dual) can be running when the floor control server is in this state.
Timer T12 (Stop talking dual) can be running when the floor control server is in this state.
6.3.6.3.2 Enter state ‘D: Floor Taken’
When entering this state the floor control arbitration logic in the floor control server:
1. shall send a Floor Granted message to the requesting floor participant. The Floor Granted message:
a. shall include the value of the T12 (Stop talking dual) timer in the Duration field;
b. shall include the granted priority in the Floor priority field;
c. if a Track Info field associated with the floor control server state transition diagram for ‘dual floor control operation’ is stored, shall include the stored Track Info field;
d. shall include the Floor Indicator field with the G-bit set to ‘1’ (Dual floor);
e. if a group call is a broadcast group call, a system call, an emergency call, an imminent peril call, or a temporary group session, shall include the Floor Indicator field with appropriate indications; and
f. if non-controlling MCPTT functions are involved, shall include the SSRC of granted floor participant;
2. shall send a Floor Idle message to any non-controlling MCPTT functions involved in the session and to those floor participants controlled by the controlling MCPTT function that will only listen to RTP media from the overriding MCPTT client according to local policy. The Floor Idle message:
NOTE 1: The non-controlling MCPTT function will send the Floor Idle message to those floor participants controlled by the non-controlling MCPTT function that will only listen to RTP media from the overriding MCPTT client according to local policy when the non-controlling MCPTT function receives the Floor Taken with the G-bit set to ‘1’ (Dual floor) in the Floor Indicator field.
i. shall include a Message Sequence Number field with a Message Sequence Number value increased with 1; and
ii. if a group call is a broadcast group call, a system call, an emergency call, an imminent peril call, or a temporary group session, shall include the Floor Indicator field with appropriate indications;
3. shall send a Floor Taken message to any non-controlling MCPTT functions involved and to floor participants controlled by the controlling MCPTT function that will listen to the RTP media from the overriding MCPTT client according to local policy. The Floor Taken message:
NOTE 2: The MCPTT client overridden by the overriding MCPTT client is still sending voice (overridden). The list of floor participants that receive the overriding, overridden, or both transmissions is based on configuration.
a. shall include the granted MCPTT user’s MCPTT ID in the Granted Party’s Identity field and may include the functional alias of the granted MCPTT user in the Functional Alias field, if privacy is not requested;
b. shall include a Message Sequence Number field with a <Message Sequence Number> value increased with 1;
c. shall include the Floor Indicator field with the G-bit set to ‘1’ (Dual floor); and
d. if a group call is a broadcast group call, a system call, an emergency call, an imminent peril call, or a temporary group session, shall include the Floor Indicator field with appropriate indications;
4. shall start the T11 (End of RTP dual) timer; and
5. shall enter the state to ‘D: Floor Taken’ state.
6.3.6.3.3 Timer T11 (End of RTP dual) expired
On expiry of timer T11 (End of RTP dual), the floor control arbitration logic in the floor control server:
1. shall stop the T12 (Stop talking dual) timer; if running;
2. shall request the media distributor in the MCPTT server to stop distributing RTP media packets received from the overriding MCPTT client to other MCPTT clients;
NOTE: If dual floor control is ongoing as described in clause 6.3.6, the list of floor participants that receive the overriding, overridden, or both transmissions is based on configuration.
3. shall release all resources reserved in the media plane including the instances used for the ‘dual floor control operation’ state machine and any running timers associated with the state machine;
4. shall send a Floor Idle message to any non-controlling MCPTT functions and to those floor participants controlled by the controlling MCPTT functions receiving RTP media from the overriding MCPTT client. The Floor Idle message:
a. shall include a Floor Indicator field with the G-bit set to ‘1’ (Dual floor);
b. shall include a Message Sequence Number field with a <Message Sequence Number> value increased with 1; and
c. if a group call is a broadcast group call, a system call, an emergency call, an imminent peril call, or a temporary group session, shall include the Floor Indicator field with appropriate indications;
5. if the state in the ‘general floor control operation’ state machine is ‘G: Taken’;
a shall send a Floor Taken message to any non-controlling MCPTT functions and to those floor participants controlled by the controlling MCPTT function that only received RTP media from the overriding MCPTT client. The Floor Taken message:
i. shall include the granted MCPTT user’s MCPTT ID in the Granted Party’s Identity field of the permitted MCPTT client and may include the functional alias of the granted MCPTT user in the Functional Alias field, if privacy is not requested;
ii. shall include a Message Sequence Number field with a <Message Sequence Number> value increased with 1; and
iii. if a group call is a broadcast group call, a system call, an emergency call, an imminent peril call, or a temporary group session, shall include the Floor Indicator field with appropriate indications; and
6. if the state in the ‘general floor control operation’ state machine is ‘G: Idle’, shall send a Floor Idle message to all floor participants. The Floor Idle message:
a. shall include a Message Sequence Number field with a <Message Sequence Number> value increased with 1; and
b. if a group call is a broadcast group call, a system call, an emergency call, an imminent peril call, or a temporary group session, shall include the Floor Indicator field with appropriate indications; and
7. shall enter the ‘Start-stop’ state.
6.3.6.3.4 Timer T12 (Stop talking dual) expired
On expiry of the T12 (Stop talking dual) timer the floor control arbitration logic in the floor control server:
1. shall stop the T11 (End of RTP dual) timer;
2. shall request the media distributor in the MCPTT server to stop distributing RTP media packets to other MCPTT client;
3. shall send the Floor Revoke message to the permitted participant. The Floor Revoke message:
a. shall include the Reject Cause field with the <Reject Cause> value set to #2 (Media burst too long) in the Floor Revoke message sent in clause 6.3.4.5.2;
b. shall include the Floor Indicator with the G-bit set to ‘1’ (Dual floor);
c. if a Track Info field associated with the dual floor is stored, shall include the stored Track Info field; and
d. if a group call is a broadcast group call, a system call, an emergency call, an imminent peril call, or a temporary group session, shall include the Floor Indicator field with appropriate indications;
4. shall remove the stored Track info field associated with the dual floor;
5. if the state in the ‘general floor control operation’ state machine is ‘G: Taken’;
a. shall send a Floor Taken message to all non-controlling functions (if the session is a temporary group session involving non-controlling MCPTT functions) and to those floor participants that only received RTP media from the overriding MCPTT client. The Floor Taken message:
i. shall include the granted MCPTT user’s MCPTT ID in the Granted Party’s Identity field of the permitted MCPTT client and may include the functional alias of the granted MCPTT user in the Functional Alias field, if privacy is not requested; and
ii shall include a Message Sequence Number field with a <Message Sequence Number> value increased with 1;
6. if the state in the ‘general floor control operation’ state machine is ‘G: Idle’, shall send a Floor Idle message to all floor participants. The Floor Idle message:
a. shall include a Message Sequence Number field with a <Message Sequence Number> value increased with 1; and
b. if a group call is a broadcast group call, a system call, an emergency call, an imminent peril call, or a temporary group session, shall include the Floor Indicator field with appropriate indications;
7. shall release all resources reserved in the media plane including the instances used for the Floor control server state transition diagram for ‘dual floor control operation’; and
8. shall enter the ‘Start-stop’ state.
6.3.6.3.5 Receive RTP media packets (R: media)
Upon receiving an indication from the media distributor in the MCPTT server that RTP media packets are received from the permitted MCPTT client, the floor control arbitration logic in the floor control server:
1. shall start the T12 (Stop talking dual) timer, if not already running;
2. shall restart the T11 (End of RTP dual) timer;
3. shall instruct the media distributor to forward the received RTP media packets to any non-controlling MCPTT functions, to the overridden MCPTT client and to those MCPTT clients receiving RTP media from the overriding MCPTT client controlled by the controlling MCPTT functions according to local policy; and
NOTE 1: The RTP media is sent to the MCPTT clients subjected to the maximum number of simultaneous transmissions received in one group call for override (N7) as indicated in 3GPP TS 23.379 [5].
NOTE 2: The non-controlling MCPTT function will forward the RTP media packets to MCPTT clients receiving RTP media from the overriding MCPTT client according to local policy in the non-controlling MCPTT function.
4. shall remain in the ‘D: Floor Taken’ state.
6.3.6.3.6 Receive Floor Release message (R: Floor Release)
Upon receiving a Floor Release message the floor control arbitration logic in the floor control server:
1. shall request the media distributor in the MCPTT server to stop distributing RTP media packets received from the overriding MCPTT client to other MCPTT client;
2. shall stop the T12 (Stop talking dual) timer, if running;
3. shall stop the T11 (End of RTP dual) timer;
4. shall release all resources reserved in the media plane including the instances used for the Floor control server state transition diagram for ‘dual floor control operation’ and any running timers associated with the state machine;
5. if the first bit in the subtype of the Floor Release message is set to ‘1’ (acknowledgement is required) as specified in clause 8.2.2:
a. shall send a Floor Ack message. The Floor Ack message:
i. shall set the Source field to the value ‘2’ (the controlling MCPTT function is the source); and
ii. shall set the Message Type field to the value ‘4’( Floor Release);
6. shall send a Floor Idle message to any non-controlling MCPTT functions, to the overridden floor participant and to those floor participants controlled by the controlling MCPTT functions receiving RTP media from the overriding MCPTT client. The Floor Idle message:
a. shall include an Floor Indicator field with the G-bit set to ‘1’ (Dual floor);
b shall include a Message Sequence Number field with a <Message Sequence Number> value increased with 1; and
c. if a group call is a broadcast group call, a system call, an emergency call, an imminent peril call, or a temporary group session, shall include the Floor Indicator field with appropriate indications;
7. if the state in the ‘general floor control operation’ state machine is ‘G: Taken’,
a. shall send a Floor Taken message to any non-controlling MCPTT functions and to those floor participants that only received RTP media from the overriding MCPTT client. The Floor Taken message:
i. shall include the granted MCPTT user’s MCPTT ID in the Granted Party’s Identity field of the permitted MCPTT client and may include the functional alias of the granted MCPTT user in the Functional Alias field, if privacy is not requested;
ii. shall include a Message Sequence Number field with a Message Sequence Number value increased with 1; and
iii. if a group call is a broadcast group call, a system call, an emergency call, an imminent peril call, or a temporary group session, shall include the Floor Indicator field with appropriate indications; and
8. if the state in the ‘general floor control operation’ state machine is ‘G: Idle’, shall send a Floor Idle message to all floor participants;. The Floor Idle message:
a. shall include a Message Sequence Number field with a Message Sequence Number value increased with 1; and
b. if a group call is a broadcast group call, a system call, an emergency call, an imminent peril call, or a temporary group session, shall include the Floor Indicator field with appropriate indications; and
9. shall enter the ‘Start-stop’ state.
6.3.6.3.7 Receive Floor request message from permitted floor participant (R: Floor Request)
Upon receiving a Floor Request message from the floor participant that has been granted permission to send overriding media, the floor control arbitration logic in the floor control server:
1. shall send a Floor Granted message to the previously granted floor participant. The Floor Granted message:
a. shall include the value of the T12 (Stop talking dual) timer in the Duration field;
b. shall include the granted priority in the Floor priority field;
c. if the Floor Request message included a Track Info field, shall include the received Track Info field; and
d. if a group call is a broadcast group call, a system call, an emergency call, an imminent peril call, or a temporary group session, shall include the Floor Indicator field with appropriate indications; and
2. shall remain in the ‘D: Floor Taken’ state.
6.3.6.3.8 Permitted MCPTT client release
If the floor control server receives an indication from the floor control interface towards the MCPTT client that the MCPTT client has started to disconnect from the MCPTT call, the floor control arbitration logic in the floor control server:
1. shall request the media distributor in the MCPTT server to stop distributing RTP media packets received from the overriding MCPTT client to other MCPTT clients;
2. shall send a Floor Idle message to any non-controlling MCPTT functions and to those floor participants controlled by the controlling MCPTT functions receiving RTP media from the overriding MCPTT client. The Floor Idle message:
a. shall include an Floor Indicator field with the G-bit set to ‘1’ (Dual floor);
b shall include a Message Sequence Number field with a <Message Sequence Number> value increased with 1; and
c. if a group call is a broadcast group call, a system call, an emergency call, an imminent peril call, or a temporary group session, shall include the Floor Indicator field with appropriate indications;
3. shall release all resources reserved in the media plane including the instances used for the Floor control server state transition diagram for ‘dual floor control operation’ and any running timers associated with the state machine; and
4. shall enter the ‘Start-stop’ state.
6.3.6.3.9 Receive Terminate (Terminate)
Upon receiving the termination instruction, the floor control arbitration logic in the floor control server:
1. shall set the value of timer T1 (End of RTP media) to the value of timer T11 (End of RTP dual) and start timer T1, if timer T11 (End of RTP dual) is running;
2. shall set the value of timer T2 (Stop talking) to the value of timer T12 (Stop talking dual) and start timer T2, if timer T12 (Stop talking dual) is running;
3. shall release all resources reserved in the media plane including the instances used for the dual floor control operation’ state machine and stop any running timers associated with the state machine; and
4. shall enter the ‘Start-stop’ state.
NOTE: The overriding participant continues to have the floor until its current talk burst is terminated.
6.3.6.4 In any state
6.3.6.4.1 General
This clause describes the actions to be taken in all states defined for the general state diagram with the exception of the ‘Start-stop’ state.
6.3.6.4.2 Receive MCPTT call release – 1
This clause is used by the floor control arbitration logic in the floor control server when an MCPTT call is released.
Upon receiving an MCPTT call release step 1 request from the application and signalling plane the floor control arbitration logic in the floor control server:
1. shall request the media distributor in the MCPTT server to stop sending RTP media packets MCPTT clients; and
2. shall enter the ‘Releasing’ state.
6.3.6.5 State: ‘Releasing’
6.3.6.5.1 General
The floor control arbitration logic in the floor control server uses this state while waiting for the application and signalling plane to finalize the disconnection of an MCPTT call.
6.3.6.5.2 Receive MCPTT call release – 2
Upon receiving an MCPTT call release step 2 request from the application and signalling plane, the floor control arbitration logic in the floor control server:
1. shall release all resources reserved in the media plane including the instances used for the dual floor control operation’ state machine and any running timers associated with the state machine; and
2. shall enter the ‘Start-stop’ state.