流程状态:整合票 20 依据已核验正本合并的流程结构,未联调;房间详情读取端点缺清单归属、Janus 媒体面与设备 PTT 执行缺证,各步骤以其链接的正本页为准。

对讲群组与房间

串起从建群到进入 AudioBridge 房间讲话的主路径:群组管理(HTTP)→ 房间准备(异步联动)→ ICE 与 Janus 会话 → join/configure 直到媒体可用 → 离开清理。

前置条件

  • 已完成登录与切换空间并建立 MQTT 会话。
  • 已有可用的 talkGroupId、房间 PIN(建群时设置)与目标 Janus 节点(janusNo,缺省由服务端填 janus-1)。

主路径

  1. 建群(含成员绑定)新建对讲群组(同事务写群组与记录仪绑定);编辑/删除见同目录 updateremove-by-ids 正本。保存成功只表示落库;房间创建与设备 PTT 配置刷新由后端内部消息链异步联动。
  2. 房间数据读取:群组详情读取端点 getByTalkGroupId 有当前 Web 调用但不在已确认清单、未发布正本(见未发布正本与保留项的缺口统计与票 12 交接);App 在补票前不得假设其契约。绑定关系的分页/单设备查询用已发布正本:按群组分页查询绑定按设备查询/更新绑定
  3. 房间与配置准备ensureRoompushPttConfig 为异步受理语义(HTTP true = 发布受理);房间未建时由中心 5 分钟周期补偿收敛(正本「完成判据」)。
  4. ICE 服务器list-ice-server(对讲正本)(监看域同 topic 调用链接本正本)。
  5. Janus 会话会话创建/keepalive/销毁合页(transaction 格式、中心转发、回包路由的家族公共口径锚点)→ attach AudioBridge
  6. 加入房间join(房间号即 talkGroupId,携 PIN,display=MQTT clientId)获得成员快照;随后 configure 开关媒体,trickle 候选见 trickle 正本
  7. 房间事件与成员参与者变化等主动事件合页listparticipants
  8. 设备侧进出房:记录仪经 device ptt deliver 接收 join/kick;该正本标「存在关键缺口」(设备固件执行缺证)。

失败与恢复

  • 三层完成状态:HTTP/发布成功、Janus action 成功、媒体可用分别判定(join 与 pushPttConfig 正本的完成判据); 房间已存在的幂等口径见 join 正本。
  • 已加入者异常掉线由房间状态机/补偿收敛;App 端断线后必须重建 Janus 会话/handle 并重新 join(clean=true 无服务端恢复)。
  • pushPttConfig 受理后设备是否实际刷新配置取决于设备固件(缺口);重复推送的幂等性见正本。
  • 绑定变更后设备配置刷新时机经内部消息通道,消费端未核验(票 12 namedGap)。

收尾

  • 离开房间发送 leave;停止本地媒体轨道、取消事件监听;是否 detach/destroy 由会话正本的家族口径决定(Web 行为,App 复用与否需自行评估)。
  • 超时不能默认房间/会话资源已释放;Janus 服务器侧超时与媒体面指标缺证(见未发布正本与保留项缺口统计)。