2545e47977ddea0b35b19759e10d48f9ab7df4e5
新增模块: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 选搜索结果)+ 队列持久化(可选)
Description
No description provided
Languages
Rust
89.9%
Shell
7.6%
Dockerfile
2.5%