The following diagram shows how the Session Negotiation works and which MESSAGES are sent between the Host and the invitee.
The Session Negotiation is started, when the Host invites a user to a session. The User Interface registers this action and starts the Negotiation Process. The Invitation Management of the Host first asks the Client if he has a Saros-instance running and if his version is compatible with the version of the Host. Afterwards he sends an invitationOffering to the Client.
All MESSAGES are send and received by the Network Layer which communicates with the Invitation Management. The Invitation Management informs the User Interface which then opens a wizard, informing the Client about the invitation. At the same time an acknowledgment is sent back to the Host informing him, that the Client has received the invitation.
Once the Client accepted the invitation he first sends an invitationAccepted and afterwards tells the host which session parameters he would prefer. These parameters includes for example the desired color.
The Host evaluates this preferences and sends the actual session parameters back to the Client. With these session parameters the Client then creates a new session and sends the Host a final acknowledgment, to which the Host informs his Session Management that a new user has joined the session.