Data structures and methods to transport and notify client capabilities between clients and the server
Each client has certain capabilities he is able to handle. They are used to tell other clients the kind of interactions each client is able to process.
If a client wants to start an audio call to another client both clients have to be able to process audio (speakers and microphone present).
As soon as a client is capable to handle audio it tells the server and thus other clients that the client is now ready to process audio requests.
Beside well known capabilities clients may exchange customs capabilities. (e.g. client is capable for some sort of sharing and the appropriate sharing resource id)
Event the server will send if client capabilites have changed