Asterisk 星号ACL不';好像不行

Asterisk 星号ACL不';好像不行,asterisk,Asterisk,我试图让Asterisk允许来自同一供应商的多个IP上的入站呼叫(完全通过IP授权)。到目前为止,唯一有效的方法是为每个IP创建一个新的sip.conf对等条目 ACL看起来应该可以工作,但我不知道如何正确使用它们。或者他们没有像我认为的那样工作 例如,如果我在sip.conf中创建以下内容(稍微精简): 从1.1.1.1到达的调用按预期转到上下文abc。但是,如果我有一系列IP(如1.1.1.80/28),我希望这些IP能够起作用: [supplier] type=peer host=dyna

我试图让Asterisk允许来自同一供应商的多个IP上的入站呼叫(完全通过IP授权)。到目前为止,唯一有效的方法是为每个IP创建一个新的sip.conf对等条目

ACL看起来应该可以工作,但我不知道如何正确使用它们。或者他们没有像我认为的那样工作

例如,如果我在sip.conf中创建以下内容(稍微精简):

从1.1.1.1到达的调用按预期转到上下文abc。但是,如果我有一系列IP(如1.1.1.80/28),我希望这些IP能够起作用:

[supplier]
type=peer
host=dynamic
acl=supplier-acl
context=abc
将acl.conf设置为:

[supplier-acl]
deny=0.0.0.0/0.0.0.0
permit=1.1.1.80/28
从星号CLI:

acl show supplier-acl

ACL: supplier-acl
----------------------------------------
0: deny - 0.0.0.0/0.0.0.0
1: allow - 1.1.1.80/255.255.255.240
在我看来这是正确的,而sip show peers在ACL列中显示了一个

在任何情况下,无论我如何尝试和配置,呼叫都会转到默认上下文,除非主机包含入站呼叫的精确IP

我已经尝试了很多配置变体,我真的记不清它们的全部,所以我想问的是,有人知道如何做到这一点吗


编辑:我正在使用星号13.0.2

ACL限制网络配置,但不标识主机

每个呼叫源主机都需要一个单独的对等条目,以确保呼叫到达正确的上下文。只需将您的
[supplier]
制作成一个模板,然后将几个
[supplier-srv1]
[supplier-srv2]
分别与
主机=
进行区分

进一步阅读
+

+acl是为这样的东西设计的

[localext]
type=friend
host=dynamic
secret=supersecret
deny=0.0.0.0/0.0.0.0
permit=192.168.0.1/24

您仍然需要添加其他必需的参数(上面的示例中是最小实际工作)

是的,这就是我所做的,对一些人来说很好。但我可能有几百个。因为你们可以在Freeswitch上轻松实现,所以我假设Asterisk(现在)也会有类似的功能。啊,好吧。这只有在承运人使用用户名/秘密授权的情况下才有效。仅在IP身份验证上不起作用(或者如果它应该起作用,我似乎做不到)。如果使用IP身份验证,则必须使用host=a.b.c.d,而不使用secret。因为ip认证ACL根本没有任何意义。在这个例子中,星号似乎不能做我想做的事情。我可以使用Freeswitch版本的ACL在子网上进行IP验证,所以我将坚持使用它。星号工作正常。请仔细阅读上面写的内容并研究sip.conf文档。在这种特殊情况下,星号不支持OP试图对ACL执行的操作@迈克尔69回答得对。
[localext]
type=friend
host=dynamic
secret=supersecret
deny=0.0.0.0/0.0.0.0
permit=192.168.0.1/24