DialPlan 開發技巧

    版本為 17:19, 20 Nov 2024

    到這個版本。

    返回到 版本存檔.

    查閱目前版本

    DialPlan 開發技巧整理

    官方教學:https://wiki.asterisk.org/wiki/display/AST/Dialplan

    常用表示式

    數學計算

    ; Syntax: +, -, *, /
    $[1 + 2]
    

    比較式

    ; Syntax: =, >, >=, <, <=, !=
    $[${var1} < ${var2}]
    

    多個比較式

    ; Syntax: &, |
    $[${var} > 0 & ${var} < 9]
    

    在 CLI 發起一個 channel 做程式除錯

    CLI> channel originate local/null@default extension agiMin@default
    

    NOTE:

    default 是 context

    與外部 SHELL 互動

    // 外部 SHELL 傳回變數至 dialplan

    same => n, Set(SOUNDFILE=${SHELL(/usr/bin/php /var/lib/asterisk/agi-bin/googleTTS.php ${CALLERID(num)})})
    

    完整內容在 多國 TTS - Google TTS

    while 與變數裡作運算

    exten => _X.,1,Set(mb=${EXTEN})
    exten => _X.,n,Set(x=1)
    exten => _X.,n,While($["${SIP_HEADER(Diversion,${x})}" != ""])
    exten => _X.,n,Set(mb="${SIP_HEADER(Diversion,${x})}")
    exten => _X.,n,Set(mb=${CUT(mb,@,1):-4})
    exten => _X.,n,Set(x=$[${x}+1])
    exten => _X.,n,EndWhile()
    exten=>  _X.,n,Goto(from-pstn,${mb},1)
    
    Powered by MindTouch Core