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

Asternic Call Center Stats Lite - модификация.

WEB GUI и не только WEB

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

partonen
Сообщения: 6
Зарегистрирован: 11 май 2016, 11:52

Re: Asternic Call Center Stats Lite - модификация.

Сообщение partonen »

Asterniс ищет записи разговоров в одном каталоге, в том время как FreePBX кидает по разным папкам, соответствующим дате вызова. Поэтому без лишних телодвижений записи из интерфейса Asterniс не послушаешь. А так графики симпатичные.
Аватара пользователя
zzz777z
Сообщения: 36
Зарегистрирован: 10 авг 2014, 20:48
Контактная информация:

Записи из freePBX

Сообщение zzz777z »

Давайте рассмотрим важный для многих вопрос получения записей из FreePBX.
FreePBХ записывает вызовы по умолчанию в директорию "/var/spool/asterisk/Год/месяц/день/имя_файла.расширение"
Получить этот путь в php не составит труда, т.к. дата вызова нам известна:

$rec['path'] = '/var/spool/asterisk/'.date('Y/m/d/',$time);

Имя файла FreePBX формирует из множества данных:

__CALLFILENAME=${ARG2}-${ARG3}-${FROMEXTEN}-${TIMESTR}-${UNIQUEID}

"направление-вызываемый_номер-callerid-дата-время-uniqueid"

например:

external-101-88129981138-20170102-090642-1483326381.1005.wav

Есть несколько вариантов получения имени файла.

Например из CDR, где оно записано в колонке recordingfile.
Зная UNIQUEID вызова можно найти его SQL запросом.

Другой, более простой на мой взгляд вариант, записать его сразу лог очереди.

За запись во FreePBX отвечает контекст [sub-record-check] в файле extensions_additional.conf
Скопируем его в файл extensions_override_freepbx.conf
с минимальными изменениями, за строкой:

exten => recordcheck,n,Set(CDR(recordingfile)=${CALLFILENAME}.${MON_FMT})

разместим:

exten => recordcheck,n,QueueLog(NONE,${UNIQUEID},NONE,RECORDINGFILE,${CALLFILENAME})

и получим имя файла из FreePBX в логе очереди за событием RECORDINGFILE в колонке data1.
Аватара пользователя
zzz777z
Сообщения: 36
Зарегистрирован: 10 авг 2014, 20:48
Контактная информация:

Записи из FreePBX

Сообщение zzz777z »

Ну и, наконец, рекомендуемый способ.
Хорош тем, что не требует модификации php кода.
Зачем нам возиться с громоздким именем файла, который создает FreePBX, когда мы можем просто изменить его на удобный UNIQUEID?
В уже упомянутом выше контексте [sub-record-chek] имя файла формируется строкой:

exten => recordcheck,n,Set(__CALLFILENAME=${ARG2}-${ARG3}-${FROMEXTEN}-${TIMESTR}-${UNIQUEID})

Изменим ее на:

exten => recordcheck,n,Set(__CALLFILENAME=${UNIQUEID})

и получим желаемый результат.

Путь к файлу записи будет выглядеть так:

$rec['path'] = '/var/spool/asterisk/monitor/'. date('Y/m/d/',$time) . $rec['filename'];
Al8
Сообщения: 85
Зарегистрирован: 07 фев 2016, 17:31

Re: Asternic Call Center Stats Lite - модификация.

Сообщение Al8 »

1. А можно сделать такой отчет, чтобы видеть, сколько входящих звонков поступило на операторов в час.
2. Сколько операторы приняли звонков за дни недели

Например 1:
Время Вн.номер/Кол-во принятых
9:00
100 / 23
101 / 13
102 / 42
103 / 19
104 / 27

10:00
100 / 12
121 / 32
102 / 15
103 / 31
114 / 21

PS: Конечно если получится, таблицу сделать по своему вкусу - по проще, может так -
Колонка время | Вн. номер 101|Вн. номер 202|..
9:00 11 56
10:00 76 43
11:00 32 34

Например 2:
Понедельник Вн.номер/Кол-во принятых
100 / 23
101 / 13
102 / 42
103 / 19
104 / 27
Или таблица отчета:
Колонка день | Вн. номер 202 | Вн. номер 123| ...
Понедельник 334 123
Вторник 221 432
Среда
Аватара пользователя
SolarW
Сообщения: 1331
Зарегистрирован: 01 сен 2010, 14:21
Откуда: Днепропетровск, Украина

Re: Asternic Call Center Stats Lite - модификация.

Сообщение SolarW »

Замечательный модуль!
Спасибо огромное за него разработчикам и пожелание разрабатывать его далее, добавляя необходимые пользователям функции.

Собственно к делу.
Попробовал установить, в паре мест затупил/опечатался - но вроде как взлетело.
Теперь собственно вопросы появившиеся на первый взгляд.

