3.1.1 Abstract Data Model
This section describes a conceptual model of possible data organization that an implementation maintains to participate in this protocol. The described organization is provided to facilitate the explanation of how the protocol behaves. This specification does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this specification.
The following are abstract data items maintained by voice clients:
Voice Client List: When the voice client is operating with the Peer Voice Session Subprotocol (section 1.3.3) it maintains a list of other voice clients in the voice session. The Voice Client List contains the DVID and host order ID of each voice client in the voice session. Voice clients are added and removed from the list in response to messages from the voice server during connection and throughout the lifetime of the voice session.
-
When the voice client is operating with the Forwarding Voice Session Subprotocol (section 1.3.5) it maintains a list of other voice clients in the voice session. The Voice Client List contains the DVID of each voice client in the voice session. Voice clients are added to the list in response to a Speech with From Message (section 2.2.5.1) where the value of the SourceDVID field specifies a DVID that is not in the Voice Client List. Voice clients are removed from the Voice Client List when the voice session ends.
Current Host Order ID: When host migration is enabled as described in section 1.3.3.1, the voice client stores the current value of its host order ID.
Current Voice Server DVID: The DVID of the current voice server. If a host migration occurs, this value can change.
Current Voice Target List: The voice client maintains a voice target list. This list is used to target speech messages sent from the voice client. If the voice target list is empty, then speech messages are discarded rather than sent.
Jitter Buffers: When the voice client is using the Peer Voice Session Subprotocol (section 1.3.3) or the Forwarding Voice Session Subprotocol (section 1.3.5) it maintains a jitter buffer for each voice client in the Voice Client List. When the voice client is using any of the other voice session subprotocols, the voice client maintains a single Jitter Buffer for incoming speech messages from the voice server.
Current Message Number: The message number of the current voice burst. When a new voice burst is started, this value is incremented by one.
Current Sequence Number: The sequence number of the next speech message being sent within the current voice burst. When a new voice burst is started, this value is reset to 0.