1.3.4 Mixing Voice Session Subprotocol
The mixing voice session subprotocol specifies the communication between a voice server and voice clients when a mixing game session type is used. The mixing voice session subprotocol requires a game session that provides connectivity between the voice server and the voice clients. Connectivity between individual voice clients is not required. The mixing voice session subprotocol is indicated when the SessionType field of the Connect Accept Message (section 2.2.3.2) is set to DVSESSIONTYPE_MIXING (0x00000002).
The roles in this subprotocol are as follows:
The voice server is responsible for the following:
Maintaining the list of voice clients in the voice session.
Receiving speech messages from each of the voice clients and distributing them to each of the voice clients for which they are intended. The voice server distributes the speech messages in a single encoded voice stream to each voice client by mixing together all speech messages intended for each individual voice client. The voice server maintains a jitter buffer for each voice client in the voice client list.
The voice clients are responsible for the following:
Sending voice data and the targets of the data to the voice server.
Receiving and processing speech messages from the voice server and converting them back into an encoded voice stream. The voice client maintains a single jitter buffer for incoming speech messages from the voice server.
Note The voice clients do not maintain a list of voice clients.