9 Call setup control over pre-established session

24.3803GPPMission Critical Push To Talk (MCPTT) media plane controlProtocol specificationRelease 18TS

9.1 General

The procedures described in this clause are applicable only after a pre-established session is established between the participating MCPTT function and the MCPTT client.

Once the use of an existing pre-established session is decided for a pre-arranged group call or for a chat group call or for a private call, as specified in 3GPP TS 24.379 [2], the participating MCPTT function shall inform the MCPTT client that this pre-established session is to be used as described in clause 9.3 and the MCPTT client shall respond as described in clause 9.2.

When a pre-arranged group call or a chat group call or a private call which uses a pre-established session is released as specified in 3GPP TS 24.379 [2], the participating MCPTT function shall inform the MCPTT client that the use of this pre-established session has ended as described in clause 9.3 and the MCPTT client shall respond as described in clause 9.2.

Media and media plane control procedures between a participating MCPTT function and MCPTT client for a pre-arranged group call or for a chat group call or for a private call and setup over a pre-established session are not affected by the use of the pre-established session.

Media plane security procedures for pre-established call control messages are specified in clause 13.

9.2 MCPTT client

9.2.1 General

If the MCPTT client supports pre-established session, the MCPTT client shall also support the behaviour implied by the state machine specified in this clause. The specifications are on the reception or sending of media plane control messages related to the call setup control over pre-established session

An MCPTT client may have several pre-established sessions at a time.

9.2.2 Call setup control over pre-established session state machine

9.2.2.1 General

A call setup control over pre-established state machine has two states: Pre-established Session_Not_in_use and Pre-established Session_In_use. In addition the ‘Start-Stop’ state is specified for the initiation or the termination of the state machine. The state transitions are partly controlled by the call control procedures specified in 3GPP TS 24.379 [2].

Figure 9.2.2.1-1 shows the call setup control over pre-established session state machine and the state transitions.

Figure 9.2.2.1-1: Call setup control over pre-established session state machine.

The MCPTT client shall create one instance of the call setup control over pre-established state machine per pre-established session.

If a pre-established session call control message, a SIP request or RTP media packet arrives in any state and there is no procedure specified in the clauses below, the MCPTT client shall discard the pre-established session call control message, SIP request or RTP media packet and shall remain in the current state.

9.2.2.2 State: ‘Start-stop’

9.2.2.2.1 General

In this state no pre-established session exists

9.2.2.2.2 Pre-established session started

When a pre-established session is created between the MCPTT client and the participating MCPTT function, as specified in 3GPP TS 24.379 [2], the MCPTT client:

1. shall initialize any needed user plane resources for the pre-established session as specified in 3GPP TS 24.379 [2]; and

2. shall enter the ‘U: Pre-established session not in use’ state.

9.2.2.3 State: ‘U: Pre-established session not in use’

9.2.2.3.1 General

The ‘U: Pre-established session not in use’ state is a stable state. The MCPTT client is in this state when a pre-established session is established, but it is not used for a call.

In this state the MCPTT client can receive call initiation message and floor control messages.

9.2.2.3.2 Receive Connect message (R: Connect)

Upon reception of a Connect message:

1. if the MCPTT client accepts the incoming call the MCPTT client:

a. shall send the Acknowledge message with Reason Code field set to ‘Accepted’;

b. shall use only the media streams of the pre-established session which are indicated as used in the associated call session Media Streams field, if the Connect contains a Media Streams field;

c. shall create an instance of the ‘Floor participant state transition diagram for basic operation’ as specified in clause 6.2.4; and

d. shall enter the ‘U: Pre-established session in use’ state; or

2. Otherwise the MCPTT client:

a. shall send the Acknowledge message with the Reason Code field set to an appropriate <Reason Code> value; and

b. shall remain in ‘U: Pre-established session not in use’ state.

9.2.2.3.3 Pre-established session stopped

When the associated pre-established session between the MCPTT client and the MCPTT server is released the MCPTT client:

1. shall release any user plane resources including any running timers associated with the pre-established session; and

