博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一、基于JAVA的GB28181实现之SIP服务启动[part1]
阅读量:2395 次
发布时间:2019-05-10

本文共 1910 字,大约阅读时间需要 6 分钟。

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

转载地址:http://qkwob.baihongyu.com/

你可能感兴趣的文章
深入理解RPC——RPC在企业服务中的核心价值
查看>>
跋山涉水 —— 深入 Redis 字典遍历
查看>>
如何解决Java线程池队列过饱问题
查看>>
Lettuce快速入门
查看>>
轻量级框架Spark快速入门
查看>>
蚂蚁金服RPC框架结构分析
查看>>
eclipse踩坑Order and Export引发java.lang.NoClassDefFoundErrorFailed resolution of
查看>>
Video Telephony笔记
查看>>
SMTP验证
查看>>
POP/IMAP-before-SMTP
查看>>
Eclipse 快捷键
查看>>
怎样在同一终端上多帐号登陆同一服务器?
查看>>
BiteFight 简单外挂开发之IE篇
查看>>
SVN常用命令学习笔记
查看>>
Avoiding memory leaks
查看>>
AT Command for QOS
查看>>
中文字号VS英文字号(磅)VS像素值的对应关系
查看>>
关于@override报错的问题
查看>>
Linux中禁止Ctrl-Alt-Delete
查看>>
概念辨析:dBm, dBi, dBd, dB, dBc, dBuV
查看>>