0

我用 mysql 和 odbc 插件安装了 asterisk 1.8,我如何使用 func_odbc 在 mysql 上保留 MixMonitor() 文件?

4

2 回答 2

0

不幸的是,您不能使用 MixMonitor 直接保存在 SQL 表上。

相反,我建议您编写一个脚本(例如在 PHP 中)检查 /var/spool/asterisk/monitor 文件夹中的新文件,在 SQL 中导入文件然后删除该文件。

您创建一个用于“记录”的新 SQL 表,其中包含 2-3 个字段(唯一标识、内容、文件名),您将能够轻松链接 CDR 和记录数据。

由于所有录制文件都将保存在 SQL 数据库中,因此您还可以创建一个 ramdisk 来存储文件,如果您有很多调用,这将减少服务器上的磁盘 i/o ;)

于 2013-03-09T17:25:07.013 回答
0

您可以创建表记录并使用 func_odbc.conf

例子:

func_odbc.conf

[R]
dsn=asterisk
prefix=M
writesql=INSERT INTO records (wav,contact,agent,uniqueid) VALUES ('${VAL1}','${VAL2}','${VAL3}','${VAL4}');

extensions.conf

exten => _0[2345679].,1,NoOp(${CALLERID(num)})
exten => _0[2345679].,n,Set(FILENAME=Poste---${CALLERID(num)}__${STRFTIME(${EPOCH},,%d-%m-%Y_%Hh%Mm%Ss)}__Appel-Sortant---${EXTEN}_UI-${UNIQUEID})
exten => _0[2345679].,n,Set(M_R()=${FILENAME}\,${EXTEN}\,${CALLERID(num)}\,${UNIQUEID})
exten => _0[2345679].,n,MixMonitor(${FILENAME}.wav,b)
exten => _0[2345679].,n,dial(SIP/gsm2/2${EXTEN})
于 2021-06-17T13:10:48.793 回答