我用星号写了简单的拨号计划。此拨号计划目标是检查来电和特定挂断的来电显示:)!
但是这个拨号计划挂断所有来电与不同的来电显示 那我该怎么办? ;(
[general]
static=yes
writeprotect=yes
autofallthrough=yes
clearglobalvars=no
priorityjumping=yes
include "exten_gvars.inc"
[macro-queue]
exten => s, 1, Queue(${ARG1})
[default]
exten => s, 1, Answer
exten => s/9999, 2 ,Hangup
exten => s, 2, BackGround(welcome)
exten => s, 3, Macro(queue,operator)
修改
我将我的拨号计划更改为此但不起作用,两声蜂鸣后来电挂断(我知道它发生在我的拨号计划中出错)!
[general]
static=yes
writeprotect=yes
autofallthrough=yes
clearglobalvars=no
priorityjumping=yes
#include "exten_gvars.inc"
[macro-monitor]
exten => s, 1, MixMonitor(${UNIQUEID}.wav)
exten => s, 2, SetCIDName(${UNIQUEID}#${CALLERIDNAME},a)
[macro-defaultLine]
exten => s, 1, Macro(monitor)
exten => s, 2, Dial(SIP/${ARG1},60,T)
[macro-queue]
exten => s, 1, Macro(monitor)
exten => s, 2, Queue(${ARG1})
[inbound]
exten => _XX, 1, Macro(defaultLine,${EXTEN})
[default]
exten => 123,1,GotoIf($[${CALLERID(num)} = XX]?reject:allow)
exten => 123,n(allow),Answer
exten => 123,n,BackGround(welcome)
exten => 123,n,Macro(queue,operator)
exten => 123,n(reject),BackGround(WTF)
exten => 123,n,Hangup()
include => inbound
答案 0 :(得分:13)
这是你的前女友Dailplan,假设xxxxx是你的前女友号码
exten => 123,1,GotoIf($[${CALLERID(num)} = xxxxx]?reject:allow)
exten => 123,n(allow),Dial(Zap/4)
exten => 123,n,Hangup()
exten => 123,n(reject),Playback(abandon-all-hope)
exten => 123,n,Hangup()
希望这有助于你
答案 1 :(得分:3)
您没有其他来电者的第2步,并启用了autofalltrhough,这意味着(在1.6中)将在步骤1之后删除该呼叫。
[default]
exten => s, 1, Answer
exten => s/9999, 2 ,Hangup
exten => s, 2, NoOp
exten => s, 3, BackGround(welcome)
exten => s, 4, Macro(queue,operator)
修改强> 你确定callerID是EXACTELLY 9999吗? 尝试用
替换该行exten => s, 2, NoOp((${CALLERID(all)})
然后查看控制台并查看调用者ID是什么。
使用:
asterisk -r
然后输入:
core set verbose 5
另外,输入:
show dialplan
并查看拨号方案是否正确加载到星号
答案 2 :(得分:0)
首先,您似乎并不真正了解Asterisk拨号方案的工作原理。你提出的代码块是完全错误的,Asterisk不会抱怨 - 因为拨号方案不应该这样做。
让我们逐一检查:
[macro-queue]
exten => s, 1, Queue(${ARG1})
[default]
exten => s, 1, Answer
exten => s/9999, 2 ,Hangup
exten => s, 2, BackGround(welcome)
exten => s, 3, Macro(queue,operator)
上述错误的原因是由于您无法在扩展的单行上放置CALLERID匹配 - 它应该是一直的。从技术上讲,你需要:
[macro-queue]
exten => s, 1, Queue(${ARG1})
[default]
exten => s/9999, 1, Answer
exten => s/9999, 2 ,Hangup
exten => s/9999, 2, BackGround(welcome)
exten => s/9999, 3, Hangup
exten => s, 1, Answer
exten => s, 2 ,Hangup
exten => s, 2, BackGround(welcome)
exten => s, 3, Macro(queue,operator)
现在,这不是一种正确的方法 - 只是因为你会一遍又一遍地复制行。正确的做法与之前的回答非常相似,但是,这就是我要做的事情:
exten => s, 1, Answer
exten => s, n, Gotoif($["${CALLERID(num)}" = "9999"]?reject:continue)
exten => s, n(continue), Background(Welcome)
exten => s, n, Macro(queue, operator)
exten => s, n(reject), Hangup()
现在,您可以扩展要阻止的各种CALLERID号码。再次,假设这是你想要实现的结果。
答案 3 :(得分:0)
这很简单:
[default]
exten => s/9999,1,Hangup
exten => s,1,Answer
exten => s,2,BackGround(welcome)
exten => s,3,Macro(queue,operator)