# solon-sip-gb28181 **Repository Path**: Haitaow/solon-sip-gb28181 ## Basic Information - **Project Name**: solon-sip-gb28181 - **Description**: 基于 Solon 框架的 GB28181 SIP 服务器实现。目前只是简单的集成了SIP的设备的接入和集成媒体服务器等少部分功能。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 1 - **Created**: 2025-09-18 - **Last Updated**: 2025-09-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # solon-sip-gb28181 基于 Solon 框架的 GB28181 SIP 服务器实现。目前只是简单的集成了SIP的设备的接入和集成媒体服务器等少部分功能。 ## 项目简介 - 这是一个基于 Solon 框架开发的 GB28181 SIP 服务器示例项目。GB28181 是中国国家标准,定义了公共安全视频监控联网系统信息传输、交换、控制技术要求,广泛应用于视频监控设备的联网和控制。 本项目使用 JAIN SIP RI 实现 SIP 协议栈,提供 GB28181 设备接入、信令处理等功能。 - 项目部分代码参考开源项目wvp-GB28181-pro: https://gitee.com/pan648540858/wvp-GB28181-pro ## 功能特性 - GB28181 SIP 服务器基础功能 - 设备注册处理 - 媒体流控制(点播、播放等) - 支持 TCP/UDP 传输协议 - 集成媒体服务器接口(https://gitee.com/Haitaow/solon-media-server) ## 技术栈 - Solon - Java Web 开发框架 - JAIN SIP RI - SIP 协议参考实现 - Hutool - Java 工具库 - Lombok - Java 实体类工具库 ## 环境要求 - Java 8+ - Maven 3.x ## 快速开始 ### 1. 克隆项目 ```bash git clone <项目地址> cd solon-sip-gb28181 ``` ### 2. 配置参数 编辑 src/main/resources/app.yml 文件,根据实际环境修改配置: ```yaml # Web服务器端口 server.port: 8081 # SIP配置 sip: port: 8111 # SIP服务监听端口 domain: 4101050000 # SIP域 id: 41010500002000000001 # SIP服务器ID password: 12345678 # 设备认证密码 # 媒体服务配置 media: ip: 127.0.0.1 # 媒体服务器IP port: 25912 # 媒体服务器端口 rtp: "http://${media.ip}:${media.port}/media/api/openRtpServer" # rtp服务接口地址 ``` ### 3. 编译项目 ```bash mvn clean package ``` ### 4. 运行项目 ```bash java -jar target/solon-sip-gb28181.jar ``` 或者直接在 IDE 中运行 App.java。 ## 核心功能说明 ### SIP消息处理 项目通过实现 `SipListener` 接口监听 SIP 消息,并根据消息类型分发到对应的处理器: - RegisterMessageProcessor - 处理设备注册 - InviteMessageProcessor - 处理媒体邀请 - MessageProcessor - 处理 MESSAGE 消息 - ByeMessageProcessor - 处理媒体结束 - AckMessageProcessor - 处理确认消息 ### 设备管理 - 设备注册后会被存储在 SipProcessorContext.deviceMap 中,可以通过该 Map 管理已注册的设备。 - 具体的需求可以根据业务自己实现设备管理逻辑。 ### 媒体控制 通过 SipTest.java 中的测试方法演示了如何向设备发送点播指令,实际使用时可根据需要实现相关接口。 ## 测试 - 如果没有GB28181摄像头和相关设备,可以使用GB28181IPC模拟工具来测试 https://gitcode.com/open-source-toolkit/34b38/tree/main - 项目包含一个简单的测试类 SipTest.java,演示了如何与 GB28181 设备进行交互。 - 项目开启RTP服务使用solon-media-server: https://gitee.com/Haitaow/solon-media-server - 如果使用原生的ZLMediaKit: https://gitee.com/xia-chu/ZLMediaKit 修改成相应的接口