
如果需要實現(xiàn)FreePBX或者Asterisk自定義撥號規(guī)則的處理,用戶首先在系統(tǒng)中添加一個特殊處理文件,定義其文件名稱和撥號規(guī)則。具體文件存儲在Asterisk默認(rèn)的系統(tǒng)路徑下:/etc/asterisk

編輯extensions_custom.conf 文件,添加以下內(nèi)容:

注意,用戶添加自己自定義的撥號規(guī)則文件時需要注意自己的撥號規(guī)則,并且了解撥號規(guī)則的處理流程和語法。如果不清楚撥號規(guī)則和語法,請查詢本公眾號,Asterisk 語法等內(nèi)容學(xué)習(xí)。
[from-internal-custom] // 通過自定義內(nèi)部分機(jī)撥號規(guī)則實現(xiàn)靈活撥號需求
[from-internal-custom] // 通過自定義內(nèi)部分機(jī)撥號規(guī)則實現(xiàn)靈活撥號需求
exten => _**XXX*XXXX,1,Noop(Entering user defined context from-internal-custom in extensions_custom.conf)
exten => _**XXX*XXXX,n,Noop(ext: ${EXTEN:-4} delay: ${EXTEN:2:3}) // 打印
exten => _**XXX*XXXX,n,Wait(${EXTEN:2:3}) // 秒為單位
exten => _**XXX*XXXX,n,goto(from-internal,${EXTEN:-4},1) // 跳轉(zhuǎn)
以上自定義撥號規(guī)則說明:
僅適用于內(nèi)部分機(jī)互相呼叫的自定義撥號規(guī)則。
內(nèi)部分機(jī)先撥兩個星號(××),然后撥一個三位數(shù)的數(shù)字表示時長,最后再撥一個星號(×),撥四位數(shù)的分機(jī)號碼。
撥號以后,等待一個時長,然后再執(zhí)行呼叫分機(jī)號碼的流程。
示例:××005×1001 表示等待005,然后再撥分機(jī)1001
以上流程可以實現(xiàn)各種自定義方式,用戶可以根據(jù)不同場景做相應(yīng)修改。當(dāng)然,首先需要用戶熟悉Asterisk 撥號規(guī)則的語法。
安全提示:通過此特別自定義的撥號規(guī)則,系統(tǒng)內(nèi)部分機(jī)可以通過agi命令執(zhí)行其他的linux命令,包括重新啟動服務(wù)器,刪除數(shù)據(jù)等其他命令,所以請用戶需要特別注意其自定義文件內(nèi)容。
然后通過freepbx界面,添加兩個PJSIP的分機(jī),分機(jī)賬號如下:

通過鼎信話機(jī)界面訪問SIP配置,添加SIP 分機(jī)1001.

添加通過FreePBX已創(chuàng)建的分機(jī)1001和FreePBX IP地址。

如果一切正常的話,添加以后,幾秒鐘以后會顯示成功注冊。

或者用戶可以通過Asterisk CLI命令查看分機(jī)狀態(tài),確認(rèn)成功注冊:
pjsip show endpoints

pjsip debug log,看到dinstar SIP log。


然后我們開始呼叫測試。通過軟電話注冊分機(jī)102,確保成功注冊。然后,根據(jù)以下演示撥號輸入相應(yīng)的撥號字符串,分別為等待時間和分機(jī)號碼。


這里輸入的是等待5秒鐘,然后呼叫1001分機(jī)。

Asterisk CLI 輸出的呼叫l(wèi)og,撥號規(guī)則觸發(fā)了自定義的規(guī)則,并且完整打印出了自定義撥號規(guī)則的內(nèi)容。

以下是分機(jī)1001接聽呼叫的log日志。

分機(jī)之間呼叫的CDR 呼叫記錄:
CDR記錄:

總結(jié):
筆者通過FreePBX配置兩個SIP分機(jī),實現(xiàn)了SIP內(nèi)部分機(jī)(一個軟電話,一臺鼎信SIP話機(jī))的自定義撥號規(guī)則的流程處理。通過自定義規(guī)則用戶可以輕松實現(xiàn)界面配置不能支持的某些特殊需求,包括自定義呼入前處理(數(shù)據(jù)庫流程,自定義目的地),呼叫后處理和內(nèi)部分機(jī)的某些特殊需求。通過自定義的撥號規(guī)則可以完美支持一些界面不能配置的功能。希望讀者通過此示例可以讓讀者進(jìn)一步挖掘FreePBX強(qiáng)大的業(yè)務(wù)支持功能,實現(xiàn)更多業(yè)務(wù)需求。
參考資料:
www.freepbx.org.cn
www.asterisk.org.cn
www.freepbx.org
