您當(dāng)前的位置是:  首頁(yè) > 新聞 > 國(guó)內(nèi) >
 首頁(yè) > 新聞 > 國(guó)內(nèi) >

Asterisk課堂-撥號(hào)規(guī)則中的Include使用方法

2017-01-03 10:23:50   作者:james.zhu   來(lái)源:CTI論壇   評(píng)論:0  點(diǎn)擊:


\
  Asterisk 撥號(hào)規(guī)則的使用方式和C語(yǔ)言的格式基本類似,如果用戶了解基本的C語(yǔ)言語(yǔ)法或者其他的開發(fā)語(yǔ)言的話,也非常容易了解撥號(hào)規(guī)則中的Include 使用方式。因?yàn)閾芴?hào)規(guī)則涉及了非常多的業(yè)務(wù)邏輯,如果一個(gè)企業(yè)PBX的業(yè)務(wù)非常多,分機(jī)設(shè)置也很多的話,把所有的邏輯都在一個(gè)文件中編寫是非常麻煩的,也不容易維護(hù),所以需要把整個(gè)撥號(hào)規(guī)則分割成不同的文件。Include 使用方式支持了用戶的這個(gè)要求。當(dāng)然,因?yàn)榘艘恍┞暶骰蛘咂渌奈募,所以可能?dǎo)致用戶對(duì)呼叫執(zhí)行的邏輯出現(xiàn)誤判,呼叫流程發(fā)送錯(cuò)誤。視頻中介紹了Include中的幾個(gè)撥號(hào)規(guī)則和執(zhí)行的流程,請(qǐng)大家留意:
  現(xiàn)在我們根據(jù)Include 的語(yǔ)法,給大家歸納了幾個(gè)應(yīng)該注意的問(wèn)題:
  • 語(yǔ)法和撥號(hào)規(guī)則邏輯要清晰。很多用戶在編寫撥號(hào)規(guī)則時(shí)沒有注意編寫撥號(hào)規(guī)則的一些基本的邏輯和語(yǔ)法,這樣導(dǎo)致了很多問(wèn)題。這些問(wèn)題的根本原因就在于呼叫流程執(zhí)行錯(cuò)誤。通常來(lái)說(shuō),這些錯(cuò)誤的發(fā)生是因?yàn)镮nclude 聲明的位置順序發(fā)生了錯(cuò)誤。在以下的圖例中,撥號(hào)規(guī)則會(huì)首先判斷撥打號(hào)碼,然后根據(jù)Include context 來(lái)一步步查詢最后匹配的語(yǔ)法。如果Include 的位置不對(duì),撥號(hào)規(guī)則的執(zhí)行順序或者邏輯完全可能發(fā)生改變。希望大家一定要注意這些問(wèn)題。
\
\
\

  • Inlcude 和Goto 命令之間的跳轉(zhuǎn)。如果撥號(hào)規(guī)則中使用了Goto命令時(shí),用戶一定要注意Goto 跳轉(zhuǎn)到位置。如果錯(cuò)誤使用了跳轉(zhuǎn)的命令,撥號(hào)規(guī)則完全可能執(zhí)行了一個(gè)錯(cuò)誤的流程。在Goto 跳轉(zhuǎn)過(guò)程中以后要了解原來(lái)繼承的context,并且注意在撥號(hào)規(guī)則中Goto命令中的context, 優(yōu)先級(jí)等等問(wèn)題。如下圖例中,如果用戶撥打 2 的話,在context_1 中沒有找到2 號(hào)碼,則會(huì)繼續(xù)匹配include context_2, 最后在context_2 中找到了號(hào)碼 2, 然后執(zhí)行回放語(yǔ)音功能。當(dāng)然,如果用戶撥打 3 時(shí)也是類似的執(zhí)行方式,撥號(hào)規(guī)則會(huì)查詢第一個(gè)context,然后接下來(lái)查詢Include context 中是否有包含的號(hào)碼3, 如果匹配了號(hào)碼3,則執(zhí)行相應(yīng)的呼叫規(guī)則。
\
\
  • Include context 和Include 文件的不同。Include 聲明的執(zhí)行方式比較容易理解,撥號(hào)規(guī)則按照邏輯流程一步步執(zhí)行,看起來(lái)沒有什么太疑惑的地方。Include context 會(huì)影響撥號(hào)規(guī)則的邏輯,而include file 則不會(huì)影響Asterisk 撥號(hào)規(guī)則的執(zhí)行流程。Asterisk僅解析包含文件中的內(nèi)容,然后把內(nèi)容加載到撥號(hào)規(guī)則中。另外,大家要注意,Include 一個(gè)文件的格式和Include 一個(gè)context是不同的,包含文件時(shí),必須加前綴#。
\
  總結(jié),本章節(jié)簡(jiǎn)單介紹了Include 中包含context和包含文件的不同,也重點(diǎn)提示用戶注意Include的位置順序,還有Goto跳轉(zhuǎn)時(shí)可能引起的邏輯錯(cuò)誤。建議大家在編寫撥號(hào)規(guī)則中的Include時(shí)要特別注意位置順序Goto跳轉(zhuǎn)的位置和繼承關(guān)系,以免引起撥號(hào)規(guī)則的流程錯(cuò)誤。

相關(guān)閱讀:

專題