diff --git a/src/Discord.Net.WebSocket/Audio/AudioClient.cs b/src/Discord.Net.WebSocket/Audio/AudioClient.cs index 6b44a1be..61d1a0f0 100644 --- a/src/Discord.Net.WebSocket/Audio/AudioClient.cs +++ b/src/Discord.Net.WebSocket/Audio/AudioClient.cs @@ -306,7 +306,7 @@ namespace Discord.Audio { if (_connection.State == ConnectionState.Connecting) { - if (packet.Length != 70) + if (packet.Length != 74) { await _audioLogger.DebugAsync("Malformed Packet").ConfigureAwait(false); return; @@ -315,8 +315,8 @@ namespace Discord.Audio int port; try { - ip = Encoding.UTF8.GetString(packet, 4, 70 - 6).TrimEnd('\0'); - port = (packet[69] << 8) | packet[68]; + ip = Encoding.UTF8.GetString(packet, 8, 74 - 10).TrimEnd('\0'); + port = (packet[73] << 8) | packet[72]; } catch (Exception ex) { diff --git a/src/Discord.Net.WebSocket/DiscordVoiceApiClient.cs b/src/Discord.Net.WebSocket/DiscordVoiceApiClient.cs index 62d95402..027822ea 100644 --- a/src/Discord.Net.WebSocket/DiscordVoiceApiClient.cs +++ b/src/Discord.Net.WebSocket/DiscordVoiceApiClient.cs @@ -228,12 +228,14 @@ namespace Discord.Audio #region Udp public async Task SendDiscoveryAsync(uint ssrc) { - var packet = new byte[70]; - packet[0] = (byte)(ssrc >> 24); - packet[1] = (byte)(ssrc >> 16); - packet[2] = (byte)(ssrc >> 8); - packet[3] = (byte)(ssrc >> 0); - await SendAsync(packet, 0, 70).ConfigureAwait(false); + var packet = new byte[74]; + packet[1] = 1; + packet[3] = 70; + packet[4] = (byte)(ssrc >> 24); + packet[5] = (byte)(ssrc >> 16); + packet[6] = (byte)(ssrc >> 8); + packet[7] = (byte)(ssrc >> 0); + await SendAsync(packet, 0, 74).ConfigureAwait(false); await _sentDiscoveryEvent.InvokeAsync().ConfigureAwait(false); } public async Task SendKeepaliveAsync()