賈夫松 王希常
摘 要:基于當前監控系統的特點,本文進行基于FreeSWITCH的遠程監控系統的研究。針對當前人們對監控的需求,以開源的軟交換機FreeSWITCH為軟交換平臺,以SIP協議為信令協議,設計實現了一種方便,廉價,高效和實時的監控系統。該系統與傳統的監控系統相比較,靈活性好,擴展性高,即擺脫了對硬件設施的依賴,又實現了高品質的視頻監控,實踐表明該系統處理能力強,視頻效果好,通過對SIP信令和視頻數據包的分離來減小服務器壓力,對處理并發視頻流傳輸具有良好的效果,為開發監控系統提供了參考價值。
關鍵詞:VoIP;FreeSWITCH;SIP協議;多媒體
遠程監控系統是一種讓身首異處的人們通過網絡實現“實時、方便、可視”的通信技術。傳統的監控系統采用專門的硬件來完成監控業務,這種設計依賴硬件,費用高、可擴展性不強,更無法實現異地實時監控。隨著VoIP(Voice over IP)技術的興起和計算機處理能力的增強,可在計算機上利用軟件實現實時監控。這里以支持SIP協議的FreeSWITCH為平臺搭建監控系統。
SIP協議是基于文本的應用層協議,可以綜合語音、數字和視頻業務,支持終端能力檢測,這里采用SIP協議作為信令協議。該系統除了信令控制以為,還需要媒體處理,要求終端使用相同的視頻編碼這里采用的是H.264。本文基于以上分析,設計一種擴展性高、管理方便的遠程監控系統。
1 系統結構設計與分析
1.1 FreeSWITCH介紹
FreeSWITCH是一款開源的、跨平臺的、伸縮性極好的、免費的、多協議的電話軟件換平臺。它能原生地運行于Windows、Max OS X、Linux、BSD及Solaris等諸多平臺上,支持SIP、H323、Skype、Google Talk等多種通信協議,并很容易地與各種開源的PBX系統(如sipXecs、Call Weaver、Bayonne、YATE及Asterisk等)互通,而且支持很多高級的SIP特性,如Presence、BLF、SLA以及TCP、TLS和sRTP等。它也可以作為一個SBC進行透明的SIP代理(proxy)以支持其他媒體,如T.38等。
1.2 系統結構分析
以FreeSWITCH為核心組件,結合其他軟件和設備,設計一種基于SIP協議的遠程監控系統,該系統選用SIP協議作為信令協議,完成注冊、代理、重定向等功能。該系統主要有FreeSWITCH構成服務器,終端設備是有一款支持SIP協議的攝像機和IP軟電話。系統的整體結構如圖所示。
功能方面:FreeSWITCH作為服務器,其主要功能是接受終端的注冊,處理交互控制信令,并協調終端之間的會話連接。終端則是進行對數據的采集、處理、發送、接受、播放,從而實現實時的、有效的監控服務。
2 系統功能實現
2.1 功能模塊
FreeSWITCH由一個穩定的核心(Core)和一些外圍模塊組成,外圍模塊可以動態加載,比如mod_sofia/mod_socket等。
Core的主要功能:Core是利用APR庫(Apache提供的跨平臺的C庫)來完成,完成內存管理/線程管理/常用算法/數據結構等,還包括動態庫的加載卸載、呼叫控制、日志管理、存儲、內核任務調度等
外圍模塊(Mod_xxx):可加載卸載外圍模塊的FreeSWITC的一個特色,功能的擴展主要依靠外圍動態模塊的增加來實現,每個模塊加載后提供相應的API和APP來進一步增強FreeSWITCH的功能,Core和模塊之間通過調用API實現與Core的交互。
2.2 SIP的實現
FreeSWITCH的SIP功能是在mod_sofia模塊中實現的,FreeSWITCH并沒有自己開發新的SIP協議棧,而是使用了比較成熟的Nokia的開源SIP協議棧Sofia-SIP。
mod_sofia是FreeSWITCH中最重要的一個模塊,所有的SIP通話都是從它開始和終止。它實現了SIP注冊、呼叫、終止等一系列的SIP特性。
Endpoint:在FreeSWITCH中,實現一些互聯協議接口的模塊稱為Endpoint。FreeSWITCH支持很多類型的Endpoint,如SIP、H.323等。這些不同的Endpoint主要使用不同的控制協議跟其他的Endpoint通話。SIP Profile相當于SIP UA,在啟動后它會監聽一個”IP地址:端口”對。
UA首先向FreeSWITCH內部的SIP(sofia_SIP)模塊發起注冊。然后發出Invite請求,該請求帶有SDP(Session De-scription Protocol)的媒體信息,協商雙方媒體功能,發起呼叫實現互通。
2.3 媒體繞過(Bypass Media)
FreeSWITCH作為服務器,用戶發起的SIP消息通過FreeSWITCH進行建立連接,連接建立之后的媒體流相對SIP消息的龐大的,如果都通過FreeSWITCH轉發會給服務器造成巨大壓力,所以采用媒體繞過技術,即真正的媒體流使用點對點傳輸,不經過FreeSWITCH,直接通過RTP的點對點傳輸。設置Bypass Media:在Profile中添加如下設置。
3 系統搭建與測試
3.1 安裝
FreeSWITCH安裝Linux Ubuntu14.04系統當中,終端則運行在同一網絡下。準備一個支持SIP協議的攝像機并注冊在FreeSWITCH上面。
本文軟電話采用的是能運行于安卓系統下的Jitsi,電腦端可采用Microsip,注冊過程類似,并調試雙方為同一編碼方式,本文采用H.264。注冊檢測,在FreeSWITCH上輸出sofia status profile internal reg。
3.2 測試
攝像機以一個SIP客戶端的方式注冊到FreeSWITCH上,攝像機不會主動發起呼叫,我們用軟電話呼叫攝像機時,攝像機會自動應答,就可以通過軟電話觀看攝像機了,本文測試中,攝像機的地址為192.168.1.216,軟電話地址為192.168.1.17,FreeSWITCH的地址為192.168.1.21。
4 結語
本文基于FreeSWITCH軟交換機設計了一種簡單、高效的遠程監控系統。該系統使用SIP協議進行信令交互,并結合RTP協議和終端設備的特點,實現了遠程監控系統的基本功能。該系統與硬件系統相比,價格上更具優勢,而性能上該系統的擴展性和維護性也具有較大優勢。并且媒體繞過技術使得服務器具有高并發性,處理能力更加簡潔高效。當然該系統只是基本達到了遠程實時監控的功能,在監控控制,記錄方面還需做進一步完善,使其更加符合監控系統的特點和要求。
參考文獻:
[1]Rosenberg,J.Framework for Conferencing with the Session Initiation Protocol [S].IETF Internal Draft,2003.
[2]J.Rosenberg,H.Schulzrinne,et.al,SIP:Session Initiation Protocol[S]. IETF RFC3261,2002.
[3]DuJjinfang, ZhangLingkao, FreeSWITCH:The Definitive Guide, Beijing, China Machine Press, 2014.
[4]Yan Wei, Pan Aimin, Computer Network. BeiJing, Tsinghua University Press.
[5]Asterisk:Theroadtothe future, CHN2.0[EB/01].http//asterisker.cn.2010.
作者簡介:賈夫松(1991-),男,漢族,山東泰安人,碩士,計算機網絡;王希常(1964-),男,漢族,山東茌平縣人,研究員,處長,九三學社社員,博士,計算機圖像。