Matrix Music Bot Dev 2545e47977 feat(rtc_handler): MSC3401 call.member 状态事件观测(M6 Element Call 兼容)
新增模块:src/rtc_handler.rs

Element Call = MatrixRTC (MSC3401) 信令 + LiveKit WebRTC SFU 媒体。
本模块只观察信令层;媒体层 bot 不参与(v1 不实现)。

实现:
  - register(client):注册 SyncStateEvent<PossiblyRedactedCallMemberEventContent> handler
  - handle_call_member 闭包:处理 Original / Redacted 两种 state event
  - 记录 active_memberships() 数量到日志(通话成员变化)

事件类型路径:
  matrix_sdk::ruma::events::call::member::PossiblyRedactedCallMemberEventContent

event_loop 集成:
  - bootstrap::restore 后立即 rtc_handler::register(&client)
  - 不影响现有 chat handler(m.room.message handler 与 state event handler 并行)

E2EE 兼容性:
  - MSC3401 信令通过 state event 加密(Megolm 加密 room state events,MSC3401 已支持)
  - bot 在 call 进行中仍能正常收发 m.room.message(验证:sync 不被 state event 阻塞)
  - 注意:Element Call 媒体通道(WebRTC)是 DTLS-SRTP,**不**经 Megolm
    → bot 不参与通话音频;用户的聊天 + m.audio 投递仍完全 E2EE

测试:cargo test → 25 passed + 4 ignored(新增 rtc_handler 模块加载 smoke test)

后续 M7:reactions 选择(用户点击 emoji 选搜索结果)+ 队列持久化(可选)
2026-07-02 21:54:06 +08:00
S
Description
No description provided
361 KiB
Languages
Rust 89.9%
Shell 7.6%
Dockerfile 2.5%