2. shall enter the ‘Start-stop’ state and then the ‘Call setup control over pre-established session state machine’ is released.

9.2.2.3.4 Receive Disconnect message (R: Disconnect)

Upon reception of a Disconnect message the MCPTT client:

1. if the first bit in the subtype of the Disconnect message is set to ‘1’ (Acknowledgment is required), shall send the Acknowledge message with the Reason Code set to ‘Accepted’; and

2. shall remain in ‘U: Pre-established session not in use’ state.

9.2.2.3.5 Receive SIP 2xx response (R:2xx response)

Upon reception of a SIP 2xx response for the SIP REFER request sent to initiate an MCPTT call session over a pre-established session as specified in 3GPP TS 24.379 [2], (to initiates a pre-arranged group call or private call or to join a chat group call) the MCPTT client:

1. shall create an instance of the ‘Floor participant state transition diagram for basic operation’ as specified in subclause 6.2.4; and

2. shall enter the ‘U: Pre-established session in use’ state.

9.2.2.3.6 Receive SIP re-INVITE request (R: re-INVITE)

Upon sending the SIP 200 (OK) response to the SIP re-INVITE request for the use of the Pre-established session initiating an MCPTT call session as specified in 3GPP TS 24.379 [2] the MCPTT client:

1. shall create an instance of the ‘Floor participant state transition diagram for basic operation’ as specified in subclause 6.2.4; and

2. shall enter the ‘U: Pre-established session in use’ state.

9.2.2.4 State: ‘U: Pre-established session in use’

9.2.2.4.1 General

The MCPTT client is in this state when a pre-established session is established and it is used for an MCPTT call session.

In this state the MCPTT client can receive call release indication, floor control messages and RTP media packets.

9.2.2.4.2 Receive Connect message (R: Connect)

Upon reception of a Connect message the MCPTT client:

1. if the first bit in the subtype of the Connect message is set to ‘1’ (Acknowledgment is required), shall send Acknowledge message with the Reason Code field set to ‘Accepted’; and

2. shall remain in the ‘U: Pre-established session in use’ state.

9.2.2.4.3 Receive other floor control message (R: other message)

Upon reception of a floor control message (i.e. messages other than the Connect message and the Disconnect message) the MCPTT client:

1. shall act as specified in clause 6.2.4; and

2. shall remain in the ‘U: Pre-established session in use’ state.

9.2.2.4.4 Receive RTP media packets (R:RTP packet)

Upon reception of an RTP media packet the MCPTT client:

1. shall act as specified in clause 6.2.4; and

2. shall remain in the ‘U: Pre-established session in use’ state.

9.2.2.4.5 Receive Disconnect message (R: Disconnect)

Upon reception of Disconnect message the MCPTT client:

1. if the first bit in the subtype of the Disconnect message is set to ‘1’ (Acknowledgment is required), shall send Acknowledge message with the Reason Code field set to ‘Accepted’;

2. shall enter the ‘U: Pre-established session not in use’ state; and

3. shall act as specified in clause 6.2.4.

9.2.2.4.6 Receive SIP 2xx response (R: 2xx response)

Upon receiving a 2xx response to the sent SIP REFER request as described in 3GPP TS 24.379 [2] when the call is released, but the Pre-established Session is kept alive the MCPTT client:

1. shall enter the ‘U: Pre-established session not in use’ state; and

2. shall terminate the instance of ‘Floor participant state transition diagram for basic operation’ state machine as specified in clause 6.2.4.

9.3 Participating MCPTT function

9.3.1 General

The participating MCPTT function shall support the behaviour implied by the state machine specified in this clause. The specifications are on the sending and reception of media plane control messages related to the call setup control over a pre-established session

A participating MCPTT function may have several pre-established session at a time for multiple MCPTT clients and multiple pre-established sessions per MCPTT client.

9.3.2 Call setup control over pre-established session state machine for the participating MCPTT function

9.3.2.1 General

If the participating MCPTT function supports pre-established session, the participating MCPTT function shall behave according to the ‘pre-established session state machine’ and state transitions specified in this clause.

The ‘pre-established session state machine’ has three states: ‘G: Pre-established session not in use’ state, ‘G: Pre-established session in use’ state and ‘G: Call releasing’ state, the state transitions are partially controlled by the specifications in 3GPP TS 24.379 [2]. The ‘Start-stop’ state is the initial and final state.

Figure 9.3.2.1-1 shows the state diagram and the state transitions of the ‘pre-established session state machine’.

Figure 9.3.2.1-1: State transitions of Pre-established Session state machine

The participating MCPTT function shall create one instance of the ‘pre-established session state machine’ per pre-established session per MCPTT client.

State and state transition details are explained in the following clauses.

If a pre-established session call control message, SIP request, SIP response or RTP media packet arrives in any state and there is no procedure specified for it in this clauses below, the participating MCPTT function shall discard the pre-established session call control message, SIP request, SIP response or RTP media packet and remain in the current state.

9.3.2.2 State: ‘Start-stop’

9.3.2.2.1 General

In this state no pre-established session exists.

9.3.2.2.2 Pre-established session started

When a pre-established session is created between the participating MCPTT function and an MCPTT client, the participating MCPTT function:

1. shall initiate any needed user plane resources for the pre-established session; and

2. shall enter the ‘G: Pre-established session not in use’ state.

9.3.2.3 State: ‘G: Pre-established session not in use’

9.3.2.3.1 General

The ‘G: Pre-established session not in use’ state is a stable state. The participating MCPTT function is in this state when the pre-established session is established but it is not used for an MCPTT call.

In this state the participating MCPTT function can receive call initiation indication. If the participating MCPTT function receives a call initiation indication, the participating MCPTT function may send an Application Paging message over an MBMS bearer before continuing with the call initiation.

9.3.2.3.2 Receive SIP REFER request (R: SIP REFER)

Upon receiving a SIP REFER request from the MCPTT client the participating MCPTT function:

1. shall reserve user plane resources for the call session, if not yet reserved; and,

2. shall enter the ‘G: Pre-established session in use’ state.

9.3.2.3.3 Receive SIP INVITE request (R: SIP INVITE)

Upon receiving a SIP INVITE request from the controlling MCPTT function, if in automatic answer mode, the participating MCPTT function:

1. shall send the Connect message to the invited MCPTT client using the media plane control transport channel defined for this call. The Connect message:

a. shall include the SIP URI received in the Contact header field of the SIP INVITE request in the <MCPTT Session Identity> value in the MCPTT Session Identity field;

b. if the SIP INVITE request included an "application/vnd.3gpp.mcptt-info+xml" MIME body with the <session-type> element set to a value of "prearranged" or "chat":

i. shall include the content of the <mcptt-calling-group-id> element in the MCPTT Group Identity field;

ii. shall include the value ‘prearranged’ or ‘chat’ in the <Session Type> value in the MCPTT Session Identity field;

iii. shall include the content of the <mcptt-calling-user-id> element in the Inviting MCPTT User Identity field if available from the SIP INVITE message and privacy of the inviting MCPTT ID is not required; and

iv. shall include ‘anonymous@anonymous.invalid’ in the Inviting MCPTT User Identity field if the MCPTT ID of the inviting MCPTT user is not available from the SIP INVITE message or privacy of the inviting MCPTT ID is required;

c. if the SIP INVITE request includes an "application/vnd.3gpp.mcptt-info+xml" MIME body with the <session-type> element set to a value of "private":

i. shall include the content of the <mcptt-calling-user-id> element in the Inviting MCPTT User Identity field if available from the SIP INVITE message and privacy of the inviting MCPTT ID is not required;

ii. shall include ‘anonymous@anonymous.invalid’ in the Inviting MCPTT User Identity field if the MCPTT ID of the inviting MCPTT user is not available from the SIP INVITE message or privacy of the inviting MCPTT ID is required;

iii. shall include the value ‘private’ in the <Session Type> value in the MCPTT Session Identity field; and

iv. if the MIKEY-SAKKE I_MESSAGE is included in the received SIP INVITE request, shall include the MIKEY-SAKKE I_MESSAGE as received, in the PCK I_MESSAGE field;

d. shall include a Media Streams field, if the negotiated SDP in the pre-arranged session contains more media streams than required by the SDP in the SIP INVITE request; and

NOTE 1: For example if the call is a private call without floor control the Media Streams field needs to be included with the <Control Channel> value set to ‘0’.

e. shall set the first bit in the subtype of the Connect message to ‘1’ (Acknowledgment is required) as described in clause 8.3.2;

2. shall start timer T55 (Connect);

3. shall initialize counter C55 (Connect) to 1;

4. shall reserve the media channel resources if not yet reserved; and

5. shall enter the ‘G: Pre-established session in use’ state.

NOTE 2: The case of manual answer is described in 3GPP TS 24.379 [2].

9.3.2.3.4 Pre-established session stopped

When the pre-established session between the MCPTT client and the participating MCPTT function is released, the participating MCPTT function:

1. shall release any media plane resources and timers associated with this pre-established session; and,

2. shall enter the ‘Start-stop’ state

9.3.2.3.5 Receive SIP 200 (OK) response to the SIP re-INVITE request (R: 200 OK)

Upon receiving the SIP 200 (OK) response to the SIP re-INVITE request of the pre-established session a call as specified in 3GPP TS 24.379 [2] (call setup with manual answer with pre-established session) the participating MCPTT function:

1. shall send the Connect message to the invited MCPTT client(s) using the media plane control transport channel defined for this call. The Connect message:

a. shall include the SIP URI received in the Contact header field of the SIP re-INVITE request in the <MCPTT Session Identity> value in the MCPTT Session Identity field;

b. if the SIP re-INVITE request included an "application/vnd.3gpp.mcptt-info+xml" MIME body with the <session-type> element set to a value of "prearranged" or "chat":

i. shall include the content of the <mcptt-calling-group-id> element in the MCPTT Group Identity field;

ii. shall include the value ‘prearranged’ or ‘chat’ in the <Session Type> value in the MCPTT Session Identity field;

iii. shall include the content of the <mcptt-calling-user-id> element in the Inviting MCPTT User Identity field if available from the SIP re-INVITE message and privacy of the inviting MCPTT ID is not required; and

iv. shall include ‘anonymous@anonymous.invalid’ in the Inviting MCPTT User Identity field if the MCPTT ID of the inviting MCPTT user is not available from the SIP re-INVITE message or privacy of the inviting MCPTT ID is required;

c. if the SIP re-INVITE request included an "application/vnd.3gpp.mcptt-info+xml" MIME body with the <session-type> element set to a value of "private":

i. shall include the content of the <mcptt-calling-user-id> element in the Inviting MCPTT User Identity field, if available from the SIP re-INVITE message and privacy of the inviting MCPTT ID is not required;

ii. shall include ‘anonymous@anonymous.invalid’ in the Inviting MCPTT User Identity field if the MCPTT ID of the inviting MCPTT user is not available from the SIP re-INVITE message or privacy of the inviting MCPTT ID is required; and

iii. shall include the value ‘private’ in the <Session Type> value in the MCPTT Session Identity field;

d. shall include a Media Streams field, if the negotiated SDP in the pre-arranged session contains more media streams than required by the SDP in the SIP re-INVITE request; and

NOTE: For example if the call is a private call without floor control the Media Streams field needs to be included with the <Control Channel> value set to ‘0’.

e. may set the first bit in the subtype of the Connect message to ‘1’ (Acknowledgment is required) as described in clause 8.3.2;

2. shall start timer T55 (Connect);

3. shall initialise counter C55 (Connect) to 1;

4. shall reserve the media channel resources if not yet reserved; and

5. shall enter the ‘G: Pre-established session in use’ state.

9.3.2.4 State: ‘G: Pre-established session in use’

9.3.2.4.1 General

The ‘G: Pre-established session in use’ state is a stable state. The participating MCPTT function is in this state when a pre-established session is used for a call.

In this state the participating MCPTT function can receive RTP media packets and pre-established session call control messages.

9.3.2.4.2 Receive floor control message (R: Floor control message)

Upon receiving a floor control message the participating MCPTT function:

1. shall perform the actions in clause 6.4.1; and

2. shall remain in the ‘G: Pre-established session in use’ state.

9.3.2.4.3 Receive RTP media packets (R: RTP Media)

Upon receiving an RTP media packet the participating MCPTT function:

1. shall perform the actions in clause 6.4.1; and

2. shall remain in the ‘G: Pre-established session in use’ state.

9.3.2.4.4 Receive call session release indication from MCPTT client (R: Call Release from MCPTT client)

Upon receiving an indication from the MCPTT client that the call is released but the pre-established session is kept alive (see 3GPP TS 24.379 [2]), the participating MCPTT function:

1. shall send call release to the controlling MCPTT function as specified in 3GPP TS 24.379 [2];

2. may release the media resources associated with the call not needed for the pre-established session;

3. shall stop timer T55 (Connect); and

4. shall enter the ‘G: Pre-established session not in use’ state.

9.3.2.4.5 Receive call session release indication from the controlling MCPTT function (R: Call Release from MCPTT server)

Upon receiving an indication from the controlling MCPTT function that the call is released (see 3GPP TS 24.379 [2]), the participating MCPTT function:

1. shall stop timer T55 (Connect)if running;

2. shall send Disconnect message to the MCPTT client. The Disconnect message:

a. shall include the MCPTT Session Identity field with the same content as sent in the Connect message when the MCPTT call was established; and

b. should set the first bit in the subtype of the Disconnect message to ‘1’ (Acknowledgment is required) as described in clause 8.3.2;

3. shall start timer T56 (Disconnect);

4. shall initialise counter C56 (Disconnect) to 1; and

5. shall enter the ‘G: Call releasing’ state.

9.3.2.4.6 Receive pre-established session stopped indication from the MCPTT client (R: Pre-established Session Stopped from MCPTT client)

Upon receiving the pre-established session release indication (see 3GPP TS 24.379 [2]) from the MCPTT client. The participating MCPTT function:

1. shall stop sending RTP media packet and floor control messages between the MCPTT client and the controlling MCPTT function;

2. shall release any media plane resources and timers associated with this pre-established session; and

3. shall enter the ‘Start-stop’ state.

9.3.2.4.7 Receive Acknowledge message ((R: successful Ack) or (R: failure Ack))

Upon receiving an Acknowledge message from the MCPTT client, the participating MCPTT function:

1. shall stop timer T55 (Connect);

2. if the Reason Code is not ‘Accepted’ the participating MCPTT function:

a. shall send Disconnect message to the MCPTT client;

i. shall include the MCPTT Session Identity field with the same content as sent in the Connect message when the MCPTT call was established;

ii. should set the first bit in the subtype of the Disconnect message to ‘1’ (Acknowledgment is required) as described in clause 8.3.2; and

iii. if a Reason Code field was received in the Acknowledge message with other than an ‘Accepted’ reason code value, shall include the Reason Cause field with a value corresponding to the received Reason Code value; and

b. shall start timer T56 (Disconnect);

c. shall initialise counter C56 (Disconnect) to 1;

d. shall send a call release indication to the controlling MCPTT function (see 3GPP TS 24.379 [2]); and

e. shall enter the ‘G: Call releasing’ state; and

3. otherwise the participating MCPTT function:

a. shall send a SIP 200 (OK) response to the SIP INVITE request as specified in 3GPP TS 24.379 [2] if the SIP 200 (OK) response to the SIP INVITE request is not already sent; and

b. shall remain in the ‘G: Pre-established session in use’ state.

9.3.2.4.8 Timer T55 (Connect) expired

On the expiry of timer T55 (Connect) the participating MCPTT function:

1. shall retransmit the Connect message sent to the MCPTT client using the media plane control transport channel defined for this MCPTT call;

2. shall start timer T55 (Connect);

3. shall increment counter C55 (Connect) by 1; and

4. shall remain in the ‘G: Pre-established session in use’ state.

9.3.2.4.9 Timer T55 (Connect) expired N times

