1、接听后开始录音
dialplan/default.xml
<action application="set" data="RECORD_APPEND=true"/>
<action application="set" data="RECORD_COPYRIGHT=(c) 2020"/>
<action application="set" data="RECORD_SOFTWARE=FreeSWITCH"/>
<action application="set" data="RECORD_ARTIST=FreeSWITCH"/>
<action application="set" data="RECORD_COMMENT=FreeSWITCH"/>
<action application="set" data="RECORD_DATE=${strftime(%Y-%m-%d %H:%M)}"/>
<action application="set" data="RECORD_STEREO=true"/>
<action application="set" data="enable_file_write_buffering=false"/>
<action application="set" data="media_bug_answer_req=true"/>
<action application="set" data="record_relative_dir=${strftime(%Y-%m-%d)}"/>
<action application="set" data="record_file=${caller_id_number}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
<action application="system" data="/bin/mkdir -m 755 -p $${recordings_dir}/${record_relative_dir}"/>
<action application="export" data="execute_on_answer=record_session $${recordings_dir}/${record_relative_dir}/${record_file}" />
RECORD_APPEND 如果不开启,双方同时说话录音会有问题
/bin/mkdir -m 755 -p $${recordings_dir}/${record_relative_dir}
使用这个命令来创建根据日期归档的录音文件,同时设置目录权限755,避免后面其他应用访问出现权限问题
execute_on_answer=record_session $${recordings_dir}/${record_relative_dir}/${record_file}
这一段用来指示在对方应答后开始录音,并且指定录音文件路径
2、通话记录通过mod_xml_cdr上传
autoload_configs/modules.conf.xml
<load module="mod_xml_cdr"/>
配置要上传的api
autoload_configs/xml_cdr.conf.xml
<param name="url" value="https://xxxx/call/callRecordApi/create"/>
开启模块, 需要在控制台加载模块
freeswitch@VM-8-4-centos> load mod_xml_cdr
+OK Reloading XML
-ERR [Module already loaded]
3、关联录音文件和通话记录
在freeswitch服务器上搭建一个nginx静态网站
在网站root目录创建一个软连接,指向录音文件目录
ln -s /var/log/freeswitch/recording recording
前面设置的通话记录接口可以接受xml记录里面的variables里面的录音文件路径,保存记录时添加上freeswitch服务器的域名或者ip就可以获取直接访问到录音文件的链接了。