首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >星号反前女友拨号计划?

星号反前女友拨号计划?
EN

Stack Overflow用户
提问于 2010-09-02 15:01:19
回答 4查看 7.3K关注 0票数 7

我用星号写了简单的拨号方案。这个拨号方案的目标是检查来电的caller-id和特定的挂机:)!

但此拨号方案会挂断所有具有不同呼叫者id的来电。

那我该怎么办?

代码语言:javascript
复制
   [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)  

编辑

我改变了我的拨号方案,但它不起作用,来电挂断两声嘟嘟声(我知道它发生了,因为我的拨号方案中的一个错误)!

代码语言:javascript
复制
    [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
EN

回答 4

Stack Overflow用户

发布于 2010-09-13 14:13:34

这是你的反前女友Dailplan,假设xxxxx是你的前女友编号

代码语言:javascript
复制
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()

希望这能对你有所帮助

票数 13
EN

Stack Overflow用户

发布于 2010-09-02 15:08:02

您没有针对其他呼叫者is的步骤2,并且启用了自动回落,这意味着(在1.6中)呼叫将在步骤1之后掉线。

代码语言:javascript
复制
[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是EXACTELLY9999吗?尝试将该行替换为

代码语言:javascript
复制
exten => s, 2, NoOp((${CALLERID(all)})

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

使用:

代码语言:javascript
复制
 asterisk -r 

然后输入:

代码语言:javascript
复制
 core set verbose 5

另外,输入:

代码语言:javascript
复制
show dialplan

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

票数 3
EN

Stack Overflow用户

发布于 2013-11-05 08:53:20

首先,看起来您并不真正了解星号拨号方案是如何工作的。你放在那里的代码块是完全错误的,星号不会抱怨的-因为dialplan不应该这样做。

让我们逐一分析:

代码语言:javascript
复制
[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匹配--它应该是完全匹配的。因此,从技术上讲,您需要:

代码语言:javascript
复制
[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)  

现在,这不是一种正确的方法-因为您将一遍又一遍地复制代码行。正确的方法与前面的答案非常相似,然而,我会这样做:

代码语言:javascript
复制
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号码。再说一次,假设这就是你想要的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3624458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档