因為有網友提出這個需求,所以就嘗試幫忙找出解法,只是要做到這,得作些客制的設定,FreePBX 目前提供的現有模組是無法辦到。
此篇對此僅就原理面做出一個簡單範例,而實際應用會因每個人不同的環境需求,還需再做不同程度的延伸修改,這個部份還需大家發揮創意囉。
目的:限制通話時間為 60 秒
實做:為不影響主系統的運作,這些測試的設定都在 extensions_custom.conf 完成。
《PBX》《Tools》《File Editor》《Filter 'extension'》《選擇 extensions_custom.conf》
在 [from-internal-custom] 這段落的最後一行,分別加上這幾行
[from-internal-custom] ... ... include => test-limit-call-duration ; Just for a trail [test-limit-call-duration] exten => 9900,1,Playback(pls-wait-connect-call) exten => 9900,2,Set(TIMEOUT(absolute)=60) exten => 9900,3,Dial(SIP/201) exten => 9900,n,Hangup
9900 - 用來測試的虛擬號碼
60 - 限制時間的秒數
201 - 此例以分機互撥測試,試撥的對方分機號碼
如果是較舊版套件使用 Asterisk 1.2.x 的,語法 set(TIMEOUT(absolute)=60) 需改成
AbsoluteTimeout(60)
存檔後記得在 CLI 執行 reload 載入設定檔。
測試時,以其他分機撥 9900,此時分機 201 會響,接起分機 201,等 60 秒後,通話會自動中斷,完成囉。
對於用戶撥打指定的 Trunk 作時間通話的限制,並且在通話到達限制時間前,先撥一段語音提示:通話時間已到達限制時間,最後終止這個通話。
Elastix: PBX -> Tools -> File Editor -> File : extensions_custom.conf
在 [from-internal-custom] 段落下方加上
[from-internal-custom] ... include => custom-hkpbx-trunk
在全文的最下方,增加一個段落
[custom-hkpbx-trunk]
exten => _99.,1,Answer
exten => _99.,n,Set(DIAL_TRUNK=27)
exten => _99.,n,Set(TIMEOUT(absolute)=30)
exten => _99.,n,Set(DIAL_TRUNK_OPTIONS=${DIAL_OPTIONS})
exten => _99.,n,Dial(${OUT_${DIAL_TRUNK}}/${EXTEN:2},300,${DIAL_TRUNK_OPTIONS})
exten => _99.,n,Macro(outisbusy,)
exten => T,1,Playback(vm-goodbye)
exten => T,n,Hangup
說明:
| Images 0 | ||
|---|---|---|
| No images to display in the gallery. |
Channel Location State Application(Data)
SIP/HK_PSTN-09e99058 (None) Up AppDial((Outgoing Line))
SIP/201-09ef89d8 7711@from-internal:5 Up Dial(SIP/HK_PSTN/11|300|tr)
2 active channels
1 active call
CLI>dialplan show your-context-name
elastix*CLI>
[ Context 'custom-hkpbx-trunk' created by 'pbx_config' ]
[Kelastix*CLI>
'T' => 1. Playback(vm-goodbye) [pbx_config]
[Kelastix*CLI>
2. Hangup() [pbx_config]
[Kelastix*CLI>
'_77.' => 1. Answer() [pbx_config]
[Kelastix*CLI>
2. Set(DIAL_TRUNK=3) [pbx_config]
[Kelastix*CLI>
3. Set(TIMEOUT(absolute)=30) [pbx_config]
[Kelastix*CLI>
4. Set(DIAL_TRUNK_OPTIONS=${DIAL_OPTIONS}) [pbx_config]
[Kelastix*CLI>
5. Dial(${OUT_${DIAL_TRUNK}}/${EXTEN:2}|300|${DIAL_TRUNK_OPTIONS}) [pbx_config]
[Kelastix*CLI>
6. Macro(outisbusy|) [pbx_config]
[Kelastix*CLI>
[Kelastix*CLI>
-= 2 extensions (8 priorities) in 1 context. =-
如果不用限時設定,直接用同一個分機撥 Trunk HK_PSTN 有沒有一樣狀況?
還有 General Settings > Dial command options 設了那些參數?
General Settings > Dial command options: tr
基本都是default setting , 沒有什麼大更改!
使用 Google 查詢有關此函數是否會因版本不同,而有不同用法。