如果需要實(shí)現(xiàn)FreePBX或者Asterisk自定義撥號(hào)規(guī)則的處理,用戶(hù)首先在系統(tǒng)中添加一個(gè)特殊處理文件,定義其文件名稱(chēng)和撥號(hào)規(guī)則。具體文件存儲(chǔ)在Asterisk默認(rèn)的系統(tǒng)路徑下:/etc/asterisk
編輯extensions_custom.conf 文件,添加以下內(nèi)容:
注意,用戶(hù)添加自己自定義的撥號(hào)規(guī)則文件時(shí)需要注意自己的撥號(hào)規(guī)則,并且了解撥號(hào)規(guī)則的處理流程和語(yǔ)法。如果不清楚撥號(hào)規(guī)則和語(yǔ)法,請(qǐng)查詢(xún)本公眾號(hào),Asterisk 語(yǔ)法等內(nèi)容學(xué)習(xí)。
[from-internal-custom] // 通過(guò)自定義內(nèi)部分機(jī)撥號(hào)規(guī)則實(shí)現(xiàn)靈活撥號(hào)需求
[from-internal-custom] // 通過(guò)自定義內(nèi)部分機(jī)撥號(hào)規(guī)則實(shí)現(xiàn)靈活撥號(hào)需求
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)
以上自定義撥號(hào)規(guī)則說(shuō)明:
僅適用于內(nèi)部分機(jī)互相呼叫的自定義撥號(hào)規(guī)則。
內(nèi)部分機(jī)先撥兩個(gè)星號(hào)(××),然后撥一個(gè)三位數(shù)的數(shù)字表示時(shí)長(zhǎng),最后再撥一個(gè)星號(hào)(×),撥四位數(shù)的分機(jī)號(hào)碼。
撥號(hào)以后,等待一個(gè)時(shí)長(zhǎng),然后再執(zhí)行呼叫分機(jī)號(hào)碼的流程。
示例:××005×1001 表示等待005,然后再撥分機(jī)1001
以上流程可以實(shí)現(xiàn)各種自定義方式,用戶(hù)可以根據(jù)不同場(chǎng)景做相應(yīng)修改。當(dāng)然,首先需要用戶(hù)熟悉Asterisk 撥號(hào)規(guī)則的語(yǔ)法。
安全提示:通過(guò)此特別自定義的撥號(hào)規(guī)則,系統(tǒng)內(nèi)部分機(jī)可以通過(guò)agi命令執(zhí)行其他的linux命令,包括重新啟動(dòng)服務(wù)器,刪除數(shù)據(jù)等其他命令,所以請(qǐng)用戶(hù)需要特別注意其自定義文件內(nèi)容。
然后通過(guò)freepbx界面,添加兩個(gè)PJSIP的分機(jī),分機(jī)賬號(hào)如下:
通過(guò)鼎信話機(jī)界面訪問(wèn)SIP配置,添加SIP 分機(jī)1001.
添加通過(guò)FreePBX已創(chuàng)建的分機(jī)1001和FreePBX IP地址。
如果一切正常的話,添加以后,幾秒鐘以后會(huì)顯示成功注冊(cè)。
或者用戶(hù)可以通過(guò)Asterisk CLI命令查看分機(jī)狀態(tài),確認(rèn)成功注冊(cè):
pjsip show endpoints
pjsip debug log,看到dinstar SIP log。
然后我們開(kāi)始呼叫測(cè)試。通過(guò)軟電話注冊(cè)分機(jī)102,確保成功注冊(cè)。然后,根據(jù)以下演示撥號(hào)輸入相應(yīng)的撥號(hào)字符串,分別為等待時(shí)間和分機(jī)號(hào)碼。
這里輸入的是等待5秒鐘,然后呼叫1001分機(jī)。
Asterisk CLI 輸出的呼叫l(wèi)og,撥號(hào)規(guī)則觸發(fā)了自定義的規(guī)則,并且完整打印出了自定義撥號(hào)規(guī)則的內(nèi)容。
以下是分機(jī)1001接聽(tīng)呼叫的log日志。
分機(jī)之間呼叫的CDR 呼叫記錄:
CDR記錄:
總結(jié):
筆者通過(guò)FreePBX配置兩個(gè)SIP分機(jī),實(shí)現(xiàn)了SIP內(nèi)部分機(jī)(一個(gè)軟電話,一臺(tái)鼎信SIP話機(jī))的自定義撥號(hào)規(guī)則的流程處理。通過(guò)自定義規(guī)則用戶(hù)可以輕松實(shí)現(xiàn)界面配置不能支持的某些特殊需求,包括自定義呼入前處理(數(shù)據(jù)庫(kù)流程,自定義目的地),呼叫后處理和內(nèi)部分機(jī)的某些特殊需求。通過(guò)自定義的撥號(hào)規(guī)則可以完美支持一些界面不能配置的功能。希望讀者通過(guò)此示例可以讓讀者進(jìn)一步挖掘FreePBX強(qiáng)大的業(yè)務(wù)支持功能,實(shí)現(xiàn)更多業(yè)務(wù)需求。
參考資料:
www.freepbx.org.cn
www.asterisk.org.cn
www.freepbx.org