• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于一致性哈希算法和Ckafka技術(shù)的IMS電話實時錄音系統(tǒng)①

      2020-05-22 04:45:54王寶海趙金城段佳秀
      計算機系統(tǒng)應用 2020年5期
      關(guān)鍵詞:哈希通話錄音

      江 凇,王寶海,趙金城,宋 江,段佳秀

      1(國網(wǎng)江蘇省電力有限公司 信息通信分公司,南京 210024)

      2(南京南瑞信息通信科技有限公司,南京 210003)

      3(南京郵電大學,南京 210003)

      基于電力IMS[1]交換網(wǎng)的電話業(yè)務是國家電網(wǎng)公司內(nèi)部重要的通信業(yè)務之一,為國家電網(wǎng)員工提供了高效便捷的語音通話服務.在一些重要的部門、崗位以及重要的電話會議等場景中,通常要求對通話進行錄音,以記錄來電的內(nèi)容.通話錄音的內(nèi)容既可以用于追蹤業(yè)務的進度,也可用于事后回溯以避免業(yè)務糾紛.因此,在電力IMS 交換網(wǎng)實施電話錄音的行為可以完善電網(wǎng)內(nèi)部的電話管理制度,提高業(yè)務的監(jiān)管水平.

      隨著電話交換技術(shù)由電路交換向分組交換演進,三網(wǎng)融合需求的呼聲越來越高,而IP 多媒體子系統(tǒng)(IMS)技術(shù)可以支持話音,電視媒體,數(shù)據(jù)這三種業(yè)務的傳輸,還具有統(tǒng)一的平臺和接口,分層的架構(gòu)設計,集中的業(yè)務控制與管理,可保證的QOS 等優(yōu)點.此外,傳統(tǒng)的基于電路交換的電話錄音技術(shù)因其系統(tǒng)復雜,存儲的不便捷和非實時性的特點,已經(jīng)無法滿足新時代行政辦公對高效,統(tǒng)一,即時的通話錄音需求.因此,本文設計出一種基于電力IMS 交換網(wǎng)的電話實時錄音系統(tǒng),該系統(tǒng)可為電力IMS 交換網(wǎng)中的各類終端(IP,POTS,PC 等)提供即時、高動態(tài)、高質(zhì)量的錄音服務,并通過系統(tǒng)后臺將錄音記錄即時推送至軟件終端,以便IMS 終端用戶隨時查閱錄音.

      1 基于IMS 的電話錄音系統(tǒng)設計

      該系統(tǒng)借助基于IMS 核心交換機的端口鏡像技術(shù)實現(xiàn)對整個網(wǎng)絡的監(jiān)控管理,并能夠及時抓取所需要的數(shù)據(jù),借助一致性哈希算法來查找緩存服務器,利用Ckafka 高性能消息隊列來保證消息消費的有序性和負載均衡.最終,設計與實現(xiàn)一種基于會話初始(SIP)協(xié)議[2]的高動態(tài)即時錄音系統(tǒng),其系統(tǒng)框圖如圖1所示.

      圖1 系統(tǒng)框圖

      系統(tǒng)的實現(xiàn)流程如下:

      步驟1.主叫話機A 向被叫話機B 發(fā)起呼叫請求,主叫話機A 經(jīng)由核心交換機、SBC(邊界會話控制器)、電力IMS 交換網(wǎng)、再回到核心交換機,向被叫話機B 發(fā)送SIP 協(xié)議中的invite 信令[3].

      步驟2.在被叫話機B 接收到invite 信令后,給主叫話機A 發(fā)送應答消息,主叫話機A 確認應答消息后,開啟與被叫話機B 的通話.

      步驟3.IMS 軟件終端與被叫話機B 聯(lián)動,當主叫話機A 與被叫話機B 的通話開啟時,IMS 軟件終端通知錄音服務器開啟錄音.

      步驟4.錄音服務器從核心交換機的鏡像端口獲取信令包,再根據(jù)from、to 等標簽,對信令包進行SIP 包解析,獲取主被叫話機號碼、IP、媒體端口及語音編碼.解析RTP(媒體流)報文后,針對g.711a、g.711u、g.729、g.726、iLBC 等不同編碼方式[4,5],將錄音文件解碼,通過Ckafka 消息隊列將解碼的數(shù)據(jù)緩存至高性能緩存服務器.

      步驟5.通話需要結(jié)束時,主叫話機A 經(jīng)由核心交換機、SBC(邊界會話控制器)、電力IMS 交換網(wǎng)、再回到核心交換機,向被叫話機B 發(fā)送SIP 協(xié)議中的bye 信令.

      步驟6.被叫話機B 接收到bye 信令后,給主叫話機A 發(fā)送應答消息,主叫話機A 確認應答消息后,結(jié)束與被叫話機B 的通話.

      步驟7.錄音服務器取時間或集將主被叫話機的錄音進行混音并存儲為PCM 格式.錄音服務器將通過系統(tǒng)后臺將錄音記錄即時推送至PC/Web 終端,以便用戶隨時查閱通話錄音.

      2 基于一致性哈希算法和Ckafka 技術(shù)的錄音服務器設計

      通過對SIP 報文中信令的解析,并從媒體端口得到通話雙方的音頻流,采用Ckafka 消息隊列構(gòu)建實時數(shù)據(jù)通道,同時提供對數(shù)據(jù)流的處理,然后將得到的音頻流傳送至高性能內(nèi)存數(shù)據(jù)庫以保存數(shù)據(jù).在數(shù)據(jù)庫和錄音服務器之間插入分布式緩存[6],使錄音服務器不必頻繁訪問數(shù)據(jù)庫,而是直接從緩存存取數(shù)據(jù),從而縮短了數(shù)據(jù)的訪問時間,提高了數(shù)據(jù)庫的訪問性能.對于分布式緩存服務器的查找采用的是一致性哈希算法,它極大的提高了緩存命中率,以及減少在增刪節(jié)點時數(shù)據(jù)遷移的成本.

      2.1 Ckafka 技術(shù)

      Ckafka 技術(shù)[7]是一種消息隊列的技術(shù),它基于Apache Kafka 消息隊列引擎,具有強大的吞吐量和可擴展性能強的特點,主要用于高性能的流式處理、消息傳輸?shù)葓鼍?并且完全兼容Kafka.其詳細特性如下:

      (1)可擴展性:該框架可輕松擴展,無需停機.

      (2)高容量:旨在處理大量數(shù)據(jù),并能對數(shù)據(jù)進行壓縮.

      (3)可靠性:具有可恢復能力和一定的容錯能力.(4)數(shù)據(jù)轉(zhuǎn)換:可以把從信息源獲取的數(shù)據(jù)流轉(zhuǎn)化成要求的數(shù)據(jù)流格式.

      (5)低延遲:專注于傳統(tǒng)消息傳遞以實現(xiàn)低時延.

      (6)順序讀寫:和大部分的消息隊列一致,Ckafka可以保證數(shù)據(jù)按照順序進行處理,極大提升磁盤效率.

      (7)異步通信:在無需立即處理消息的場景下,當訪問量高時Ckafka 僅將消息放入隊列中,等訪問量降低后再對消息進行處理,以降低系統(tǒng)負荷[8].

      本系統(tǒng)為集中錄音系統(tǒng),要求并行處理的能力強,由上面的介紹可知Ckafka 消息隊列具有強大的吞吐量,多線程的流式處理,具備數(shù)據(jù)壓縮的特性以節(jié)約存儲空間,對于高并發(fā)數(shù)據(jù)流,支持在線的水平擴展和消息的自平衡,在最佳的情況下,插入和刪除數(shù)據(jù)的時間復雜度能降為O(1),這極大的降低系統(tǒng)的復雜度,提高系統(tǒng)運行的穩(wěn)定性,同時結(jié)合一致性哈希算法可以實現(xiàn)對服務器集群請求的均衡處理,所以本文采用該技術(shù)來對錄音系統(tǒng)的信令流和音頻流進行處理,可輕松實現(xiàn)毫秒級的消息處理,極大的降低系統(tǒng)的時延,提高系統(tǒng)的實時性.

      2.2 一致性哈希算法

      一致性哈希算法最初是由Karger D 等提出的一種散列算法.其最初是為了解決服務器集群中的熱點問題,整個算法的過程如圖2所示[9,10],但是該算法具有一定的局限性,當服務器的節(jié)點數(shù)較少,那么對于多個請求可能會導致散列環(huán)上的數(shù)據(jù)傾斜以及服務器分配不均的問題,因此在散列空間和物理節(jié)點之間加入虛擬節(jié)點[11],通過對虛擬節(jié)點的分配,把多個虛擬節(jié)點與相對應的物理節(jié)點進行映射,并在散列環(huán)上分布恰當?shù)奶摂M節(jié)點數(shù)目,從而每臺服務器都能達到均衡處理請求的目的.

      本文提出的一致性哈希算法是在普通哈希算法上進行改進,因為環(huán)形散列環(huán)大小為232,因此對目標利用哈希函數(shù)運算之后,再進行模232運算,即可將目標的Key分布在整個散列環(huán)上,如式(1)所示.

      圖2 一致性哈希算法

      在SIP 報文中,Call-ID 可以作為這通會話的全局識別號,因此可以作為該通電話的唯一標識符;而對于不同的緩存服務器,其IP 地址也都不同,因此可以利用緩存服務器的IP 地址作為它的唯一標識符.在不考慮虛擬節(jié)點的情況下,本文提出的一致性哈希算法的步驟如下:

      步驟1.利用每一臺緩存服務器的IP 地址作為哈希運算的對象并進行哈希運算,然后把得到的結(jié)果進行模232運算,得到相應的鍵值Ks1,Ks2,···,Ksn,至此,已經(jīng)將每一臺緩存服務器都映射到散列環(huán)[12]上,對于3 臺服務器在散列環(huán)上映射情況如圖3所示.

      圖3 3 臺服務器映射到散列環(huán)

      步驟2.對當前打進來的某一通電話的Call-ID 進行哈希運算,然后再對運算結(jié)果進行模232運算,得到對應的鍵值Kc,并映射到步驟1 所示的散列環(huán)上,現(xiàn)將緩存服務器和某一通電話都映射到散列環(huán)上,其映射情況如圖4所示.

      步驟3.從該通電話在散列環(huán)上映射的位置開始,按順時針方向,找到最近的那一臺服務器A,那么該通電話的媒體流就緩存到服務器A,如圖5所示.

      圖5 尋找緩存服務器過程

      對于多路通話,亦可采用上述方法快速尋找到對應的緩存服務器.若多路通話均映射到散列環(huán)相對固定的位置,那么最終他們都會按順時針尋找到最近的那臺服務器緩存數(shù)據(jù),這將導致另外兩個服務器空閑,而當前服務器負載量過大甚至宕機.對此,采用虛擬節(jié)點技術(shù)[13],根據(jù)通話映射在散列表的位置關(guān)系,利用物理節(jié)點復制出多個虛擬節(jié)點,然后在散列環(huán)中安放多個虛擬節(jié)點.隨著虛擬節(jié)點的增多,散列環(huán)上總的節(jié)點數(shù)就越多,節(jié)點均勻分布的可能性就越大,當多個請求同時到來時,緩存服務器的負載就能更加均衡[14–16],如圖6所示,深色的表示物理節(jié)點,淺色的表示復制出的虛擬節(jié)點.由圖分析可得:若不引入虛擬節(jié)點技術(shù),將會有五通電話的請求將直接流向服務器A,一通電話的請求流向服務器B,服務器C 處于空閑狀態(tài),這樣的分配方式極不平衡,這將導致服務器A 的負荷過大,系統(tǒng)處理能力降低,而引入虛擬節(jié)點技術(shù),每臺服務器都分到2 個請求,這樣可以充分發(fā)揮每臺服務器的性能,提高系統(tǒng)的處理能力.

      圖6 虛擬節(jié)點

      3 錄音服務器的性能分析與評價

      為了驗證錄音服務器的性能,本文通過運行多臺虛擬機來模擬錄音服務器、緩存服務器集群以及數(shù)據(jù)庫服務器集群,并將采用一致性哈希算法和Ckafka 消息隊列技術(shù)的服務器與采用普通的哈希算法的服務器進行比較,利用JMeter 工具來模擬用戶的通話錄音請求,并根據(jù)服務器的響應時間、吞吐量、容錯能力以及錄音推送至客戶端的最大時延這4 項指標作為其評估性能的依據(jù),最后根據(jù)測試結(jié)果,使用Matlab 繪制相應的圖表進行分析,結(jié)果如圖7所示.

      圖7顯示出錄音服務器中同時錄音的請求數(shù)與其響應時間的關(guān)系,由圖可得請求數(shù)在900 以下,采用一致性哈希算法和Ckafka 技術(shù)的響應時間與采用普通哈希算法的響應時間基本一致,但隨著同時錄音請求數(shù)的增多,這兩種方案響應時間的差距開始變大,當錄音請求數(shù)達到1300 時,采用一致性哈希算法和Ckafka技術(shù)的錄音服務器明顯要好于另一種方案,說明本設計的錄音服務器對于高并發(fā)的處理能力要強于一般服務器,其負載調(diào)度也更為合理.

      圖8顯示出分布式錄音服務器系統(tǒng)中服務器個數(shù)對整個系統(tǒng)吞吐量的關(guān)系,由圖可得服務器個數(shù)在4 個以內(nèi),兩種方案的吞吐量基本一致,當服務器個數(shù)大于4 時,隨著服務器個數(shù)增多兩者性能差距越來越明顯,服務器個數(shù)為8 時,兩者差距最大,約為14.29%,說明本設計的錄音服務器適合做成大規(guī)模的分布式系統(tǒng),其系統(tǒng)吞吐量的優(yōu)勢越顯著.

      圖7 請求數(shù)與響應時間關(guān)系

      圖8 服務器個數(shù)與吞吐量的關(guān)系

      對于服務器集群停機情況,本文構(gòu)建了一個包含6 個服務器的集群.當群集正常接收模擬請求時,突然關(guān)閉一個錄音服務器,并觀察群集無法正常響應的錯誤率趨勢.實驗結(jié)果如圖9所示.模擬錯誤發(fā)生的時間在1 s 時刻,從圖中可以看出,兩個方案在1 s 到3 s 的錯誤率處于上升階段,基本上沒有差別.然而,在3 s到5 s 內(nèi),采用普通哈希算法的服務器集群錯誤率幾乎不變,但采用一致性哈希算法+Ckafka 技術(shù)的錄音服務器的錯誤率顯著降低.5 s 后,兩個方案的錯誤率開始下降,直到錯誤率為0%.因此,可以得出結(jié)論:當集群系統(tǒng)有部分服務器停機時,采用一致性哈希算法和Ckafka 技術(shù)的錄音服務器可以在一定程度上降低集群錯誤率.

      當通話結(jié)束,錄音服務器取時間或集將主叫和被叫通話的語音進行混音,并保存為PCM 格式,隨后立即將語音消息推送至PC/Web 終端.利用通用定時器,記錄從通話結(jié)束開始到PC/Web 終端收到語音消息所用的最大時延,并控制錄音時間相同的通話個數(shù),繪制服務器同時處理通話數(shù)與終端收到推送的最大時延的關(guān)系圖,如圖10所示.由圖分析可得:當通話數(shù)小于150 時,兩種方案基本保持一致,當通話數(shù)大于150 時,差距開始拉大,并且隨著通話數(shù)的增多,差距越來越大.當通話數(shù)達到350 時,基于一致性哈希算法和Ckafka技術(shù)的錄音服務器的最大時延為600 多毫秒,而另一種方案的最大時延已經(jīng)遠超過1 s,實時性得不到保證.通過以上分析,再結(jié)合圖7錄音請求數(shù)和響應時間的關(guān)系,可以得出結(jié)論:相比于傳統(tǒng)電話終端錄音的推送慢,查找難,不便捷的缺點,本系統(tǒng)在一定通話數(shù)下的響應、處理、推送時間可以控制在1 s 以內(nèi),突顯出其實時性強的特點,又因為是集中式錄音,不存在終端修改錄音的情況,其安全性也得到了保障.

      圖9 服務器發(fā)生錯誤持續(xù)時間與錯誤率關(guān)系

      圖10 同時處理通話數(shù)與最大時延的關(guān)系

      4 結(jié)論與展望

      本文通過分析電力IMS 交換網(wǎng)中電話終端的實時錄音業(yè)務需求,借助基于IMS 核心交換機的端口鏡像技術(shù)、一致性哈希算法和Ckafka 高性能數(shù)據(jù)緩存技術(shù),設計出一種基于電力IMS 交換網(wǎng)的即時錄音系統(tǒng).該即時錄音系統(tǒng)為旁路系統(tǒng),實現(xiàn)靜默錄音,不會對生產(chǎn)系統(tǒng)產(chǎn)生影響,可以為電力IMS 交換網(wǎng)的IP 終端、POTS 終端及軟件終端(PC,Web)等各類終端提供即時、無差異的錄音服務[17],并通過系統(tǒng)后臺將錄音記錄即時推送至軟件終端,以便IMS 終端用戶隨時查閱錄音.文章最后,將基于一致性哈希算法和Ckafka 技術(shù)的服務器與基于普通哈希算法的服務器就響應時間、吞吐量、容錯能力和推送的最大時延這四項指標對其進行比較,分析得出,本文設計的錄音服務器具有高并發(fā)的數(shù)據(jù)處理能力,高吞吐量,響應時間短,容錯力和實時性強并能實現(xiàn)負載均衡.此外本文的算法還可用于大規(guī)模分布式服務器的查找,分布式存儲等領域[18].

      猜你喜歡
      哈希通話錄音
      Listen and Paint, etc.
      Funny Phonics
      《戊戌元日與友人通話》
      中華詩詞(2018年5期)2018-11-22 06:46:08
      Colorful Seasons多彩四季
      A New Term
      低成本視頻通話APP
      基于OpenCV與均值哈希算法的人臉相似識別系統(tǒng)
      基于維度分解的哈希多維快速流分類算法
      計算機工程(2015年8期)2015-07-03 12:20:04
      2013年11月通信業(yè)主要指標完成情況(一)
      電信科學(2014年1期)2014-09-29 04:48:34
      基于同態(tài)哈希函數(shù)的云數(shù)據(jù)完整性驗證算法
      計算機工程(2014年6期)2014-02-28 01:25:40
      渝北区| 富源县| 舒兰市| 遂平县| 二手房| 乐陵市| 勐海县| 炉霍县| 株洲市| 万载县| 定安县| 延边| 静宁县| 申扎县| 尼勒克县| 泸定县| 乐至县| 子洲县| 万盛区| 岳阳市| 博野县| 万年县| 东安县| 滦南县| 瓦房店市| 克拉玛依市| 旅游| 天峻县| 奉贤区| 水城县| 沧源| 寿阳县| 阳信县| 通海县| 孙吴县| 新郑市| 新源县| 博湖县| 塘沽区| 左云县| 柯坪县|