涂繼輝
(長江大學(xué)電子信息學(xué)院,湖北 荊州434023)
楊彬
(鶴壁職業(yè)技術(shù)學(xué)院電子信息工程學(xué)院,河南 鶴壁458030)
呼叫中心系統(tǒng)作為企業(yè)與客戶溝通的渠道,越來越受到人們的關(guān)注和重視?;贏sterisk的呼叫中心系統(tǒng)以其低廉的價格、完善的系統(tǒng)功能和靈活的系統(tǒng)架構(gòu),已經(jīng)成為研究的熱點,并廣泛的應(yīng)用于各個行業(yè)[1-3]。所謂呼叫中心中的彈屏技術(shù)是指當客戶打電話給客服人員時,客服人員的計算機上可以彈出CRM系統(tǒng)中用戶資料的網(wǎng)頁,此功能可以讓客服人員快速的了解來電客戶信息,或者快速的錄入客戶信息,這為客服人員更好的服務(wù)客戶提供了一種重要的幫助。
目前基于Asterisk的彈屏技術(shù)主要利用的是推送模式,即后臺啟動一個進程通過tel net的方式登錄Asterisk,然后輪詢Asterisk通道模塊的狀態(tài),如果發(fā)現(xiàn)有振鈴?fù)ǖ?,把該通道的振鈴信息寫入?shù)據(jù)庫表中。前臺Web頁面通過Ajax模式輪詢數(shù)據(jù)庫,如果發(fā)現(xiàn)數(shù)據(jù)庫有新的振鈴記錄,就向客服發(fā)出彈屏。這種方式不但效率低、可靠性差,也不利于系統(tǒng)的集成。為此,筆者利用Asterisk的模塊化的架構(gòu)思想和URL協(xié)議原理,設(shè)計了一種新的客戶資料彈屏方式。
Asterisk是Digiu m公司贊助開源開發(fā)的,運行在Linux環(huán)境下的軟交換解決方案,是為企業(yè)通信量身定做的 “媒體交換機”[4-6]。
包括會話初始協(xié)議(SIP-Session Initiation Protocol)、H.323(國際電信工業(yè)會的一種標準)、IAX(Inter-Asterisk x-Change)、媒體網(wǎng)關(guān)控制協(xié)議(MGCP-Media Gateway Control Protocol)等其他協(xié)議。
Asterisk可以連接普通電話機、IP電話機和軟電話等多種不同的電話終端,支持多種主流的IP電話協(xié)議的語音網(wǎng)關(guān),提供如語音信箱、會議電話、交互式語音提示和自動電話轉(zhuǎn)接等以前只有昂貴的專業(yè)PBX系統(tǒng)才支持的功能。
Asterisk提供了豐富的底層接口函數(shù)和二次開發(fā)的框架,用戶能很方便在此基礎(chǔ)上進行靈活的二次開發(fā),實現(xiàn)極具個性的軟交換增值業(yè)務(wù)功能。
基于Asterisk的呼叫中心系統(tǒng)的通用架構(gòu)如圖1所示?;贏sterisk開發(fā)的呼叫中心系統(tǒng)存放于公網(wǎng)服務(wù)器中,通過Web頁面進行遠程控制??头藛T的網(wǎng)絡(luò)電話和電腦通過網(wǎng)絡(luò)接入到呼叫中心系統(tǒng)中,用戶方對應(yīng)的PSTN網(wǎng)絡(luò)通過IP網(wǎng)關(guān)接入到呼叫中心系統(tǒng)。
彈屏模塊的流程如圖2所示。服務(wù)端是利用Asterisk的模塊化原則開發(fā)了1個插件模塊嵌入其中,它的核心主要是3個線程:第1個線程接受客戶端發(fā)過來的信息,得到客戶端的座機號碼和員工號以及網(wǎng)絡(luò)的IP地址等;第2個線程通過輪詢Asterisk的通道,得到正在振鈴的客服號碼,利用第1個線程保存的信息向客戶端發(fā)送正在振鈴的客戶號碼;第3個線程主要防止多次彈屏,由于客戶端振鈴會持續(xù)一段時間,因此線程2在輪詢的時候會多次檢測到同一個通道振鈴,因此需要通過線程3防止線程2對同一個客戶端發(fā)送多次彈屏消息。
圖1 基于Asterisk的呼叫中心系統(tǒng)的通用架構(gòu)圖
圖2 彈屏模塊的流程圖
客戶端啟動后會首先向服務(wù)端發(fā)送相關(guān)的信息,然后啟動線程準備接受服務(wù)端發(fā)送來的彈屏消息,向CRM的服務(wù)器發(fā)送URL連接,彈出網(wǎng)頁。為了便于客戶端集成到各種應(yīng)用程序中,筆者采用了將應(yīng)用程序注冊為URL協(xié)議技術(shù)使客戶端可以通過URL被啟動,這樣便于客戶端的集成。
整個彈屏模塊分為服務(wù)端和客戶端2個部分:服務(wù)端設(shè)計成Asterisk動態(tài)模塊,自動加載到Asterisk系統(tǒng)中,主要由3個線程進行處理;客戶端通過VC開發(fā)的托盤小應(yīng)用程序,通過注冊為URL協(xié)議的方式啟動后隱藏在任務(wù)欄中。
Asterisk基于模塊化設(shè)計,多數(shù)模塊都可以在運行時通過動態(tài)模塊加載器加載并初始化,用戶可以根據(jù)實際需要動態(tài)增加相應(yīng)的模塊。彈屏服務(wù)端就是嵌入Asterisk中的一個插件,這樣不僅和Asterisk有很好的耦合度,而且可以方便監(jiān)控Asterisk呼叫通道的狀態(tài)。服務(wù)端模塊主要由接收客戶端注冊線程,輪詢振鈴?fù)ǖ谰€程和防止多次彈屏線程3個線程組成。
1)接收客戶端注冊線程 主要是記錄登錄的客服的位置和屬性信息,即記錄客服的客戶端的IP地址、端口、員工號和分機號。這些信息為后面發(fā)送彈屏消息提供了網(wǎng)絡(luò)位置信息,利用鏈表對這些信息進行管理。
2)輪詢振鈴?fù)ǖ谰€程 主要是輪詢Asterisk所有正在通信的通道,當有振鈴?fù)ǖ罆r,利用振鈴?fù)ǖ乐械谋唤杏脩籼柎a去信息鏈表查找,查找到后,向客戶端發(fā)送彈屏消息。
3)防止多次彈屏線程 主要是防止輪詢振鈴的線程多次對客戶端發(fā)送彈屏消息,因為正在振鈴的通道會保持長時間的振鈴狀態(tài),因此輪詢振鈴線程會多次檢測到同一個通道的振鈴狀態(tài),這樣會多次向客戶端發(fā)送同一個彈屏的消息。為了避免這種現(xiàn)象,筆者在輪詢線程對客戶端發(fā)送了彈屏消息后,記錄這個通道的標識,每次輪詢振鈴?fù)ǖ赖臅r候,如果發(fā)現(xiàn)已經(jīng)有了記錄通道的標識,說明已經(jīng)發(fā)送過消息,此時不發(fā)送消息;如果沒有記錄,說明還沒有發(fā)送消息,那么就發(fā)送消息。防止多次彈屏線程用記錄的通道標識,然后用記錄的通道標識在Asterisk中查找,然后判斷此通道的狀態(tài),如果狀態(tài)是振鈴,那么不作處理;如果此通道為非振鈴的狀態(tài),刪除記錄的通道標識。
彈屏的客戶端是接收服務(wù)端發(fā)送的彈屏消息,然后向CRM系統(tǒng)發(fā)送消息,彈出客戶的Web頁面。為了讓服務(wù)端知道客戶端的位置,每次客戶端啟動時候都會向服務(wù)端注冊,即報告給服務(wù)端客戶端的IP地址和端口。為了便于客戶端集成到Web瀏覽器上,筆者采用了將應(yīng)用程序注冊為URL協(xié)議技術(shù)使客戶端可以通過URL被啟動。應(yīng)用程序注冊為URL協(xié)議技術(shù)也稱為 “異步可插協(xié)議”(Asynchronous Pl uggable Protocols),主要描述如何為一個新的協(xié)議開發(fā)處理程序,即如何調(diào)用另外一個應(yīng)用程序來處理自定義協(xié)議,注冊已經(jīng)存在的應(yīng)用程序為一個URL協(xié)議處理器即可。一旦應(yīng)用程序被成功地啟動,就可以使用命令行參數(shù)來重新找回URL來啟動它。
實現(xiàn)的URL如圖3所示,實現(xiàn)的流程為:實現(xiàn)彈屏客戶端應(yīng)用程序FlashScreen.exe,并記錄下exe所在的全路徑;開始→運行→輸入 “REGEDIT”確定,以啟動 “注冊表編輯器”;找到HKEY_CLASSES_ROOT節(jié)點,右鍵新建項,輸入的協(xié)議名Flash Screen Pr otocol;建立如圖3所示注冊表信息。啟動Flash Screen的URL為:Flash Screen://cr mip=CRM的IP地址 &cr mport=CRM的端口&callcenterip=呼叫中心的IP地址 &callcenterport=呼叫中心的端口 &callnu m=客服的分機號&wor ker no=員工的工號 &ser ver queue=員工分機所在的隊列號 &;關(guān)閉啟動Flash Screen的URL為:Flash Screen://close。
圖3 彈屏客戶端在注冊表信息圖
整個彈屏模塊的消息分為2類,分別是客戶端向服務(wù)端發(fā)送的注冊消息和服務(wù)端向客戶端發(fā)送的彈屏消息??蛻舳说淖韵椋?/p>
測試環(huán)境如圖4所示,2臺PC機和2個固定的IP電話分別對應(yīng)2個客服,分機號碼分別為121和122,座席的工號分別為1001和1002,對應(yīng)的座席隊列是200和201,PC機上裝有如圖5所示的彈屏客戶端,呼叫中心的號碼是8000。3個客戶的電話號碼是6001、6002和6003。當客戶6001打呼叫中心號碼8000時,系統(tǒng)會提示 “自動服務(wù)請按1,人工服務(wù)請按2”。然后二次撥號撥 “2”時,進入座席號碼121,此時座席121的座機響鈴,同時彈出Web頁面,上面顯示如圖6(a)所示出客戶6001的相關(guān)信息。當客戶6002打呼叫中心號碼8000時,經(jīng)過同上的流程,最后彈出的頁面如圖6(b)所示W(wǎng)eb頁面。經(jīng)過測試,證明該模塊不僅具有很好的兼容性,而且性能穩(wěn)定,效率高,能滿足呼叫中心的業(yè)務(wù)需要。
圖4 測試環(huán)境網(wǎng)絡(luò)結(jié)構(gòu)圖
圖5 客戶端軟件啟動示意圖
圖6 彈屏的結(jié)果圖
基于Asterisk的呼叫中心系統(tǒng)上設(shè)計了一種新的客戶資料彈屏模塊。該模塊經(jīng)過測試不僅具有性能穩(wěn)定和效率高的特點,而且便于進行系統(tǒng)的集成,充分滿足了客服人員對客戶資料進行管理和與客戶進行良好溝通的需要,使得客服與客戶之間的交互更加方便和及時。
[1]趙建濤,鄭永靜.基于軟交換平臺Asterisk的電力呼叫中心的設(shè)計與實現(xiàn) [J].電力科學(xué)與工程,2007,23(4):59-61.
[2]潘云良,楊觀賜,周應(yīng)權(quán).基于Asterisk與Open VPN的企業(yè)集團IP分布式呼叫中心 [J].計算機應(yīng)用,2010,30(3):756-760.
[3]譚蓉.基于軟交換技術(shù)的分布式呼叫中心設(shè)計和開發(fā) [D].湖南:湖南大學(xué),2012.
[4]湯卓,凡欒杰.基于Asterisk的VoIP解決方案 [J].計算機系統(tǒng)應(yīng)用,2005(7):79-81,26.
[5]鄧國棟,胡越明,自英彩.基于Asterisk的軟交換運營平臺設(shè)計 [J].計算機工程,2007,23(33):145-147.
[6]張毅,詹艷.基于插件的軟交換實驗系統(tǒng)的研究 [J].計算機工程與設(shè)計,2011,6(32):2159-2162.