跨平臺CTIClient控制系統(tǒng)設計思路及實踐
陳豐玉 2005/10/09
1.基本思想:
由于CTI中間件產品的基本功能都大同小異,但是目前提供CTI中間件產品的廠商卻很多。集成商需要針對不同的用戶,不同的廠商重復開發(fā)大量的功能類似的集成產品,且集成后的所謂產品復用度很低。針對一個用戶、一個項目開發(fā)出來的產品很難在其它項目上直接使用,導致集成商的重復開發(fā)。
本文嘗試針對不同的廠商、不同的用戶,提供相對統(tǒng)一的集成方法。基本思想如下:
將CTIClient控制系統(tǒng)劃分為三個層次:
- 控件封裝層;
控件封裝層要根據不同的廠商提供的CTIClient產品進行封裝,形成一組接口統(tǒng)一的控件產品,供系統(tǒng)控制層調用。下面在"控件封裝層功能實現(xiàn)"部分會詳細說明該部分的接口要求。
- 系統(tǒng)控制層;
系統(tǒng)控制層主要完成座席軟電話系統(tǒng)中座席操作界面與控件之間的交互。這種交互有兩種,一種是界面向控件發(fā)送方法調用請求;一種是控件向界面觸發(fā)事件。下面在"系統(tǒng)控制層功能實現(xiàn)"
部分會詳細說明該部分的功能實現(xiàn)。
- 界面展現(xiàn)層;
界面展現(xiàn)層主要完成最終用戶界面的展現(xiàn)部分的處理。根據不同的用戶,該部分可以有很大的不同。該部分的開發(fā)工作量只是一個頁面而已,工作量非常小。
2.設計詳細說明:
2.1. 控件封裝層功能實現(xiàn);
該層主要根據設計好的接口在一個具體的平臺上實現(xiàn)對CTIClient功能的控制封裝。主要有以下幾類功能接口:
下面分別詳細說明:
2.1.1. 屬性接口:
屬性接口可分為兩類:
- 服務器相關的屬性:
- CTI ServerIP地址;
- CTI Server服務端口號;
- 座席相關的屬性:
屬性的賦值在控件載入時進行,即在控件所在的頁面的onload事件中進行。
2.1.2. 方法接口:
- 聯(lián)接類方法
- 聯(lián)接服務器
- 斷開與服務器的聯(lián)接
- 座席狀態(tài)類方法
- 簽入
- 簽出
- 就緒
- 未就緒
- 工作就緒
- 工作未就緒
- 獲取最新狀態(tài)代碼
- 呼叫處理類方法
- 摘機
- 掛機
- 候機
- 復機
- 轉接
- 單步轉接
- 會議
- 單步會議
- 咨詢(求助)
- 恢復
- 撥號
- 話后處理
- 管理員相關方法
- 監(jiān)聽
- 強插
- 強拆
- 強行就緒
- 強行簽出
2.1.3. 事件接口:
- 聯(lián)接類事件
- 與服務器聯(lián)接成功事件
- 斷開與服務器聯(lián)接事件
- 座席狀態(tài)類事件
- 簽入事件
- 簽出事件
- 就緒事件
- 未就緒事件
- 座席狀態(tài)變化事件
- 呼叫處理類事件
- 震鈴事件
- 呼叫建立事件
- 通話事件
- 候機事件
- 復機事件
- 掛機事件
- 話后處理事件
- 電話轉接事件
- 電話會議事件
- 咨詢成功事件
- 咨詢恢復成功事件
- 撥號事件
2.2.系統(tǒng)控制層功能實現(xiàn);
系統(tǒng)控制層主要實現(xiàn)控件與頁面之間的交互控制。主要有以下幾類:
2.2.1. 向控件發(fā)送方法調用請求;
在頁面載入、頁面關閉和用戶點擊頁面上相關的按鈕時,向控件發(fā)送相應的方法調用。如頁面載入時,給控件的聯(lián)接屬性賦值并調用聯(lián)接方法;點擊就緒按鈕時調用就緒方法等。詳細說明如下:
- 鏈接服務器的控制方法:
在頁面載入時調用。首先給控件相關屬性賦值(CTI ServerIP地址、CTI Server服務端口號),然后調用"聯(lián)接服務器"方法;
- 簽入的控制方法:
在用戶點擊"簽入"按鈕時調用。使當前按鈕失效,調用控件的"簽入"方法,記錄相關日志;該方法調用成功后,系統(tǒng)會收到"簽入事件"
- 就緒的控制方法:
在用戶點擊"就緒"按鈕時調用。使當前按鈕失效,調用控件的"就緒"方法,記錄相關日志;該方法調用成功后,系統(tǒng)會收到"就緒事件"
- 未就緒的控制方法:
在用戶點擊"未就緒"按鈕時調用。使當前按鈕失效,調用控件的"未就緒"方法,記錄相關日志;該方法調用成功后,系統(tǒng)會收到"未就緒事件"
- 簽出的控制方法:
在用戶點擊"簽出"按鈕時調用。使當前按鈕失效,調用控件的"簽出"方法,記錄相關日志,關閉主窗口。
- 應答
座席來電時,系統(tǒng)會收到了"震鈴"事件,在震鈴事件的控制邏輯中會點亮"應答" 按鈕,在用戶點擊"應答"按鈕時調用本處理過程。使當前按鈕失效,調用控件的"應答"方法,記錄相關日志;該方法調用成功后,系統(tǒng)會收到"通話事件"。
- 掛機
座席應答成功后,系統(tǒng)會收到了"通話事件",在通話事件的控制邏輯中會點亮"掛機" 按鈕,在用戶點擊"掛機"按鈕時調用本處理過程。使當前按鈕失效,調用控件的"掛機"方法,記錄相關日志;該方法調用成功后,系統(tǒng)會收到"座席狀態(tài)變化事件"。
- 候機
座席應答成功后,系統(tǒng)會收到了"通話事件",在通話事件的控制邏輯中會點亮"候機" 按鈕,在用戶點擊"候機"按鈕時調用本處理過程。使當前按鈕失效,調用控件的"候機"方法,記錄相關日志;該方法調用成功后,系統(tǒng)會收到"候機事件"。
- 復機
座席候機成功后,系統(tǒng)會收到了"候機事件",在候機事件的控制邏輯中會點亮"復機" 按鈕,在用戶點擊"復機"按鈕時調用本處理過程。使當前按鈕失效,調用控件的"復機"方法,記錄相關日志;該方法調用成功后,系統(tǒng)會收到"座席狀態(tài)變化事件"。
- 轉接
座席應答成功后,系統(tǒng)會收到了"通話事件",在通話事件的控制邏輯中會點亮"轉接" 按鈕,在用戶點擊"轉接"按鈕時,系統(tǒng)打開轉接對話框,輸入目標號碼后,確定,調用本處理過程。使當前按鈕失效,調用控件的"轉接"方法,記錄相關日志;該方法調用成功后,系統(tǒng)會收到"電話轉接事件"。
- 會議
座席應答成功或外撥成功后,系統(tǒng)會收到了"通話事件",在通話事件的控制邏輯中會點亮"會議" 按鈕,在用戶點擊"會議"按鈕時,系統(tǒng)打開會議對話框,輸入目標號碼后,確定,調用本處理過程。使當前按鈕失效,調用控件的"會議"方法,記錄相關日志;該方法調用成功后,系統(tǒng)會收到"電話會議事件"。
- 外撥
座席處于就緒狀態(tài)或簽入未就緒狀態(tài)下或候機狀態(tài)下,可以進行外撥,在用戶點擊"外撥"按鈕時,系統(tǒng)打開外撥對話框,輸入目標號碼后,確定,調用本處理過程。使當前按鈕失效,調用控件的"撥號"方法,記錄相關日志;該方法調用成功后,系統(tǒng)會收到"通話事件"。
- 內線
座席處于就緒狀態(tài)或簽入未就緒狀態(tài)下或候機狀態(tài)下,可以進行內線,在用戶點擊"內線"按鈕時,系統(tǒng)打開內線對話框,選擇目標座席后,確定,調用本處理過程。使當前按鈕失效,調用控件的"撥號"方法,記錄相關日志;該方法調用成功后,系統(tǒng)會收到"通話事件"。
- 話后處理
座席處于通話狀態(tài)時,點亮"話后處理"按鈕,在用戶點擊"話后處理"按鈕時,調用本處理過程。使當前按鈕失效,調用控件的"話后處理"方法,記錄相關日志;該方法調用成功后,系統(tǒng)在電話終止時收到"話后處理事件"。
- 臨時簽退
座席處于未就緒狀態(tài)時,點亮"臨時簽退"按鈕,在用戶點擊"臨時簽退"按鈕時,調用本處理過程。使當前按鈕失效,調用控件的"簽出"方法,記錄相關日志;該方法調用成功后,系統(tǒng)會收到"簽出事件"。
2.2.2. 控件的事件處理;
系統(tǒng)聯(lián)接情況發(fā)生變化、座席狀態(tài)發(fā)生變化、呼叫狀態(tài)或信息發(fā)生變化時,CTIServer會通過控件觸發(fā)相關的事件。該部分完成對各個事件的處理方法的調用。
- 與服務器聯(lián)接成功事件
在該事件中,點亮"簽入"按鈕。此時座席只能做簽入操作。
- 斷開與服務器聯(lián)接事件
在該事件中,使所有按鈕失效。此時座席不能做任何操作。
- 簽入事件
在該事件中,點亮"就緒"、"簽出"、"臨時簽退"、"外撥"、"內線"按鈕。此時座席可以做相關操作。
- 簽出事件
在該事件中,使所有按鈕失效,可以考慮關閉主窗口。
- 就緒事件
在該事件中,點亮"未就緒"、"外撥"、"內線"按鈕。此時座席可以做相關操作。
- 未就緒事件
在該事件中,點亮"就緒"、"簽出"、"臨時簽退"、"外撥"、"內線"按鈕。此時座席可以做相關操作。
- 座席狀態(tài)變化事件
在該事件中,根據座席最新的狀態(tài)碼,點亮相關的狀態(tài)按鈕。
- 震鈴事件
座席來電時,觸發(fā)該事件。在該事件中,首先使所有按鈕失效,點亮"應答" 按鈕,此時座席只能做應答操作。
- 呼叫建立事件
呼叫到達時或外撥開始時觸發(fā)該事件。在該事件中,可以做一些呼叫開始的信息處理。
- 通話事件
在來電應答或外撥接通時觸發(fā)該事件。在該事件中,點亮"掛機"、"轉接"、"會議"、"候機"、"求助"等按鈕。此時座席可以做相關操作。
- 候機事件
在座席候機成功時觸發(fā)該事件。在該事件中,點亮"復機"、"外撥"、"內線"等按鈕。此時座席可以做相關操作。
- 復機事件
在座席復機成功時觸發(fā)該事件。在該事件中,點亮與通話事件相同的按鈕。此時座席可以做相關操作。
- 掛機事件
在客戶掛機或座席掛機成功時觸發(fā)該事件。在該事件中,處理呼叫結束相關的事情,并回到"就緒"或"未就緒"狀態(tài)。
- 話后處理事件
在座席與客戶通話期間,座席點擊了"話后處理"按鈕,該通話結束后,系統(tǒng)會收到"話后處理"事件,在該事件中,首先使所有按鈕失效,同時點亮"就緒"、"未就緒"按鈕,座席可以執(zhí)行相關操作,結束話后處理狀態(tài),也可以等待話后處理時間到達后,自動結束話后處理狀態(tài)。
- 電話轉接事件
在座席成功發(fā)起轉接操作或接收到轉接到達電話時,觸發(fā)該事件,系統(tǒng)可以根據兩種情況分別進行處理。
- 電話會議事件
在座席成功發(fā)起會議操作或接收到會議到達電話時,觸發(fā)該事件,系統(tǒng)可以根據兩種情況分別進行處理。
- 咨詢成功事件
在座席成功發(fā)起求助操作時,觸發(fā)該事件。
- 咨詢恢復成功事件
座席在求助狀態(tài)下,成功進行"恢復"操作時,觸發(fā)該事件。
- 撥號事件
座席在發(fā)起外撥或內線電話操作時,觸發(fā)該事件。
2.3. 界面展現(xiàn)層功能實現(xiàn);
界面展現(xiàn)層主要實現(xiàn)界面頁面的顯示并負責完成對控制層的調用。該部分的界面如下圖所示:

