星号反前女友拨打计划?

时间:2010-09-02 07:01:19

标签: asterisk

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

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

   [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 个答案:

答案 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)