1.3.3 Peer Voice Session Subprotocol
The peer voice session subprotocol specifies the communication between a voice server and voice clients and between individual voice clients when a peer voice session type is used. The peer voice session subprotocol requires that the underlying game session is running peer-to-peer. The peer voice session subprotocol is indicated when the SessionType field of the Connect Accept Message (section 2.2.3.2) is set to DVSESSIONTYPE_PEER (0x00000001).
The roles in this subprotocol are as follows:
The voice server is responsible for maintaining and distributing the list of voice clients in the voice session.
The voice clients are responsible for:
Sending speech messages directly to any voice clients that they want to send them to.
Receiving and processing speech messages from other voice clients and converting them back into an encoded voice stream. The voice client maintains a jitter buffer for each voice client in the voice client list.
Electing and creating a new voice server for voice sessions that enable host migration.
Note The voice clients maintain a list of voice clients.