功能描述:对呼叫的号码进行过滤

步骤:

1、编译mod_blacklist 模块:进入源目录/usr/local/src/freeswitch  --> make mod_blacklist-install

2、加载mod_blacklist模块: fs_cli  -->  reload mod_blacklist   或   modules.conf.xml  添加 -->   <load module="mod_blacklist"/>  重启FS

3、设置mod_blacklist模块:默认blacklist.conf.xml 如下:

  <configuration name="mod_blacklist.conf" description="Blacklist module">
    <lists>

      <list name="example" filename="/usr/local/freeswitch/blacklists/blocked.list"/>
    </lists>
  </configuration>

  在/usr/local/freeswitch/blacklists 目录下创建blocked.list ,输入黑名单号码内容,一行一个,保存,修改该文件的用户组以与FS相同,权限可读写。

4、设置拨号规则:

  1> 如需呼出黑名单限制 ,在default.xml 中最前面增加如下规则

  <extension name="blacklist_check">
    <condition field="${blacklist(check example ${destination_number})}" expression="^true$">
      <action application="answer" data=""/>
      <action application="playback" data="$${base_dir}/sounds/music/city_of_sky.wav"/>
      <action application="hungup" data=""/>
    </condition>
  </extension>

  2> 如需呼入黑名单限制,在public.xml 中最前面增加如下规则

  <extension name="blacklist_check">
    <condition field="${blacklist(check example ${caller_id_number})}" expression="^true$">
      <action application="answer" data=""/>
      <action application="playback" data="$${base_dir}/sounds/music/Speak.wav"/>
      <action application="hangup" data=""/>
    </condition>
  </extension>

  注:如上的呼入呼出黑名单都放在list name= example 的黑名单中,也可以将呼入呼出拆分为单独的文件使用,配置仅需再拨号规则中修改对应的listname值即可。

5、Blacklist API:

>blacklist help
blacklist check <listname> <item> // 检查内存中黑名单列表是否有item,有返回true,没有则返回false
blacklist add <listname> <item> // 在内存 listname 对应的列表中增加 item 项
blacklist del <listname> <item> // 在内存 listname 对应的列表中删除 item 项
blacklist save <listname> // 将内存 listname 中的所有 item 写入对应的文件中,如 /usr/local/freeswitch/blacklists/blocked.list
blacklist reload // 将文件中的数据更新到 内存中
blacklist help // 显示该模块所有的API

  

05-04 06:11