Step 1.
UE#1 detects a request from the user to place a media stream on hold. UE#1 stops sending the media stream to the remote endpoint, but keeps the resources for the session reserved.
Step 2.
UE#1 sends a Hold message to its proxy, P-CSCF#1.
Step 3.
P-CSCF#1 forwards the Hold message to S-CSCF#1.
Step 4.
S-CSCF#1 forwards the Hold message to S-CSCF#2.
Step 5.
S-CSCF#2 forwards the Hold message to P-CSCF#2.
Step 6.
P-CSCF#2 forwards the Hold message to UE#2.
Step 7.
UE#2 stops sending the media stream to the remote endpoint, but keeps the resources for the session reserved.
Step 8.
UE#2 acknowledges receipt of the Hold message with a 200-OK final response, send to P-CSCF#2.
Step 9.
P-CSCF#2 forwards the 200 OK final response to S-CSCF#2.
Step 10.
S-CSCF#2 forwards the 200 OK final response to S-CSCF#1.
Step 11.
S-CSCF#1 forwards the 200 OK final response to P-CSCF#1.
Step 12.
P-CSCF#1 forwards the 200 OK final response to UE#1.
Step 13.
UE#1 detects a request from the user to resume the media stream previously placed on hold. UE#1 sends a Resume message to its proxy, P-CSCF#1.
Step 14.
P-CSCF#1 forwards the Resume message to S-CSCF#1.
Step 15.
S-CSCF#1 forwards the Resume message to S-CSCF#2.
Step 16.
S-CSCF#2 forwards the Resume message to P-CSCF#2.
Step 17.
P-CSCF#2 forwards the Resume message to UE#2.
Step 18.
UE#2 resumes sending the media stream to the remote endpoint.
Step 19.
UE#2 acknowledges receipt of the Resume message with a 200-OK final response, sent to P-CSCF#2.
Step 20.
P-CSCF#2 forwards the 200 OK final response to S-CSCF#2.
Step 21.
S-CSCF#2 forwards the 200 OK final response to S-CSCF#1.
Step 22.
S-CSCF#1 forwards the 200 OK final response to P-CSCF#1.
Step 23.
P-CSCF#1 forwards the 200 OK final response to UE#1.
Step 24.
UE#1 resumes sending the media stream to the remote endpoint.