Skip to content
📝全文字数: 0 字
·
⏱️预计阅读: 1 分钟
·
🏷️企业级 AIoT 架构核心规约

📡 GB/T 28181 信令交互全链路 ​

MzMedia 基于 JAIN-SIP (NIST) 协议栈实现国标 SIP 信令服务端,支持 UDP 与 TCP 双栈传输。


1. 注册与 Digest 摘要鉴权 ​

text
 摄像机 / NVR (Client)                           MzMedia SIP Server (5060)
         │                                                  │
         │─────── 1. REGISTER (无认证信息) ─────────────────>│
         │                                                  │
         │<────── 2. 401 Unauthorized (携带随机 nonce) ─────│
         │                                                  │
         │─────── 3. REGISTER (携带 MD5 摘要 Response) ─────>│
         │                                                  │
         │<────── 4. 200 OK (鉴权通过,刷新 Redis 会话) ─────│
  • 国标 ID 编码规范:国标统一采用 20 位十进制数字编码,前 10 位为行政区划与行业代码,第 11-13 位代表设备类型:
    • 132:网络摄像机 (IPC)
    • 131:报警通道
    • 200:网络视频服务器 (NVR/DVR)
  • 密码鉴权:系统使用 MD5 对 username:domain:password 以及 nonce 进行加盐摘要校验。

2. 实时点播 (Invite) 与流媒体转发全链路 ​

当 Web 客户端通过 Jessibuca 发起实时视频播放时,信令与媒体流的完整协作拓扑如下:

text
 前端播放器            MzMedia 后端           ZLMediaKit          IPC 摄像机
     │                     │                     │                    │
     │── 1. 发起点播 ──────>│                     │                    │
     │                     │── 2. 申请 RTP 端口 ─>│                    │
     │                     │<─ 3. 返回端口/SSRC ──│                    │
     │                     │                                          │
     │                     │─────── 4. SIP INVITE (带 SDP) ──────────>│
     │                     │<────── 5. 200 OK (带设备 SDP) ───────────│
     │                     │─────── 6. ACK ──────────────────────────>│
     │                     │                                          │
     │                     │                     │<── 7. 推送 RTP 流 ─│
     │<── 8. WebRTC/FLV ───│─────────────────────│                    │
  1. 信令准备:后端向 ZLMediaKit 发起 REST Hook,动态开放单个 RTP 接收端口(如 30000)并生成专属 SSRC;
  2. SDP 媒体协商:向摄像机发送 INVITE,携带 ZLMediaKit 的接收 IP、端口与媒体编码要求;
  3. 推流与转封装:设备向该端口发送封装有 PS (Program Stream) 的 RTP 包,ZLMediaKit 实时解复用并转换为 WebRTC、WS-FLV、HLS 格式输出。

3. 心跳保活 (Keepalive) ​

  • 摄像机根据配置的周期(默认 30~60 秒)发送 SIP MESSAGE 请求:
    xml
    <?xml version="1.0" encoding="GB2312"?>
    <Notify>
        <CmdType>Keepalive</CmdType>
        <SN>12345</SN>
        <DeviceID>34020000001320000001</DeviceID>
        <Status>OK</Status>
    </Notify>
  • 服务端解析后刷新 wvp_device 中的 keepalive_time 并回送 200 OK;超时未收到心跳将被标记为离线。

4. 设备通道目录检索 (Catalog) ​

  • 平台主动下发 Catalog 查询,支持大通道设备(如 64 路 NVR)分包拉取;
  • 接收到设备响应后,自动更新 wvp_device_channel 物理通道与逻辑子通道拓扑。
💬

开发者互动与技术支持

遇到部署、配置或协议对接问题?欢迎通过以下渠道与官方核心团队及社区开发者交流。

🐧
官方 QQ 交流群
技术讨论 · 在线答疑
扫码加入
💬
技术团队企业微信
架构咨询 · 商业授权
添加客服
📢
官方微信公众号
版本发布 · 深度技术干货
关注公众号
🐙
GitHub Issues
Bug 报告 · 功能建议 PR
🦊
Gitee 缺陷与反馈
国内镜像 · 极速工单响应
🗨️ 页面即时评论 (GitHub Discussions)已启用

基于 GNU AGPL-3.0 协议开源