freeswitch开启录音配置,并将录音保存至mysql 如何操作
时间: 2024-06-11 13:06:20 浏览: 271
要开启FreeSWITCH的录音功能并将录音保存至MySQL数据库,需要按照以下步骤进行操作:
1. 在FreeSWITCH的配置文件中设置录音路径和格式。在“vars.xml”文件中添加以下配置:
```
<XML>
<X-PRE-PROCESS cmd="set" data="recordings_dir=/path/to/recordings"/>
<XML>
```
其中,/path/to/recordings是录音文件保存的路径。
2. 在FreeSWITCH的“autoload_configs”目录下创建一个名为“mod_mysql.conf.xml”的文件,并添加以下配置:
```
<configuration name="mod_mysql.conf" description="MySQL Configuration">
<settings>
<param name="odbc-dsn" value="DSN"/>
<param name="odbc-table" value="recordings"/>
<param name="odbc-username" value="username"/>
<param name="odbc-password" value="password"/>
</settings>
</configuration>
```
其中,DSN是ODBC数据源的名称,recordings是表名,username和password是连接数据库的用户名和密码。
3. 在FreeSWITCH的“autoload_configs”目录下创建一个名为“mod_callcenter.conf.xml”的文件,并添加以下配置:
```
<configuration name="mod_callcenter.conf" description="Callcenter Configuration">
<settings>
<param name="cdr-db-dsn" value="odbc://DSN"/>
<param name="cdr-table" value="recordings"/>
<param name="cdr-username" value="username"/>
<param name="cdr-password" value="password"/>
</settings>
</configuration>
```
其中,DSN是ODBC数据源的名称,recordings是表名,username和password是连接数据库的用户名和密码。
4. 在FreeSWITCH的“dialplan”中添加录音处理逻辑。在“default.xml”文件中添加以下配置:
```
<extension name="record_call">
<condition field="destination_number" expression="^(\d{3})$">
<action application="answer"/>
<action application="start_dtmf"/>
<action application="playback" data="ivr/ivr-enter-ext-of-person.wav"/>
<action application="read" data="exten_to_dial 3 6 7000 #"/>
<action application="start_record" data="$${recordings_dir}/${strftime(%Y-%m-%d-%H-%M-%S)}_${caller_id_number}_${dialed_extension}.wav"/>
<action application="bridge" data="{sofia/internal/${exten_to_dial}@default}"/>
<action application="stop_record"/>
<action application="hangup"/>
</condition>
</extension>
```
其中,$${recordings_dir}是录音保存的路径,在start_record应用程序中使用了时间戳、呼叫方号码和被叫方号码作为文件名。
5. 创建MySQL表以存储录音文件。可以使用以下SQL语句创建表:
```
CREATE TABLE recordings (
id INT NOT NULL AUTO_INCREMENT,
filename VARCHAR(255) NOT NULL,
caller_id VARCHAR(255) NOT NULL,
dialed_extension VARCHAR(255) NOT NULL,
start_time DATETIME NOT NULL,
end_time DATETIME NOT NULL,
duration INT NOT NULL,
PRIMARY KEY (id)
);
```
6. 启动FreeSWITCH并测试录音。拨打测试号码并录制音频,然后检查MySQL数据库中的录音表以确保录音已保存。
以上是将FreeSWITCH录音保存至MySQL数据库的操作步骤。需要注意的是,这只是基本的录音配置,具体的录音逻辑和处理方式可以根据实际需求进行调整。
阅读全文