Страница 2 из 10

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

СообщениеДобавлено: 30 авг 2017, 16:32
partonen
Asterniс ищет записи разговоров в одном каталоге, в том время как FreePBX кидает по разным папкам, соответствующим дате вызова. Поэтому без лишних телодвижений записи из интерфейса Asterniс не послушаешь. А так графики симпатичные.

Записи из freePBX

СообщениеДобавлено: 30 авг 2017, 19:21
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.

Записи из FreePBX

СообщениеДобавлено: 31 авг 2017, 10:50
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'];

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

СообщениеДобавлено: 07 ноя 2017, 20:00
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
Среда

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

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

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

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

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

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


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

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


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

2017-11-09_165140.png
2017-11-09_165140.png (15.94 KIB) Просмотров: 15061

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

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

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


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

2017-11-09_165920.png


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

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


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

Все это устанавливалось на предпоследний FreePBX Distro (CentOS 6.5, FreePBX 13, Asterisk 14.x)

Re: Записи из FreePBX

СообщениеДобавлено: 09 ноя 2017, 19:06
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?

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

СообщениеДобавлено: 09 ноя 2017, 19:17
SolarW
Похоже бОльшую часть вопросов снимаю:
Код: выделить все
[options]
queue_adaptive_realtime = no

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

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

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

На закладке "Распределение" появилась информация о двух неотвеченных вызовах.
На закладках "Пропущенные" и "Проп. вызовы" по прежнему тишина.

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

СообщениеДобавлено: 10 ноя 2017, 16:29
SolarW
Иллюстрация к предыдущему сообщению.
С одной стороны 19 пропущенных вызовов а с другой стороны их же ноль.
Соответственно в деталировке пропущенных тоже пусто.

2017-11-10_142550.png