10.3 Off-network private call
24.2813GPPMission Critical Video (MCVideo) signalling controlProtocol specificationRelease 18TS
10.3.1 General
10.3.1.1 Common procedures
10.3.1.1.1 Sending/Receiving a message
In order to participate in a private call, the MCVideo client:
1) shall send the MONP MCVideo message transported in a MONP MCVIDEO MESSAGE CARRIER message, specified in 3GPP TS 24.379 [40 ], as a UDP message to the local IP address of the MCVideo user, on UDP port 8809 (as specified in 3GPP TS 24.379 [40]), with an IP time-to-live set to 255; and
2) shall treat UDP messages received on the port 8809 as received MONP messages.
NOTE: An MCVideo client that supports IPv6 shall listen to the IPv6 addresses.
10.3.1.1.2 Session description
One off-network MCVideo session includes one media-transmission control entity.
The MCVideo client shall generate an SDP body for a private call in accordance with rules and procedures of IETF RFC 4566 [2] and IETF RFC 3264 [7].
The MCVideo client:
1) shall include in the session-level section:
a) the "o=" field with the <username> portion set to a dash;
b) the "s=" field with the <session name> portion set to a dash; and
c) the "c=" field with the <nettype> portion set to "IN", the <addrtype> portion set to the IP version of the unicast IP address of the MCVideo client and the <connection-address> portion set to the unicast IP address of the MCVideo client;
2) shall include the media-level section for audio component of MCVideo consisting of:
a) the "m=" field with the <media> portion set to "audio", the <port> portion set to a port number for MCVideo group, the <proto> field set to "RTP/AVP" and <fmt> portion set indicating RTP payload type numbers;
b) the "i=" field with the <session description> portion set to "audio component of MCVideo";
c) the "a=fmtp:" attribute(s), the "a=rtpmap:" attribute(s) or both, indicating the codec(s) and media parameters of the audio component of MCVideo;
d) the "a=rtcp:" attribute indicating port number to be used for RTCP at the MCVideo client selected according to the rules and procedures of IETF RFC 3605 [3], if the media stream uses other than the default IP address;
e) if the SDP offer is for video pull call:
i) shall include an "a=recvonly" attribute;
3) shall include the media-level section for video component of MCVideo consisting of:
a) the "m=" field with the <media> portion set to "video", the <port> portion set to a port number for MCVideo video of the MCVideo group, the <proto> field set to "RTP/AVP" and <fmt> portion set indicating RTP payload type numbers;
b) the "i=" field with the <session description> portion set to "video";
c) the "a=fmtp:" attribute(s), the "a=rtpmap:" attribute(s) or both, indicating the codec(s) and media parameters of the video component of MCVideo;
d) the "a=rtcp:" attribute indicating port number to be used for RTCP at the MCVideo client selected according to the rules and procedures of IETF RFC 3605 [3], if the media stream uses other than the default IP address; and
e) if the SDP offer is for video pull call:
i) shall include an "a=recvonly" attribute; and
ii) shall skip step 4).
4) shall include the media-level section for media-transmission control entity consisting of:
a) an "m=" line, with the <media> portion set to "application", the <port> portion set to a port number for media-transmission control entity of the MCVideo group, the <proto> field set to "udp" and <fmt> portion set to "MCVideo"; and
b) the "a=fmtp:MCVideo" attribute indicating the parameters of the media-transmission control entity as specified 3GPP TS 24.581 [5]; and
5) shall include the MIKEY-SAKKE I_MESSAGE, if generated by the MCVideo client, in an "a=key-mgmt" attribute as a "mikey" attribute value in the SDP offer as specified in IETF RFC 4567 [6].
10.3.2 Basic call control
10.3.2.1 General
The maximum number of simultaneous off-network private calls is limited by the value of "/<x>/Common/PrivateCall/MaxCallNc10" leaf node present in the UE configuration as specified in 3GPP TS 24.483 [4].
10.3.2.2 Private call control state machine
The figure 10.3.2.2-1 gives an overview of the main states and transitions on the UE for private call control.
Each private call control state machine is per MCVideo user ID.
Figure 10.3.2.2-1: Private call control state machine
10.3.2.3 Private call control states
10.3.2.3.1 P0: start-stop
In this state, no private call control entity exists.
10.3.2.3.2 P1: ignoring same call id
This state exists for UE, when the UE is not part of an ongoing private call.
10.3.2.3.3 P2: waiting for call response
This state exists for UE, when the UE has sent a PRIVATE CALL SETUP REQUEST message and is waiting for a response, PRIVATE CALL ACCEPT or PRIVATE CALL REJECT message.
10.3.2.3.4 P3: waiting for release response
This state exists for UE, when the UE has sent a PRIVATE CALL RELEASE message and is waiting for a PRIVATE CALL RELEASE ACK message.
10.3.2.3.5 P4: part of ongoing call
This state exists for UE, when the UE is part of an ongoing private call.
10.3.2.3.6 P5: pending
This state exists for UE, when the UE has presented a notification to the user for the received PRIVATE CALL SETUP REQUEST message and is waiting for a user indication.
10.3.2.4 Procedures
10.3.2.4.1 General
10.3.2.4.2 Private call setup
10.3.2.4.2.1 Initiating a private call
When in the "P0: start-stop" state or "P1: ignoring same call id", upon an indication from MCVideo User to initiate a private call and the value of "/<x>/<x>/Common/PrivateCall/Authorised" leaf node present in the user profile as specified in 3GPP TS 24.483 [4] is set to "true", the MCVideo client:
1) shall generate and store the call identifier as a random number uniformly distributed between (0, 65536);
2) shall store own MCVideo user ID as caller ID;
3) shall store MCVideo user ID of the callee as callee ID;
4) shall store "AUTOMATIC COMMENCEMENT MODE" as commencement mode, if requested and the value of "/<x>/<x>/Common/PrivateCall/AutoCommence" leaf node present in the user profile as specified in 3GPP TS 24.483 [4] is set to "true". Otherwise if the value of "/<x>/<x>/Common/PrivateCall/ManualCommence" leaf node present in the user profile as specified in 3GPP TS 24.483 [4] is set to "true", store "MANUAL COMMENCEMENT MODE" as commencement mode;
5) shall store "PRIVATE CALL" as the current call type;;
6) if an end-to-end security context needs to be established then:
a) shall use keying material provided by the key management server to generate a PCK as described in 3GPP TS 33.180 [8];
b) shall use the PCK to generate a PCK-ID with the four most significant bits set to "0001" to indicate that the purpose of the PCK is to protect private call communications and with the remaining twenty eight bits being randomly generated as described in 3GPP TS 33.180 [8];
c) shall encrypt the PCK to a UID associated to the MCVideo client using the MCVideo ID of the invited user and a time related parameter as described in 3GPP TS 33.180 [8];
d) shall generate a MIKEY-SAKKE I_MESSAGE using the encapsulated PCK and PCK-ID as specified in 3GPP TS 33.180 [8];
e) shall add the MCVideo ID of the originating MCVideo to the initiator field (IDRi) of the I_MESSAGE as described in 3GPP TS 33.180 [8];
f) shall sign the MIKEY-SAKKE I_MESSAGE using the originating MCVideo user’s signing key provided in the keying material together with a time related parameter, and add this to the MIKEY-SAKKE payload, as described in 3GPP TS 33.180 [8] and;
g) shall store the MIKEY-SAKKE I_MESSAGE for later inclusion in an SDP body;
7) may store current user location as user location;
8) shall set the stored current ProSe per-packet priority to value corresponding to MCPTT off-network private call as described in 3GPP TS 24.483 [4].
9) shall generate and store offer SDP, as defined in clause 10.3.1.1.2;
10) shall generate a PRIVATE CALL SETUP REQUEST message as specified in clause 17.1.5. In the PRIVATE CALL SETUP REQUEST message, the MCVideo client:
a) shall set the Call identifier IE with the stored call identifier;
b) shall set the MCVideo user ID of the caller IE with the stored caller ID;
c) shall set the MCVideo user ID of the callee IE with the stored callee ID;
d) shall set the Commencement mode IE with the stored commencement mode;
e) shall set the Call type IE with the stored current call type;
f) shall set the SDP offer IE with the stored offer SDP; and
g) may set the User location IE with the stored user location.
11) shall send the PRIVATE CALL SETUP REQUEST message towards other MCVideo client according to rules and procedures as specified in clause 10.3.1.1.1;
12) shall initialize the counter CFP1 (private call request retransmission) with the value set to 1;
13) shall start timer TFP1 (private call request retransmission); and
14) shall enter the "P2: waiting for call response" state.
10.3.2.4.2.2 Private call setup request retransmission
When in the "P2: waiting for call response" state, upon expiry of timer TFP1 (private call request retransmission), the MCVideo client:
1) may update the stored user location with current user location;
2) shall increment the value of counter CFP1 (private call request retransmission) by 1;
3) shall generate a PRIVATE CALL SETUP REQUEST message as specified in clause 17.1.5. In the PRIVATE CALL SETUP REQUEST message, the MCVideo client:
a) shall set the Call identifier IE with the stored call identifier;
b) shall set the MCVideo user ID of the caller IE with the stored caller ID;
c) shall set the MCVideo user ID of the callee IE with the stored callee ID;
d) shall set the Commencement mode IE with the stored commencement mode;
e) shall set the Call type IE with the stored current call type;
f) shall set the SDP offer IE with the stored offer SDP; and
g) may set the User location IE with stored user location.
4) shall send the PRIVATE CALL SETUP REQUEST message towards other MCVideo client according to rules and procedures as specified in clause 10.3.1.1.1;
5) shall start timer TFP1 (private call request retransmission); and
6) shall remain in the "P2: waiting for call response" state.
10.3.2.4.2.3 Ringing notification to the user
When in the "P2: waiting for call response" state, upon receiving a PRIVATE CALL RINGING message, the MCVideo client:
1) shall remain in the "P2: waiting for call response" state.
10.3.2.4.2.4 No response to private call setup request with automatic commencement mode
In the "P2: waiting for call response" state, when timer TFP1 (private call request retransmission) expires and the value of the counter CFP1 (private call request retransmission) is equal to the upper limit and the stored commencement mode is "AUTOMATIC COMMENCEMENT MODE", the MCVideo client:
1) shall start timer TFP7 (waiting for any message with same call identifier); and
2) shall enter the "P1: ignoring same call id" state.
10.3.2.4.2.5 No response to private call setup request with manual commencement mode
When in the "P2: waiting for call response" state when timer TFP1 (private call request retransmission) expires and the value of the counter CFP1 (private call request retransmission) is equal to the upper limit and the stored commencement mode is "MANUAL COMMENCEMENT MODE", the MCVideo client:
1) shall start timer TFP2 (waiting for call response message); and
2) shall remain in the "P2: waiting for call response" state.
10.3.2.4.2.6 No response to private call setup request after waiting for user acknowledgement
When in the "P2: waiting for call response" state, upon expiry of timer TFP2 (waiting for call response message), the MCVideo client:
1) shall start timer TFP7 (waiting for any message with same call identifier);
2) shall release the call control state machine; and
3) shall enter the "P1: ignoring same call id" state.
10.3.2.4.2.7 Private call setup request rejected
When in the "P2: waiting for call response" state, upon receiving a PRIVATE CALL REJECT message in response to PRIVATE CALL SETUP REQUEST message with Call identifier IE same as the stored call identifier, the MCVideo client:
1) shall stop timer TFP1 (call setup retransmission), if running;
2) shall stop timer TFP2 (waiting for call response message), if running;
3) shall start timer TFP7 (waiting for any message with same call identifier);
4) shall release the call control state machine; and
5) shall enter the "P1: ignoring same call id" state.
10.3.2.4.2.8 Private call setup request accepted
When in the "P2: waiting for call response" state, upon receiving a PRIVATE CALL ACCEPT message response to PRIVATE CALL SETUP REQUEST message with the same call identifier, the MCVideo client:
1) shall store the SDP answer IE received in the PRIVATE CALL ACCEPT message as answer SDP;
2) shall generate a PRIVATE CALL ACCEPT ACK message as specified in clause 17.1.11:
a) shall set the Call identifier IE to the stored call identifier;
b) shall set the MCVideo user ID of the caller IE with the stored caller ID; and
c) shall set the MCVideo user ID of the callee IE with the stored callee ID.
3) shall send the PRIVATE CALL ACCEPT ACK message in response to the request message according to rules and procedures as specified in clause 10.3.1.1.1;
4) shall stop timer TFP1 (call setup retransmission), if running;
5) shall stop timer TFP2 (waiting for call response message), if running;
6) shall establish a media session based on the SDP body of the stored answer SDP;
7) shall start transmission control as terminating transmission participant as specified in clause a.b in 3GPP TS 24.581 [5];
8) shall start timer TFP5 (max duration); and
9) shall enter the "P4: part of ongoing call" state.
10.3.2.4.2.9 User cancels the private call setup request
When in the "P2: waiting for call response" state, upon an indication from MCVideo User to cancel the private call request, the MCVideo client:
1) shall generate a PRIVATE CALL RELEASE message as specified in clause 17.1.9;
a) shall set the Call identifier IE to the stored call identifier;
b) shall set the MCVideo user ID of the caller IE with the stored caller ID; and
c) shall set the MCVideo user ID of the callee IE with the stored callee ID;
2) shall send the PRIVATE CALL RELEASE message in response to the request message according to rules and procedures as specified in clause 10.3.1.1.1;
3) shall start timer TFP3 (private call release retransmission); and
4) shall enter the "P3: waiting for release response" state.
10.3.2.4.3 Private call setup in automatic commencement mode
10.3.2.4.3.1 Unable to establish media
When in the "P0: start-stop" or "P1: ignoring same call id" state, upon receiving a PRIVATE CALL SETUP REQUEST message with Call identifier IE different than stored call identifier and media session declared in SDP body of PRIVATE CALL SETUP REQUEST message cannot be established, the MCVideo client:
1) shall store the Call identifier IE in the received message as call identifier;
2) shall store the MCVideo user ID of the caller IE in the received PRIVATE CALL SETUP message as caller ID;
3) shall store own MCVideo user ID as callee ID;
4) shall generate a PRIVATE CALL REJECT message as specified in clause 17.1.8. In the PRIVATE CALL REJECT message, the MCVideo client:
a) shall set the Call identifier IE to the cached call identifier;
b) shall set the MCVideo user ID of the caller IE with the stored caller ID;
c) shall set the MCVideo user ID of the callee IE with stored callee ID; and
d) shall set the Reason IE as "FAILED", if requested to restrict notification of call failure and the value of "/<x>/<x>/Common/PrivateCall/FailRestrict" leaf node present in the user profile as specified in 3GPP TS 24.483 [4] is set to "true". Otherwise, shall set the Reason IE as "MEDIA FAILURE".
5) shall send the PRIVATE CALL REJECT message in response to the request message according to rules and procedures as specified in clause 10.3.1.1.1;
6) shall start timer TFP7 (waiting for any message with same call identifier); and
7) shall enter the "P1: ignoring same call id" state if current state is the "P0: start-stop" state.
10.3.2.4.3.2 Responding to private call setup request when not participating in the ongoing call
When in the "P0: start-stop" or "P1: ignoring same call id" state, upon receiving a PRIVATE CALL SETUP REQUEST message with Commencement mode IE set to "AUTOMATIC COMMENCEMENT MODE" and Call identifier IE different than stored call identifier and media session declared in SDP body of PRIVATE CALL SETUP REQUEST message can be established, the MCVideo client:
1) shall store the Call identifier IE in the received message as call identifier;
2) shall set the stored current call type to "PRIVATE CALL";
3) shall set the stored current ProSe per-packet priority to value corresponding to MCPTT off-network private call as described in 3GPP TS 24.483 [4].
4) shall store the MCVideo user ID of the caller IE in the received PRIVATE CALL SETUP REQUEST message as caller ID;
5) shall store own MCVideo user ID as callee ID;
6) if the SDP offer contains an "a=key-mgmt" attribute field with a "mikey" attribute value containing a MIKEY-SAKKE I_MESSAGE:
a) shall extract the MCVideo ID of the originating MCVideo user from the initiator field (IDRi) of the I_MESSAGE as described in 3GPP TS 33.180 [8];
b) shall convert the MCVideo ID to a UID as described in 3GPP TS 33.180 [8];
c) shall use the UID to validate the signature of the MIKEY-SAKKE I_MESSAGE as described in 3GPP TS 33.180 [8];
d) if the validation of the signature failed, shall generate a PRIVATE CALL REJECT message as specified in clause 17.1.8. In the PRIVATE CALL REJECT message, the MCVideo client:
i) shall set the call identifier IE to the stored call identifier;
ii) shall set the MCVideo user ID of the caller IE with the stored caller ID;
iii) shall set the MCVideo user ID of the callee IE with the stored callee ID;
iv) shall set the Reason IE as "FAILED", if requested to restrict notification of call failure and the value of "/<x>/<x>/Common/PrivateCall/FailRestrict" leaf node present in the user profile as specified in 3GPP TS 24.483 [4] is set to "true". Otherwise, shall set the reason IE as "E2E SECURITY CONTEXT FAILURE";
v) shall send the PRIVATE CALL REJECT message in response to the request message according to rules and procedures as specified in clause 10.3.1.1.1; and
vi) shall remain in the current state;
e) if the validation of the signature was successful:
i) shall extract and decrypt the encapsulated PCK using the terminating user’s (KMS provisioned) UID key as described in 3GPP TS 33.180 [8];
ii) shall extract the PCK-ID, from the payload as specified in 3GPP TS 33.180 [8];
iii) shall generate and store answer SDP based on received SDP offer IE in PRIVATE CALL SETUP REQUEST message, as defined in clause 10.3.1.1.2;
iv) shall generate a PRIVATE CALL ACCEPT message as specified in clause 17.1.7. In the PRIVATE CALL ACCEPT message, the MCVideo client:
A) shall set the Call identifier IE to the stored call identifier; and
B) shall set the MCVideo user ID of the caller IE with stored caller ID.
C) shall set the MCVideo user ID of the callee IE with stored callee ID; and
D) shall set the SDP answer IE with the stored answer SDP;
v) shall send PRIVATE CALL ACCEPT message in response to the request message according to rules and procedures as specified in clause 10.3.1.1.1;
vi) shall establish a media session based on the SDP body of the stored answer SDP;
vii) shall initialize the counter CFP4 with value set to 1;
viii) shall start timer TFP4 (private call accept retransmission); and
ix) shall enter the "P5: pending" state; and
NOTE: With the PCK successfully shared between the originating MCVideo client and the terminating MCVideo client, both clients are able to use SRTP/SRTCP to create an end-to-end secure session.
7) if the SDP offer does not contain an "a=key-mgmt" attribute, the MCVideo client:
a) shall generate and store answer SDP based on received SDP offer IE in PRIVATE CALL SETUP REQUEST message, as defined in clause 10.3.1.1.2;
b) shall generate a PRIVATE CALL ACCEPT message as specified in clause 17.1.7:
i) shall set the Call identifier IE to the stored call identifier;
ii) shall set the MCVideo user ID of the caller IE with stored caller ID.
iii) shall set the MCVideo user ID of the callee IE with stored callee ID; and
iv) shall set the SDP answer IE with the stored answer SDP;
c) shall send PRIVATE CALL ACCEPT message in response to the request message according to rules and procedures as specified in clause 10.3.1.1.1;
d) shall establish a media session based on the SDP body of the stored answer SDP;
e) shall initialize the counter CFP4 with value set to 1;
f) shall start timer TFP4 (private call accept retransmission); and
g) shall enter the "P5: pending" state.
10.3.2.4.3.3 Private call accept retransmission
When in the "P5: pending" state, upon expiry of timer TFP4 (private call accept retransmission), the MCVideo client:
1) shall generate a PRIVATE CALL ACCEPT message as specified in clause 17.1.7. In the PRIVATE CALL ACCEPT message, the MCVideo client:
a) shall set the Call identifier IE to the stored call identifier;
b) shall set the MCVideo user ID of the caller IE with the stored caller ID;
c) shall set the MCVideo user ID of the callee IE with the stored callee ID; and
d) shall set the SDP answer IE with the stored answer SDP;
2) shall send PRIVATE CALL ACCEPT message in response to the request message according to rules and procedures as specified in clause 10.3.1.1.1;
3) shall increment the value of the counter CFP4 (private call accept retransmission) by 1;
4) shall start timer TFP4 (private call accept retransmission); and
5) shall remain in the "P5: pending" state.
10.3.2.4.3.4 Establishing the call
When in the "P5: pending" state, upon receiving a PRIVATE CALL ACCEPT ACK message or RTP media from originating user, the MCVideo client:
1) shall stop timer TFP4 (private call accept retransmission);
2) shall start transmission control as terminating MCVideo client as specified in clause a.b in 3GPP TS 24.581 [5];
3) shall start timer TFP5 (max duration); and
4) shall enter the "P4: part of ongoing call" state.
10.3.2.4.3.5 Call failure
In the "P5: pending" state, when timer TFP4 (private call accept retransmission) expires and the value of the counter CFP4 (private call accept retransmission) is equal to the upper limit, the MCVideo client:
1) shall start timer TFP7 (waiting for any message with same call identifier); and
2) shall enter the "P1: ignoring same call id" state.
10.3.2.4.4 Private call setup in manual commencement mode
10.3.2.4.4.1 Incoming private call
When in the "P0: start-stop" or "P1: ignoring same call id" state, upon receiving a PRIVATE CALL SETUP REQUEST message with Commencement mode IE set to "MANUAL COMMENCEMENT MODE" and Call identifier IE different from stored call identifier, the MCVideo client:
1) shall store the Call identifier IE in the received message as call identifier;
2) shall set the stored current call type to "PRIVATE CALL";
3) shall set the stored current ProSe per-packet priority to value corresponding to MCPTT off-network private call as described in 3GPP TS 24.483 [4].
4) shall store the MCVideo user ID of the caller IE as received in the PRIVATE CALL SETUP REQUEST as caller ID;
5) shall store own MCVideo user ID as callee ID;
6) shall generate a PRIVATE CALL RINGING message as specified in clause 17.1.6;
a) shall set the Call identifier IE to the stored call identifier;
b) shall set the MCVideo user ID of the caller IE with the stored caller ID; and
c) shall set the MCVideo user ID of the callee IE with the stored callee ID;
7) shall send PRIVATE CALL RINGING message in response to the request message according to rules and procedures as specified in clause 10.3.1.1.1;
8) shall start timer TFP2 (waiting for call response message); and
9) shall enter the "P5: pending" state.
10.3.2.4.4.2 No response from the user
When in the "P5: pending" state, upon expiry of timer TFP2 (waiting for call response message), the MCVideo client:
1) shall generate a PRIVATE CALL REJECT message as specified in clause 17.1.8:
a) shall set the Call identifier IE to the stored call identifier;
b) shall set the MCVideo user ID of the caller IE with the stored caller ID;
c) shall set the MCVideo user ID of the callee IE with the stored callee ID; and
d) shall set the Reason IE as "FAILED".
2) shall send the PRIVATE CALL REJECT message in response to the request message according to rules and procedures as specified in clause 10.3.1.1.1;
3) shall start timer TFP7 (waiting for any message with same call identifier); and
4) shall enter the "P1: ignoring same call id" state.
10.3.2.4.4.3 User accepts the private call setup request
When in the "P5: pending" state, upon an indication from MCVideo User to accept the incoming private call, the MCVideo client:
1) if the SDP offer contains an "a=key-mgmt" attribute field with a "mikey" attribute value containing a MIKEY-SAKKE I_MESSAGE:
a) shall extract the MCVideo ID of the originating MCVideo user from the initiator field (IDRi) of the I_MESSAGE as described in 3GPP TS 33.180 [8];
b) shall convert the MCVideo ID to a UID as described in 3GPP TS 33.180 [8];
c) shall use the UID to validate the signature of the MIKEY-SAKKE I_MESSAGE as described in 3GPP TS 33.180 [8];
d) if the validation of the signature failed, shall generate a PRIVATE CALL REJECT message as specified in clause 17.1.8. In the PRIVATE CALL REJECT message, the MCVideo client:
i) shall set the call identifier IE to the stored call identifier;
ii) shall set the MCVideo user ID of the caller IE with the stored caller ID;
iii) shall set the MCVideo user ID of the callee IE with the stored callee ID;
iv) shall set the Reason IE as "FAILED", if requested to restrict notification of call failure and the value of "/<x>/<x>/Common/PrivateCall/FailRestrict" leaf node present in the user profile as specified in 3GPP TS 24.483 [4] is set to "true". Otherwise, shall set the reason IE as "E2E SECURITY CONTEXT FAILURE";
v) shall send the PRIVATE CALL REJECT message in response to the request message according to rules and procedures as specified in clause 10.3.1.1.1; and
vi) shall enter the "P1: ignoring same call id" state;
e) if the validation of the signature was successful:
i) shall extract and decrypt the encapsulated PCK using the terminating user’s (KMS provisioned) UID key as described in 3GPP TS 33.180 [8];
ii) shall extract the PCK-ID, from the payload as specified in 3GPP TS 33.180 [8];
iii) shall generate and store answer SDP based on received SDP offer IE in PRIVATE CALL SETUP REQUEST message, as defined in clause 10.3.1.1.2;
iv) shall generate a PRIVATE CALL ACCEPT message as specified in clause 17.1.7. In the PRIVATE CALL ACCEPT message, the MCVideo client:
A) shall set the Call identifier IE to the stored call identifier;
B) shall set the MCVideo user ID of the caller IE with the stored caller ID;
C) shall set the MCVideo user ID of the callee IE with the stored callee ID; and
D) shall set the SDP answer IE with the stored answer SDP;
v) shall send the PRIVATE CALL ACCEPT message in response to the request message according to rules and procedures as specified in clause 10.3.1.1.1;
vi) shall establish a media session based on the SDP body of the private call;
vii) shall stop timer TFP2 (waiting for call response message);
viii) shall initialize the counter CFP4 with value set to 1;
ix) shall start timer TFP4 (private call accept retransmission); and
x) shall remain in the "P5: pending" state; and
NOTE: With the PCK successfully shared between the originating MCVideo client and the terminating MCVideo client, both clients are able to use SRTP/SRTCP to create an end-to-end secure session.
2) if the SDP offer does not contain an "a=key-mgmt" attribute, the MCVideo client:
a) shall generate and store answer SDP based on received SDP offer IE in PRIVATE CALL SETUP REQUEST message, as defined in clause 10.3.1.1.2;
b) shall generate a PRIVATE CALL ACCEPT message as specified in clause 17.1.7. In the PRIVATE CALL ACCEPT message, the MCVideo client:
i) shall set the Call identifier IE to the stored call identifier;
ii) shall set the MCVideo user ID of the caller IE with the stored caller ID;
iii) shall set the MCVideo user ID of the callee IE with the stored callee ID; and
iv) shall set the SDP answer IE with the stored answer SDP;
c) shall send the PRIVATE CALL ACCEPT message in response to the request message according to rules and procedures as specified in clause 10.3.1.1.1;
d) shall establish a media session based on the SDP body of the private call;
e) shall stop timer TFP2 (waiting for call response message);
f) shall initialize the counter CFP4 with value set to 1;
g) shall start timer TFP4 (private call accept retransmission); and
h) shall remain in the "P5: pending" state.
10.3.2.4.4.4 Private call accept retransmission
When in the "P5: pending" state, upon expiry of timer TFP4 (private call accept retransmission), the MCVideo client:
1) shall generate a PRIVATE CALL ACCEPT message as specified in clause 17.1.7. In the PRIVATE CALL ACCEPT message, the MCVideo client:
a) shall set the Call identifier IE to the stored call identifier;
b) shall set the MCVideo user ID of the caller IE the stored caller ID;
c) shall set the MCVideo user ID of the callee IE with the stored callee ID; and
d) shall set the SDP answer IE with the stored answer SDP;
2) shall send PRIVATE CALL ACCEPT message in response to the request message according to rules and procedures as specified in clause 10.3.1.1.1;
3) shall increment the value of the (counter CFP4 private call accept retransmission) by 1;
4) shall start timer TFP4 (private call accept retransmission); and
5) shall remain in the "P5: pending" state.
10.3.2.4.4.5 Establishing the call
When in the "P5: pending" state, upon receiving a PRIVATE CALL ACCEPT ACK message or RTP media from originating user, the MCVideo client:
1) shall stop timer TFP4 (private call accept retransmission);
2) shall start transmission control as terminating MCVideo client as specified in clause a.b in 3GPP TS 24.581 [5];
3) shall start timer TFP5 (max duration); and
4) shall enter the "P4: part of ongoing call" state.
10.3.2.4.4.6 Call failure
In the "P5: pending" state, when timer TFP4 (private call accept retransmission) expires and the value of the counter CFP4 (private call accept retransmission) is equal to the upper limit, the MCVideo client:
1) shall start timer TFP7 (waiting for any message with same call identifier); and
2) shall enter the "P1: ignoring same call id" state.
10.3.2.4.4.7 User rejects the private call setup request
When in the "P5: pending" state, upon an indication from MCVideo User to reject the incoming private call, the MCVideo client:
1) shall generate a PRIVATE CALL REJECT message as specified in clause 17.1.8:
a) shall set the Call identifier IE to the stored call identifier;
b) shall set the MCVideo user ID of the caller IE with the stored caller ID;
c) shall set the MCVideo user ID of the callee IE with stored callee ID; and
d) shall set the Reason IE as "FAILED", if requested to restrict notification of call failure and the value of "/<x>/<x>/Common/PrivateCall/FailRestrict" leaf node present in the user profile as specified in 3GPP TS 24.483 [4] is set to "true". Otherwise, shall set the Reason IE as "REJECT";
2) shall send the PRIVATE CALL REJECT message in response to the request message according to rules and procedures as specified in clause 10.3.1.1.1;
3) shall start timer TFP7 (waiting for any message with same call identifier); and
4) shall enter the "P1: ignoring same call id" state.
10.3.2.4.4.8 Caller cancels the private call setup request before call establishment
When in the "P5: pending" state or "P1: ignoring same call id" state, upon receiving a PRIVATE CALL RELEASE message, the MCVideo client:
1) shall generate a PRIVATE CALL RELEASE ACK message as specified in clause 17.1.10. In the PRIVATE CALL RELEASE ACK message, the MCVideo client:
a) shall set the Call identifier IE to the stored call identifier;
b) shall set the MCVideo user ID of the caller IE with the stored caller ID; and.
c) shall set the MCVideo user ID of the callee IE with the stored callee ID.
2) shall send the PRIVATE CALL RELEASE ACK message in response to the request message according to rules and procedures as specified in clause 10.3.1.1.1;
3) shall start timer TFP7 (waiting for any message with same call identifier);
4) shall stop timer TFP4 (private call accept retransmission) if running; and
5) shall enter the "P1: ignoring same call id" state, if the current state is "P5: pending" state.
10.3.2.4.5 Private call release
10.3.2.4.5.1 Releasing a private call
When in the "P4: part of ongoing call" state, upon an indication from MCVideo User to release a private call, the MCVideo client:
1) shall generate a PRIVATE CALL RELEASE message as specified in clause 17.1.9. In the PRIVATE CALL RELEASE message, the MCVideo client:
a) shall set the Call identifier IE to the stored call identifier;
b) shall set the MCVideo user ID of the caller IE with stored caller ID; and
c) shall set the MCVideo user ID of the callee IE with stored callee ID.
2) shall send the PRIVATE CALL RELEASE message in response to the request message according to rules and procedures as specified in clause 10.3.1.1.1;
3) shall initialize the counter CFP3 (private call release retransmission) with the value set to 1;
4) shall start timer TFP3 (private call release retransmission); and
5) shall enter the "P3: waiting for release response" state.
10.3.2.4.5.2 Private call release retransmission
When in the "P3: waiting for release response" state, upon expiry of timer TFP3 (private call release retransmission), the MCVideo client:
1) shall generate a PRIVATE CALL RELEASE message as specified in clause 17.1.9. In the PRIVATE CALL RELEASE message, the MCVideo client:
a) shall set the Call identifier IE to the stored call identifier;
b) shall set the MCVideo user ID of the caller IE with stored caller ID; and
c) shall set the MCVideo user ID of the callee IE with the stored callee ID.
2) shall send the PRIVATE CALL RELEASE message in response to the request message according to rules and procedures as specified in clause 10.3.1.1.1;
3) shall increment the value of timer CFP3 by 1;
4) shall start timer TFP3 (private call release retransmission); and
5) shall remain in the "P3: waiting for release response" state.
10.3.2.4.5.3 No response to private call release
In the "P3: waiting for release response" state, when timer TFP3 (private call request retransmission) expires and the value of the counter CFP3 (private call release retransmission) is equal to the upper limit, the MCVideo client:
1) shall terminate the media session;
2) shall start timer TFP7 (waiting for any message with same call identifier); and
3) shall enter the "P1: ignoring same call id" state.
10.3.2.4.5.4 Acknowledging private call release after call establishment
When in the "P4: part of ongoing call" state, upon receiving a PRIVATE CALL RELEASE message, the MCVideo client:
1) shall generate a PRIVATE CALL RELEASE ACK message as specified in clause 17.1.10;
a) shall set the Call identifier IE to the stored call identifier;
b) shall set the MCVideo user ID of the caller IE the stored caller ID; and
c) shall set the MCVideo user ID of the callee IE with the stored callee ID.
2) shall send the PRIVATE CALL RELEASE ACK message in response to the request message according to rules and procedures as specified in clause 10.3.1.1.1;
3) shall terminate the media session for private call;
4) shall start timer TFP7 (waiting for any message with same call identifier); and
5) shall enter the "P1: ignoring same call id" state.
10.3.2.4.5.5 Private call release acknowledged
When in the "P3: waiting for release response" state, upon receiving a PRIVATE CALL RELEASE ACK to PRIVATE CALL RELEASE message, the MCVideo client:
1) shall stop timer TFP3 (private call release retransmission), if running;
2) shall terminate the media session;
3) shall start timer TFP7 (waiting for any message with same call identifier); and
4) shall enter the "P1: ignoring same call id" state.
10.3.2.4.5.6 Max duration reached
When in the "P4: part of ongoing call" state, upon expiry of timer TFP5 (max duration), the MCVideo client:
1) shall terminate the media session;
2) shall start timer TFP7 (waiting for any message with same call identifier); and
3) shall enter the "P1: ignoring same call id" state.
10.3.2.4.5.7 Stop ignoring same call id
When in the "P1: ignoring same call id" state, upon expiry of timer TFP7 (waiting for any message with same call identifier) the MCVideo client:
1) shall clear the stored call identifier; and
2) shall enter the "P0: start-stop" state.
10.3.2.4.5.8 No response to emergency private call setup request
In the "P4: part of ongoing call" state, when timer TFP1 (private call request retransmission) expires and the value of the counter CFP1 (private call request retransmission) is equal to the upper limit, the MCVideo client:
1) shall start timer TFP7 (waiting for any message with same call identifier); and
2) shall enter the "P1: ignoring same call id" state.
10.3.2.4.5.9 No response to emergency private call cancel
In the "P4: part of ongoing call" state, when timer TFP6 (emergency private call cancel retransmission) expires and the value of the counter CFP6 (emergency private call cancel retransmission) is equal to the upper limit, the MCVideo client:
1) shall start timer TFP7 (waiting for any message with same call identifier); and
2) shall enter the "P1: ignoring same call id" state.
10.3.2.4.6 Error handling
10.3.2.4.6.1 Unexpected MONP message received
Upon receiving an unexpected MONP message or MONP MCVideo message in a state where there is no handling specified for the MONP message or the MONP MCVideo message, the MCVideo client shall discard this message.
10.3.2.4.6.2 Unexpected indication from MCVideo user
Upon receiving an indication from the MCVideo user in a state where there is no handling specified for the indication, the MCVideo client shall ignore the indication.
10.3.2.4.6.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 MCVideo client shall ignore the expiration of the timer.