原创文章,引用请保证原文完整性,尊重作者劳动,原文地址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组件的开发与测试。

基于GBT28181:SIP协议组件开发-----------第一篇环境搭建的更多相关文章

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

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

  2. 基于GBT28181:SIP协议组件开发-----------第四篇SIP注册流程eXosip2实现(一)

    原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3945294.html. 上章节讲解了利用自主开发的组件SIP组件l ...

  3. 基于GBT28181:SIP协议组件开发-----------第三篇SIP注册流程分析实现

    原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3941172.html,qq:1269122125. 上两章节简要的 ...

  4. 基于GBT28181:SIP协议组件开发-----------第五篇SIP注册流程eXosip2实现(二)

    原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3966794.html. 上章节讲解了讲解一个用eXosip2库实现 ...

  5. cocos2d-x 第一篇 环境搭建

    官网:http://www.cocos2d-x.org/ 下载一个稳定版的cocos2d-x (网址:http://download.cocos2d-x.org/ Github Repository ...

  6. Android 第一篇——环境搭建

    下载Android SDK 下载eclipse 在线安装SDK

  7. ASP.NET自定义控件组件开发 第一章 第三篇

    原文:ASP.NET自定义控件组件开发 第一章 第三篇 第三篇:第一章的完结篇 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待 ...

  8. ASP.NET自定义控件组件开发 第一章 第三篇 第一章的完结篇

    ASP.NET自定义控件组件开发 第一章 第三篇   第三篇:第一章的完结篇 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ...

  9. ASP.NET自定义控件组件开发 第一章 第二篇 接着待续

    原文:ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 很感谢大家给我的第一篇ASP.NET控件开发的支持!在写这些之前,我也看了 ...

随机推荐

  1. mysql存储过程写法—动态参数运用

    --删除 双击代码全选 1 drop procedure if exists up_common_select --创建 双击代码全选 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  2. macbookpro2011 光驱坏了如何安装windows7

    由于光驱坏了试了网络上的很多方法,2011年款是无法识别到光驱的,即使做了USB的windows驱动盘也无济于事,结果去了电脑城,一位技术员最终用一个U盘装着windowsPE,从PE中安装windo ...

  3. jQuery validate运作流程以及重复提示错误问题

    一,运作流程 jQuery validate要想运作,首先要加载相应的js <script type="text/javascript" src="/js/clas ...

  4. Vim笔记

    复制多行: v 可视化,选择多行,然后yy复制.

  5. Combination Sum —— LeetCode

    Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C wher ...

  6. [后端Day1]Python2.7之基础

    注:以下内容全部为 廖雪峰的官方网站 中学习内容的摘要和总结 输入和输出: name = raw_input('please enter your name: ') print '100 + 200 ...

  7. [Locked] Inorder Successor in BST

    Inorder Successor in BST Given a binary search tree and a node in it, find the in-order successor of ...

  8. 优化exp/imp导入导出速度大全

    .exp  个相关的参数:DIRECT和RECORDLENGTH参数. DIRECT参数定义了导出是使用直接路径方式(DIRECT=Y),还是常规路径方式(DIRECT=N).常规路径导出使用SQL ...

  9. logback 配置详解(一)(转)

    转自:http://blog.csdn.net/haidage/article/details/6794509/ 一:根节点<configuration>包含的属性: scan: 当此属性 ...

  10. UILable:显示多种颜色的方法

    借用别人封装好的类库,用来显示同一个UILable上的多种颜色的字. 类库可以直接在次博客中下载,下载后别忘留言哦. 类库使用:主要用了CoreText里面的东西,所以在使用类库之前需要引用CoreT ...