挂载 AudioBridge 插件(attach)

验证状态:已源码核验、未联调;适用基线:源码归纳 @ 2026-09-14

用途与场景

在已创建的 Janus 会话上挂载 AudioBridge 插件句柄(handle),是 join 前的必要步骤。本页是 mqtt-janus-audiobridge-attach 的唯一操作正本。通道、transaction、中心转发的公共口径见 会话生命周期正本,本页只列差异。

使用位置

页面/功能 角色或空间分支
对讲房间 Janus 客户端在 attaching 阶段发布 attach(plugin="janus.plugin.audiobridge" 登录用户;会话已创建

端点

MQTT 发布 server/center-server/ptt/v1/forward/janus/to(回包按 transaction 首段 reply topic 回流)— 在已创建会话上挂载 AudioBridge 插件句柄(janus 动词 attach)。

通道契约全量事实(直通白名单、消费方、转发与回包路由)见 MQTT 主题清单 · 静态 topic动态下行(物理桥与 transaction 回包路由);字段级契约见 yaml 详解 · ptt forward-janus-to;janus 转发链的业务语义见设备业务 · mqtt-bridge 设备消息链

请求报文 {janus:"attach", plugin:"janus.plugin.audiobridge", opaque_id:"talkgroup-{talkGroupId}", session_id}

动线与完成判据

  • 8 秒阶段 deadline(Attach AudioBridge timed out)。
  • 成功即进入 joining 阶段(state.phase="joining")。
  • 失败处置按 join 正本 的错误分类表(核心 460 plugin not found 等为不可重试)。

错误与边界

  • 会话未创建(本地)、插件不存在/未授权(Janus)、超时(中心或 Janus 无回执)。
  • ack 不是 attach 的成功判据;Web 继续等 success
  • 中心直通丢弃仍无回执,只能等 8 秒超时。

调用关系与资源清理

  • 时序:createattachjoin
  • handle 生命周期随会话终止(detached 事件/destroy);Web 不单独 detach。

已知缺口

Janus 服务器行为(attach 对同一会话多次挂载、插件加载失败形态)源码不在本工作区;未联调。