ACL与各模块
1. sofia模块配置acl
呼叫acl
文件:internal.xml
属性:
<param name="apply-inbound-acl" value="domains"/>
注册acl
<param name="apply-register-acl" value="domains"/>
ACL使用技巧
1. 放开内部用户的呼入限制
acl.conf.xml有一段注释:
<!--
This will traverse the directory adding all users
with the cidr= tag to this ACL, when this ACL matches
the users variables and params apply as if they
digest authenticated.
-->
<list name="domains" default="deny">
<!-- domain= is special it scans the domain from the directory to build the ACL -->
<node type="allow" domain="$${domain}"/>
<!-- use cidr= if you wish to allow ip ranges to this domains acl. -->
<!-- <node type="allow" cidr="192.168.0.0/24"/> -->
</list>
翻译过来的意思是, 在directory里面的用户, 如果含有cidr标签, 对应的cidr会被添加到domains规则中.
也就是说, 用户所在的ip地址只要符合cidr规则, 就可以免密登陆.
所以, 为了放开内网的呼叫限制, 可以做如下操作:
在conf/directory/default中增加文件inuser.xml
内容如下:
<include>
<user id="inuser" cidr="10.0.0.0/8,172.0.0.0/8,192.0.0.0/8">
<params>
<param name="password" value="$${default_password}"/>
</params>
<variables>
<variable name="accountcode" value="inuser"/>
<variable name="user_context" value="default"/>
</variables>
</user>
</include>
添加该规则后, 基本覆盖所有的内网地址, 请刷新acl:
reloadxml
reloadacl
2. 验证某个ip是否符合acl规则
freeswitch@mybox> acl 192.168.42.42 192.168.42.0/24
freeswitch@mybox> acl 192.168.42.42 list_foo