微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

FreepPBX IVR 的呼叫转移应根据分机的状态发出忙/不可用信号

如何解决FreepPBX IVR 的呼叫转移应根据分机的状态发出忙/不可用信号

一个本地分机呼叫另一本地分机。如果 SIP 电话不可用,则播放所需的消息而不是忙音。

cat /etc/asterisk/extensions_override_freepbx.conf 
[from-internal-custom]
exten => _XXXX,1,NoOp(-------INTERNAL-CALL----------)
same => n,Set(DEvstaTE=${DEVICE_STATE(PJSIP/${EXTEN})})
same => n,GotoIf($[ "${DEvstaTE}" = "UNAVAILABLE" ]?go-unvailable)
same => n,Dial(Local/${EXTEN}@default,60,tT)
same => n,HangUp
same => n(go-unvailable),Noop(----unvailable----)
same => n,PlayBack(silence/1&ss-noservice)
same => n,HangUp

尝试对 IVR 上下文做同样的事情

[ext-local-custom]
exten => _XXXX,NoOp(-------IVR-CALL----------)
...

但它不起作用,因为 freepbx 创建了以下配置

[ext-local]
include => ext-local-custom

exten => 0101,Set(__RINGTIMER=${IF($["${DB(AmpuSER/0101/ringtimer)}" > "0"]?${DB(AmpuSER/0101/ringtimer)}:${RINGTIMER_DEFAULT})})
exten => 0101,n,Macro(exten-vm,novm,0101,0)
exten => 0101,n(dest),Set(__PICKUPMARK=)
exten => 0101,GotoIf($["${IVR_CONTEXT}" != ""]?${IVR_CONTEXT},return,1)
exten => 0101,hint,PJSIP/0101&Custom:DND0101,CustomPresence:0101

include 语句中的匹配扩展发生在 ext-local 上下文中匹配之后。因此,在这种情况下根本不使用 include 语句。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。