基于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组件的开发与测试。
基于GBT28181:SIP协议组件开发-----------第一篇环境搭建的更多相关文章
- 基于GBT28181:SIP协议组件开发-----------第二篇SIP组件开发原理
原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3937590.html,qq:1269122125. 上一节中讲的S ...
- 基于GBT28181:SIP协议组件开发-----------第四篇SIP注册流程eXosip2实现(一)
原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3945294.html. 上章节讲解了利用自主开发的组件SIP组件l ...
- 基于GBT28181:SIP协议组件开发-----------第三篇SIP注册流程分析实现
原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3941172.html,qq:1269122125. 上两章节简要的 ...
- 基于GBT28181:SIP协议组件开发-----------第五篇SIP注册流程eXosip2实现(二)
原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3966794.html. 上章节讲解了讲解一个用eXosip2库实现 ...
- cocos2d-x 第一篇 环境搭建
官网:http://www.cocos2d-x.org/ 下载一个稳定版的cocos2d-x (网址:http://download.cocos2d-x.org/ Github Repository ...
- Android 第一篇——环境搭建
下载Android SDK 下载eclipse 在线安装SDK
- ASP.NET自定义控件组件开发 第一章 第三篇
原文:ASP.NET自定义控件组件开发 第一章 第三篇 第三篇:第一章的完结篇 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待 ...
- ASP.NET自定义控件组件开发 第一章 第三篇 第一章的完结篇
ASP.NET自定义控件组件开发 第一章 第三篇 第三篇:第一章的完结篇 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ...
- ASP.NET自定义控件组件开发 第一章 第二篇 接着待续
原文:ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 很感谢大家给我的第一篇ASP.NET控件开发的支持!在写这些之前,我也看了 ...
随机推荐
- The Embarrassed Cryptographer(高精度取模+同余模定理)
Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 11435 Accepted: 3040 Description The ...
- -_-#【jQuery插件】Spinner 数字选择器
Spinner (jQuery UI)
- Delphi 客户端调用Webservice 的TClientdataset 报出“http://www.borland.com/namespaces/Types-IAppServerSOAP”
http://www.borland.com/namespaces/Types-IAppServerSOAP 服务器未能识别 HTTP 头 SOAPAction 的值 (2011-04-25 16:4 ...
- 《A First Course in Probability》-chaper3-条件概率和独立性-贝叶斯公式、全概率公式
设有事件A.B. 下面结合具体的题目进一步理解这种方法: Q1:保险公司认为人可以分为两类,一类易出事故,另一类则不易出事故.统计表明,一个易出事故者在一年内发生事故的概率是0.4,而对不易出事故者来 ...
- sql给整数补零
update hs_user.clientorder a set a.stockcode = lpad(a.stockcode,6,'0') where a.market = 'SZ'
- 布隆过滤器的java实现
package com.kaikeba.data.jobspider.util; import java.util.BitSet; public class Bloomfilter { private ...
- 另一个有趣的Captcha 网站
今天在一个网站注册时又发现了一个有趣的Captcha形式.给你一个翻转的图片,然后让你拽下面的slide bar让它回到正常的位置,很有趣.下面是提供这个Captcha的网站. minteye – s ...
- java 中的反射
反射技术并不陌生,如何使用 ? 获取到类的全名 即可获取类中所有的信息: 构造.方法.成员变量等: 反射技术好多框架在使用,比如以前我们用jdbc,Class.forName("com.my ...
- C#构造函数里的base和this的区别
用法一: 父类的构造函数总是在子类之前执行的.既先初始化静态构造函数,后初始化子类构造函数. public class BaseCircle { public BaseCircle() { Conso ...
- 物联网MQTT协议分析和开源Mosquitto部署验证
在<物联网核心协议—消息推送技术演进>一文中已向读者介绍了多种消息推送技术的情况,包括HTTP单向通信.Ajax轮询.Websocket.MQTT.CoAP等,其中MQTT协议为IBM制定 ...