FreeSwitch 添加配置录音功能

搭建 FreeSwitch 呼叫系统,通常都需要录音功能,将所有的通话都进行录音,FreeSwitch 可以进行配置进行录音,默认不开启录音功能。

配置录音功能,需修改 /etc/freeswitch/dialplan/default.xml,在拨号路由中添加如下代码,红色部分为录音保存路径,可以自由设置,可以进行拨号录音配置,哪些路由进行录音,哪些不进行录音。

<!–录音–>
<action application=”set” data=”RECORD_TITLE=Recording ${destination_number} ${caller_id_number} ${strftime(%Y-%m-%d %H:%M)}”/>
<action application=”set” data=”RECORD_COPYRIGHT=(c) 2011″/>
<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=”record_session” data=”/record/cdr/${strftime(%Y)}/${strftime(%m)}/${strftime(%d)}/${caller_id_number}/${uuid}.wav“/>
<action application=”set” data=”call_out”/>
<action application=”set” data=”destination=$1″/>
<action application=”set” data=”caller_id_number=${caller_id_number}”/>
<!–录音–>

如果呼出电话不没有记录到录音文件,则需要在呼出路由文件中添加同样的代码。录音文件默认保存的是wav 格式,没有进行转码,这种格式较占磁盘空间,可以在服务器闲时,进行音频转码,转为 MP3格式,可以减少80%左右的文件大小。

wav 文件转mp3格式要使用 lame,可在系统中直接安装,然后使用下面代码进行批量转换,可以添加在计划任务中,下面的代码是,自动转换昨天 RECORD_PATH 目录中的wav 格式为 mp3。可自行设置输出目录

RECORD_PATH="/record/cdr"/$(date -d yesterday +'%Y')/$(date -d yesterday +'%m')/$(date -d yesterday +'%d')

cd $RECORD_PATH

echo $RECORD_PATH

for WAV in $(find  -name '*.wav' 2> /dev/null)

do
    echo "Encoding MP3 file from $WAV ..." `date "+%G-%m-%d %H:%M:%S"`  >/record/cdr/log/encoding_mp3.log

    OUT=${WAV%.*}

    lame  --preset standard  $OUT.wav $OUT.mp3
	myFile=$OUT.mp3
	curtime=`date "+%G-%m-%d %H:%M:%S"`
	filename=`date "+%G%m%d"`
	if [ -f "$myFile" ]; then
        size=`du -k $myFile |awk '{print $1}'`
        if [ $size -gt 4 ]; then
            echo $size $myFile $curtime >/record/cdr/log/$filename.log
			rm -f $OUT.wav
            chmod -R +755 myFile
        else
            echo "0" $myFile $curtime >/record/cdr/log/0.log
        fi
	else
        echo "$myFile  does not exist" $curtime > /record/cdr/log/notfound.log
	fi 

done
find /record/cdr/ -mtime +1 -name "*.log" -exec rm -rf {} \;
#EOF

原创文章,作者:admin,如若转载,请注明出处:https://ntib.cn/58.html

(0)
adminadmin
上一篇 2018年11月18日 下午9:50
下一篇 2018年11月18日 下午10:01

相关推荐

  • win10安装apache及php7

    现在又很多php本地安装集成包phpstudy、wamp、xampp等,原来一直使用这些集成包,安装简单方便,因为不想安装一些没用的软件,后来就直接自己进行了环境搭建。 一、首先安…

    2021年11月18日
  • 宝塔面板一键迁移网站及数据库

    两个服务器间迁移数据太麻烦了,宝塔面板中有宝塔一键迁移插件安装上,注意是在要迁出数据的服务器上安装,安装完成后,在一键迁移插件设置中输入 新服务器的面板地址及面板API密钥。按照提…

    2023年11月18日
  • 在PHP中 利用 CURL 模拟发送 POST , GET 请求代码

    在做淘客程序中,需要获取远程服务器的资源,最初使用的file_get_contents() 函数来获取,因为这个使用比较简单,但是连着请求几次后出现卡顿的情况,百度了一下…

    记事本 2018年11月18日
  • 同步 Linux 服务器的时间

    不知道什么原因,centos 运行一段后,发现系统时间与 当前时间不符,差了几分钟,看着对不上,心里很是不舒服,就想着同步一下系统时间, centos 同步时间命令 ntpdate…

    记事本 2018年11月18日
  • CentOS7.9升级 OpenSSL OpenSSH

    CentOS7.9 默认使用 OpenSSH_7.4p1, OpenSSL 1.0.2k-fips,按下面的步骤可以升级成功,但为验证是否影响其它软件。 安装openssl-1.1…

    记事本 2025年3月26日
  • 网站分步引导组件Driver.js

    在web使用中经常看到分步引导功能,提示你如何操作及功能演示,有很多工具可以实现这种功能。如Driver.js、introjs等, Driver.js 使用MIT Licensed…

    2023年11月18日
  • ThinkPHP模型事件

    模型事件是指在进行模型的写入操作的时候触发的操作行为,包括模型的save方法和delete方法。 模型事件包括下面几种,分为新增前后、更新前后、写入前后、和删除前后,暂时称4个分组…

    记事本 2023年11月18日
  • CentOS 自动设置指定时间内生成文件的权限

    在使用 FreeSWITCH 生成录音文件时,网站访问录音文件时会出现403错误,是因为生成的文件没有权限,可以设置定时任务设置文件的权限,比如,我们自动设置5分钟内的文件或文件夹…

    记事本 2024年2月21日
  • 迅时网关默认IP及用户名

    MX120G是迅时推出的大容量、高性能、高可靠的语音接入网关,支持完备的办公电话功能,提供灵活多样的接入手段。MX120G具有极高的性价比,特别适用于大型呼叫中心和高端IP语音集成…

    2018年11月18日
  • docker 定时任务crontab 设置

    docker 中设置定时任务一之不执行,于是在宿主机中设置定时任务来执行命令

    记事本 2023年12月5日

发表回复

登录后才能评论
WeChat