1. 程式人生 > >基於GBT28181:SIP協議元件開發-----------第一篇環境搭建

基於GBT28181:SIP協議元件開發-----------第一篇環境搭建

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

注:

    原文:http://www.cnblogs.com/qq1269122125/p/3930018.html