1引言
在艦船等一些應(yīng)用領(lǐng)域,通常配置有諸如指揮調(diào)度、自動電話等功能定位不同的電話系統(tǒng),指揮調(diào)度系統(tǒng)因傳輸實時控制信息的需要一般采用ISDN電路交換體制,自動電話系統(tǒng)因經(jīng)濟(jì)性考量一般采用基于SIP協(xié)議的VoIP體制。由于這些系統(tǒng)內(nèi)用戶眾多、等級不一、需求復(fù)雜和手段多樣等特點,現(xiàn)有電話轉(zhuǎn)接設(shè)備已無法滿足應(yīng)用需求,亟需設(shè)計一套綜合話務(wù)臺,實現(xiàn)跨異構(gòu)電話系統(tǒng)轉(zhuǎn)接,依據(jù)用戶等級實現(xiàn)定制服務(wù),具備話路接續(xù)、話路監(jiān)視、代理呼叫和秘書服務(wù)等功能。
2硬件設(shè)計
綜合話務(wù)臺硬件結(jié)構(gòu)依據(jù)模塊化的設(shè)計思路,以具備CPCI接口的工控機(jī)為基礎(chǔ),設(shè)計相應(yīng)的CPCI功能板卡。為了給話務(wù)員提供統(tǒng)一、靈活的話音通信功能,系統(tǒng)采用軟電話設(shè)計模式,通過綜合話務(wù)臺的操作界面發(fā)送信令分別控制ISDN交換設(shè)備、VoIP交換設(shè)備實現(xiàn)對話路的接通、掛斷、呼叫等操作,從而替代傳統(tǒng)話機(jī)的摘機(jī)、掛機(jī)、撥號等操作,綜合話務(wù)臺僅需提供一個送/受話器作為話音通信工具,即可實現(xiàn)分別與ISDN、VoIP用戶通話。綜合話務(wù)臺硬件主要由工控機(jī)、音頻控制卡、ISDN接口卡、VoIP接口卡和送受話器組成,其硬件結(jié)構(gòu)如圖1所示。
ISDN接口卡用于實現(xiàn)與ISDN交換設(shè)備連接,實現(xiàn)B信道與D信道的分離,將B信道的語音轉(zhuǎn)換成四線音頻信號送入音頻控制卡,將D信道信息封裝成以太網(wǎng)數(shù)據(jù)包通過CPCI接口送入主機(jī)以太網(wǎng)接口進(jìn)行處理;同時提供二線PTT信號接到音頻控制卡。
VoIP接口卡與VoIP交換設(shè)備以以太網(wǎng)形式連接,控制信息通過CPCI接口送入主機(jī)CPU進(jìn)行處理,四線音頻信號送入音頻控制卡。
音頻控制卡用于實現(xiàn)與送/受話器的連接,并控制ISDN接口卡、VoIP接口卡輸入的四線音頻信號與送/受話器的連接;當(dāng)ISDN音頻通路選通時,可提供PTT信號通路。
3軟件設(shè)計
綜合話務(wù)臺軟件基于分層、模塊化的設(shè)計方法,其體系結(jié)構(gòu)分為四層,自下而上依次為:傳輸接口層、協(xié)議層、控制層、業(yè)務(wù)層,實現(xiàn)控制與業(yè)務(wù)分離;各層根據(jù)要完成的功能又可劃分為多個功能模塊。其軟件結(jié)構(gòu)模型如圖2所示。
總體上,綜合話務(wù)臺軟件主要由話務(wù)處理模塊、數(shù)據(jù)庫操作維護(hù)模塊、通信控制模塊和人機(jī)交互模塊組成。
3.1話務(wù)處理模塊
話務(wù)處理模塊主要處理ISDN指揮調(diào)度電話和自動電話用戶以及外線電話用戶的查詢、轉(zhuǎn)接業(yè)務(wù)等請求,以實現(xiàn)話務(wù)轉(zhuǎn)接、查詢、呼叫等話務(wù)調(diào)度功能。
指揮調(diào)度電話呼叫綜合話務(wù)臺時,信令通過D通道傳輸;自動電話呼叫綜合話務(wù)臺時,信令通過以太網(wǎng)控制信息傳輸;來話話務(wù)在綜合話務(wù)臺上將指揮調(diào)度電話與自動電話進(jìn)行統(tǒng)一排隊。
3.2數(shù)據(jù)庫操作維護(hù)模塊
數(shù)據(jù)庫操作維護(hù)模塊基于Oracle,采用ADO作為數(shù)據(jù)庫訪問接口,提供基于話務(wù)數(shù)據(jù)庫的登陸、話務(wù)查詢、以及數(shù)據(jù)庫的添加、刪除和修改等功能。
系統(tǒng)在運行過程中需要與數(shù)據(jù)庫連接,獲取電話信息,從而實現(xiàn)排隊、呼叫等功能。為便于系統(tǒng)移植和二次開發(fā),設(shè)計將數(shù)據(jù)庫接口與功能分離,分別在傳輸接口層和業(yè)務(wù)層中設(shè)計了數(shù)據(jù)庫接口單元和數(shù)據(jù)庫管理單元。
數(shù)據(jù)庫接口單元為數(shù)據(jù)庫管理模塊提供了連接數(shù)據(jù)庫的接口,選擇了ADO作為數(shù)據(jù)庫訪問接口。
數(shù)據(jù)庫管理單元將數(shù)據(jù)庫查詢、修改、刪除等功能進(jìn)行封裝,并提供了相應(yīng)的接口函數(shù),方便其它模塊調(diào)用。
3.3通信控制模塊
通信控制模塊主要完成消息的封裝、解析處理,保證消息按照停等機(jī)制、超時重傳機(jī)制進(jìn)行傳輸。通信控制模塊主要包括消息封裝/解封裝單元、傳輸控制單元。
消息封裝/解封裝單元主要根據(jù)呼叫控制協(xié)議中消息格式的定義完成對要發(fā)送的消息進(jìn)行封裝,對接收到的消息進(jìn)行解封裝處理。
傳輸控制單元主要完成消息輸出過程中的停等機(jī)制和超時重傳機(jī)制的控制。
3.4人機(jī)交互模塊
人機(jī)交互模塊主要用于為話務(wù)員提供一個信息顯示直觀,操作簡單方便的人機(jī)交互界面,界面分為四個功能區(qū):呼入電話排隊區(qū)、當(dāng)前處理電話區(qū)、呼入電話狀態(tài)區(qū)和電話查詢區(qū)。在軟件實現(xiàn)上主要包括錄音控制、音量控制、數(shù)據(jù)庫查詢修改、呼入電話排隊顯示、呼入電話控制和指定來電狀態(tài)顯示等單元,各單元功能如下:
(1)錄音控制單元為用戶提供控制錄音功能,包括控制錄音開始、結(jié)束及回放。
(2)音量控制單元為用戶提供控制話音大小功能。
(3)數(shù)據(jù)庫查詢修改單元為用戶提供查詢、修改數(shù)據(jù)庫功能。
(4)呼入電話排隊顯示單元用于顯示呼入電話的個數(shù)及各電話的號碼、狀態(tài)信息。
(5)呼入電話控制單元為用戶提供處理呼入電話的功能,用戶可執(zhí)行的操作包括保持、轉(zhuǎn)接、斷開等操作。
(6)指定來電狀態(tài)顯示單元用于顯示用戶從呼入電話隊列中指定的呼入來電狀態(tài),包括:呼入來電與話務(wù)臺接通、保持、呼入來電與被叫電話接通等狀態(tài)。
3.5呼叫控制協(xié)議
呼叫控制協(xié)議主要用于實現(xiàn)話務(wù)客戶端與ISDN接口卡、VoIP接口卡間的呼叫控制信息的傳輸與解析。信息采用UDP Socket協(xié)議進(jìn)行傳輸,話務(wù)臺軟件通過ISDN接口卡和VoIP接口卡實現(xiàn)對指揮調(diào)度電話和自動電話的話務(wù)控制,考慮到功能與協(xié)議上的一致性,在協(xié)議中,將ISDN接口卡與VoIP接口卡的控制信息處理實體統(tǒng)稱為話務(wù)服務(wù)器,將話務(wù)臺軟件的控制信息處理實體稱之為話務(wù)客戶端,話務(wù)客戶端僅靠控制信息中的類型識別話務(wù)服務(wù)器的類型。
呼叫控制協(xié)議基于消息機(jī)制實現(xiàn)。話務(wù)服務(wù)器在實現(xiàn)呼叫控制操作的同時,向話務(wù)客戶端發(fā)送各類呼叫控制響應(yīng)消息,響應(yīng)消息中包含了與呼叫控制事件相關(guān)的許多重要參數(shù),如電話號碼、設(shè)備類型、操作結(jié)果等信息。話務(wù)客戶端通過分析消息內(nèi)容,就可以對服務(wù)端中處理的電話狀態(tài)有一個全面的了解,并可以對消息中參數(shù)進(jìn)行存儲。需要進(jìn)行呼叫控制時,客戶端讀取需要的電話參數(shù)向服務(wù)端發(fā)送相應(yīng)的呼叫控制消息,從而達(dá)到呼叫控制的目的。
從消息類型上看,消息分為四類:
(1)請求消息。請求消息由話務(wù)客戶端向話務(wù)服務(wù)端發(fā)送,請求某種控制操作。
(2)響應(yīng)消息。響應(yīng)消息由話務(wù)服務(wù)器向話務(wù)客戶端發(fā)送,響應(yīng)話務(wù)客戶端請求結(jié)果。
(3)確認(rèn)消息。表示已收到對端消息,話務(wù)客戶端與話務(wù)服務(wù)器均可發(fā)出。
(4)心跳消息。心跳消息由話務(wù)客戶端向話務(wù)服務(wù)器發(fā)送,表示客戶端在線。
話務(wù)臺軟件發(fā)送的消息包括心跳消息、請求消息和確認(rèn)消息,其中確認(rèn)消息是為實現(xiàn)停等機(jī)制而發(fā)送的,心跳消息是當(dāng)系統(tǒng)工作時定時發(fā)送而無需回復(fù)的消息。為了簡化上層的處理,將確認(rèn)消息和心跳消息的處理在呼叫控制協(xié)議內(nèi)部實現(xiàn),無需向上層提供相應(yīng)的消息處理接口函數(shù)。而對于請求消息類型,呼叫控制協(xié)議模塊向上層提供了相應(yīng)的消息處理接口函數(shù),用于提供相應(yīng)類型的消息格式封裝,并根據(jù)目的設(shè)備類型調(diào)用ISDN接口卡或者VoIP接口卡提供的傳輸接口函數(shù)進(jìn)行發(fā)送。
綜合話務(wù)臺接收的消息包括響應(yīng)消息和確認(rèn)消息。響應(yīng)消息中包含了相關(guān)呼叫控制信息,需要交由上層呼叫控制處理,若收到確認(rèn)消息則表明可以進(jìn)行下一消息的發(fā)送。為了避免消息的處理與接收發(fā)生沖突,系統(tǒng)為通信控制模塊中的消息處理創(chuàng)建了一個線程,并且設(shè)置了接收緩沖區(qū)用于存放網(wǎng)絡(luò)傳輸模塊接收到的消息。當(dāng)消息接收處理線程接收到網(wǎng)絡(luò)傳輸模塊中的消息接收線程發(fā)送來的有消息排隊的消息時,就去接收緩沖區(qū)中取出消息進(jìn)行解析處理,并根據(jù)消息類型進(jìn)行相應(yīng)處理,直到緩沖區(qū)為空。
在消息收發(fā)過程中采用了發(fā)送/確認(rèn)和請求/響應(yīng)的會話模式,也就是當(dāng)客戶端向服務(wù)端發(fā)送請求消息時,服務(wù)端將處理結(jié)果以響應(yīng)消息的形式回復(fù)客戶端。并且,在服務(wù)端接收請求消息和客戶端接收響應(yīng)消息的同時,會對應(yīng)的向?qū)Χ税l(fā)送確認(rèn)消息,形成一個握手會話,保證了消息的一致性和可靠性。需要說明的是心跳消息和確認(rèn)消息本身無需回復(fù)確認(rèn)消息。
4小結(jié)
該系統(tǒng)通過運行驗證后,可方便實現(xiàn)不同系統(tǒng)間的話務(wù)查詢、話務(wù)轉(zhuǎn)接及代理呼叫功能,可實現(xiàn)話務(wù)錄音、播放功能,已應(yīng)用于相關(guān)系統(tǒng)中。