3.15.5 Message Processing Events and Sequencing Rules

For the expert, there are several messages that are sent or that can arrive during the entire process of requesting control (see section 2.2.2). When a message arrives, a string comparison can be used to determine the type of message that has arrived. The state machine shown in section 3.15 illustrates the expected sequence of messages; any messages that arrive out of sequence SHOULD be ignored by the receiving side. All messages sent and received in this portion of the Remote Assistance Protocol are sent on the virtual channel named 71.

To assume control of the novice's mouse and keyboard, the expert does the following:

  1. Send the message <RCCOMMAND NAME="REMOTECTRLSTART"/> for version 1 of Remote Assistance.

  2. Send the Change Participant Control Level PDU (as specified in [MS-RDPEMC] section 2.2.4.3) with REQUEST_INTERACT set in the Flags field for version 2 and version 3 of Remote Assistance.

When the novice receives this message, the Remote Assistance Protocol provides for three different responses:

  1. If the novice wants to allow the expert to have control of the screen, the response <RCCOMMAND NAME="ACCEPTRC"/> MUST be sent.

  2. If the novice does not want to allow the expert to control the screen, the novice MUST send the response <RCCOMMAND NAME="REJECTRC"/>.

  3. Optionally, if system settings on the novice do not permit share control, the novice MUST send the response <RCCOMMAND NAME="DENIEDRC "/>.

After share control has been established, the novice can stop share control at any time. If share control is stopped by the novice, the novice MUST send <RCCOMMAND NAME="TAKECONTROL"/>.

If the expert wants to end the control, the expert can send the message <RCCOMMAND NAME="REMOTECTRLEND"/> to the novice to signal that it no longer wants to control the novice screen. The novice MUST disable share control in response to the <RCCOMMAND NAME="REMOTECTRLEND"/> message.

If the novice has terminated share control, the expert receives the message <RCCOMMAND NAME="ESCRC"/>.

Following is an example of the expert requesting to share control, and the novice allowing it. After some indefinite time, the novice stops allowing control and signals this to the expert.

Remote control packet sequencing

Figure 15: Remote control packet sequencing