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 document does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this document.

Audio format list: The client and server maintain a list of audio formats that were agreed on during the initialization sequence throughout the duration of the protocol. The NewFormat field of the Format Change PDU and the InitialFormat field of the Open PDU are indices into this list. The index to the audio format list is zero-based, where the value zero refers to the first format in the list.

Current audio format: The client and server maintain the current audio formats. This is the format in which audio data MUST be encoded when transmitted from the client to the server. The NewFormat field of the Format Change PDU or the InitialFormat field of the Open PDU indicates the current audio format.

Audio capture device state: The audio capture device has two states: opened and not opened. Initially the state is not opened. The server sends an Open PDU to ask the client to open the audio capture device. The client sends an Open Reply PDU to tell the server the result of opening the capture device. If the capture device is opened successfully, the audio input device state becomes opened.

Audio data ready: The client sends an Incoming Data PDU to tell the server that it is ready to send data. The server maintains the audio data ready state to prepare to receive a Data PDU.

Protocol version: The client and server store the protocol version negotiated during the initialization sequence.