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

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

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

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

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

Сообщение partonen » 30 авг 2017, 16:32

Asterniс ищет записи разговоров в одном каталоге, в том время как FreePBX кидает по разным папкам, соответствующим дате вызова. Поэтому без лишних телодвижений записи из интерфейса Asterniс не послушаешь. А так графики симпатичные.
partonen
 
Сообщений: 6
Зарегистрирован: 11 май 2016, 12:52

Записи из freePBX

Сообщение zzz777z » 30 авг 2017, 19:21

Давайте рассмотрим важный для многих вопрос получения записей из 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
 
Сообщений: 19
Зарегистрирован: 10 авг 2014, 20:48

Записи из FreePBX

Сообщение zzz777z » 31 авг 2017, 10:50

Ну и, наконец, рекомендуемый способ.
Хорош тем, что не требует модификации 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'];
Аватар пользователя
zzz777z
 
Сообщений: 19
Зарегистрирован: 10 авг 2014, 20:48

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

Сообщение Al8 » 07 ноя 2017, 20:00

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
Среда
Al8
 
Сообщений: 82
Зарегистрирован: 07 фев 2016, 18:31

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

Сообщение SolarW » 09 ноя 2017, 18:58

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

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

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

2. Если выбрать диапазон в течении которого не было зафиксировано звонков на закладке "Принятые" встречает вот такая ошибка:

2017-11-09_164343.png
2017-11-09_164343.png (17.78 KIB) Просмотров: 2826


3. Принято несколько вызовов.
На закладке "Принятые" отображается количество... и это все.
Ни времени ожидания, ни времени разговора - пусто

2017-11-09_164851.png
2017-11-09_164851.png (22.25 KIB) Просмотров: 2826


И ежели перейти на следующую закладку с деталировкой вызовов - то там пусто, списка вызовов нет.

2017-11-09_165140.png
2017-11-09_165140.png (15.94 KIB) Просмотров: 2826
Аватар пользователя
SolarW
 
Сообщений: 1327
Зарегистрирован: 01 сен 2010, 14:21
Откуда: Днепропетровск, Украина

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

Сообщение SolarW » 09 ноя 2017, 19:01

4. Такая же проблема с пропущенными вызовами.
В закладке "Распределение" есть информация о том, что пропущенные вызовы имеются

2017-11-09_165607.png
2017-11-09_165607.png (18.45 KIB) Просмотров: 2837


а в "Пропущенные"

2017-11-09_165920.png


и в деталировке

2017-11-09_170034.png
2017-11-09_170034.png (18.46 KIB) Просмотров: 2837


опять же по нулям...
При этом в деталировке некий непонятный мусор за 1970-й год присутствует.

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

Re: Записи из FreePBX

Сообщение SolarW » 09 ноя 2017, 19:06

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
 
Сообщений: 1327
Зарегистрирован: 01 сен 2010, 14:21
Откуда: Днепропетровск, Украина

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

Сообщение SolarW » 09 ноя 2017, 19:17

Похоже бОльшую часть вопросов снимаю:
Код: выделить все
[options]
queue_adaptive_realtime = no

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

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

Сообщение SolarW » 10 ноя 2017, 10:04

Перезагрузил астериск.
Почистил таблицу.
Сделал два вызова в очередь, в одном случае сам трубку положил а во втором дождался пока очередь по тайм-ауту сбросит вызов.
Данные в таблицу пишутся вроде как корректно:
2017-11-10_075940.png
2017-11-10_075940.png (8.52 KIB) Просмотров: 2836

На закладке "Распределение" появилась информация о двух неотвеченных вызовах.
На закладках "Пропущенные" и "Проп. вызовы" по прежнему тишина.
Аватар пользователя
SolarW
 
Сообщений: 1327
Зарегистрирован: 01 сен 2010, 14:21
Откуда: Днепропетровск, Украина

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

Сообщение SolarW » 10 ноя 2017, 16:29

Иллюстрация к предыдущему сообщению.
С одной стороны 19 пропущенных вызовов а с другой стороны их же ноль.
Соответственно в деталировке пропущенных тоже пусто.

2017-11-10_142550.png
Аватар пользователя
SolarW
 
Сообщений: 1327
Зарегистрирован: 01 сен 2010, 14:21
Откуда: Днепропетровск, Украина

Пред.След.

Вернуться в Графические интерфейсы Астериск

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

© 2008 — 2018 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH