Страница 1 из 11
Запись разговоров в базу mysql..
Добавлено: 12 апр 2013, 19:15
mik-mak
Возможна ли запись разговора в базу? Не только параметров звонка CDR, а и самого голосового файла..
Установлены:
Asterisk 1.8
FreePBX 2.10
Re: Запись разговоров в базу mysql..
Добавлено: 12 апр 2013, 19:19
Samael28
Конечно. Но зачем?
Re: Запись разговоров в базу mysql..
Добавлено: 12 апр 2013, 20:34
mik-mak
А как это реализуется?
Есть огромное количество мануалов по записи в базу голосовой почты.. Под это делается таблица, скажем, voicemail и в ней поле специального типа "longblob", куда должно писаться сообщение.. Ничего подобного для записи разговоров не нашёл.. Да, делается таблица cdr и в нее пишуся параметры звонка и название файла, куда это разговор сваливается..
Зачем: Мне надо писать небольшое количество разговоров (скажем, 10-20 разговоров в сутки) и записи забирать хотелось бы sql запросом..
Re: Запись разговоров в базу mysql..
Добавлено: 12 апр 2013, 21:48
Aven
Пишите во временный файл, потом скриптом по завершении записи пихаете этот временный файл в базу.
Re: Запись разговоров в базу mysql..
Добавлено: 12 апр 2013, 22:45
ded
В дистрибутивах все записи пишутся таки в файлы, которые имеют сложные длинные имена, вся куча индексируется, индекс пишется в базу, и записи забираете sql запросом, как хотелось.
Re: Запись разговоров в базу mysql..
Добавлено: 12 апр 2013, 23:46
tma
Вообще не ясен смысл писать бинарный файл в SQL. Потом по нему поиск организовывать?
Re: Запись разговоров в базу mysql..
Добавлено: 13 апр 2013, 00:18
noize
Смысл есть. Когда стоит пара астерисков в горячем резерве, целесооборазно звонки с них хранить в одном месте. Переносимось опять таки, когда нужно залить все записанные разговоры с одного сервера на другой.
Что касается реализации, то уже написали - пишете в файл, на завершение записи разговора вешаете скрипт, который загоняет файл в базу.
Re: Запись разговоров в базу mysql..
Добавлено: 13 апр 2013, 00:20
mik-mak
Хм.. Я то хотел писать в базу бинарный файл в виде, похожем на то, как пишется voicemail.. Тоесь, предполагал вот такую структуру таблицы для записи звуковых файлов:
mysql> create database asteriskcdrdb;
mysql> use asteriskcdrdb;
mysql> CREATE TABLE cdr (
calldate datetime NOT NULL default ‘0000-00-00 00:00:00′,
clid varchar(80) NOT NULL default ”,
src varchar(80) NOT NULL default ”,
dst varchar(80) NOT NULL default ”,
dcontext varchar(80) NOT NULL default ”,
channel varchar(80) NOT NULL default ”,
dstchannel varchar(80) NOT NULL default ”,
lastapp varchar(80) NOT NULL default ”,
lastdata varchar(80) NOT NULL default ”,
duration int(11) NOT NULL default ‘0′,
billsec int(11) NOT NULL default ‘0′,
disposition varchar(45) NOT NULL default ”,
amaflags int(11) NOT NULL default ‘0′,
accountcode varchar(20) NOT NULL default ”,
userfield varchar(255) NOT NULL default ”,
+++++++++++++++++++++++++++++++++++++++++++++++++++++
А вот тут вставить хотел чего-нить типа:
recording longblob,
+++++++++++++++++++++++++++++++++++++++++++++++++++++
uniqueid varchar(32) NOT NULL default ”
);
ALTER TABLE cdr ADD INDEX ( calldate );
ALTER TABLE cdr ADD INDEX ( dst );
ALTER TABLE cdr ADD INDEX ( uniqueid );
Re: Запись разговоров в базу mysql..
Добавлено: 13 апр 2013, 00:54
ded
noize писал(а):Смысл есть. Когда стоит пара астерисков в горячем резерве, целесооборазно звонки с них хранить в одном месте.
10-20 разговоров в сутки и пара астерисков в горячем резерве?
Не стыкуется.
Для хранения всего в одном месте и использования нескольких нодов в кластре используются расшаренные между нодами NAS & SAN.
Re: Запись разговоров в базу mysql..
Добавлено: 13 апр 2013, 00:55
noize
Лучше связать таблицу записанных разговоров с таблицей CDR по полю uniquieid и дёргать данные из обеих таблиц: из CDR информацию о звонке из таблицы с разговорами - непосредственно разговор. Иначе получается избыточность.