• 基于GBT28181:SIP协议组件开发-----------第二篇SIP组件开发原理


    原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3937590.html,qq:1269122125。

    上一节中讲的SIP组件,即GBT28181SipComponent动态.so库工程,生成libGBT28181SipComponent.so库文件和IGBT28181Comm.h编程接口,在该库中实现了REGISTER,

    MESSAGE,NOTIFY,SUBSCRIBE,INVITE,ACK,BYE,CALL_MESSAGE等GB/T28181-2011 《安全防范视频监控联网系统信息传输、交换、控制技术要求》要求的SIP方法,

    后期有新的需求可以添加。该库已经成功用于电网的多家视频安防企业中,性能稳定。Sip协议组件使用了开源的SIP协议栈OSIP2和开源的扩展协议集Exosip2,结合《技术要求》进行

    了修改和扩展,使得模块符合《技术要求》对Sip通信的需求。

    一.SIP组件主要依赖库列表

    库名 功能
    Osip2 一个开源的SIP协议栈,使用C编写,主要提供解析SIP和SDP消息的API和事物处理的状态机。
    Exosip2 是对Osip2协议栈的封装和调用,作为Osip2的一个扩展协议集,使得Osip2更容易被使用。
    Boost 一个准标准库,相当于对STL的的延续和扩充。
    Loki C++的模板类库

    二.SIP组件对外主要功能

    Sip组件提供的接口与主要功能一一对应,接口的主要函数如下:

    (1)启动Sip通信服务

    int_t  IGBT28181Comm ::StartSip(const string_t ip, int_t port = 5060) ;

    (2)停止Sip通信服务

    void_t IGBT28181Comm::StopSip();

    (3)发送Sip命令数据

    int_t IGBT28181Comm::Downcast(const SipRequestInfo& info);

    (4)Sip服务请求完成回调

    typedef void_t  (*ResponseCallback)(const SipRequestInfo& info,void_t* user);

    void_t IGBT28181Comm::SetResponseCallback(ResponseCallback callback,void_t* user) ;

    这部分不想共享源代码,头文件和库文件的下载地址如下:

    需要库源代码的可以联系作者。

    欢迎技术交流沟通,转载请注明出处并保持作品的完整性。 作者:程序人生 qq1269122125
  • 相关阅读:
    第十四章:(2)Spring Boot 与 分布式 之 Dubbo + Zookeeper
    第十四章:(1)Spring Boot 与 分布式 之 分布式介绍
    第九章:Redis 的Java客户端Jedis
    第十三章:(2)Spring Boot 与 安全 之 SpringBoot + SpringSecurity + Thymeleaf
    第八章:(1)Redis 的复制(Master/Slave)
    java学习
    周末总结4
    java
    Cheatsheet: 2012 12.17 ~ 12.31
    Cheatsheet: 2012 10.01 ~ 10.07
  • 原文地址:https://www.cnblogs.com/qq1269122125/p/3937590.html
Copyright © 2020-2023  润新知