CDR是call detail reacord的意思,CDR系统记录呼叫的详细信息。CDR的处理有2种方式,一个是用mod_cdr_cvs,一个是用mod_xml_cdr. 在模块配置文件中可以配置cdr的内容和路径等. 如下,cvs的配置文件:
<configuration name="cdr_csv.conf" description="CDR CSV Format">
<settings>
<!-- 'cdr-csv' will always be appended to log-base -->
<!--<param name="log-base" value="/var/log"/>-->
<param name="default-template" value="example"/>
<!-- This is like the info app but after the call is hung up -->
<!--<param name="debug" value="true"/>-->
<param name="rotate-on-hup" value="true"/>
<!-- may be a b or ab -->
<param name="legs" value="a"/>
</settings>
<templates>
...............................
默认情况下,它只记录a-leg, 要把完整的CDR记录下来,需要把legs设为ab。
mod_cdr_cvs模块提供的功能是把CDR写入本地的.cvs文件并插入数据库,这些cvs文件以呼叫的分机号命名,在log/cdr-csv目录下。
mod_xml_cdr的作用是以http的post方法把cdr信息(以xml格式)发送给web server,如果没有发送成功就会把cdr信息存放在本地的xml文件中。
FS默认使用mod_cdr_cvs,要使用mod_xml_cdr需要在modules.conf.xml 文件中去掉该模块的注释使它可以被导入。然后在conf文件夹新建xml_cdr.conf.xml,内容如下:
<configuration name="xml_cdr.conf" description="XML CDR CURL logger"> <settings> <param name="cred" value="user:pass"/> <param name="url" value="http://myhost/cdr.php"/> <param name="retries" value="2"/> <param name="delay" value="120"/> <param name="log-dir" value="/var/log/cdr"/> <param name="err-log-dir" value="/var/log/cdr/errors"/> <param name="encode" value="True"/> </settings> </configuration>
http://wiki.freeswitch.org/wiki/CDR#mod_cdr_csv上还有一句话,说如果freeswitch.xml中没有用include语句包含该文件的话,那说
明这个版本还不支持该功能,但是我用的是1.0.4最新版,它的freeswitch。xml文件中也没有包含mod_xml_cdr.xml。。。不知道什么时候才支持。。。