6.3.4 Transmission control server state transition diagram for general transmission control operation
24.5813GPPMission Critical Video (MCVideo) media plane controlProtocol specificationRelease 18TS
6.3.4.1 General
The transmission control server arbitration logic in the transmission control server shall behave according to the state diagram and state transitions specified in this clause.
Figure 6.3.4.1-1 shows the general transmission control operation states (G states) and the state transition diagram.
Figure 6.3.4.1-1: Transmission control server state transition diagram for ‘general transmission control operation’
The transmission control arbitration logic in the transmission control server shall keep one instance of the ‘general transmission control operation’ state machine per MCVideo call.
If transmission control messages or RTP media packets arrives in a state where there is no procedure specified in the following clauses the transmission control arbitration logic in the transmission control server:
1. shall discard the transmission control message;
2. shall request the media distributor in the MCVideo 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.4.2 State: ‘Start-stop’
6.3.4.2.1 General
When a new instance of the ‘general transmission control operation’ state machine is initiated, before any transmission control related input is applied, the state machine is in ‘Start-stop’ state. Similarly when the call is released the state machine shall return to the ‘Start-stop’ state or the related MCVideo call is released.
6.3.4.2.2 MCVideo call initialization
When an MCVideo call is initiated as specified in 3GPP TS 24.281 [2] and
1. if a confirmed indication is required and at least one invited MCVideo client has accepted the invitation;
2. if a confirmed indication is not required; or
then the transmission control arbitration logic in the transmission control server:
1. shall create an instance of the ‘general transmission control operation’ state machine;
2. shall wait for the ‘basic transmission control operation towards the transmission participant’ to be initialized before continuing the following steps;
3. when the ‘basic transmission control operation towards the transmission participant’ state machine is initialized and the initialised session is not a temporary group session:
a. if the "mc_granted" fmtp attribute is not negotiated as specified in clause 14:
i. if the transmission control server is granting an implicit Transmission request at MCVideo call establishment, shall act as if a Transmission Media Request message was received and perform the actions specified in clause 6.3.4.3.3; or
ii. if the transmission control server is not granting an implicit Transmission request at MCVideo call establishment, shall enter the ‘G: Transmit Idle’ state as specified in clause 6.3.4.3.2; or
b. if the "mc_granted" fmtp attribute is negotiated as specified in clause 14, shall enter the ‘G: Transmit Taken’ state as specified in clause 6.3.4.4.2.
6.3.4.3 State: ‘G: Transmit Idle’
6.3.4.3.1 General
The transmission control arbitration logic in the transmission control server is in this state when no MCVideo user currently has permission to send media.
Timer T1 (Inactivity) and timer T2 (Transmit Idle) can be running when the transmission control arbitration logic in the transmission control server is in this state.
6.3.4.3.2 Enter the ‘G: Transmit Idle’ state
When entering this state from any state except the ‘Start-stop’ state and if no MCVideo client negotiated support of queueing Transmission requests as described in clause 14, the transmission control arbitration logic in the transmission control server:
1. if the active Transmission request queue is empty the transmission control server:
a. shall send Transmission Idle message to all transmission participants. The Transmission Idle message:
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 Transmission Indicator field with appropriate indications;
b. shall start timer T2 (Transmit Idle) and initialise counter C2 (Transmit Idle) to 1;
c. shall start timer T1 (Inactivity);
d. shall set the general state to the ‘G: Transmit Idle’ state; and
e. shall initialise counter Cx (Simultaneous transmission video) to 0.
2. if the active Transmission request queue is not empty the transmission control server:
a. shall select a queued Transmission request from the top of the active Transmission request queue;
b. shall remove that queued Transmission request from the active Transmission request queue; and
c. shall enter the ‘G: Transmit Taken’ state as specified in the clause 6.3.4.4.2 with respect to that transmission participant.
6.3.4.3.3 Receive Transmission Media Request message (R: Transmission Media Request)
Upon receiving a Transmission request message (from a transmission participant that is permitted to make a Transmission request) the transmission control arbitration logic in the transmission control server:
1. shall reject the request if one of the following conditions is fulfilled:
a. if there is only one MCVideo client in the MCVideo call; and
b. <on-network-recvonly> element is present in the <entry> element as specified 3GPP TS 24.481 [12] for the associated transmission participant;
2. if the Transmission request is rejected the transmission control server:
a. shall send the Transmission Reject message. The Transmission Reject message:
i. shall include in the Reject Cause field the <Reject Cause> value:
A. cause #3 (Only one participant), if there is only one MCVideo client in the MCVideo call; or
B. cause #5 (Receive only), if the <on-network-recvonly> element is present in the <entry> element as specified in 3GPP TS 24.481 [12] for the associated transmission participant;
ii. may include an additional text string explaining the reason for rejecting the Transmission request in the <Reject Phrase> value of the Reject Cause field; and
b. shall remain in the ‘G: Transmit Idle’ state; and
3. if the Transmission request is granted the transmission control server:
a. shall stop timer T1 (Inactivity);
b. shall stop timer T2 (Transmit Idle);
c. shall store the SSRC of transmission participant granted the permission to send media until the transmission is released associated to that Transmission request;
d. shall enter the ‘G: Transmit Taken’ state as specified in the clause 6.3.4.4.2.
6.3.4.3.4 Timer T2 (Transmit Idle) expired
On expiry of timer T2 (Transmit Idle) the transmission control arbitration logic in the transmission control server:
1. shall restart timer T2 (Transmit Idle) and increment counter C2 (Transmit Idle) by 1 if counter C2 (Transmit Idle) has not reached its upper limit;
2. shall send a Transmission Idle message to all transmission participants in the MCVideo call if counter C2 (Transmit Idle) has not reached its upper limit. The Transmission Idle message:
a. shall include a Message Sequence Number field with a <Message Sequence Number> value increased with 1; and
3. shall remain in the ‘G: Transmit Idle’ state.
6.3.4.3.5 Timer T1 (Inactivity) expired
On expiry of timer T1 (Inactivity) the transmission control arbitration logic in the transmission control server based on a configurable service provider policy either:
1. shall indicate to the application and signalling plane that timer T1 (Inactivity) has expired;
2. if the application and signalling planes initiates MCVideo call release, shall enter the ‘Releasing’ state; and
3. if the application and signalling planes do not initiate MCVideo call release:
a. should restart the T1 (Inactivity) timer; and
b. shall remain in the ‘G: Transmit Idle’ state.
6.3.4.3.6 Receive an implicit Transmission request (R: Implicit Transmission request)
Upon receiving an implicit Transmission request due to an upgrade to an emergency group call or due to an upgrade to imminent peril call, the transmission control arbitration logic in the transmission control server:
1. shall reject the request if there is only one MCVideo client in the MCVideo call;
2. if the Transmission request is rejected the transmission control server:
a. shall send the Transmission Reject message. The Transmission Reject message:
i. shall include in the Reject Cause field the <Reject Cause> value cause #3 (Only one participant); and
ii. may include in the Reject Cause field an additional text string explaining the reason for rejecting the Transmission request in the <Reject Phrase> value; and
b. shall remain in the ‘G: Transmit Idle’ state; and
3. if the Transmission request is granted the transmission control server:
a. shall stop the timer T1 (Inactivity);
b. shall stop the timer T2 (Transmit Idle);
c. shall store the SSRC of transmission participant granted the permission to send media until the transmission is released associated to that Transmission request; and
d. shall enter the ‘G: Transmit Taken’ state as specified in the clause 6.3.4.4.2.
6.3.4.4 State: ‘G: Transmit Taken’
6.3.4.4.1 General
The transmission control arbitration logic in the transmission control server uses this state when it has permitted at least one of the MCVideo clients in the MCVideo call to send media.
Timer T4 (Transmission Grant) is running to guarantee reliable delivery of the Transmission Grant message, if the granted Transmission request was queued.
6.3.4.4.2 Enter the ‘G: Transmit Taken’ state
When entering this state the transmission control arbitration logic in the transmission control server:
1. shall send a Transmission Grant message to the requesting transmission participant. The Transmission Grant message:
a. shall include the granted priority in the Transmission priority field;
b. shall increment counter Cx (Simultaneous transmission video) by 1 if counter Cx (Simultaneous transmission video) has not reached its upper limit;
c. if a group call is a broadcast group call, system call, emergency call, an imminent peril call or a temporary group session, shall include the Transmission Indicator field with appropriate indications; and
d. shall include the SSRC of the granted transmission participant to be used by the MCVideo user transmitting the media;
2. shall start timer T4 (Transmission Granted) if the Transmission request was queued and initialise the counter C4 (Transmission Grant) to 1;
3. shall send Media Transmission notify message to the reception control arbitration logic. The Media Transmission notification message:
a. shall include the granted MCVideo user’s MCVideo ID in the User ID field, if privacy is not requested;
b. shall include the granted MCVideo user’s SSRC in the SSRC of transmitter field;
c. shall include a Message Sequence Number field with a Message Sequence Number value increased with 1;
d. if the session is a broadcast group call, shall include the Permission to Request the Transmission field set to ‘0’;
e. if the session is not a broadcast group call, may include the Permission to Request the Transmission field set to ‘1’;
f. 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 Transmission Indicator field with appropriate indications;
g. shall include Functional Alias ID, if it is received in the Transmission request; and
h. shall initiate the ‘general reception control operation’ state machine; and
4. shall enter the ‘G: Transmit Taken’ state.
6.3.4.4.5 Receive RTP media packets (R: RTP media)
Upon receiving an indication from the media distributor in the MCVideo server that RTP media packets are received from the permitted MCVideo client, the transmission control arbitration logic in the transmission control server:
1. shall stop timer T4 (Transmission Grant), if running;
2. shall instruct the media distributor to forward the RTP media packets to MCVideo clients according to local policy and reception control machine state; and
3. shall remain in the ‘G: Transmit Taken’ state.
6.3.4.4.6 Receive Transmission End Request message (R: Transmission End Request)
Upon receiving a Transmission End Request message the transmission control arbitration logic in the transmission control server:
1. shall decrement counter Cx (Simultaneous transmission video) by 1 if counter Cx (Simultaneous transmission video) has not reached its lower limit;
2. shall request the media distributor in the MCVideo server to stop forwarding RTP media packets for the requesting participant;
3. shall stop timer T4 (Transmission grant), if running;
4. shall send a Transmission End Response message; and
5. if Cx (Simultaneous transmission video) has reached it lower limit, shall enter the ‘G: Transmit Idle’ state as specified in the clause 6.3.4.3.2.
6.3.4.4.7A Receive Transmission Media Request message without pre-emptive priority (R: Transmission Media Request)
Upon receiving a Transmission Media Request message the transmission control arbitration logic in the transmission control server:
1. shall reject the request if one of the following conditions is fulfilled:
a. if the counter Cx (Simultaneous transmission video) has reached its upper limit and did not negotiate queueing; and
b. <on-network-recvonly> element is present in the <entry> element as specified 3GPP TS 24.481 [12] for the associated transmission participant;
2. if the request is rejected the transmission control server:
a. shall send the Transmission Media Deny message. The Transmission Media Deny message:
i. shall include in the Reject Cause field the <Reject Cause> value – cause #5 (Receive only), if the <on-network-recvonly> element is present in the <entry> element as specified in 3GPP TS 24.481 [12] for the associated transmission participant;
ii. may include an additional text string explaining the reason for rejecting the transmission request in the <Reject Phrase> value of the Reject Cause field; and
b. shall remain in the ‘G: Transmission Taken’ state.
3. if counter Cx (Simultaneous transmission video) has not reached its upper limit:
a. if the Transmission Media request is granted the transmission control server:
i. shall perform the actions specified in the clause 6.3.4.4.2;
6.3.4.4.7 Receive Transmission Media Request message with pre-emptive priority (R: pre-emptive Transmission Media Request)
On receipt of a Transmission request message with effective priority indicating pre-emptive priority, the transmission control arbitration logic in the transmission control server:
1. if counter Cx (Simultaneous transmission video) has not reached its upper limit:
i. shall perform the actions specified in the clause 6.3.4.4.2;
2. if the counter Cx (Simultaneous transmission video) has reached its upper limit, and if the effective priority of the transmission participants with permission to send media is not the pre-emptive priority, based on local policy:
a. select one of the transmission participants with permission to send media without the pre-emptive priority revoke the current speaker;
b. shall stop timer T4 (Transmission Grant), if running;
c. shall include a Reject Cause field with the <Reject Cause> value set to #4 (Media Transmission pre-empted) in the Transmission Revoke message sent in clause 6.3.4.5.2;
d. shall enter the ‘G: pending Transmission Revoke’ state as specified in the clause 6.3.4.5.2;
e. shall insert the transmission participant into the active Transmission request queue to the position in front of all queued requests, if not inserted yet or update the position of the transmission participant in the active Transmission request queue to the position in front of all other queued requests, if already inserted; and
f. shall send a Queue Position Info message to the requesting transmission participant, if negotiated support of queueing of Transmission requests as specified in clause 14. The Queue Position Info message:
i. include the queue position and transmission priority in the Queue Info field.
6.3.4.4.8 Receive Transmission request message from permitted transmission participant (R: Transmission Media Request)
Upon receiving a Transmission request message from the transmission participant that has been granted permission to send media, the transmission control arbitration logic in the transmission control server:
1. shall send a Transmission Grant message to the previously granted transmission participant. The Transmission Grant message:
a. shall include the granted priority in the Transmission priority field; and
2. shall remain in the ‘G: Transmit Taken’ state.
6.3.4.4.9 Timer T4 (Transmission Grant) expired
On expiry of timer T4 (Transmission Grant), the transmission control arbitration logic in the transmission control server:
1. shall send a Transmission Grant message to the granted transmission participant if counter C4 (Transmission Grant) has not reached its upper limit: The Transmission Grant message:
a. shall include the granted priority in the Transmission priority field; 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 Transmission Indicator field with appropriate indications;
2. shall start timer T4 (Transmission Grant) and increment counter C4 (Transmission Grant) by 1 if counter C4 (Transmission Grant) has not reached its upper limit; and
3. shall remain in the ‘G: Transmit Taken’ state.
6.3.4.4.10 Timer T4 (Transmission Grant) expired N times
When timer T4 (Transmission Grant) expires and counter C4 (Transmission Grant) reaches its upper limit, the transmission control arbitration logic in the transmission control server:
1. shall remain in the ‘G: Transmit Taken’ state.
6.3.4.4.11 Permitted MCVideo client release (R: client release)
If the transmission control server receives an indication from the transmission control interface towards the MCVideo client that the MCVideo client has started to disconnect from the MCVideo call, the transmission control arbitration logic in the transmission control server:
1. if the counter Cx (Simultaneous transmission video) equals 1, shall enter the ‘G: Transmit Idle’ state as specified in the clause 6.3.4.3.2.
6.3.4.4.12 Receive an implicit Transmission request (R: Implicit Transmission request)
Upon receiving an implicit Transmission request due to an upgrade to an emergency group call or due to an upgrade to imminent peril call, the transmission control arbitration logic in the transmission control server:
1. if counter Cx (Simultaneous transmission video) has not reached its upper limit:
a. shall perform the actions specified in the clause 6.3.4.4.2;
2. if counter Cx (Simultaneous transmission video) has reached its upper limit:
a. select one of the transmission participants with permission to send media without the pre-emptive priority or low effective priority;
b. shall stop timer T4 (Transmission Grant), if running;
c. shall set the Reject Cause field in the Transmission Revoke message to #4 (Media Transmission pre-empted);
d. shall enter the ‘G: pending Transmission Revoke’ state as specified in the clause 6.3.4.5.2;
e. shall insert the transmission participant into the active Transmission request queue to the position in front of all queued requests, if not inserted yet or update the position of the transmission participant in the active Transmission request queue to the position in front of all other queued requests, if already inserted; and
f. shall send a Transmission Queue Position Info message to the requesting transmission participant, if negotiated support of queueing Transmission requests as specified in clause 14. The Queue Position Request message:
i. shall include the queue position and transmission priority in the Queue Info field; 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 Transmission Indicator field with appropriate indications.
6.3.4.4.13 Send Transmission End Request message (S: Transmission End Request)
Upon receiving a Transmission End Request message, the transmission control arbitration logic in the transmission control server:
1. shall stop timer T4 (Transmission grant), if running;
2. shall include a Reject Cause field with the <Reject Cause> value set to #8 (No receiving participant),) in the Transmission End Request message sent in clause 6.3.4.5.2;
i. may include an additional text string explaining the reason for rejecting the Transmission request in the <Reject Phrase> value of the Reject Cause field; and
3. shall enter the ‘G: pending Transmission Revoke’ state as specified in the clause 6.3.4.5.2.
6.3.4.5 State: ‘G: pending Transmission Revoke’
6.3.4.5.1 General
The transmission control arbitration logic in the transmission control server uses this state after having sent a Transmission Revoke or Transmission End Request message to the permitted transmission participant.
In this state the MCVideo server forwards RTP media packets to the other transmission participants in the MCVideo call.
NOTE : As the functionality of both Transmission End Request message and Transmission Revoke message sent from server is mostly same on client and server side, currently the handling of Transmission End Request message is added in ‘G: pending Transmission Revoke’ state. A new state can also be created later for this purpose if required.
6.3.4.5.2 Enter the ‘G: pending Transmission Revoke’ state
When entering this state the transmission control arbitration logic in the transmission control server:
1. shall send the Transmission Revoke or Transmission End Request message to the permitted transmission participant. The Transmission Revoke or Transmission End Request message:
a. shall include the reason for sending the Transmission Revoke or Transmission End Request message in the <Reject Cause> value in the Reject Cause field; 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 Transmission Indicator field with appropriate indications; and
2. shall set the general state to ‘G: pending Transmission Revoke’.
6.3.4.5.3 Receive RTP media packets (R: RTP media)
Upon receiving an indication from the media distributor in the MCVideo server that RTP media packets are received from the permitted transmission participant the transmission control server:
1. shall instruct the media distributor to forward the RTP media packets to MCVideo clients according to local policy; and
2. shall remain in the ‘G: pending Transmission Revoke’ state.
6.3.4.5.4 Receive Transmission End Request message (R: Transmission End Request)
Upon receiving a Transmission End Request message the transmission control arbitration logic in the transmission control server:
1. shall request the media distributor in the MCVideo server to stop forwarding RTP media packets for the requesting transmission participant; and
2. shall decrease Cx (Simultaneous transmission video) by 1 if Cx (Simultaneous transmission video) has not reached it lower limit;
3. shall send a Transmission End Response message;
4. if Cx (Simultaneous transmission video) has reached lower limit, enter the ‘G: Transmit Idle’ state as specified in the clause 6.3.4.3.2.
5. if Cx (Simultaneous transmission video) has not reached lower limit and if the active Transmission request queue is not empty the transmission control server:
a. shall select a queued Transmission request from the top of the active Transmission request queue;
b. shall remove that queued Transmission request from the active Transmission request queue; and
c. shall enter the ‘G: Transmit Taken’ state as specified in the clause 6.3.4.4.2 with respect to that transmission participant.
6.3.4.5.5 Void
6.3.4.5.6 Void
6.3.4.5.7 Receive Transmission End Response message (R: Transmission End Response)
Upon receiving a Transmission End Response message, the transmission control arbitration logic in the transmission control server:
1. shall request the media distributor in the MCVideo server to stop forwarding RTP media packets for the requesting transmission participant; and
2. shall decrease Cx (Simultaneous transmission video) by 1 if Cx (Simultaneous transmission video) has not reached its lower limit;
3. if Cx (Simultaneous transmission video) has reached lower limit, enter the ‘G: Transmit Idle’ state as specified in the clause 6.3.4.3.2.
4. if Cx (Simultaneous transmission video) has not reached lower limit and if the active Transmission request queue is not empty the transmission control server:
a. shall select a queued Transmission request from the top of the active Transmission request queue;
b. shall remove that queued Transmission request from the active Transmission request queue; and
c. shall enter the ‘G: Transmit Taken’ state as specified in the clause 6.3.4.4.2 with respect to that transmission participant.
6.3.4.6 In any state
6.3.4.6.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.4.6.2 Receive MCVideo call release – 1
This clause is used by the transmission control arbitration logic in the transmission control server when an MCVideo call is released.
Upon receiving an MCVideo call release step 1 request from the application and signalling plane the transmission control arbitration logic in the transmission control server:
1. shall request the media distributor in the MCVideo server to stop sending RTP media packets MCVideo clients; and
2. shall enter the ‘Releasing’ state.
6.3.4.7 State: ‘Releasing’
6.3.4.7.1 General
The transmission control arbitration logic in the transmission control server uses this state while waiting for the application and signalling plane to finalize the disconnection of an MCVideo call.
6.3.4.7.2 Receive MCVideo call release – 2
Upon receiving an MCVideo call release step 2 request from the application and signalling plane, the transmission control arbitration logic in the transmission control server:
1. shall release all resources reserved in the media plane including the instances used for the ‘Transmission control server state transition diagram for general transmission control operation’, and ‘Transmission control server state transition diagram for basic transmission control operation towards the transmission participant’ state machines and any running timers associated with the state machines; and
2. shall enter the ‘Start-stop’ state.