Step 1.
A multi-media session is assumed to already exist between UE#1 and UE#2, established either as a basic session or by one of the supplemental services described in this clause.
Step 2.
UE#2 sends the Refer command to P-CSCF#2, containing "Refer-To" UE#F and "Referred-By" UE#2. If UE#2 knows the GRUU of UE#F and desires to reach a particular instance of UE#F, the "Refer-To" contains the GRUU of UE#F otherwise the "Refer-To" contains the Public User Identity of UE#F.
Step 3.
P-CSCF#2 forwards the message to S-CSCF#2.
Step 4.
S-CSCF#2 invokes whatever service logic is appropriate for this request. If UE#2 does not subscribe to a transfer service, service logic may reject the request. If S-CSCF#2 service logic requires that it remain on the path for the subsequent request, the service logic generates a private URI, addressed to itself, the "Refer-To" value in the request with the private URI.
Step 5.
S-CSCF#2 forwards the message to S-CSCF#1.
Step 6.
S-CSCF#1 invokes whatever service logic is appropriate for this request. To hide the identities of UE#2 and UE#F, S-CSCF#1 service logic stores the "Refer-To" and "Referred-By" information and replaces them with private URIs.
Step 7.
S-CSCF#1 forwards the message to P-CSCF#1.
Step 8.
P-CSCF#1 forwards the message to UE#1.
Step 9.
UE#1 initiates a new multi-media session to the destination given by the "Refer-To", which may either be a URI for UE#F, a private URI pointing to S-CSCF#2, or a private URI pointing to S-CSCF#1.
Step 10.
P-CSCF#1 forwards the INVITE request to S-CSCF#1.
Step 11.
S-CSCF#1 retrieves the destination information for the new session, and invokes whatever service logic is appropriate for this new session.
Step 12.
S-CSCF#1 determines the network operator addressed by the destination URI, and forwards the INVITE to either S-CSCF#F or S-CSCF#2 (actually I-CSCF#F or I-CSCF#2, the public entry points for S-CSCF#F and S-CSCF#2, respectively). If S-CSCF#1 forwards the INVITE to S-CSCF#F, the procedure continues with step #14, bypassing step #13.
Step 13.
S-CSCF#2 decodes the private URI destination, and determines the final destination of the new session. It determines the network operator addressed by the destination URI. The request is then forwarded onward to S-CSCF#F as in a normal session establishment.
Step 14.
S-CSCF#F invokes whatever service logic is appropriate for this new session, and forwards the request to P-CSCF#F.
Step 15.
P-CSCF#F forwards the request to UE#F.
Step 16-21.
The normal session establishment continues through bearer establishment, optional alerting, and reaches the point when the new session is accepted by UE#F. UE#F then sends the 200-OK final response to P-CSCF#F, which is forwarded through S-CSCF#F, S-CSCF#2 (optionally), S-CSCF#1, P-CSCF#1, to UE#1. At this point a new session is successfully established between UE#1 and UE#F.
Step 22-26.
The Refer request was successful, and UE#1 sends a 200-OK final response to UE#2. This response is sent through P-CSCF#1, S-CSCF#1, S-CSCF#2, P-CSCF#2, and to UE#2.
Step 27-31.
UE#2 clears the original session with UE#1 by sending the BYE message. This message is routed through P-CSCF#2, S-CSCF#2, S-CSCF#1, P-CSCF#1, to UE#1.
Step 32-36.
UE#1 acknowledges the BYE and terminates the original session. It responds with the 200-OK response, routed through P-CSCF#1, S-CSCF#1, S-CSCF#2, P-CSCF#2, to UE#2.