Table 10.7.6.1.2-1 describes the information flow MCPTT private call transfer request from the MCPTT server to the MCPTT client and from the MCPTT server to the MCPTT server.
Table 10.7.6.1.3-1 describes the information flow MCPTT private call transfer response from the MCPTT server to the MCPTT client and from the MCPTT server to the MCPTT server.
The procedure for MCPTT private call unannounced transfer covers the case where an MCPTT client requests an ongoing MCPTT private call (with or without floor control) to be transferred to another MCPTT user without prior announcement.
Figure 10.7.6.2.1-1 below illustrates the procedure for MCPTT private call unannounced transfer.
Pre-conditions:
MCPTT client 2 is authorized to use call transfer.
MCPTT client 1 is authorized to make private calls to MCPTT client 2.
MCPTT client 2 is authorized to transfer private calls to MCPTT client 3.
MCPTT client 1 has the necessary security information to initiate a private call with MCPTT client 2 and MCPTT client 3 if end2end encryption is required for the private call.
MCPTT client 1 initiates an MCPTT private call to MCPTT client 2 using the normal MCPTT call establishment as described in subclause 10.7.2.2. The MCPTT private call is established, and the user at MCPTT client 1 can talk with the user at MCPTT client 2.
The MCPTT server verifies that MCPTT client 2 is authorized to transfer the MCPTT private call to MCPTT client 3. This check is based on entries in the user profile of the user at MCPTT client 2. First, the MCPTT server checks the value of the "Allow private call transfer" entry. If it is false, the authorization check has failed, and the procedure continues with step 5. Otherwise the MCPTT server checks if the "Authorised to transfer private calls to any MCPTT user" entry is true. If this is the case the check has passed, and for target type of MCPTT ID the procedure continues with step 5 and for target ID type of functional alias the procedure continues with step 4a. The subsequent checking depends on the type of target ID. If the target ID is a MCPTT ID, the MCPTT server checks for a matching entry of the target MCPTT ID in the "List of MCPTT users that the MCPTT user is authorised to use as targets for call transfer" list. If a matching entry is found, the check has passed, if no matching entry is found the check has failed, for any outcome the procedure continues with step 5. If the target ID is a functional alias, the MCPTT server checks for a matching entry of the target functional alias in the "List of functional aliases that the MCPTT user is authorised to use as targets for call transfer" list. If a matching entry is found, the check has passed, and the procedure continues with step 4a. If no matching entry is found, the authorization check has failed and the procedure continues with step 5.
If the target of the MCPTT private call transfer is a functional alias instead of an MCPTT ID the MCPTT server resolves the functional alias to the corresponding MCPTT ID for which the functional alias is active.
If the authorization check has failed, or the target of the transfer is a functional alias that is not active, or the target of the transfer is a functional alias that is simultaneously active by multiple users and the outcome of the selection is a rejection, the MCPTT private call transfer is cancelled, and the MCPTT server sends an MCPTT private call transfer response with result "fail" back to MCPTT client 2. The MCPTT private call between MCPTT client 1 and MCPTT client 2 remains up, and the procedure stops. Otherwise, the procedure continues.
MCPTT client 2 initiates release of the private call between MCPTT client 1 and MCPTT client 2 as described in subclause 10.7.2.2.3.1. This step can occur at any time after step 5, since a new private call between MCPTT client 1 and MCPTT client 3 is independent of the private call between MCPTT client 1 and MCPTT client 2.
The MCPTT server verifies that MCPTT client 1 is authorized to perform the MCPTT private call as a result of the MCPTT private call transfer request based on the fact that the transfer indication is present and set to true in the MCPTT private call request.
The procedure for MCPTT private call announced transfer covers the case where an MCPTT client requests an ongoing MCPTT private call (with or without floor control) to be transferred to another MCPTT user with prior announcement.
Figure 10.7.6.2.2-1 below illustrates the procedure for MCPTT private call announced transfer.
Pre-conditions:
MCPTT client 2 is authorized to use call transfer.
MCPTT client 1 is authorized to make private calls to MCPTT client 2.
MCPTT client 2 is authorized to make private calls to MCPTT client 3.
MCPTT client 2 is authorized to transfer private calls to MCPTT client 3.
MCPTT client 1 has the necessary security information to initiate a private call with MCPTT client 2 and MCPTT client 3, and MCPTT client 2 has the necessary security information to initiate a private call with MCPTT client 3 if end2end encryption is required for the private call.
MCPTT client 1 initiates an MCPTT private call to MCPTT client 2 using the normal MCPTT call establishment as described in subclause 10.7.2.2. The MCPTT private call is established, and the user at MCPTT client 1 can talk with the user at MCPTT client 2. The user at MCPTT client 2 decides to transfer the call.
MCPTT client 2 initiates an MCPTT private call to MCPTT client 3 using the normal MCPTT call establishment procedures as described in subclause 10.7.2.2. The MCPTT private call is established, and the user at MCPTT client 2 can talk with the user at MCPTT client 3.
The MCPTT client 2 releases the MCPTT private call with MCPTT client 3 using the normal MCPTT call release procedure as described in subclause 10.7.2.2.3.1. This step can occur at any time after step 4.
The MCPTT server verifies that MCPTT client 2 is authorized to transfer the MCPTT private call to MCPTT client 3. This check is based on entries in the user profile of the user at MCPTT client 2. First, the MCPTT server checks the value of the "Allow private call transfer" entry. If it is false, the authorization check has failed, and the procedure continues with step 10. Otherwise the MCPTT server checks if the "Authorised to transfer private calls to any MCPTT user" entry is true. If this is the case the check has passed, and for target type of MCPTT ID the procedure continues with step 10 and for target ID type of functional alias the procedure continues with step 9. The subsequent checking depends on the type of target ID. If the target ID is a MCPTT ID, the MCPTT server checks for a matching entry of the target MCPTT ID in the "List of MCPTT users that the MCPTT user is authorised to use as targets for call transfer" list. If a matching entry is found, the check has passed, if no matching entry is found the check has failed, for any outcome the procedure continues with step 10. If the target ID is a functional alias, the MCPTT server checks for a matching entry of the target functional alias in the "List of functional aliases that the MCPTT user is authorised to use as targets for call transfer" list. If a matching entry is found, the check has passed, and the procedure continues with step 9. If no matching entry is found, the authorization check has failed and the procedure continues with step 10.
If the target of the MCPTT private call transfer is a functional alias instead of an MCPTT ID the MCPTT server resolves the functional alias to the corresponding MCPTT ID for which the functional alias is active.
If the authorization check has failed, or the target of the transfer is a functional alias that is not active, or the target of the transfer is a functional alias that is simultaneously active by multiple users and the outcome of the selection is a rejection, the MCPTT private call transfer is cancelled, and the MCPTT server sends an MCPTT private call transfer response with result "fail" back to MCPTT client 2. The MCPTT private call between MCPTT client 1 and MCPTT client 2 remains up, and the procedure stops. Otherwise, the procedure continues.
MCPTT client 2 initiates release of the private call between MCPTT client 1 and MCPTT client 2 as described in subclause 10.7.2.2.3.1. This step can occur at any time after step 10, since a new private call between MCPTT client 1 and MCPTT client 3 is independent of the private call between MCPTT client 1 and MCPTT client 2.
The MCPTT server verifies that MCPTT client 1 is authorized to perform the MCPTT private call as a result of the MCPTT private call transfer request based on the fact that the transfer indication is present and set to true in the MCPTT private call request.