該部分的開發(fā)主要有以下內容:
- 頁面及風格開發(fā);
這是不同的用戶個性化要求最多的地方。針對不同的最終用戶可以開發(fā)不同的頁面。
- 對控制層的調用;
對控制層的調用主要在頁面載入、頁面關閉和用戶點擊頁面上的按鈕時發(fā)生。該部分只要在相關頁面事件中對控制層提供的不同的方法進行調用即可,與最終用戶的界面需求和不同廠商提供的產品沒有關系。
3.優(yōu)點介紹
按照本設計思想,針對不同的廠商提供的不同的CTI產品,只需要提供基本的控件層的封裝即可(控件開發(fā));針對不同的用戶,只需要提供不同的展現(xiàn)層的實現(xiàn)即可(頁面開發(fā))。對系統(tǒng)中最復雜的控制層功能實現(xiàn)成功實現(xiàn)了剝離,從而實現(xiàn)了功能的復用,并能夠靈活的滿足不同用戶的要求。
按照本設計思想進行"CTIClient控制系統(tǒng)"的開發(fā),可以極大的提高開發(fā)效率,非常容易的將系統(tǒng)應用到不同的廠商提供的產品平臺上,非常容易的滿足不同客戶對展現(xiàn)層不同風格的個性需求;可以極大的降低系統(tǒng)后期維護的成本(頁面風格的修改,不會影響到控件功能的實現(xiàn)和控制層腳本的調用),從而為公司節(jié)省可貴的人力資源。
按照本設計思路設計開發(fā)的軟電話產品已經成功的在北京農行上線使用。
新晨科技供稿 CTI論壇編輯
相關鏈接:
木兰县|
阜平县|
时尚|
灵丘县|
南岸区|
林西县|
邵东县|
凤阳县|
平南县|
万州区|
柞水县|
山东省|
林芝县|
宣化县|
姜堰市|
洱源县|
长泰县|
德保县|
尼木县|
福清市|
滦平县|
平罗县|
阿城市|
永新县|
昭通市|
拜城县|
怀化市|
含山县|
石渠县|
蓝田县|
双桥区|
巴林左旗|
高碑店市|
恩平市|
上高县|
桐梓县|
张家界市|
江津市|
沙坪坝区|
石景山区|
堆龙德庆县|