# gbsip **Repository Path**: outoftime/gbsip ## Basic Information - **Project Name**: gbsip - **Description**: GB28181 协议库 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-07-10 - **Last Updated**: 2026-07-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GB28181 SIP 协议栈库 (gbsip) 部分逻辑未完成,近期忙着找工作,暂时停止更新 ## 项目简介 gbsip 是一个基于 GB/T 28181 标准的 SIP(Session Initiation Protocol)协议栈库,用于公共安全视频监控联网系统。该库实现了视频监控领域的信令控制功能,支持设备注册、实时视频点播、云台控制、录像回放、报警订阅等核心业务。 ## 特性 - **完整的 SIP 协议栈**:基于 libsip 实现,支持 SIP 核心协议及扩展 - **GB/T 28181 兼容**:符合国家标准《GB/T 28181-2016 公共安全视频监控联网系统信息传输、交换、控制技术要求》 - **GB 35114 支持**:支持《GB 35114-2017 公共安全视频监控联网信息安全技术要求》中的安全认证功能 - **多种传输协议**:支持 UDP、TCP 等传输方式 - **用户/客户端模式**:支持 UAC(User Agent Client)和 UAS(User Agent Server)两种模式 - **事件订阅**:支持 SUBSCRIBE/NOTIFY 模式的事件订阅 - **会话管理**:支持 INVITE 会话管理,包括呼叫、响应、挂断等 - **Digest 认证**:支持 HTTP Digest 认证机制 ## 目录结构 ``` ├── 3rdpart/libsip/ # SIP 协议栈底层库 │ ├── include/ # SIP 头文件 │ ├── libsdk/ # 基础工具库 │ ├── src/ # SIP 协议栈实现 │ │ ├── header/ # SIP 头部解析 │ │ ├── uac/ # UAC 实现 │ │ └── uas/ # UAS 实现 │ └── test/ # 协议栈测试 ├── include/gbsip/ # gbsip 头文件 │ ├── common/ # 公共工具 │ ├── request/ # 请求处理 │ ├── server/ # 服务器组件 │ └── types/ # 类型定义 ├── src/ # gbsip 实现 │ ├── common/ # 公共实现 │ ├── server/ # 服务器实现 │ ├── sip/ # SIP 核心实现 │ └── transport/ # 传输层实现 ├── tests/ # 单元测试 └── docs/ # 文档 ├── GB35114-2017.md # GB 35114 标准参考 └── libsip/ # libsip API 文档 ``` ## 核心组件 ### 类型定义 (`include/gbsip/types/`) - `gb_28181_types.h` - GB28181 消息类型定义(设备信息、目录、报警、控制等) - `config.h` - 配置结构体(本地配置、账户配置) - `sdp.h` - SDP 会话描述协议 - `sip_constants.h` - SIP 常量定义 - `mansrtsp_types.h` - 媒体会话控制协议类型 ### 请求处理 (`include/gbsip/request/`) - `invite_session.h` - INVITE 会话管理 - `subscribe_session.h` - 订阅会话管理 - `inbound_dispatcher.h` - 入站消息分发 - `message_request.h` - 消息请求框架 - `single_reply_request.h` / `multi_reply_request.h` - 单/多响应请求 ### 服务器组件 (`include/gbsip/server/`) - `sip_server.h` - SIP 服务器 - `sip_uac.h` - UAC 客户端 - `sip_uas.h` - UAS 服务端 ## 依赖 - libsip - SIP 协议栈 - OpenSSL - 加密认证 - tinyxml2 - XML 解析 - c++20 编译器 ## 构建 项目使用 CMake 构建系统: ```bash mkdir build && cd build cmake .. make ``` ## 使用示例 ### 创建 SIP 服务器 ```cpp #include "gbsip/gbsip.h" #include "gbsip/server/sip_server.h" gbsip::local_config_t config; config.local_ip = "192.168.1.100"; config.local_port = 5060; config.with_ssl = false; auto server = gbsip::SipServer::new_server(config); server->run(); ``` ### 发起 INVITE 呼叫 ```cpp auto uac = server->new_sip_uac(account); auto invite = uac->invite(offer, device_id, config); ``` ## 文档 更多 API 详细说明请参阅 `docs/` 目录下的文档: - `docs/libsip/libsip-README.md` - libsip 概述 - `docs/libsip/libsip-api-agent.md` - Agent API - `docs/libsip/libsip-api-dialog-subscribe.md` - 对话与订阅 API - `docs/libsip/libsip-api-message.md` - 消息 API - `docs/libsip/libsip-api-uac.md` - UAC API - `docs/libsip/libsip-api-uas.md` - UAS API ## 参考标准 - GB/T 28181-2016 公共安全视频监控联网系统信息传输、交换、控制技术要求 - GB 35114-2017 公共安全视频监控联网信息安全技术要求 - RFC 3261 - SIP: Session Initiation Protocol - RFC 6665 - SIP-Specific Event Notification ## 许可证 本项目相关代码遵循其各自的开源许可证。