# 基于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...