Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Voice prototype for 3.1 #608

Merged
merged 14 commits into from
Feb 24, 2020
Merged

Voice prototype for 3.1 #608

merged 14 commits into from
Feb 24, 2020

Conversation

quanticc
Copy link
Member

@quanticc quanticc commented Jan 5, 2020

Currently toying with some changes to voice module in 3.1:

  • Create a voice gateway implementation that's more symmetric with normal gateway impl
  • Add resume and automatic reconnect capabilities
  • Move some classes to common module as they are used in gateway+voice.
  • Allow customizing the send and receive task factories, UdpClient and schedulers
  • Move the previous implementation under a FSM prefix
  • Expose VoiceSendTask and VoiceReceiveTask for customization

Attempting to cover the following tickets: #536 #523

As this PR only takes care of translating the current impl to a more malleable pattern, only some of the items in #427 are to be covered:

  • Implement reconnect and resume functionality for VoiceGatewayClient
  • Restructure to allow for custom voice clients
  • Add information to logger names to distinguish when multiple voice connections exist

Pending work (to be handled in separate PRs/commits to master)

  • Handle multiple attempts to join the same channel
  • Handle moving channels
  • Add docs to new classes
  • Example for standalone voice module usage
  • Polish loggers and levels

And beyond the scope of this PR:

  • Update migration wiki page
  • Provide support/feature parity to the FSM implementation
  • Provide mappings for ssrc -> user id for receive
  • Explore options for converting completely to netty's ByteBuf

Since we only push snapshots on release and maintenance branches, testing this is only possible through jitpack.

Create a more symmetric voice gateway implementation with resume and
automatic reconnect capabilities.

Move some classes to common module as they are used in gateway+voice.

Allow customizing the send and receive task factories, UdpClient and
schedulers.

Move the previous implementation under a FSM prefix.
@quanticc quanticc added enhancement Improvement over an existing feature area/gateway Related to the gateway module: websocket, reconnections, payload handling area/voice Related to the voice module labels Jan 5, 2020
@quanticc quanticc added this to the 3.1.0.M1 milestone Jan 5, 2020
@quanticc quanticc mentioned this pull request Jan 5, 2020
51 tasks
@quanticc quanticc merged commit 231e2e8 into master Feb 24, 2020
@quanticc quanticc deleted the prototype/voice-for-3.1 branch February 24, 2020 02:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/gateway Related to the gateway module: websocket, reconnections, payload handling area/voice Related to the voice module enhancement Improvement over an existing feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant