7

我用星号写了简单的拨号计划。这个拨号计划的目标是检查来电的来电显示和特定的挂断:) !

但是这个拨号计划挂断了所有带有不同来电显示的来电。
那我该怎么办?;(

   [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
4

4 回答 4

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()

希望这可以帮助你

于 2010-09-13T06:13:33.977 回答
3

对于其他 callerid,您没有第 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)})

然后查看控制台,看看 callerID 是什么。

利用:

 asterisk -r 

然后输入:

 core set verbose 5

另外,输入:

show dialplan

并查看拨号方案是否正确加载到星号中

于 2010-09-02T07:08:02.477 回答
0

这很简单:

[default]  
    exten => s/9999,1,Hangup  

    exten => s,1,Answer  
    exten => s,2,BackGround(welcome)  
    exten => s,3,Macro(queue,operator)  
于 2014-03-27T01:15:50.763 回答
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 号码。同样,假设这是您希望达到的结果。

于 2013-11-05T00:53:19.887 回答