DP:解析 SIP Header

    內容表格
    沒有標頭

    版本為 04:43, 27 Dec 2024

    到這個版本。

    返回到 版本存檔.

    查閱目前版本

    在 Dialplan 解析 SIP Header 資訊裡的 Diversion 欄位內容

    Dialplan:

    [my-sip-header-filter]
    exten => s,1,NoOp( Incoming calls from internet )
    exten => s,n,NoOp(SIP_HEADER From field: ${SIP_HEADER(From,1)})
    exten => s,n,NoOp(SIP_HEADER To field: ${SIP_HEADER(To,1)})
    exten => s,n,GotoIf($[${LEN(${SIP_HEADER(Diversion,1)})} > 0]?next)
    exten => s,n,NoOp(SIP_HEADER Diversion field: <Data Not Found>)
    exten => s,n,Hangup
    exten => s,n(next),NoOp(SIP_HEADER Diversion field: ${SIP_HEADER(Diversion,1)})
    ; for debug only
    exten => s,n,Set(STR=<sip:358505735791@voxbone.com>\;counter=1\;reason=unknown)
    ;exten => s,n,Set(STR=${SIP_HEADER(Diversion,1)})
    exten => s,n,NoOp(STR: ${STR})
    exten => s,n,Set(REGEX=^.+?:\+(.+?)@.*$)
    exten => s,n,NoOp(Regular Expression: ${REGEX})
    exten => s,n,Set(DIVERTER=$["${STR}" : "${REGEX}"])
    exten => s,n,NoOp(Diverter: ${DIVERTER})
    exten => s,n,Hangup
    

    Note:

    這個 dialplan 只適用在 Asterisk 1.6.2.13;若執行在 1.8.8 版本,會有以下問題:

    - 這行 Set(STR=<sip:358505.........),不接受分號;字元。
    - 這行 Set(DIVERTER=$["${STR}" : "${REGEX}"]),正規表示式無法正常被套用。

    Powered by MindTouch Core