姜瑜林 顏旭東 殷漢
摘要:本文闡述了國(guó)網(wǎng)江蘇省電力有限公司丹陽市供電分公司在全省行政電話割接到IMS平臺(tái)后, 為滿足自身的錄音業(yè)務(wù)需求,設(shè)計(jì)了一套統(tǒng)一電話錄音系統(tǒng)。該系統(tǒng)實(shí)現(xiàn)了IMS平臺(tái)下IP和模擬錄音系統(tǒng)同一平臺(tái)集中管理的功能。本文對(duì)IMS統(tǒng)一電話錄音系統(tǒng)的設(shè)計(jì)思想和技術(shù)方案進(jìn)行了詳細(xì)論述。
關(guān)鍵詞:電力、IMS系統(tǒng)、錄音
一、引言
隨著通信技術(shù)的發(fā)展,用戶需求日新月異,傳統(tǒng)的電話業(yè)務(wù)也從傳統(tǒng)的單一話音需求向語音、視頻、數(shù)據(jù)等多媒體業(yè)務(wù)需求方面發(fā)展。伴隨著用戶需求的變化,新的技術(shù)也得到了發(fā)展和推廣,從技術(shù)發(fā)展趨勢(shì)來看,IMS技術(shù)已成為業(yè)界公認(rèn)的下一代網(wǎng)絡(luò)核心技術(shù),IMS體系在技術(shù)上已經(jīng)成熟。國(guó)家電網(wǎng)公司行政交換網(wǎng)絡(luò)正在由傳統(tǒng)的程控交換技術(shù)向IMS技術(shù)方向演進(jìn)。隨著江蘇省IMS行政交換核心網(wǎng)絡(luò)部署完成,鎮(zhèn)江供電公司的IMS行政電話已全部割接到省公司IMS平臺(tái),割接前行政電話錄音通過模擬線路并線的方式實(shí)現(xiàn),由于割接到IMS后電話的接入方式變?yōu)榧僆P話機(jī)接入或IAD+POST的形式接入,原有的模擬錄音系統(tǒng)無法適應(yīng)新系統(tǒng)下的業(yè)務(wù)需求,需要研究一套能夠同時(shí)支持模擬電話和IP電話并能統(tǒng)一管理的錄音系統(tǒng),實(shí)現(xiàn)單套硬件平臺(tái)下IP錄音與模擬錄音的整合,簡(jiǎn)化部署,節(jié)約投資,降低設(shè)備管理難度,保障電網(wǎng)安全。
二、IMS的統(tǒng)一電話錄音系統(tǒng)實(shí)現(xiàn)
由于目前用戶終端接入方式即有純IP話機(jī)也有模擬話機(jī),IP話機(jī)通過網(wǎng)線與IMS系統(tǒng)的網(wǎng)絡(luò)交換機(jī)直連,而模擬話機(jī)通過傳統(tǒng)的電話線與IAD接入,因此需要把兩種接入方式下的電話錄音功能整合到一套軟件及硬件中來實(shí)現(xiàn)。
2.1 IAD下模擬電話錄音實(shí)現(xiàn)
對(duì)于接入IAD的模擬話機(jī),如果需要對(duì)某個(gè)電話的所有通話記錄全程錄音,那么采取傳統(tǒng)的并線模擬錄音方式更合適,因?yàn)橥粋€(gè)IAD下的用戶相互間撥打電話,通常媒體流不經(jīng)過網(wǎng)絡(luò)交換機(jī)的,因此通過網(wǎng)絡(luò)抓包的方式達(dá)不到錄音的目的。
IAD下模擬話機(jī)錄音采用錄音板卡加錄音軟件來實(shí)現(xiàn),系統(tǒng)支持壓控、鍵控、聲控和手動(dòng)控制四種錄音啟動(dòng)方式,以適用不同的應(yīng)用場(chǎng)合。
2.2 IP話機(jī)錄音的實(shí)現(xiàn)
根據(jù)現(xiàn)場(chǎng)部署情況,IP話機(jī)通過網(wǎng)線與MIS網(wǎng)交換機(jī)直連。其工作原理是通過語音壓縮算法對(duì)語音信號(hào)進(jìn)行壓縮編碼處理,然后把這些語音數(shù)據(jù)按TCP/IP標(biāo)準(zhǔn)進(jìn)行打包,經(jīng)過網(wǎng)絡(luò)把數(shù)據(jù)包發(fā)送到接收地;接收端把這些語音數(shù)據(jù)包串起來,經(jīng)過解碼解壓縮處理后恢復(fù)成原來的語音信號(hào),從而達(dá)到由網(wǎng)絡(luò)傳送語音的目的。由此可見,可以通過網(wǎng)絡(luò)抓包的方式來實(shí)現(xiàn)IP話機(jī)的錄音,也就是說IP話機(jī)的錄音可以用純軟件的方式來實(shí)現(xiàn),軟件設(shè)計(jì)以服務(wù)的方式在后臺(tái)運(yùn)行,通過網(wǎng)絡(luò)鏡像監(jiān)聽方式完成數(shù)據(jù)包的捕獲、解析、形成錄音文件,最終通過與模擬電話的錄音軟件管理平臺(tái)的交互來完成IP話機(jī)錄音記錄的存儲(chǔ)、查詢和管理的功能,實(shí)現(xiàn)單套軟硬件平臺(tái)下IP錄音與模擬錄音的完美整合。
要實(shí)現(xiàn)以上這個(gè)功能,就要做到以下幾點(diǎn):
(1)抓包
在局域網(wǎng)中捕獲數(shù)據(jù)包主要有兩種方式:利用以太網(wǎng)的廣播特性或者利用交換機(jī)的端口鏡像功能。本次研究采用的是后者,其網(wǎng)絡(luò)結(jié)構(gòu)如下圖:
這里將以太網(wǎng)交換機(jī)所有其他端口的數(shù)據(jù)鏡像給端口 A,使得流過此網(wǎng)交換機(jī)的數(shù)據(jù)包同時(shí)被轉(zhuǎn)發(fā)給了端口A,也就是接在端口A的錄音服務(wù)器可以監(jiān)聽到網(wǎng)絡(luò)交換機(jī)下IP話機(jī)通話的所有相關(guān)數(shù)據(jù)包了。
錄音服務(wù)器后臺(tái)運(yùn)行的錄音服務(wù)軟件通過服務(wù)器上的網(wǎng)卡與鏡像端口A聯(lián)網(wǎng),一般情況下網(wǎng)卡是工作在非混雜模式,這時(shí)網(wǎng)卡只接收寫有自己 MAC 地址的數(shù)據(jù)幀。所以還需要設(shè)置網(wǎng)卡的工作模式為混雜模式,這樣流經(jīng)網(wǎng)卡的所有數(shù)據(jù)包都會(huì)被錄音服務(wù)器收到,也就實(shí)現(xiàn)了抓到所有語音通信相關(guān)的數(shù)據(jù)包。
(2)解析
完成抓包后就要對(duì)數(shù)據(jù)包進(jìn)行分析和處理,在處理這些數(shù)據(jù)包前,需要先過濾掉無用的包,只保留信令包和語音包進(jìn)行處理,對(duì)信令包和語音包處理程序?qū)⒉捎枚嗑€程的方式進(jìn)行實(shí)時(shí)處理。
首先分析信令包,IP 電話信令控制協(xié)議主要包括H.323系列協(xié)議和SIP系列協(xié)議,從信令協(xié)議的出發(fā)點(diǎn)來看,H.323試圖把IP電話當(dāng)作是眾所周知的傳統(tǒng)電話,只是傳輸方式發(fā)生了改變,由電路交換變成了分組交談。SIP協(xié)議利用 RTP作為媒體傳輸?shù)膮f(xié)議。SIP協(xié)議具有簡(jiǎn)單、獨(dú)立、擴(kuò)展性好等諸多好的特性,因此越來越多的IP電話采用SIP協(xié)議,本系統(tǒng)便是針對(duì)的SIP信令。通過對(duì)SIP 消息進(jìn)行解析,從而監(jiān)聽到整個(gè)呼叫過程,包括呼叫建立、通話、呼叫結(jié)束等,并結(jié)合從SIP消息中解析出的SDP消息得到語言通信的相關(guān)信息,從而控制對(duì)語音數(shù)據(jù)包的捕獲, 并最終將捕獲到的語音數(shù)據(jù)包形成聲音文件,實(shí)現(xiàn)錄音功能。
后臺(tái)服務(wù)中的sip消息處理線程不斷從sip消息緩存隊(duì)列中取sip消息包,然后進(jìn)行sip消息路由、sip消息解析和sip消息處理。通過sip解析,只要解析出具有相同call_id(呼叫ID是由本地設(shè)備生成的全局唯一值,每次呼叫該值唯一不變)的 INVITE、200 OK、ACK這三個(gè)消息先后出現(xiàn)時(shí),表示雙方通話已經(jīng)開始了,這時(shí)就要向語音解析線程發(fā)送啟動(dòng)錄音消息進(jìn)行錄音。隨著通話過程進(jìn)行,sip 消息處理線程也在不停的工作,當(dāng)解析出具有相同call_id的 BYE、200 OK這兩個(gè)消息后,表示雙方通話已經(jīng)結(jié)束了,這時(shí)就要向語音解析線程發(fā)送停止錄音消息,完成一次完整的錄音過程。
(3)形成錄音文件
語音包處理線程在收到錄音消息后,便會(huì)啟動(dòng)處理程序不斷的從所屬語音緩存隊(duì)列中取RTP語音數(shù)據(jù)包,然后形成聲音文件。
雙方通話內(nèi)容的RTP語音數(shù)據(jù)包分為forward—RTP和everseRTP,RTP數(shù)據(jù)的處理總體上分為三個(gè)部分:排序處理、補(bǔ)包處理、音頻格式轉(zhuǎn)換。
排序處理:由于網(wǎng)絡(luò)傳輸存在一定的不可靠性,在數(shù)據(jù)傳輸?shù)倪^程中有可能會(huì)導(dǎo)致數(shù)據(jù)包到達(dá)順序的局部混亂,通過排序?qū)⒑芎玫亟鉀Q這個(gè)問題。
補(bǔ)包處理:網(wǎng)絡(luò)傳輸?shù)牟豢煽啃赃€會(huì)導(dǎo)致數(shù)據(jù)包的丟失,加上通話靜音期后,采用停發(fā)語音包的方法以減少語音數(shù)據(jù)傳輸所占用的帶寬,補(bǔ)包處理主要是為了解決這種更為普遍的正常缺失情況。如果不進(jìn)行補(bǔ)包處理,通話過程中靜音期的停頓在恢復(fù)出語音后將無法體現(xiàn),勢(shì)必嚴(yán)重影響語音還原的效果,還會(huì)導(dǎo)致兩路音頻進(jìn)行合路后聲音的嚴(yán)重不同步。
音頻格式轉(zhuǎn)換:音頻解碼過程采用于RTP頭中負(fù)載類型相一致的解碼器對(duì)RTP數(shù)據(jù)進(jìn)行解碼,生成l6位的原始PCM數(shù)據(jù),然后通過轉(zhuǎn)換程序?qū)CM格式轉(zhuǎn)成WAV格式并保存到錄音文件中。
(4)與錄音軟件管理平臺(tái)交互
Sip信令分析線程在收到具有相同call_id的 100 Trying、180 Ringing這兩個(gè)消息先后出現(xiàn)時(shí),需要向錄音軟件管理平臺(tái)發(fā)送振鈴消息和主叫被叫信息,錄音軟件管理平臺(tái)收到消息后,在通道監(jiān)控界面中找到相應(yīng)的通道,然后將該通道顯示振鈴狀態(tài)并顯示出主叫、被叫信息。同理,在收到啟動(dòng)、停止錄音的消息時(shí)錄音軟件管理平臺(tái)也會(huì)將改變相應(yīng)的通道監(jiān)控界面,當(dāng)錄音完成后錄音軟件管理平臺(tái)會(huì)將錄音記錄和錄音文件檢索路徑保存在數(shù)據(jù)庫中,最終實(shí)現(xiàn)IP錄音和模擬錄音管理平臺(tái)的整合。
三、結(jié)束語
本文是對(duì)IMS平臺(tái)下的SIP協(xié)議進(jìn)行深入研究,通過網(wǎng)絡(luò)抓包、過濾、解包完成信令和媒體流的解析,并提出模擬錄音平臺(tái)和IP錄音平臺(tái)的整合方案,最終實(shí)現(xiàn)系統(tǒng)靈活部署、靈活擴(kuò)展、一機(jī)多能。
參考文獻(xiàn)
1 孫衛(wèi)琴.Tomcat與Java Web開發(fā)技術(shù)詳解.電子工業(yè)出版社,2009.
2李剛.輕量級(jí)Java EE企業(yè)應(yīng)用實(shí)戰(zhàn).電子工業(yè)出版社,2013.
3 Baron Schwarts,PeterZaitsev,VadimTkachenko 著 寧海元,周振興,彭立勛,劉輝譯.高性能MySQL.電子工業(yè)出版社,2013.
4 董昕.電力企業(yè)統(tǒng)一生產(chǎn)管理系統(tǒng)基礎(chǔ)架構(gòu).計(jì)算機(jī)應(yīng)用與軟件,2009.
5 強(qiáng)磊,饒少陽,陳卉等.IMS核心原理與應(yīng)用.人民郵電出版社,2008.
6 (芬)波克申科,(芬)梅耶 編著 望育梅,周勝 譯. IMS:IP多媒體子系統(tǒng)概念與服務(wù)(原書第3版).機(jī)械工業(yè)出版社,2011.
7 鄭人杰,馬素霞,殷人昆. 軟件工程概論.機(jī)械工業(yè)出版社,2010.