When timer T55 (Connect) expires by the upper limit of counter C55 (Connect) times, the participating MCPTT function:

1. shall send a call release indication to the controlling MCPTT function as specified in 3GPP TS 24.379 [2];

2. may release the media resources associated with the call not needed for the pre-established session; and

3. shall enter the ‘G: Pre-established session not in use’ state.

9.3.2.4.10 Receive SIP 200 (OK) response (R: 200 OK)

Upon receiving a SIP 200 (OK) response from the controlling MCPTT function, the participating MCPTT function:

1. shall send the Connect message to the MCPTT client which initiated this call using the media plane control transport channel defined for this call. The Connect message:

a. shall include the SIP URI received in the Contact header field of the SIP 200 (OK) response in the <MCPTT Session Identity> value in the MCPTT Session Identity field;

b. if an "application/vnd.3gpp.mcptt-info+xml" MIME body with an <session-type> element is included in the SIP 200 (OK) response, shall include the <Session Type> value in the MCPTT Session Identity field with a value corresponding to the <session-type> element;

c. if an "application/vnd.3gpp.mcptt-info+xml" MIME body with an <session-type> element is not included in the SIP 200 (OK) response, shall include the <Session Type> value set to ‘no session type’ in the MCPTT Session Identity field;

d. if a Warning header field with a SIP "warn-code" set to the value "399" is received in the SIP 200 (OK) response, shall include the content of the SIP "warn-text" parameter from the received Warning header field in the <Warning Text> value in the Warning Text field;

e. if a P-Answer-State header field is included in the SIP 200 (OK) response, shall include an Answer State field with an <Answer State> value corresponding to the "answer-type" parameter; and

f should set the first bit in the subtype of the Connect message to ‘1’ (Acknowledgment is required) as described in clause 8.3.2;

2. shall start timer T55 (Connect);

3. shall increment counter C55 (Connect) by 1; and,

4. shall remain in the ‘G: Pre-established session in use’ state.

9.3.2.4.11 Receive failed SIP response from the controlling MCPTT function (R: Call Release from the MCPTT server)

Upon receiving a failed call setup indication from the controlling MCPTT function, the participating MCPTT function:

1. shall send an Disconnect message to the MCPTT client;

a. shall include the MCPTT Session Identity field with the same content as sent in the Connect message when the MCPTT call was established; and

b. should set the first bit in the subtype of the Disconnect message to ‘1’ (Acknowledgment is required) as described in clause 8.3.2;

2. shall start timer T56 (Disconnect);

3. shall initialise counter C56 (Disconnect) to 1;

4. shall terminate the call; and

5. shall enter the ‘G: Call releasing’ state.

9.3.2.5 State: ‘G: Call releasing’

9.3.2.5.1 General

The ‘G: Call releasing’ state is a transition state. The participating MCPTT function is in this state when a call is being released by keeping the pre-established session.

Timer T56 (Disconnect) is running in this state.

9.3.2.5.2 Receive Acknowledge message (R: Ack)

Upon receiving an Acknowledge message from the MCPTT client, the participating MCPTT function:

1. shall stop timer T55 (Connect), if running;

2. shall stop timer T56 (Disconnect);

3. may release the media resources associated with the call not needed for the pre-established session; and

4. shall enter the ‘G: Pre-established session not in use’ state.

9.3.2.5.3 Timer T56 (Disconnect) expired

On the expiry of timer T56 (Disconnect) less than the upper limit of counter C56 (Disconnect) times, the participating MCPTT function:

1. shall retransmit the Disconnect message sent to the MCPTT client using the media plane control transport channel defined for this call;

2. shall start timer T56 (Disconnect);

3. shall increment counter C56 (Disconnect) by 1; and

4. shall remain in the ‘G: Call releasing’ state.

9.3.2.5.4 Timer T56 (Disconnect) expired N times

When timer T56 (Disconnect) expires by the upper limit of counter C56 (Disconnect) times, the participating MCPTT function:

1. may release the media resources associated with the call not needed for the pre-established session; and

2. shall enter the ‘G: Pre-established session not in use’ state.