【问题标题】:Freepbx custom context outbound routeFreepbx 自定义上下文出站路由
【发布时间】:2014-12-30 13:29:36
【问题描述】:

我正在尝试将 freepbx 配置为通过特定中继路由某些扩展。我已经看到了一些方法来做到这一点,目前正在尝试使用自定义上下文来做到这一点。

基本上,我在同一个 PBX 上使用两家公司,来自具有 company1 上下文的分机的呼叫需要通过 company1 中继,而来自具有 company2 上下文的分机的呼叫需要通过 company2 中继。

这是我目前所拥有的:

[from-internal]
exten => h,1,Hangup()


[company1]
exten => 1234512345,1,Set(__FROM_DID=${EXTEN})
exten => 1234512345,n,Gosub(app-blacklist-check,s,1)
exten => 1234512345,n,ExecIf($[ "${CALLERID(name)}" = "" ] ?Set(CALLERID(name)=${CALLERID(num)}))
exten => 1234512345,n,Set(__CALLINGPRES_SV=${CALLERPRES()})
exten => 9498851902,n,Set(CALLERPRES()=allowed_not_screened)
exten => s,1,Dial(SIP/1500)

[company2]
exten => 1234567890,1,Set(__FROM_DID=${EXTEN})
exten => 1234567890,n,Gosub(app-blacklist-check,s,1)
exten => 1234567890,n,ExecIf($[ "${CALLERID(name)}" = "" ] ?Set(CALLERID(name)=${CALLERID(num)}))
exten => 1234567890,n,Set(__CALLINGPRES_SV=${CALLERPRES()})
exten => 1234567890,n,Set(CALLERPRES()=allowed_not_screened)
exten => s,1,Dial(SIP/1701)

这取自一个讨论多租户的网站。我需要对此进行修改,以便任何分机都转到我指定的中继。我确信我可以为任何扩展计算出模式匹配,但是例如,我怎么能说转到这个主干。我似乎无法找到任何关于此的内容。

【问题讨论】:

    标签: linux pattern-matching asterisk sip pbx


    【解决方案1】:

    在阅读了我能拿到的所有文档之后,终于找到了一个解决方案。

    我在 extensions_custom.conf 中使用了以下代码:

    [company1]
    include => from-internal
    exten => _X.,1,Set(_COMPANY=company1)
    include => macro-dialout-trunk-predial-hook
    
    [company2]
    include => from-internal
    exten => _X.,1,Set(_COMPANY=company2)
    include => macro-dialout-trunk-predial-hook
    

    我在 extensions.conf 中使用了以下代码

    [macro-dialout-trunk-predial-hook]
    exten => s,1,Set(PREDIAL_HOOK_RET=)
    exten => s,n,Set(DIAL_TRUNK=${IF($[ ${COMPANY} = company2]?2:${IF($[ ${COMPANY} = company1]?1:99)})})
    exten => s,n,Set(OUTBOUND_GROUP=${IF($[ ${COMPANY} = company2]?2:${IF($[ ${COMPANY} = company1]?1:99)})})
    exten => s,n,ExecIf($[${ISNULL(${COMPANY})}]?Hangup())
    exten => s,n,MacroExit()
    

    我相信这可以整理和改进,但现在,我有我需要的解决方案。希望这对其他人有帮助。

    【讨论】:

    • 为什么你在不需要/不期望的上下文中使用 freepbx 宏?接缝你真的不明白你在做什么。删除该包含,它仍然可以正常工作
    • @arheops 恕我直言,我不是专家,只是找到了一个可行的解决方案。如果您有更好的方法,我会全神贯注,但没有必要放弃。
    猜你喜欢
    • 2015-04-25
    • 2016-09-14
    • 2017-12-21
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    • 1970-01-01
    • 2021-04-05
    • 1970-01-01
    相关资源
    最近更新 更多