• 基于GBT28181:SIP协议组件开发-----------第一篇环境搭建


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

    SIP协议在安防视频系统的国标中,有重要应用。从本文开始,讲解并开发一套SIP协议组件。现在一般在开发这类系统时,采用的exosip2和osip2库,这是个开源的SIP协议栈库。实际遵从国标开发时并不能满足实际的需要。所以本文依照GBT28181开发的一套SIP组件。该组件支持代理服务器UAS和代理客户端UAC两重角色。组件实现了RFC3261基本的会话初始协议(SIP协议)的一个功能子集。SIP组件中实现了REGISTER,MESSAGE,NOTIFY,SUBSCRIBE,INVITE,ACK,BYE,CALL_MESSAGE等 SIP通信方法。

    一.本系列文章的参考标准

    1.电网视频监控系统及接口 第1部分:技术要求

    2.GB/T28181-2011 《安全防范视频监控联网系统信息传输、交换、控制技术要求》 

    二.开发思路

    主要包括三个部分,SIP服务器(UAS)测试程序,SIP客户端代理(UAC)测试程序,SIP开发组件。讲解过程主要按照SIP功能子集的方法(REGISTER,MESSAGE,NOTIFY,SUBSCRIBE,INVITE,ACK,BYE,CALL_MESSAGE)一步步开展,一个功能一个功能添加,最终完成SIP功能组件的开发。

    三.开发环境搭建

    开发操作系统:centos 6.0+32bit

    开发语言:c/c++

    开发工具:eclipse +CDT

    项目依赖:osip2 osipparser2 eXosip2 loki boost_thread

    依赖版本及下载地址:

    依赖库下载完成后,在Centos中安装好。主要库文件的安装路径,如果不是PATH中能找到的路径,在下面的开发工程中还需要设定-L选项(库查找路径)和-I(库开发头文件查找路径)选项。

    四.开发工程搭建

    打开centos中eclipse,新建以下工程。

    1.新建GBT28181SipComponent动态.so库工程

    一路点next即可。

    2.UAS测试程序

     

    一路点next即可。

    3.UAS工程文件下建两个文件夹,存放GBT28181SipComponent库的头文件和.so文件。

    4.GBT28181SipComponent库工程中添加 IGBT28181Comm.h,IGBT28181Comm.cpp。GBT28181Comm.h作为库和外界通讯的接口。

    5.GBT28181SipComponent库工程中添加工程依赖项。osip2 osipparser2 eXosip2 loki boost_thread。路径要不要添加取决于安装情况。笔者安装在系统默认目录所以不需要指定路径。

    6.GBT28181SipComponent库工程中添加程序编译后,拷贝到UAS_test和UAC_test相应的lib目录下。

    如拷贝到UAS_test的Lib目录下。

    cp ./libGBT28181SipComponent.so ../../UAS_test/lib/GBT28181SipComponent ;

    cp ../src/IGBT28181Comm.h  ../../UAS_test/lib/include

    拷贝到UAC_test的Lib目录下。

    cp ./libGBT28181SipComponent.so ../../UAC_test/lib/GBT28181SipComponent ;

    cp ../src/IGBT28181Comm.h  ../../UAC_test/lib/include

    这样库编译完成即完成.so和接口文件的拷贝工作。

    7.UAS_test工程中添加依赖库libGBT28181SipComponent.so和头文件IGBT28181Comm.h 的应用目录。

    8.新建UAC_test工程,具体步骤和UAS_test大致相同。主要新建lib目录,添加依赖库及目录路径。具体步骤在此省略。

    以上为本次SIP协议组件开发的基本环境框架。从下一节开始一步步的完成该SIP组件的开发与测试。

    欢迎技术交流沟通,转载请注明出处并保持作品的完整性。 作者:程序人生 qq1269122125
  • 相关阅读:
    函数对象与闭包函数
    day15
    应用在tomcat下的四种部署方式(原创)
    Servlet的四种映射模式
    背景框代码
    RabbitMQ 示例-生产者-消费者-direct-topic-fanout
    idea 设置自动生成注释
    cSpring Boot整合RabbitMQ详细教程
    Windows下RabbitMQ安装及配置
    Threadlocal线程本地变量理解
  • 原文地址:https://www.cnblogs.com/qq1269122125/p/3930018.html
Copyright © 2020-2023  润新知