Was this page helpful?

DP: 如何限制通話時間

    內容表格
    1. 1. 延伸應用

    因為有網友提出這個需求,所以就嘗試幫忙找出解法,只是要做到這,得作些客制的設定,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
    

    說明:

    1. _99. 設定撥號前置碼為 99,請自行修改,並且不可與現有 Outbound Route 的撥號規則有重複
      如果前置碼不為 2 碼,需要再修改這一行
      exten => _99.,n,Dial(${OUT_${DIAL_TRUNK}}/${EXTEN:2},300,${DIAL_TRUNK_OPTIONS})
    2. DIAL_TRUNK 要限制通話時間的 Trunk ID (Notes: 要獲得 Trunk ID number,請在 Trunk 管理介面,檢查任一個 Trunk 的設定超連結 URL 的最後文字 OUT_XX)
    3. TIMEOUT 通話時間限制
    4. Playback(vm-goodbye) 請自行修改提示音

     

     

     

    Was this page helpful?
    標籤 (Edit tags)
    • No tags
    查看第6個(總6個)評論: 查看所有
    不知道何解, 照以上方法設定後,通話是可以斷了,但trunk資源不會被釋放..

    Channel Location State Application(Data)
    SIP/HK_PSTN-09e99058 (None) Up AppDial((Outgoing Line))
    SIP/201-09ef89d8 [email protected]:5 Up Dial(SIP/HK_PSTN/11|300|tr)
    2 active channels
    1 active call
    發佈時間 16:35, 29 Sep 2009 ()
    貼上這個輸出,我看看
    CLI>dialplan show your-context-name
    發佈時間 17:32, 29 Sep 2009 ()
    elastix*CLI> exitdialplan show custom-hkpbx-trunk

    elastix*CLI>
    [ Context 'custom-hkpbx-trunk' created by 'pbx_config' ]

    elastix*CLI>
    'T' => 1. Playback(vm-goodbye) [pbx_config]

    elastix*CLI>
    2. Hangup() [pbx_config]

    elastix*CLI>
    '_77.' => 1. Answer() [pbx_config]

    elastix*CLI>
    2. Set(DIAL_TRUNK=3) [pbx_config]

    elastix*CLI>
    3. Set(TIMEOUT(absolute)=30) [pbx_config]

    elastix*CLI>
    4. Set(DIAL_TRUNK_OPTIONS=${DIAL_OPTIONS}) [pbx_config]

    elastix*CLI>
    5. Dial(${OUT_${DIAL_TRUNK}}/${EXTEN:2}|300|${DIAL_TRUNK_OPTIONS}) [pbx_config]

    elastix*CLI>
    6. Macro(outisbusy|) [pbx_config]

    elastix*CLI>


    elastix*CLI>
    -= 2 extensions (8 priorities) in 1 context. =-
    發佈時間 00:19, 30 Sep 2009 ()
    看起來是沒有問題。
    如果不用限時設定,直接用同一個分機撥 Trunk HK_PSTN 有沒有一樣狀況?
    還有 General Settings > Dial command options 設了那些參數?
    發佈時間 11:27, 30 Sep 2009 ()
    如果不設時限, 情況一切正常..
    General Settings > Dial command options: tr
    基本都是default setting , 沒有什麼大更改!
    發佈時間 23:41, 7 Oct 2009 ()
    確認一下是否因為 Asterisk 版本不同所致,我的系統是 Asterisk 1.4.19。
    使用 Google 查詢有關此函數是否會因版本不同,而有不同用法。
    發佈時間 10:14, 8 Oct 2009 ()
    查看第6個(總6個)評論: 查看所有
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core