AGI: Trunk Load-Balancing

    內容表格
    1. 1. 說明
    2. 2. 系統環境
    3. 3. 設定

    版本為 03:40, 27 Dec 2024

    到這個版本。

    返回到 版本存檔.

    查閱目前版本

    說明

    有一個 SIP gateway  名為 '2100',且附帶有 4 個 port,客戶希望從 dialer 的撥出的電話,可以:

    1. 事先為每一組 port 設定每日可通話的分鐘數,例如 300 分(1800 秒)。
    2. 當撥出的電話超過所設定的通話時間限定時,必須切斷電話且傳回 503 SIP 訊號。
    3. 撥出時隨機選擇任一 port。

     

    系統環境

    1. FreePBX Distro 1.810.210
    2. Asterisk 1.8.10
    3. FreePBX 2.10

    設定

    extensions_custom.conf:

    [trunk-LB-2100]
    exten => _X.,1,Set(TRUNK_NAME=ccnet)
    exten => _X.,n,Noop(Load Balancing for Trunk ${TRUNK_NAME})
    exten => _X.,n,AGI(check_LB_ports.php,${TRUNK_NAME},${EXTEN})
    exten => _X.,n,GotoIf($[${CALL_LEFTTIME} > 0]?trunkallowed)
    exten => _X.,n,Hangup(42)
    exten => _X.,n(trunkallowed),Dial(SIP/${TRUNK_NAME}-${CALL_PORT}/${EXTEN},300,L(${CALL_LEFTTIME}000:61000:30000))
    exten => _X.,n,Hangup(42)
    

    check_LB_ports.php:

    reference to undefined name 'syntax' Exception of type 'MindTouch.Deki.Script.Runtime.DekiScriptUndefinedNameException' was thrown. (click for details)
    Powered by MindTouch Core