Get desktop application:
View/edit binary Protocol Buffers messages
TERMINOLOGY: Conference: is an active video chat session on a media server. Notes: - This message contains the necessary information to connect to a media server - Its expected that there SHOULD only be a single conference for a particular conversation at any given time.
Used in:
This is assigned by the Round's VideoConferenceService It's comprised of 3 parts and is in the format of "A.B.C" Where A - app name (i.e. kik) B - 16 characters (base 64 encoded) acts as the underline ID C - 4 characters (base 64 encoded) acts as a checksum
TODO: Generalize this beyond just video
Used in:
, , ,Note that the ConvoVideoState does NOT include any information about the conference for a particular conversation. ConvoVideoState represents a snapshot of active users who are connected to the media server and users who are in the process of connecting to the media server. TODO: Ensure design covers the bounded time an user can be in CONNECTING state.
Used in:
, ,Convo video state is specific to a convo (ie: this is the primary key)
Note: - There MAY NOT be an entry for every person in the convo, this should just contain those users involved in the video part of the convo (ex: there WILL NOT be an entry here for every member of a group). - This is NOT guaranteed to reflect the latest group membership state (ex: there may be users who are no longer in a group chat which still appear in this list). TODO: document expected handling - Each user will appear only once in this list.
This is crucial information needed to handle the ordering of state change events on the receiving end. Please note, due to Rounds internal implementation needs, this timestamp is not always the clock time of the event, it is however sequential in the order of actual events. Controlling this timestamp should only be done at source (Rounds state tracking). DO NOT compare this timestamp to any other system time to determine sequential ordering of events.
Used in:
Used in:
This should never be used and exists to detect cases where the producer of this message has not set the state.
A user is in CONNECTING state when he/she has requested to join the conference (and the server has accepted the request) however, the client is not yet connected to the media server There is a bounded amount of time clients should be in this CONNECTING state. Note that the _typical_ flow is that users will first be in this connecting state then move to the connected state, but no component of the system should rely on receiving each of these incremental updates.
This indicate that the client has an active connection to the media server.
This token should be passed to the media server when the client connects to it. It MAY be used to identify the connecting client but MUST NOT be interpreted by the client.
Used in:
,Clients MUST NOT interpret this message.
TODO: Generalize this beyond just video
Used in:
MUST be ordered