1. Вопрос по табличке queuelog
Создан индекс по полю id.
Я совсем не разбираюсь в БД но нет ли необходимости создать индексы для полей callid, agent?
Не ускорит ли это формирование отчета в случае поиска по данным полям?

2. Если выбрать диапазон в течении которого не было зафиксировано звонков на закладке "Принятые" встречает вот такая ошибка:
2017-11-09_164343.png
2017-11-09_164343.png (17.78 КБ) 17645 просмотров
3. Принято несколько вызовов.
На закладке "Принятые" отображается количество... и это все.
Ни времени ожидания, ни времени разговора - пусто
2017-11-09_164851.png
2017-11-09_164851.png (22.25 КБ) 17645 просмотров
И ежели перейти на следующую закладку с деталировкой вызовов - то там пусто, списка вызовов нет.
2017-11-09_165140.png
2017-11-09_165140.png (15.94 КБ) 17645 просмотров
Аватара пользователя
SolarW
Сообщения: 1331
Зарегистрирован: 01 сен 2010, 14:21
Откуда: Днепропетровск, Украина

Re: Asternic Call Center Stats Lite - модификация.

Сообщение SolarW »

4. Такая же проблема с пропущенными вызовами.
В закладке "Распределение" есть информация о том, что пропущенные вызовы имеются
2017-11-09_165607.png
2017-11-09_165607.png (18.45 КБ) 17657 просмотров
а в "Пропущенные"
2017-11-09_165920.png
и в деталировке
2017-11-09_170034.png
2017-11-09_170034.png (18.46 КБ) 17657 просмотров
опять же по нулям...
При этом в деталировке некий непонятный мусор за 1970-й год присутствует.

Все это устанавливалось на предпоследний FreePBX Distro (CentOS 6.5, FreePBX 13, Asterisk 14.x)
Аватара пользователя
SolarW
Сообщения: 1331
Зарегистрирован: 01 сен 2010, 14:21
Откуда: Днепропетровск, Украина

Re: Записи из FreePBX

Сообщение SolarW »

zzz777z писал(а):Ну и, наконец, рекомендуемый способ.
Хорош тем, что не требует модификации php кода.
Зачем нам возиться с громоздким именем файла, который создает FreePBX, когда мы можем просто изменить его на удобный UNIQUEID?
В уже упомянутом выше контексте [sub-record-chek] имя файла формируется строкой:

exten => recordcheck,n,Set(__CALLFILENAME=${ARG2}-${ARG3}-${FROMEXTEN}-${TIMESTR}-${UNIQUEID})

Изменим ее на:

exten => recordcheck,n,Set(__CALLFILENAME=${UNIQUEID})

и получим желаемый результат.

Путь к файлу записи будет выглядеть так:

$rec['path'] = '/var/spool/asterisk/monitor/'. date('Y/m/d/',$time) . $rec['filename'];
А случайно не поломает ли этот рекомендуемый способ "родной" механизм работы с записями FreePBX?
Аватара пользователя
SolarW
Сообщения: 1331
Зарегистрирован: 01 сен 2010, 14:21
Откуда: Днепропетровск, Украина

Re: Asternic Call Center Stats Lite - модификация.

Сообщение SolarW »

Похоже бОльшую часть вопросов снимаю:

Код: Выделить всё

[options]
queue_adaptive_realtime = no
Похоже для этого core reload мало - посмотрел базу данных, все пишется в одно поле разделенное пайпами.
Надо астериск попробовать перегрузить, но это чуток позже...
Аватара пользователя
SolarW
Сообщения: 1331
Зарегистрирован: 01 сен 2010, 14:21
Откуда: Днепропетровск, Украина

Re: Asternic Call Center Stats Lite - модификация.

Сообщение SolarW »

Перезагрузил астериск.
Почистил таблицу.
Сделал два вызова в очередь, в одном случае сам трубку положил а во втором дождался пока очередь по тайм-ауту сбросит вызов.
Данные в таблицу пишутся вроде как корректно:
2017-11-10_075940.png
2017-11-10_075940.png (8.52 КБ) 17646 просмотров
На закладке "Распределение" появилась информация о двух неотвеченных вызовах.
На закладках "Пропущенные" и "Проп. вызовы" по прежнему тишина.
Аватара пользователя
SolarW
Сообщения: 1331
Зарегистрирован: 01 сен 2010, 14:21
Откуда: Днепропетровск, Украина

Re: Asternic Call Center Stats Lite - модификация.

Сообщение SolarW »

Иллюстрация к предыдущему сообщению.
С одной стороны 19 пропущенных вызовов а с другой стороны их же ноль.
Соответственно в деталировке пропущенных тоже пусто.
2017-11-10_142550.png
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH