功能描述:对呼叫的号码进行过滤
步骤:
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