• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    SIP在視頻監(jiān)控系統中的應用

    2012-07-18 07:40:32胡偉峰孟利民
    關鍵詞:信令消息客戶端

    胡偉峰,孟利民

    (浙江工業(yè)大學通信網應用技術研究重點實驗室,浙江杭州310023)

    0 引言

    目前國內視頻監(jiān)控業(yè)務主要應用于各種人口密集的場所,比如十字路口、銀行、學校、大型超市、小區(qū)等。視頻監(jiān)控的發(fā)展正處于高清初期,許多地方原有的標清視頻監(jiān)控系統正在漸漸地被高清取代?,F有的視頻監(jiān)控系統一般都采用RTP進行視頻數據的傳輸,而信令控制方面比較常用的有H.323、RTSP和SIP等。其中SIP是由IETF提出來的一個應用控制(信令)協議,用于發(fā)起會話,它可用來創(chuàng)建、修改以及終結多個參與者參加的多媒體會話進程[1]。SIP采用文本的編碼方式,具有靈活簡單、擴展性強、實現成本低等特點。正是由于這些優(yōu)勢,使得SIP得到了飛速的發(fā)展,并廣泛地被應用在各種多媒體業(yè)務中。網絡上的各類語言版本的SIP庫使得開發(fā)周期進一步縮短,本文采用的是當前非常流行的一個開源SIP庫——PJSIP,詳細介紹了設備端通過SIP與服務器之間進行的通信。

    1 系統設計

    在本項目設計中,采用支持H.264編解碼的DM365開發(fā)板來進行二次開發(fā)。攝像頭捕獲的模擬視頻數據發(fā)送到開發(fā)板,并由各芯片處理成H.264視頻數據,最后進行RTP封裝并發(fā)送給服務器,服務器將視頻數據包轉發(fā)給客戶端,客戶端的播放器對其進行解碼播放。整個過程,設備端、服務器與客戶端之間的信令控制使用SIP實現。系統的設計如圖1所示:

    圖1 系統設計圖

    2 利用SIP進行信令控制

    按照邏輯功能區(qū)分,SIP系統由四種功能實體組成:用戶代理、代理服務器、注冊服務器和重定向服務器[2]。SIP 定義了 6 類請求方法:INVITE、ACK、BYE、CANCEL、REGISTER、OPTIONS[3]。本文采用PJSIP協議棧來實現系統中的SIP通信。

    2.1 PJSIP 簡介

    PJSIP是一個C語言編寫的基于SIP、SDP、RTP等協議的開源多媒體通信庫。C語言良好的可移植性和高性能保證了PJSIP這個庫具備很強的跨平臺性以及優(yōu)秀的性能,它的內存占用率也非常低。由于PJSUA-LIB庫為開發(fā)者提供了簡單的函數接口用于SIP消息的收發(fā),使普通的開發(fā)人員不必過多地考慮PJSIP庫的內部框架。

    整個系統的協調管理者ENDPOINT是整個協議棧的核心,負責實現pool、time heap、傳輸層控制、事件調度執(zhí)行、module管理、接收派發(fā)消息等[4]。模塊管理使PJSIP具有很強的擴展性,協議棧中的所有功能都以模塊的形式進行設計,每個模塊在初始化過程中都要在ENDPOINT中進行注冊。收到SIP消息后,先調用PARSER模塊進行解析,然后按照優(yōu)先級將解析后的消息依次傳遞給所有注冊的模塊,若有模塊對消息進行處理則立即停止消息的傳遞。對于要發(fā)送的消息,ENDPOINT會將消息發(fā)送給所有的模塊并且允許各個模塊對消息進行修改[5]。SIP消息在PJSIP各模塊之間的來回傳遞如圖2所示。

    圖2 PJSIP各模塊協作表

    2.2 新模塊的添加

    PJSUA-LIB庫中SIP消息的默認使用SDP協議來描述消息體,而本文中的系統由于實際情況需要采用XML協議。故參考PJSUA-LIB庫中的即時消息的處理模塊,自行設計一個模塊實現對XML消息體的SIP消息的處理。

    新模塊在初始化過程中必須要先向ENDPOINT進行注冊,注冊完成后ENDPOINT在收到SIP消息后才會將消息交給新模塊處理。結合本系統的實際情況,新模塊設計時只需要實現其中的兩個回調函數on_rx_request()與on_rx_response()來對收到的SIP消息進行處理。當ENDPOINT收到SIP請求消息時將調用on_rx_request()函數進行處理,收到SIP應答消息時將調用on_rx_response()函數進行處理。ENDPOINT對SIP消息的傳遞是根據模塊的優(yōu)先級高低來依次傳遞的,所以新定義的消息解析模塊的優(yōu)先級應該盡量比其他同級模塊要高,這樣才可以對SIP消息進行優(yōu)先處理。

    同樣,在新模塊中實現了對SIP消息的接收后,也要完成SIP消息的發(fā)送函數部分。SIP消息發(fā)送函數主要參考了PJSIP中即時消息的發(fā)送流程,另外在發(fā)送函數的參數中添加用于表示SIP請求方法的參數,XML消息體內容以字符串的形式進行傳遞。具體的SIP消息發(fā)送流程如圖3所示。

    圖3 SIP消息發(fā)送流程圖

    2.3 設備端SIP應用流程

    本系統選擇UDP對SIP消息進行發(fā)送。設備端的SIP應用程序主要需要實現設備注冊、視頻請求兩大功能。

    注冊具體過程:設備開啟之后向注冊服務器發(fā)送請求方法為REGISTER并且不攜帶消息體的SIP消息;注冊服務器接收到上述消息回復狀態(tài)碼為200的應答消息,同時攜帶一個隨機碼作為消息體;設備接收到應答消息后獲得隨機碼,并將其與密碼組合進行MD5加密,然后將加密結果再次以REGISTER請求方法的SIP消息發(fā)送給注冊服務器;注冊服務器接收到消息中的密碼后對此進行解析,并在數據庫中查詢確認該設備是否為合法用戶,若是回復狀態(tài)碼為200的應答消息,并保留設備的位置信息,否則恢復狀態(tài)碼為4XX的應答消息,同時在應答消息的起始行的文本信息中添加錯誤原因;終端注冊成功后,每隔一定的時間給注冊服務器發(fā)送請求方法為REGISTER的SIP消息并攜帶特定的消息體以告知服務器當前設備仍在線,此SIP消息稱為心跳保護包。

    視頻請求具體過程:當收到客戶端發(fā)來請求方法為INVITE的SIP消息后,服務器負責記錄客戶端的通信地址并將視頻請求消息轉發(fā)給設備,同時回復狀態(tài)碼為1XX的應答消息通知客戶端進行等待;設備接收到此消息后讀取其中的媒體參數并判斷是否有能力參與會話,若可以則發(fā)送狀態(tài)碼200的應答消息給服務器,記錄視頻轉發(fā)服務器的通信地址;服務器轉發(fā)應答消息給客戶端,客戶端發(fā)送ACK消息確認會話的建立,設備接收到經服務器轉發(fā)的ACK消息后,完成多媒體會話的建立。SIP應用的具體流程圖如圖4所示。

    圖4 SIP通信邏輯流程圖

    3 測試結果

    DM365開發(fā)板運行SIP應用程序,從程序啟動到注冊成功只需5-8s,成功注冊登錄服務器時串口信息如圖5所示:

    圖5 設備注冊成功時串口的部分輸出信息

    4 結束語

    本文設計的SIP通信系統可以實際應用到視頻監(jiān)控系統中,可以實現與服務器、客戶端之間良好的即時通信。SIP系統的重發(fā)機制很好地解決了UDP傳輸的缺點,PJSIP模塊化的功能管理機制使系統具有較強的擴展性。該系統具有較高的實用價值,可以廣泛應用到網絡視頻會話中。

    [1] 劉瑞祥,許立群,劉寶妹.基于SIP即時消息系統的客戶端設計[J].計算機科學,2010,37(9):104-106.

    [2] 陳銀星,周利清.SIP協議在VOIP終端的設計和實現[J].現代電信科技,2006,(10):11-13.

    [3] 張智江,張云勇,劉韻潔.SIP協議及其應用[M].北京:電子工業(yè)出版社,2005:14-15.

    [4] Benny Prijono.PJSIP Developer's Guide[EB/OL].http://www.Pjsip.org,2006 -03 -07.

    [5] 雷正雄,朱曉民,廖建新.SIP協議棧的設計與實現[J].現代電信科技,2004,(3):17-20.

    猜你喜歡
    信令消息客戶端
    一張圖看5G消息
    SLS字段在七號信令中的運用
    移動信令在交通大數據分析中的應用探索
    縣級臺在突發(fā)事件報道中如何應用手機客戶端
    傳媒評論(2018年4期)2018-06-27 08:20:24
    孵化垂直頻道:新聞客戶端新策略
    傳媒評論(2018年4期)2018-06-27 08:20:16
    基于Vanconnect的智能家居瘦客戶端的設計與實現
    電子測試(2018年10期)2018-06-26 05:53:34
    基于信令分析的TD-LTE無線網絡應用研究
    消費導刊(2017年24期)2018-01-31 01:28:37
    LTE網絡信令采集數據的分析及探討
    互聯網天地(2016年2期)2016-05-04 04:03:21
    消息
    消息
    溧水县| 乐平市| 屯留县| 吴川市| 阿克陶县| 呼和浩特市| 温泉县| 上杭县| 拉萨市| 温州市| 灵山县| 西宁市| 明光市| 西林县| 靖远县| 抚松县| 郧西县| 自治县| 静乐县| 高淳县| 霍山县| 湘乡市| 高州市| 罗平县| 称多县| 深州市| 神池县| 环江| 廊坊市| 广西| 吐鲁番市| 汉阴县| 大荔县| 钟山县| 兴和县| 玛曲县| 同江市| 观塘区| 桃源县| 翼城县| 个旧市|