ACL与各模块

1. sofia模块配置acl

呼叫acl

文件:internal.xml
属性:

  1. <param name="apply-inbound-acl" value="domains"/>

注册acl

  1. <param name="apply-register-acl" value="domains"/>

ACL使用技巧

1. 放开内部用户的呼入限制

acl.conf.xml有一段注释:

  1. <!--
  2. This will traverse the directory adding all users
  3. with the cidr= tag to this ACL, when this ACL matches
  4. the users variables and params apply as if they
  5. digest authenticated.
  6. -->
  7. <list name="domains" default="deny">
  8. <!-- domain= is special it scans the domain from the directory to build the ACL -->
  9. <node type="allow" domain="$${domain}"/>
  10. <!-- use cidr= if you wish to allow ip ranges to this domains acl. -->
  11. <!-- <node type="allow" cidr="192.168.0.0/24"/> -->
  12. </list>

翻译过来的意思是, 在directory里面的用户, 如果含有cidr标签, 对应的cidr会被添加到domains规则中.
也就是说, 用户所在的ip地址只要符合cidr规则, 就可以免密登陆.

所以, 为了放开内网的呼叫限制, 可以做如下操作:
在conf/directory/default中增加文件inuser.xml
内容如下:

  1. <include>
  2. <user id="inuser" cidr="10.0.0.0/8,172.0.0.0/8,192.0.0.0/8">
  3. <params>
  4. <param name="password" value="$${default_password}"/>
  5. </params>
  6. <variables>
  7. <variable name="accountcode" value="inuser"/>
  8. <variable name="user_context" value="default"/>
  9. </variables>
  10. </user>
  11. </include>

添加该规则后, 基本覆盖所有的内网地址, 请刷新acl:

  1. reloadxml
  2. reloadacl

2. 验证某个ip是否符合acl规则

  1. freeswitch@mybox> acl 192.168.42.42 192.168.42.0/24
  2. freeswitch@mybox> acl 192.168.42.42 list_foo