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.