Data structures and methods to control a conferencing SFU

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)
Base Methods:
3500 asnRequestAuthToken - Get an authentication token to connect to a janus node.js instance
3501 asnJoinConference - Join a conference as publisher or just member (not neccessariliy already existing) (The conference is preallocated on the platform)
3502 asnLeaveConference - Leave a conference
3503 asnConferenceKeepAlive - Keepalive for the conference session
3504 asnConfigurePublishing - Configure a leg in the conference session (publishing or not, mute etc.). A user is always allowed to configure his session whereas a moderator is allowed to configure any session)
3505 asnSubscribeMedia - Subscribe to a specific media stream in a conference room
3506 asnUnsubscribeMedia - Unscubscribe from a specific media stream in a conference room
3507 asnConfigureMedia - Modify a specific media stream in a conference room
3508 asnRemoveParty - Remove a party from a conference
Utility Methods:
3520 asnGetPartyList - Retrieve the current party list in the conference
3521 asnGetImage - Retrieves an image based on an id (conference party picture, room picture, etc.)
Scheduling methods (Called meeting to differentiate between the conference controlling and scheduling methods)
3530 asnScheduleMeeting - Schedule a meeting / conference (optionally notifies attendees)
3531 asnUpdateMeeting - Updates a scheduled meeting / conference (optionally notifies attendees)
3532 asnCancelMeeting - Cancels a scheduled meeting / conference (optionally notifies attendees)
3533 asnListScheduledMeetings - Get the list of scheduled meetings / conferences
3560 asnSDPOffer - Offering SDP for a media subscription to the other side
3561 asnSDPAnswer - Answering to an SDP offer for a media subscription
3562 asnTrickleIce - Send an Ice candiate
3563 asnGatheringIceCompleted - Gathering ice candidates completed
3564 asnPartyAdded - A party was added to the conference
3565 asnPartyRemoved - A party was removed from the conference
3566 asnPartyTalking - List of parties which are currently talking
3567 asnPartyChanged - A property of a party has changed (muted, unmuted, sharing screen, sharing video, name other properties etc)
room id Each conference is located in a virtual room. The room is logical instance where all conference members are "sitting "in.
party id Each member in the conference is identified by a party id. The party id is provided by the backend to identity each user.
conference id A preallocated (scheduled) conference is identified by a conference id. The conference id is basically the same as the room id. The room is existing if the first party attends the conference where the conference id is existing without neccessariliy having the room existing.
subscription id An id that identifies a media subscription from a publisher
token A token provided by a third party (UC-Connect) to authorize a moderator as participant within a conference
sessiontoken A token which is provided to every party in a conference to authorize further function calls
contact details are optional but not the display name which always has to be filled. To preallocate a conference and notify the members at least a mail address hast to be filled.

Version 6.4