请帮助解决我最近遇到的问题。
实现通知来电者的功能“用户在第一线通话请稍候或稍后再回电”。使用星号中的“呼叫等待”功能,我使用此宏:
extensions_custom.conf
[from-internal-custom]
exten => _XXX,1,Macro(check-number,${EXTEN})
include => macro-check-number
[macro-check-number]
exten => s,1,NoOp(Enter in macro-check-number)
exten => s,n,Set(devst=${DEVICE_STATE(SIP/${ARG1})})
exten => s,n,ExecIf($["${devst}" = "INUSE"]?Playback(ml))
exten => s,n,NoOp(Exit from macro-check-number)
ml - 播放文件名
此功能有效!
但是这个宏适用于整个Asterisk,这个队列调用,组调用 - 这就是问题所在。
我有一个想法 - 一组调用和队列调用来分配数字四位数扩展,例如:2222 - 但不是你不应该,这是一个错误的解决方案,因为在未来可能是个问题!
也许有人遇到过类似的问题?
答案 0 :(得分:1)
您不需要在from-internal-custom上下文中包含section 由于extensions_custom.conf文件包含在拨号计划中。
您需要更改扩展模式:
[from-internal-custom]
exten => _99XXX,1,Macro(check-number,${EXTEN:2})
[macro-check-number]
exten => s,1,NoOp(Enter in macro-check-number)
exten => s,n,Set(devst=${DEVICE_STATE(SIP/${ARG1})})
exten => s,n,ExecIf($["${devst}" = "INUSE"]?Playback(ml))
exten => s,n,NoOp(Exit from macro-check-number)
答案 1 :(得分:0)
您已根据拨号方案分析呼叫环境。
有关此类拨号方案的示例,您可以在freepbx项目中看到记录宏。然而,最简单的方法是使用不同的上下文组/队列和直接拨号。
答案 2 :(得分:0)
问题在电路中解决了。 由于我们服务的电话服务器不超过250个成员 - 因此决定为组和队列创建一个四位数字。