基於GBT28181:SIP協議組件開發-----------第二篇SIP組件開發原理


原創文章,引用請保證原文完整性,尊重作者勞動,原文地址http://www.cnblogs.com/qq1269122125/p/3937590.html,qq:1269122125。

上一節中講的SIP組件,即GBT28181SipComponent動態.so庫工程,生成libGBT28181SipComponent.so庫文件和IGBT28181Comm.h編程接口,在該庫中實現了REGISTER,

MESSAGE,NOTIFY,SUBSCRIBE,INVITE,ACK,BYE,CALL_MESSAGE等GB/T28181-2011 《安全防范視頻監控聯網系統信息傳輸、交換、控制技術要求》要求的SIP方法,

后期有新的需求可以添加。該庫已經成功用於電網的多家視頻安防企業中,性能穩定。Sip協議組件使用了開源的SIP協議棧OSIP2和開源的擴展協議集Exosip2,結合《技術要求》進行

了修改和擴展,使得模塊符合《技術要求》對Sip通信的需求。

 

一.SIP組件主要依賴庫列表

庫名 功能
Osip2 一個開源的SIP協議棧,使用C編寫,主要提供解析SIP和SDP消息的API和事物處理的狀態機。
Exosip2 是對Osip2協議棧的封裝和調用,作為Osip2的一個擴展協議集,使得Osip2更容易被使用。
Boost 一個准標准庫,相當於對STL的的延續和擴充。
Loki C++的模板類庫

 

二.SIP組件對外主要功能

 

Sip組件提供的接口與主要功能一一對應,接口的主要函數如下:

(1)啟動Sip通信服務

int_t  IGBT28181Comm ::StartSip(const string_t ip, int_t port = 5060) ;

(2)停止Sip通信服務

void_t IGBT28181Comm::StopSip();

(3)發送Sip命令數據

int_t IGBT28181Comm::Downcast(const SipRequestInfo& info);

(4)Sip服務請求完成回調

typedef void_t  (*ResponseCallback)(const SipRequestInfo& info,void_t* user);

void_t IGBT28181Comm::SetResponseCallback(ResponseCallback callback,void_t* user) ;

 

這部分不想共享源代碼,頭文件和庫文件的下載地址如下:

需要庫源代碼的可以聯系作者。

 


免責聲明!

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



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