DiscordPHP-Voice Documentation

HandlesDaveOpcodes

The thin VOICE_DAVE_* opcode proxies of {@see \Discord\Voice\Gateway\WS}.

Every method here just forwards to GatewayCoordinator, where the real MLS/transition logic lives. They exist so the WS WS::VOICE_OP_HANDLERS dispatch table and the reflection-based DAVE test surface stay stable.

Tags
since
10.20.0

Table of Contents

Methods

handleDaveExecuteTransition()  : void
Routes the VOICE_DAVE_EXECUTE_TRANSITION opcode to the {@see \Discord\Voice\Dave\GatewayCoordinator::handleDaveExecuteTransition()}.
handleDaveMlsAnnounceCommitTransition()  : void
Routes the VOICE_DAVE_MLS_ANNOUNCE_COMMIT_TRANSITION opcode to the {@see \Discord\Voice\Dave\GatewayCoordinator::handleDaveMlsAnnounceCommitTransition()}.
handleDaveMlsCommitWelcome()  : void
Routes the VOICE_DAVE_MLS_COMMIT_WELCOME opcode to the {@see \Discord\Voice\Dave\GatewayCoordinator::handleDaveMlsCommitWelcome()}.
handleDaveMlsExternalSender()  : void
Routes the VOICE_DAVE_MLS_EXTERNAL_SENDER_PACKAGE opcode to the {@see \Discord\Voice\Dave\GatewayCoordinator::handleDaveMlsExternalSender()}.
handleDaveMlsInvalidCommitWelcome()  : void
Routes the VOICE_DAVE_MLS_INVALID_COMMIT_WELCOME opcode to the {@see \Discord\Voice\Dave\GatewayCoordinator::handleDaveMlsInvalidCommitWelcome()}.
handleDaveMlsKeyPackage()  : void
Handle an inbound opcode 26 (VOICE_DAVE_MLS_KEY_PACKAGE) frame from the gateway.
handleDaveMlsProposals()  : void
Routes the VOICE_DAVE_MLS_PROPOSALS opcode to the {@see \Discord\Voice\Dave\GatewayCoordinator::handleDaveMlsProposals()}.
handleDaveMlsWelcome()  : void
Routes the VOICE_DAVE_MLS_WELCOME opcode to the {@see \Discord\Voice\Dave\GatewayCoordinator::handleDaveMlsWelcome()}.
handleDavePrepareEpoch()  : void
Routes the VOICE_DAVE_PREPARE_EPOCH opcode to the {@see \Discord\Voice\Dave\GatewayCoordinator::handleDavePrepareEpoch()}.
handleDavePrepareTransition()  : void
Routes the VOICE_DAVE_PREPARE_TRANSITION opcode to the {@see \Discord\Voice\Dave\GatewayCoordinator::handleDavePrepareTransition()}.
handleDaveTransitionReady()  : void
Routes the VOICE_DAVE_TRANSITION_READY opcode to the {@see \Discord\Voice\Dave\GatewayCoordinator::handleDaveTransitionReady()}.

Methods

handleDaveExecuteTransition()

Routes the VOICE_DAVE_EXECUTE_TRANSITION opcode to the {@see \Discord\Voice\Dave\GatewayCoordinator::handleDaveExecuteTransition()}.

protected handleDaveExecuteTransition(Payload $data) : void
Parameters
$data : Payload

handleDaveMlsAnnounceCommitTransition()

Routes the VOICE_DAVE_MLS_ANNOUNCE_COMMIT_TRANSITION opcode to the {@see \Discord\Voice\Dave\GatewayCoordinator::handleDaveMlsAnnounceCommitTransition()}.

protected handleDaveMlsAnnounceCommitTransition(Payload $data) : void
Parameters
$data : Payload

handleDaveMlsCommitWelcome()

Routes the VOICE_DAVE_MLS_COMMIT_WELCOME opcode to the {@see \Discord\Voice\Dave\GatewayCoordinator::handleDaveMlsCommitWelcome()}.

protected handleDaveMlsCommitWelcome(Payload $data) : void
Parameters
$data : Payload

handleDaveMlsExternalSender()

Routes the VOICE_DAVE_MLS_EXTERNAL_SENDER_PACKAGE opcode to the {@see \Discord\Voice\Dave\GatewayCoordinator::handleDaveMlsExternalSender()}.

protected handleDaveMlsExternalSender(Payload $data) : void
Parameters
$data : Payload

handleDaveMlsInvalidCommitWelcome()

Routes the VOICE_DAVE_MLS_INVALID_COMMIT_WELCOME opcode to the {@see \Discord\Voice\Dave\GatewayCoordinator::handleDaveMlsInvalidCommitWelcome()}.

protected handleDaveMlsInvalidCommitWelcome(Payload $data) : void
Parameters
$data : Payload

handleDaveMlsKeyPackage()

Handle an inbound opcode 26 (VOICE_DAVE_MLS_KEY_PACKAGE) frame from the gateway.

protected handleDaveMlsKeyPackage(mixed $data) : void

Opcode 26 is primarily client→server: we send our own key package to the gateway via sendDaveKeyPackage() during the DAVE epoch-1 setup. The gateway may also forward a remote member's key package back to us as an informational notice — that is what this handler receives.

The gateway (server) is responsible for aggregating all key packages and driving the subsequent proposal/commit flow. We passively receive the forwarded package; no action is required on the client side.

Per the Discord DAVE spec: "Key packages are only used one time" — each time we need to join or rejoin a session we generate and send a fresh key package.

Parameters
$data : mixed

handleDaveMlsProposals()

Routes the VOICE_DAVE_MLS_PROPOSALS opcode to the {@see \Discord\Voice\Dave\GatewayCoordinator::handleDaveMlsProposals()}.

protected handleDaveMlsProposals(Payload $data) : void
Parameters
$data : Payload

handleDaveMlsWelcome()

Routes the VOICE_DAVE_MLS_WELCOME opcode to the {@see \Discord\Voice\Dave\GatewayCoordinator::handleDaveMlsWelcome()}.

protected handleDaveMlsWelcome(Payload $data) : void
Parameters
$data : Payload

handleDavePrepareEpoch()

Routes the VOICE_DAVE_PREPARE_EPOCH opcode to the {@see \Discord\Voice\Dave\GatewayCoordinator::handleDavePrepareEpoch()}.

protected handleDavePrepareEpoch(Payload $data) : void
Parameters
$data : Payload

handleDavePrepareTransition()

Routes the VOICE_DAVE_PREPARE_TRANSITION opcode to the {@see \Discord\Voice\Dave\GatewayCoordinator::handleDavePrepareTransition()}.

protected handleDavePrepareTransition(Payload $data) : void
Parameters
$data : Payload

handleDaveTransitionReady()

Routes the VOICE_DAVE_TRANSITION_READY opcode to the {@see \Discord\Voice\Dave\GatewayCoordinator::handleDaveTransitionReady()}.

protected handleDaveTransitionReady(Payload $data) : void
Parameters
$data : Payload
On this page

Search results