# 基于JAVA的SIP协议实现[part1]
最近用JAVA的SIP协议写了一个GB28181平台的对接,并成功完成了海康、大华、中威等设备,更重要的是海康平台、公安一所平台的对接。因为行业内很少有JAVA方面的设备接入实现,希望本篇能够让JAVA在安防接入生态中发挥越来越大的作用。
# 一、组件
<!-- SPI协议相关的包 -->
<dependency>
<groupId>javax.sip</groupId>
<artifactId>jain-sip-api</artifactId>
<version>1.2.1.4</version>
</dependency>
<dependency>
<groupId>javax.sip</groupId>
<artifactId>jain-sip-ri</artifactId>
<version>1.2.1.4</version>
</dependency>
# 二、SIP监听类接口:javax.sip.SipListener
public interface SipListener extends EventListener {
* SIP服务端接收消息的方法
void processRequest(RequestEvent var1);
* SIP服务端接收返回的回调方法
void processResponse(ResponseEvent var1);
* 处理超时回调方法
void processTimeout(TimeoutEvent var1);
* 处理IO异常的回调方法
void processIOException(IOExceptionEvent var1);
void processTransactionTerminated(TransactionTerminatedEvent var1);
void processDialogTerminated(DialogTerminatedEvent var1);
# 三、编写SIP监听实现类,并集成到springboot项目
* @Author 授人以鳗鱼
* @Date 9/25/2019
@Slf4j
@Configuration
public class SipSrymyConfig {
@Value("${gb28181.deviceId}")
String deviceId;
@Value("${gb28181.ip}")
String ip;
@Value("${gb28181.port}")
Integer port;
@Bean
public SipServerLayer sipLayer(SipSrymyMessageProcessor messageProcessor) {
try {
SipServerLayer sipServerLayer = new SipServerLayer(ip, port);
sipServerLayer.setMessageProcessor(messageProcessor);
log.info("SIP服务启动完毕, 已经在[{}:{}]端口监听SIP国标消息", ip, port);
return sipServerLayer;
} catch (PeerUnavailableException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
return null;
# 四、服务启动后,你可以用设备注册到这边,并抓包看看,你会发现SIP服务已经启动,整个网络已经联通,下一步我们需要把注册实现,[GB28181:基于JAVA的注册实现](https://www.jianshu.com/p/4b0963989bc3)
#五、有兴趣加群一起交流
扣 群 号:
5_4_1_4_1_0_1_3_2![基于JAVA的国标28181群二维码.png]
# 六、源码csdn下载[GB28181:基于JAVA的注册实现](https://www.jianshu.com/p/4b0963989bc3)
[给个star吧https://gitee.com/yuntian_admin/srymy](https://gitee.com/yuntian_admin/srymy)
最近用
JAVA
的
SIP
协议写了一个
GB28181
平台的对接,并成功完成了海康、大华、中威等设备,更重要的是海康平台、公安一所平台的对接。因为行业内很少有
JAVA
方面的设备接入
实现
,希望本篇能够让
JAVA
在安防接入生态中发挥越来越大的作用。
详细了解,请查看https://www.jianshu.com/p/4438711f6f3e
GB28181
定义了了 基于
SIP
架构的 视频监控互联规范,而对于多数私有协议
实现
的监控系统如果想接入
SIP
架构,就要借助网关,
GB28181
规范了
实现
SIP
监控域与非
SIP
监控域互联。最近用
JAVA
的
SIP
协议写了一个
GB28181
平台的对接,并成功完成了海康、大华、中威等设备,更重要的是海康平台、公安一所平台的对接。因为行业内很少有
JAVA
方面的设备接入
实现
,希望本篇能够让
JAVA
在安防接入生态中发挥越来越大的作用。
视频流对接采用pjproject相关库
实现
sip
服务
器,采用pjmedia
实现
视频流接收。 媒体
服务
器完全自研,媒体
服务
器
实现
了rtsp协议,jrtplib库
实现
RTP的发送,ACE库
实现
垮平台底层支撑。
sip
svc以及mediasvc以及管理系统采用MQTT
实现
进程通信。
sip
svc核心代码分享:
SIP
初始化:status = pj
sip
_endpt_create(&_cp->fa...
【实例简介】本资料包包括基于国标协议编写的
gb28181
开发源码,可直接用于ARM、DSP架构【实例截图】【核心代码】custom_
gb28181
└── custom_
gb28181
├──
gb28181
_server.c├──
gb28181
_uac.c├──
gb28181
_uac.h├── hg_fuctionmap.c├── hg_fuctionmap.h├── local_profile...
GB28181
是国内视频监控领域的标准协议,用于设备之间的视频流传输和控制命令传输。要使用
Java
访问海康威视硬盘录像机(DVR)的话,可以参考以下步骤:
了解
GB28181
协议的规范,熟悉视频流和控制命令的格式和内容。可以在国家标准化管理委员会网站上查找协议相关文档。
根据海康威视硬盘录像机的接口文档,了解硬盘录像机的IP地址、端口号、用户名和密码等信息。
在
Java
中,可以使用第三方库来...
GB28181
:基于
JAVA
的Catalog目录获取[part4]1、国标文件里面获取流的描述QQ图片20210128113040.png2、
java
组装
SIP
流请求信令private void doResponseInvite(ResponseEvent responseEvent, AddressFactory addressFactory, MessageFactory messageFac...
本发明涉及国标设备接入相关技术领域,尤其是指一种基于jain-
sip
的国标28181平台分布式集群
实现
系统。背景技术:在传统安防行业,采用较多的是用c++编写的产品,该类产品存在一些缺陷:该类产品对运行环境有一定的要求,代码需要编译不同版本给不同的
服务
器使用,这过程容易忘记或者出错。该类产品在并发上升的时候,没办法动态扩容,需要通过修改配置,并重启
服务
的方式来处理,这样会导致系统在升级过程中没办法...
SIP
协议在安防视频系统的国标中,有重要应用。从本文开始,讲解并开发一套
SIP
协议组件。现在一般在开发这类系统时,采用的exo
sip
2和o
sip
2库,这是个开源的
SIP
协议栈库。实际遵从国标开发时并不能满足实际的需要。所以本文依照GBT28181开发的一套
SIP
组件。该组件支持代理
服务
器UAS和代理客户端UAC两重角色。组件
实现
了RFC3261基本的会话初始协议(
SIP
协议)的一个功能子集。
SIP
# 基于
JAVA
的
SIP
协议
实现
[
part1
]最近用
JAVA
的
SIP
协议写了一个
GB28181
平台的对接,并成功完成了海康、大华、中威等设备,更重要的是海康平台、公安一所平台的对接。因为行业内很少有
JAVA
方面的设备接入
实现
,希望本篇能够让
JAVA
在安防接入生态中发挥越来越大的作用。# 一、组件```
java
x.
sip
jain-
sip
-api1.2.1.4
java
x.
sip
jain-
sip
-ri...