centos7配置freeswitch开启录音功能,并保存至mysql,详细步骤,以及配置文件的位置
时间: 2024-02-15 14:31:49 浏览: 134
以下是在CentOS 7上配置FreeSWITCH录音并将其保存到MySQL的详细步骤:
1. 安装FreeSWITCH和MySQL
首先,需要在CentOS 7上安装FreeSWITCH和MySQL。可以使用以下命令安装:
```
yum install -y freeswitch mariadb-server
```
2. 创建数据库和表
在MySQL中创建一个名为freeswitch的数据库,并创建一个名为recordings的表来存储录音文件的信息。可以使用以下命令创建:
```
mysql -u root -p
CREATE DATABASE freeswitch;
USE freeswitch;
CREATE TABLE recordings (
id INT NOT NULL AUTO_INCREMENT,
call_id VARCHAR(50) NOT NULL,
file_name VARCHAR(255) NOT NULL,
start_time DATETIME NOT NULL,
end_time DATETIME NOT NULL,
PRIMARY KEY (id)
);
```
3. 配置FreeSWITCH
在FreeSWITCH中启用录音功能并将其配置为将录音文件保存到MySQL数据库。可以通过编辑以下文件来完成此操作:
```
/etc/freeswitch/autoload_configs/recordings.conf.xml
```
将以下行添加到文件的末尾:
```
<configuration name="recordings.conf" description="Recordings">
<settings>
<param name="base-dir" value="/var/lib/freeswitch/recordings" />
<param name="record-template" value="${base_dir}/${strftime(%Y-%m-%d-%H-%M-%S)}_${caller_id_number}_${destination_number}_${unique_id}.wav" />
<param name="record-post-process" value="/usr/local/bin/freeswitch_record_post_process.sh" />
<param name="record-cache-dir" value="/tmp" />
<param name="record-cache-size" value="1000" />
<param name="record-cache-timeout" value="3600" />
<param name="cdr-write" value="true" />
<param name="cdr-backend" value="csv" />
<param name="cdr-csv-logdir" value="/var/log/freeswitch/cdr-csv" />
<param name="cdr-csv-base-name" value="cdr" />
<param name="cdr-csv-field-names" value="start_stamp,answer_stamp,end_stamp,duration,billsec,caller_id_number,destination_number,uuid,call_direction,call_uuid" />
<param name="cdr-csv-extra" value="caller_id_name,destination_name,read_codec,write_codec" />
<param name="event-locking" value="false" />
<param name="post-process-locking" value="false" />
<param name="db-dsn" value="mysql://root:password@localhost/freeswitch" />
<param name="db-table" value="recordings" />
<param name="db-id-col" value="id" />
<param name="db-call-id-col" value="call_id" />
<param name="db-file-name-col" value="file_name" />
<param name="db-start-time-col" value="start_time" />
<param name="db-end-time-col" value="end_time" />
<param name="db-time-format" value="%Y-%m-%d %H:%M:%S" />
</settings>
</configuration>
```
请注意,必须将“db-dsn”参数设置为MySQL数据库的连接字符串,并指定要使用的数据库表的名称和列名称。
4. 创建录音后处理脚本
在录音完成后,可以使用录音后处理脚本将录音文件的信息插入到MySQL数据库中。创建一个名为freeswitch_record_post_process.sh的脚本,并将以下内容添加到文件中:
```
#!/bin/bash
call_id=$(echo $1 | sed 's|/var/lib/freeswitch/recordings/||g' | awk -F_ '{print $1}')
file_name=$(echo $1 | sed 's|/var/lib/freeswitch/recordings/||g')
start_time=$(date +%Y-%m-%d\ %H:%M:%S)
end_time=$(date +%Y-%m-%d\ %H:%M:%S)
mysql -u root -ppassword -e "INSERT INTO freeswitch.recordings (call_id, file_name, start_time, end_time) VALUES ('$call_id', '$file_name', '$start_time', '$end_time');"
```
该脚本将提取录音文件的信息,并将其插入到MySQL数据库中。
5. 启动FreeSWITCH
现在,可以启动FreeSWITCH并开始录音。使用以下命令启动FreeSWITCH:
```
systemctl start freeswitch
```
可以在以下位置查找录音文件:
```
/var/lib/freeswitch/recordings
```
可以使用以下命令停止FreeSWITCH:
```
systemctl stop freeswitch
```
请注意,如果您在录音过程中遇到任何问题,请查看FreeSWITCH的日志文件,以获取更多详细信息。
以上是在CentOS 7上配置FreeSWITCH录音并将其保存到MySQL的详细步骤。
阅读全文