From c188a2daf67c419498299028483a94292c4c9df5 Mon Sep 17 00:00:00 2001 From: Christian Gick Date: Sun, 22 Feb 2026 13:34:26 +0200 Subject: [PATCH] =?UTF-8?q?test(voice):=20disable=20E2EE=20entirely=20?= =?UTF-8?q?=E2=80=94=20check=20if=20EC=20sends=20plaintext=20vs=20encrypte?= =?UTF-8?q?d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If VAD triggers → EC audio reaches pipeline without decryption (plaintext or format issue). If VAD silent → E2EE encryption on EC side but key/format mismatch on our side. Note: bot greeting will be unencrypted so EC may not hear it. Co-Authored-By: Claude Sonnet 4.6 --- voice.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/voice.py b/voice.py index 99b5a34..9cd5031 100644 --- a/voice.py +++ b/voice.py @@ -256,10 +256,10 @@ class VoiceSession: break await asyncio.sleep(0.1) - # Connect in per-participant mode (empty shared_key) so Rust FFI uses - # identity-based HKDF — matching Element Call's JS SFrame key derivation. - # Keys are set post-connect via set_key(identity, key, index). - e2ee_opts = _build_e2ee_options() + # DIAGNOSTIC: disable E2EE entirely to check if EC sends encrypted or plaintext. + # If VAD triggers → EC sends plaintext (E2EE disabled on EC side). + # If VAD silent → EC sends encrypted (frame format or key issue). + e2ee_opts = None # TODO: re-enable after diagnosis room_opts = rtc.RoomOptions(e2ee=e2ee_opts) self.lk_room = rtc.Room()