mod_da2使用说明

介绍

mod_da2是一个FreeSWITCH的定制模块,在呼叫前设置通道变量execute_on_media=start_da2,就可以在呼叫的时候启动空号识别。

下载

http://www.dingdingtong.cn/mod_da2_last.rar

安装

依赖库
openssl-devel
libcurl-devel
jsoncpp-devel
libuuid-devel

so 文件 在 centos6和centos7目录,debian7和centos6 使用同样的so,debian8和centos7使用同样的so,如果自己安装不了jsoncpp-devel也可以直接使用so目录里面的libjsoncpp.尽量自己通过yum或者apt安装。

假设 fs安装目录是 /usr/local/freeswitch/

da2.conf.xml copy到 fs安装目录/conf/autoload_configs/da2.conf.xml
da2.json copy到 fs安装目录/conf/da2.json
libda2.so copy到 fs安装目录/lib/libda2.so
mod_da2.so copy到 fs安装目录/mod/mod_da2.so

fs安装目录/conf/autoload_configs/modules.conf.xml 末尾加入 <load module="mod_da2"/>

fs控制台fs_cli 执行 load mod_da2,没出现红色的字,就安装好了。

测试

控制台测试方法

bgapi originate sofia/external/156@ddrj.com:16080 &da2

bgapi originate {execute_on_media=start_da2}sofia/external/156@ddrj.com:16080 gentones:%(500\,0\,640),park inline

dialplan 使用方法

<extension name="da">
  <condition field="destination_number" expression="^(\d*)$">
  <action application="export" data="nolocal:execute_on_media=start_da2"/>
  <action application="bridge" data="sofia/external/156@sip.ddrj.com:16080"/>
  </condition>
</extension>

配置

da2.conf.xml,设置空号识别模块参数。

<configuration name="da2.conf" description="Dial tone analysis">
  <settings>

    <!-- libda2配置文件路径,不设置会使用默认路径 -->
    <!-- <param name="configurefilename" value="/etc/da2.json"/> -->
    <!--  <param name="configurefilename" value="da2.json"/> -->

    <!-- libda2日志文件路径 不设置会使用默认路径-->
    <!-- <param name="logfilename" value="/var/log/da2.log"/> -->
    <!-- <param name="logfilename" value="da2.log"/>  -->


    <!-- 检测到什么结果挂断通话,可能的值:busy ringback coolringback prompt sample -->
    <param name="hanguptone" value="sample busy"/> 


    <!-- 不设置recordpath  就不会录音 -->
    <!-- <param name="recordpath" value="da_record"/> -->

    <!-- 电话接通后停止识别,模拟线路请设置false -->
    <param name="answerautosotp" value="true"/> 

    <!-- 最大检测时间 单位(秒) -->
    <param name="maxdetecttime" value="60"/> 


  </settings>
</configuration>

da2.json 设置云服务器连接参数。

{
    "da" : 
    {
        "connect" : 
        {
            "addr" : "http://da.ddrj.com/ip.txt",
            "port" : 9977,
            "reConnectInterval" : 15000,
            "timer" : 5000
        }
    }
}

esl事件

订阅

Event-Subclass: da2 Event-Name: CUSTOM。

事件内容

Event-Subclass da2
da2_tone
da2_point
da2_sample_uniqueid
da2_sample_name
da2_sample_alias
da2_sample_brief
da2_sample_detail
da2_sample_language
da2_sample_category

具体含义

  • tone:识别到的信号音类型,具体看以下值的解释。
    • sample 匹配到样本
    • busy 忙音
    • ringback 回铃音
    • coolringback 彩铃 (暂时不支持)
    • prompt 未识别的提示音 (暂时不支持)
    • unkown 未知的值
  • point: 识别到结果的声音位置
  • uniqueid: 样本ID
  • name: 样本名字,具体看 category。
  • alias: 样本别名
  • brief: 样本文本简介
  • detail: 样本详细内容
  • language: 样本语言类型 可能是 普通话|方言|英语 | zh | en 等
  • source: 样本来源
  • number: 样本来源的号码
  • recognize: 识别结果的准确性, LOOSE(不准),INACCURACY(一般),ACCURACY(准确)