基於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組件的開發與測試。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM