The following diagram shows how the Project Negotiation works and what MESSAGES get sent between the Host and the invitee.
The Project Negotiation starts with the Host sending a ProjectNegotiationOffering to the Client. This Message contains informations that the Client needs, for example which projects will be shared and the ID of the session.
The Invitation Management of the Client then informs the User Interface which opens a wizard, informing the Client about the Project Negotiation and asking him to chose a location for the projects that will be transmitted.
After the Client accepted the Project Negotiation he compares the List of files he got by the ProjectNegotiationOffering with his local files and sends a FileList containing all the files he is missing. The Host than sends a StartActivityQueuingRequest to signal the Client that he should start queuing incoming Activities. After starting queuing the Client acknowledges the queuing request.
The Host then determines which projects he has to send and compresses them into a zip-archive. While the projects get compressed the session is blocked for all users, to ensure that no file gets modified while being compressed. Afterwards the Host sends the archive containing all missing files back to the Client and the Client unpacks them. After the files have been added to the Clients workspace he informs his Session Management about the new files to be managed.