- 作者:james.zhu(james.zhu@hiastar.com) www.hiastar.com 微信公眾號:asterisk-cn
- Asterisk課堂-如何通過(guò)源代碼安裝方式安裝Asteisk/dahdi
- Asterisk課堂-系統部署環(huán)境要求
- Asterisk課堂-Asterisk技術(shù)架構
- Asterisk課堂-撥號規則基礎
- Asterisk課堂-創(chuàng )建第一個(gè)撥號規則
- Asterisk課堂-撥號規則中的Contexts
- Asterisk課堂-撥號規則中變量的使用
- Asterisk課堂-撥號規則中的Extensions用法
- Asterisk課堂-撥號規則中匹配模式
- Asterisk課堂-IAX2 介紹
- Asterisk課堂-IAX2 呼叫流程
- Asterisk課堂-SIP介紹
- Asterisk課堂-SIP呼叫流程
- Asterisk課堂-終端注冊
- Asterisk課堂-SIP Trunk
- Asterisk課堂-SIP和NAT
- Asterisk課堂-撥號規則中的Include使用方法
- Asterisk課堂-撥號規則中的語(yǔ)音播放
- Asterisk課堂-DTMF 介紹
- Asterisk課堂-語(yǔ)音IVR基礎
- Asterisk課堂-Timeout 超時(shí)設置

Asterisk撥號規則中支持了多種對系統時(shí)間控制的方式,這些方式可以監控用戶(hù)輸入DTMF的時(shí)間,或計費環(huán)境中的一些時(shí)間長(cháng)度。本章節我們介紹撥號規則中對通道的超時(shí)設置。超時(shí)簡(jiǎn)單來(lái)說(shuō),就是用戶(hù)在默認的系統超時(shí)設置的時(shí)間范圍內是否收到系統需要的輸入參數。如果用戶(hù)沒(méi)有在一定時(shí)間內沒(méi)有輸入按鍵DTMF,這樣系統需要做一個(gè)錯誤提示來(lái)引導用戶(hù)進(jìn)行下一步的呼叫流程。
視頻中介紹了幾個(gè)超時(shí)的用法和應該注意到地方:
今天介紹的超時(shí)包括幾個(gè)方面的內容:超時(shí)的語(yǔ)法定義,超時(shí)的幾種設置方式,Digit超時(shí)注意到地方,超時(shí)和其他設置之間的配合。
超時(shí)的語(yǔ)法定義比較簡(jiǎn)單,系統設置了一定的默認值,用戶(hù)輸入在一定時(shí)間內輸入DTMF,否則進(jìn)行錯誤處理。這里的Timeout是針對channel來(lái)說(shuō)的,超時(shí)設置包括了Reponse Timeout,Digit Timeout 和Absolute Timeout。以上三中超時(shí)設置是針對呼叫通道來(lái)說(shuō)的,完全不同于application 中的timeout。

Reponse Timeout,Digit Timeout 和Absolute Timeout的用法。這里我們專(zhuān)門(mén)把這三個(gè)超時(shí)進(jìn)行一下簡(jiǎn)單介紹,以便用戶(hù)可以快速了解這三個(gè)超時(shí)的不同。Reponse 超時(shí)設置是用來(lái)檢測用戶(hù)是否在一定時(shí)間內輸入第一個(gè)數字。Digit 超時(shí)是系統已經(jīng)收到了用戶(hù)輸入的數字,等待下一次數字的輸入超時(shí)時(shí)間設置。例如,用戶(hù)如果想輸入62,但是現在用戶(hù)僅輸入了6,系統需要等待數字2 輸入。它們中間的等待時(shí)間就是Digit Timeout的設置時(shí)間。Absolute Timeout 是針對呼叫的整個(gè)流程來(lái)說(shuō),經(jīng)常使用的場(chǎng)景是對一些呼叫的時(shí)長(cháng)控制,例如我們的計費卡。如果做電話(huà)運營(yíng)的時(shí)候,用戶(hù)電話(huà)卡金額的不同會(huì )支持不同的時(shí)間長(cháng)度。這樣的話(huà),系統可以對其時(shí)間進(jìn)行控制。最后,因為用戶(hù)需要輸入DTMF,所以Asterisk是否完全完整地收到了用戶(hù)輸入的DTMF,這里可能會(huì )引起一些問(wèn)題。例如,我們經(jīng)常說(shuō)的IVR不能工作,或者DTMF輸入錯誤。引起這些問(wèn)題的原因很多,用戶(hù)需要在實(shí)際環(huán)境中配合服務(wù)器和終端進(jìn)行設置排查。



使用 Digit Timeout 時(shí)應該注意的問(wèn)題。我們單獨拿出這個(gè)功能來(lái)提醒用戶(hù),因為系統檢測到是一個(gè)完整的DTMF數字位數,所以在撥號規則設計時(shí)一定要避免號碼的部分重復,這樣的設計思路可能會(huì )導致很多錯誤。例如,圖例中我們討論的,如果用戶(hù)想撥62,實(shí)際上系統里面的分機號碼有620和62兩個(gè)號碼。因為撥號規則已經(jīng)在內存中加載了620和62兩種匹配的設置,如果用戶(hù)撥打62 的時(shí)候,系統仍然需要等待用戶(hù)輸入最后一個(gè)0。如果用戶(hù)沒(méi)有撥0,則進(jìn)入到62相應的撥號流程;否則會(huì )等待0或者通過(guò)超時(shí)來(lái)進(jìn)行輸入判斷。這樣就可能導致問(wèn)題的發(fā)生。

Timeout 超時(shí)設置和其他應用之間可能引起一個(gè)系統時(shí)間的重新調整。在我們的圖例中,如果用戶(hù)在流程中設置了一個(gè)超時(shí)的限制,接下來(lái)的邏輯如果涉及了時(shí)間的重新定義,則最新的時(shí)間定義會(huì )覆蓋以前的設置。如果Waitexten 設置為30,以前的設置為20,則Waitexten 的時(shí)間設置會(huì )覆蓋上面的設置。所以,我們在這里提醒用戶(hù),需要注意這個(gè)時(shí)間的變化,同時(shí)還要通過(guò)時(shí)間的流程測試來(lái)驗證最后的結果。

在本章節中,我們介紹了超時(shí)設置的用法,幾個(gè)超時(shí)設置的區別,還有Digit超時(shí)設置應該注意到對方,最后我們還介紹了超時(shí)設置和其他應用的時(shí)間關(guān)聯(lián)問(wèn)題。我們希望通過(guò)本章節的介紹,讓用戶(hù)可以基本了解超時(shí)的概念和使用過(guò)程中應該注意到一些容易出錯的地方,例如號碼設計的重復,時(shí)間設置和其他應用的覆蓋問(wèn)題,并且通過(guò)自己編寫(xiě)呼叫流程來(lái)進(jìn)一步驗證這些時(shí)間設置。