Asterisk 星号、黑名单按国家代码或区号列出号码

Asterisk 星号、黑名单按国家代码或区号列出号码,asterisk,Asterisk,我最近遇到了一个问题,就是昼夜不停地接到来自海外国家的古怪电话。我正试图按国家代码将整个国家列入黑名单。在谷歌搜索之后,我想出了以下解决方案,但我认为它不起作用。。。因为我试着用我自己的区号来代替,但这不起作用 编码看起来正确吗 另外,我不完全理解[+]?1?部分,希望能详细说明 仅供参考,我确实有一个按编号设置的工作黑名单,因此我知道[blacklisted]上下文部分工作正常 extensions.conf: ;; same => n,Set(regx=^[+]?1?(215|609)

我最近遇到了一个问题,就是昼夜不停地接到来自海外国家的古怪电话。我正试图按国家代码将整个国家列入黑名单。在谷歌搜索之后,我想出了以下解决方案,但我认为它不起作用。。。因为我试着用我自己的区号来代替,但这不起作用

编码看起来正确吗

另外,我不完全理解
[+]?1?
部分,希望能详细说明

仅供参考,我确实有一个按编号设置的工作黑名单,因此我知道
[blacklisted]
上下文部分工作正常

extensions.conf:

;; same => n,Set(regx=^[+]?1?(215|609)[0-9]{7}$) ;; my test
   same => n,Set(regx=^[+]?1?(252|96|27)[0-9]{9}$) 
   same => n,GotoIf($[${REGEX(“${regx}” ${CALLERID(num)})} = 1]?blacklisted,s,1)

   [blacklisted]
   exten => s,1,Answer
   exten => s,n,Hangup
    [globals]

    [default]
    exten => 1001,1,Progress()
    exten => 1001,n,Answer()
    exten => 1001,n,Playback(hello-world)
    exten => 1001,n,Hangup()

    [internal]
    exten => 100,1,Dial(SIP/home)
       same => n,Hangup()
    exten => home,1,Dial(SIP/home)
       same => n,Hangup()
    exten => 103,1,Dial(SIP/office)
       same => n,Hangup()

    include => default
    include => iax2

    [iax2]
    exten => 10,1,Dial(SIP/home)
       same => n,Hangup()
    exten => 11,1,Dial(IAX2/droid)
       same => n,Hangup()
    exten => 12,1,Dial(SIP/home&IAX2/droid)
       same => n,Hangup()
    exten => 20,1,Dial(IAX2/clive)
       same => n,Hangup()
    include => default

    [from-Provider]
    exten => _X.,1,Set(CALLERID(num)=${CALLERID(num):1})

    exten => 17025551234,1,Zapateller(nocallerid)
    same => n,Noop(CALLERID=${CALLERID(all)})
    same => n,GotoIf(${BLACKLIST()}?blacklisted,s,1)
    same => n,Dial(SIP/home&IAX2/droid&SIP/office)
    same => n,Hangup()

    exten => 442035551234,1,Zapateller(nocallerid)
     same => n,Set(regx=^[+]?1?(252|96|27)[0-9]{9}$)
     same => n,GotoIf($[${REGEX("${regx}" ${CALLERID(num)})} = 1]?blacklisted,s,1)
     same => n,GotoIf(${BLACKLIST()}?blacklisted,s,1)
     same => n,Dial(SIP/home&IAX2/droid&SIP/office)
     same => n,Hangup()

    [blacklisted]
    exten => s,1,Answer
    exten => s,n,Hangup
我试图阻止的数字示例:

+252616251444
+252616531860
+27612238445
+96893327281
我试图阻止的测试编号是
1-609-123-4567

这是我的extension.conf:

    [from-Provider]
    exten => _X.,1,Set(CALLERID(num)=${CALLERID(num):1})
    exten => 17025551234,1,Zapateller(nocallerid)
    exten => _XX./_+252X.,n,Goto(blacklisted,s,1) 
    exten => _XX./_+1609X.,n,Goto(blacklisted,s,1)
    same => n,GotoIf(${BLACKLIST()}?blacklisted,s,1)
    same => n,Dial(SIP/home&IAX2/droid&SIP/office)
    same => n,Hangup() 

    [blacklisted]
    exten => s,1,Answer
    exten => s,n,Hangup
这是应该通过的呼叫的结果。它被阻塞并输出这个输出,直到调用方挂断为止

CLI输出:

    == Using SIP RTP CoS mark 5
        -- Executing [17025551234@from-Provider:1] Zapateller("SIP/Provider_did10-00000080", "nocallerid") in new stack
        -- Auto fallthrough, channel 'SIP/Provider_did10-00000080' status is 'UNKNOWN'
      == Using SIP RTP CoS mark 5
        -- Executing [17025551234@from-Provider:1] Zapateller("SIP/Provider_did9-00000081", "nocallerid") in new stack
        -- Auto fallthrough, channel 'SIP/Provider_did9-00000081' status is 'UNKNOWN'
    ...
       -- Executing [17025551234@from-Provider:1] Zapateller("SIP/Provider_did9-00000088", "nocallerid") in new stack
      == Spawn extension (from-Provider, 17025551234, 1) exited non-zero on 'SIP/Provider_did9-00000088'
     == Using SIP RTP CoS mark 5
    [Nov 24 09:08:13] NOTICE[2957]: chan_sip.c:23613 handle_request_invite: Call from 'didforsale_did9' (209.216.15.70:5060) to extension '13022323111' rejected because extension not found in context 'from-didforsale'.
编辑(为callerid添加了noop)

我用你的一字不差地替换了拨号计划。问题是没有电话接通

我想我明白我的问题了。我需要包括
exten=>17025551234,1,Zapateller(nocallerid)
,因为这是我的DID。我不知道该放在哪里

下面是CLI输出。这是一个相同的,无论是一个电话,应通过或应被阻止

== Using SIP RTP CoS mark 5
    -- Executing [17025551234@from-Provider:1] Set("SIP/Provider_did10-000000ec", "CALLERID(num)=16175551234") in new stack
    -- Auto fallthrough, channel 'SIP/Provider_did10-000000ec' status is 'UNKNOWN'
  == Using SIP RTP CoS mark 5
    -- Executing [17025551234@from-Provider:1] Set("SIP/Provider_did9-000000ed", "CALLERID(num)=16175551234") in new stack
    -- Auto fallthrough, channel 'SIP/Provider_did9-000000ed' status is 'UNKNOWN'
  == Using SIP RTP CoS mark 5
    -- Executing [17025551234@from-Provider:1] Set("SIP/Provider_did9-000000ee", "CALLERID(num)=16175551234") in new stack
    -- Auto fallthrough, channel 'SIP/Provider_did9-000000ee' status is 'UNKNOWN'
编辑(extensions.conf):

我有两个弟弟。一个在美国
17025551234
,一个在英国
442035551234
。我没有干线

编辑(使用ESYSCODER上下文的CLI输出)

我已经用您发布的上下文替换了整个[from Provider]上下文。然后我拨打了我的DID号码
17025551234
,这个号码不应该被拒绝
17025550000
(显然,出于隐私考虑,我正在更改号码)

CLI输出如下所示:

    com1*CLI>
        -- Executing [17025551234@from-Provider:1] Set("SIP/Provider_did9-00000012", "CALLERID(num)=17025550000") in new stack
        -- Auto fallthrough, channel 'SIP/Provider_did9-00000012' status is 'UNKNOWN'
      == Using SIP RTP CoS mark 5
        -- Executing [17025551234@from-Provider:1] Set("SIP/Provider_did10-00000013", "CALLERID(num)=17025550000") in new stack
        -- Auto fallthrough, channel 'SIP/Provider_did10-00000013' status is 'UNKNOWN'
      == Using SIP RTP CoS mark 5
        -- Executing [17025551234@from-Provider:1] Set("SIP/Provider_did10-00000014", "CALLERID(num)=17025550000") in new stack
        -- Auto fallthrough, channel 'SIP/Provider_did10-00000014' status is 'UNKNOWN'
      == Using SIP RTP CoS mark 5
        -- Executing [17025551234@from-Provider:1] Set("SIP/Provider_did9-00000015", "CALLERID(num)=17025550000") in new stack
        -- Auto fallthrough, channel 'SIP/Provider_did9-00000015' status is 'UNKNOWN'
      == Using SIP RTP CoS mark 5
        -- Executing [17025551234@from-Provider:1] Set("SIP/Provider_did9-00000016", "CALLERID(num)=17025550000") in new stack
        -- Auto fallthrough, channel 'SIP/Provider_did9-00000016' status is 'UNKNOWN'
      == Using SIP RTP CoS mark 5
        -- Executing [17025551234@from-Provider:1] Set("SIP/Provider_did10-00000017", "CALLERID(num)=17025550000") in new stack
        -- Auto fallthrough, channel 'SIP/Provider_did10-00000017' status is 'UNKNOWN'
    com1*CLI> 
让我困惑的是,我必须有
extn=>17025551234,1,Zapateller(nocallerid)
行,这样DID
17025551234
才能拾取。您建议的拨号计划/上下文中应该包含哪些内容。还是我遗漏了什么。当我的DID号码打电话给我时,有没有其他方法可以回答?对不起,如果我在这里太胖了。。。我可能遗漏了一点

编辑(优先级更改)

在以下上下文中,呼叫者会收到一条消息,“您拨打的号码不在服务中”

这是CLI输出:

    == Using SIP RTP CoS mark 5
        -- Executing [17025551234@from-Provider:1] Zapateller("SIP/Provider_did10-00000080", "nocallerid") in new stack
        -- Auto fallthrough, channel 'SIP/Provider_did10-00000080' status is 'UNKNOWN'
      == Using SIP RTP CoS mark 5
        -- Executing [17025551234@from-Provider:1] Zapateller("SIP/Provider_did9-00000081", "nocallerid") in new stack
        -- Auto fallthrough, channel 'SIP/Provider_did9-00000081' status is 'UNKNOWN'
    ...
       -- Executing [17025551234@from-Provider:1] Zapateller("SIP/Provider_did9-00000088", "nocallerid") in new stack
      == Spawn extension (from-Provider, 17025551234, 1) exited non-zero on 'SIP/Provider_did9-00000088'
     == Using SIP RTP CoS mark 5
    [Nov 24 09:08:13] NOTICE[2957]: chan_sip.c:23613 handle_request_invite: Call from 'didforsale_did9' (209.216.15.70:5060) to extension '13022323111' rejected because extension not found in context 'from-didforsale'.
我得到了与注释掉的行完全相同的东西
;;extn=>\u XX./\u 1609123456X,1,Goto(黑名单,s,1)

拨号计划序列不是:

    1. get caller ID
    2. pick up incoming DID extension (I may have the wrong terminology)
    3. check caller ID for blacklist

?

您可以通过以下方式匹配来电显示:

exten => s/_+252X.,n,Goto(blacklisted,s,1)
exten => s/_+1609X.,n,Goto(blacklisted,s,1)

有关模式匹配的详细信息:

编辑

1-609-123-456X
的示例,其中
X
是任意数字:

[from-Provider]
exten => _XX.,1,Set(CALLERID(num)=${CALLERID(num):1})
exten => _XX./_1609123456X,n,Goto(blacklisted,s,1)
exten => _XX.,n,GotoIf(${BLACKLIST()}?blacklisted,s,1)
exten => _XX.,n,Noop(CALLERID=${CALLERID(all)})
exten => _XX.,n,Dial(SIP/home&IAX2/droid&SIP/office)
exten => _XX.,n,Hangup() 

[blacklisted]
exten => s,1,Answer
exten => s,n,Hangup
您还可以添加其他模式,如:

  • \u 252X.
    (对于以
    252开头的数字
  • \u 96X.
    (对于以
    96开头的数字
如果这不起作用,请添加整个CLI日志。Noop将向我们显示callerid在您的PBX中的外观

编辑2:

两行都应该具有优先级
1

[from-didforsale]
exten => _XX./_1609123456X,1,Goto(blacklisted,s,1)
exten => _XX.,1,GotoIf(${BLACKLIST()}?blacklisted,s,1)
exten => _XX.,n,Noop(CALLERID=${CALLERID(all)})
exten => _XX.,n,Dial(SIP/home&IAX2/droid&SIP/office)
exten => _XX.,n,Hangup()

它似乎不起作用。它会在CLI屏幕中关闭所有显示连续循环的调用:
==使用SIP RTP CoS标记5
--正在执行[16095551234@from-提供者:1]Zapateller(“SIP/提供者”9-00000041,“nocallerid”)在新堆栈--自动故障排除中,通道'SIP/Provider_did9-00000041'状态为'UNKNOWN',对于上面糟糕的格式很抱歉。我试图编辑它,但被一条消息阻止,消息说我只有5分钟的编辑时间。添加了另一个示例。显示您的extensions.conf文件。点点滴滴都没有帮助。我已经添加了extension.conf对于有问题的DID。它是我当前正在工作的extension.conf。我应该将您的扩展放在哪里?它的CLI日志也会很有帮助。上面的登录注释与您的extensions.conf不匹配。它正在运行
[来自提供程序]
而不是
[来自DID提供程序]