當一個用戶132********撥打95311的時候,智能云調(diào)度系統(tǒng)會根據(jù)被叫95311去數(shù)據(jù)庫取出95311的所有配置信息。系統(tǒng)再根據(jù)主叫號碼132********再去數(shù)據(jù)庫找到其所屬的地域,如深圳、廣州、東莞等。系統(tǒng)根據(jù)此地域信息再去找與之匹配的所有呼叫中心,依次比較呼叫中心的服務時間是否包含當前的系統(tǒng)時間,如果包含,那么就確定將通話轉到該呼叫中心。
如此的設計,能確保將呼叫轉到就近的呼叫中心,這樣能確保通話質(zhì)量,節(jié)約用戶的成本。同時,通過比較時間,我們可以選擇服務時間相匹配的呼叫中心,確保通話能合理的分配。
智能云調(diào)度系統(tǒng)是否對每條中繼設有呼叫上限?
智能云調(diào)度系統(tǒng)對每條中繼有呼叫上限限制,此上限值是用戶在后臺配置的,目的是避免一條中繼線路經(jīng)常滿線,如果經(jīng)常滿線的話,很可能影響通話體驗。
當一個invite呼叫請求到達智能云調(diào)度系統(tǒng)后,系統(tǒng)會根據(jù)此sip消息的callid分配一個會話唯一表示uuid,保存到本地內(nèi)存。同時系統(tǒng)會根據(jù)被叫(如95311)去數(shù)據(jù)庫取出相關的數(shù)據(jù),如該呼叫中心的所有中繼線配置,根據(jù)中繼線的權重配置,取出當前權重最大的中繼線路和它的并發(fā)上限,如中繼編號0001,上限999.所有相關的數(shù)據(jù)取出來以后,系統(tǒng)會再發(fā)起一個tcp請求到計數(shù)服務器,將中繼編號和上限值傳給計數(shù)服務器。
計數(shù)服務器收到此請求就會去本地數(shù)據(jù)庫查找該中繼的數(shù)據(jù),如果沒有相應的記錄,那么就增加一條新記錄,并且將其并發(fā)量參數(shù)加一。如果已經(jīng)存在該中繼對應的數(shù)據(jù),那么直接將其并發(fā)量參數(shù)加一,若此發(fā)量參數(shù)已經(jīng)超過并發(fā)上限,那么計數(shù)服務器返回錯誤消息,此消息表示當前中繼已經(jīng)達到上限,資源耗盡。智能云調(diào)度系統(tǒng)收到這個錯誤消息后,并不會因此掛斷通話,而是繼續(xù)選擇下一條可用的中繼線路,再發(fā)起一個tcp請求到計數(shù)服務器,把該中繼的中繼編號和對應的上限值傳到計數(shù)服務器。如果還失敗,那么再繼續(xù)選擇下一條,如此循環(huán),直到計數(shù)服務返回成功的響應為止。如果所有的中繼線路都占用滿了,那么智能云調(diào)度系統(tǒng)會將此通話轉到一個自動代答的放音服務器,該服務器會向用戶播放語音(如“坐席繁忙,請稍后再撥”),確保用戶有很好的心理體驗。智能云調(diào)度系統(tǒng)收到計數(shù)服務器成功的響應后,會記錄當前的中繼編號到本地內(nèi)存,當掛機消息來到的時候,系統(tǒng)會取出該中繼編號。
當一個bye消息請求到達智能云調(diào)度系統(tǒng)后,系統(tǒng)會根據(jù)此sip消息的callid查找到會話唯一表示uuid,根據(jù)此uuid,系統(tǒng)利用此uuid發(fā)起一個tcp請求到計數(shù)服務器,計數(shù)服務器收到此請求后,會去數(shù)據(jù)庫找到與之對應的中繼編號數(shù)據(jù),將該中繼編號的并發(fā)數(shù)據(jù)參數(shù)減一。
那么智能云調(diào)度系統(tǒng)如何保證一個中繼不會重復計數(shù)加一或者重復釋放減一呢?
前面已經(jīng)提到過,智能云調(diào)度系統(tǒng)在收到一個invite呼叫請求的時候,會在內(nèi)存中保存一個會話唯一標識uuid,此標識一直存在知道通話掛斷。智能云調(diào)度系統(tǒng)在發(fā)數(shù)據(jù)給計數(shù)服務器的時候也會帶上此uuid。計數(shù)服務器會針對此uuid和該請求的中繼編號,建立一個鍵值對,如uuid----trunkid,再增加中繼的使用計數(shù)。因為每個會話的uuid都是唯一的,所以相當于每個會話只發(fā)出一個增加計數(shù)的請求,所以也就不存在前面提到的重復計數(shù)的情況。而當智能云調(diào)度收到一個bye的sip消息后,系統(tǒng)會根據(jù)此sip消息的callid查找到會話唯一表示uuid,會將此uuid傳給計數(shù)服務器,計數(shù)服務器收到釋放中繼計數(shù)的請求后,會根據(jù)此uuid和鍵值對uuid----trunkid,找到相應的中繼編號trunkid,然后將該中繼編號的并發(fā)參數(shù)減一,最后釋放鍵值對uuid----trunkid。那么如果下一個同樣的uuid釋放請求到達后,就無法找到相應的鍵值對,也就無法再對該中繼編號的并發(fā)參數(shù)減一,從而達到準確計數(shù)的功能。
智能云調(diào)度系統(tǒng)為何要增加一個自動代答的功能?
試想一下,你如果撥打一個服務熱線,一直沒有任何聲音提示,最后呼叫失敗而掛機,那么你肯定一臉茫然,不知道是這個號碼的問題還是你自己手機的問題。
所以,如果當一個呼叫中心的所有運營商中繼線路都走不通,或者中繼的呼叫量達到上限的時候,智能云調(diào)度系統(tǒng)不會在沒有任何提示的情況下給客戶掛機,而是把該通話轉到一個語言服務器,此語言服務器會提示用戶“當前呼叫中心正忙,請稍后再撥”的提示,如此,用戶會有比較好的體驗。