VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Запись разговоров в базу mysql..

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

Аватара пользователя
noize
Сообщения: 117
Зарегистрирован: 01 сен 2010, 11:29

Re: Запись разговоров в базу mysql..

Сообщение noize »

ded, я привёл лишь пару вариантов, в которых хранение данных в БД является оправданным. Может у человека в компании политика такая - всё хранить в БД ))
mik-mak
Сообщения: 8
Зарегистрирован: 12 апр 2013, 00:46

Re: Запись разговоров в базу mysql..

Сообщение mik-mak »

noize писал(а):Что касается реализации, то уже написали - пишете в файл, на завершение записи разговора вешаете скрипт, который загоняет файл в базу.
А средствами FreePBX это можно сделать? Я имею ввиду, при помощи мышиной возни можно ли написанный скрипт повесить на окончание разговора?
gosha
Сообщения: 375
Зарегистрирован: 06 сен 2010, 17:41
Контактная информация:

Re: Запись разговоров в базу mysql..

Сообщение gosha »

впринципе да.

мышОй открываете виртуальную клавиатуру, бабацаете там скрипт. потом той же виртуальной клавиатурой бабацаете _custom.conf с конфигом перезаписывающим стандартный макрос и вуаля, кла-клац и настрока freePBX мышОй готова.
Аватара пользователя
noize
Сообщения: 117
Зарегистрирован: 01 сен 2010, 11:29

Re: Запись разговоров в базу mysql..

Сообщение noize »

General Settings -> Call Recording -> Run after record

Как-то так
mik-mak
Сообщения: 8
Зарегистрирован: 12 апр 2013, 00:46

Re: Запись разговоров в базу mysql..

Сообщение mik-mak »

gosha писал(а):впринципе да.

мышОй открываете виртуальную клавиатуру..
Хыы..
tma
Сообщения: 1809
Зарегистрирован: 18 сен 2010, 20:50
Контактная информация:

Re: Запись разговоров в базу mysql..

Сообщение tma »

noize писал(а):Смысл есть. Когда стоит пара астерисков в горячем резерве, целесооборазно звонки с них хранить в одном месте.
Открою великую тайну - для этого существуют файловые сервера! Бинарные же данные хранить в БД - это маразм. В базе можно хранить ссылку. А файловые сервера можно и в кластер объединить при желании... Поэтому смысла никакого не вижу.
Я не великий специалист по БД, но обычно данные они хранят в памяти. Т.е. при первоначальном запросе данные загружаются в RAM, а затем по ним осуществляется поиск. Зачем туда грузить еще и бинарные данные? Завтра уточню у своего программиста БД, пусть подправит если я не прав...
SkyTel OU - облачная АТС, DID, SIP-транк с посекундной тарификаицей, мобильная связь
http://skytel24.com | Эстония: +372.333.55.10 | Россия: +7(495)4019900
tma
Сообщения: 1809
Зарегистрирован: 18 сен 2010, 20:50
Контактная информация:

Re: Запись разговоров в базу mysql..

Сообщение tma »

Ответ с родни "он бьется головой об стену, поэтому и я бьюсь головой об стену" :lol:

Можно и образы дисков хранить в БД.
Кто хранит картинки в БД? Покажите пальцем на тот кривой софт, чтобы я его не использовал...
SkyTel OU - облачная АТС, DID, SIP-транк с посекундной тарификаицей, мобильная связь
http://skytel24.com | Эстония: +372.333.55.10 | Россия: +7(495)4019900
Аватара пользователя
noize
Сообщения: 117
Зарегистрирован: 01 сен 2010, 11:29

Re: Запись разговоров в базу mysql..

Сообщение noize »

СУБД не обязательно хранит все данные в памяти. Всё зависит от настроек.
Кто хранит картинки в БД? Покажите пальцем на тот кривой софт, чтобы я его не использовал...
http://www.mantisbt.org/
Аватара пользователя
Sfinx
Сообщения: 672
Зарегистрирован: 21 июн 2011, 23:40
Откуда: Odessa
Контактная информация:

Re: Запись разговоров в базу mysql..

Сообщение Sfinx »

И картинки хранят в базе и аудиофайлы, и все работает пучком, назло злопыхателям ;) Поиск в аудифайлах - бред сивой кобылы, этим занимаются только силовики, и то сомневаюсь, так как тут нужен мощный ASR. Обычно ищут по номеру, имени и timestamp'у, который тут же в таблицу и добавляем. Хранится это дело в blob, имеет смысл добавить mime-тип файла, src/dst номер, timestamp. Алгоритм простой :

Пример dialplan'а:

...
[macro-start-record]
exten => s,1,Set(callrecord_fname=${CALLERID(num)}-${MACRO_EXTEN}-${EPOCH}.gsm)
exten => s,n,Set(callrecord_user=${ARG1})
exten => s,n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
exten => s,n,MixMonitor(${callrecord_fname},i(monitor_id))
....
exten => _1XX,Macro(start-record,${EXTEN})
same => n,Dial(SIP/${EXTEN})

exten => h,1,StopMixMonitor(${monitor_id})
exten => h,n,Agi(add_call_record.agi,${callrecord_fname},${callrecord_user})

...

Скелет AGI:

1. на входе имеем переменные callrecord_fname и callrecord_user
2. запихиваем /var/spool/asterisk/monitor/${callrecord_fname} бинарь в базу
3. удаляем нафик файл

На astxx это можно сделать в 20 строк, типа где-то так :

...
astxx::agi& agi = astxx::agi::instance();
string crf(string("/var/spool/asterisk/monitor/") + argv[1]);
ifstream cr(crf.c_str(), ios::binary);
if (!cr)
throw Exception("acr.agi: Can't open CR file " + string(argv[1]) + " !");
stringstream data;
data << cr.rdbuf();
if (!data.str().size()) {
agi.verbose("acr.agi: Hmm, zero CR file !");
unlink(crf.c_str());
exit(0);
}
agi.verbose("acr.agi: Adding callrecord : " + string(argv[1]) + ", " +
itoa(data.str().size()) + " bytes for " + string(argv[2]));
db_query q;
q << "insert into callrecords (...) values (..)";
q.execute();
unlink(crf.c_str());
...

Как наворот еще можно определять duration файла (через sox например) и добавлять его тоже - весьма удобственно рисовать это в табличке на фронтенде.
Rus

-----------
SfinxSoft
http://sfinxsoft.com
tma
Сообщения: 1809
Зарегистрирован: 18 сен 2010, 20:50
Контактная информация:

Re: Запись разговоров в базу mysql..

Сообщение tma »

Нашел небольшую статью для ленивых.
В частности:
Если вы будете хранить изображение в базе в виде BLOBа, то когда пользователь запросит с сервера данные все данные будут загружены в память. А это много.
И правильно сказано:
А «При этого однозначного ответа нет» только потому, что 18 иконок 16на16 в десктопном приложении ещё терпимо запихать в базу ради облегчения работы ленивого программиста.
SkyTel OU - облачная АТС, DID, SIP-транк с посекундной тарификаицей, мобильная связь
http://skytel24.com | Эстония: +372.333.55.10 | Россия: +7(495)4019900
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH