Страница 2 из 10
					
				Re: Asternic Call Center Stats Lite - модификация.
				Добавлено: 30 авг 2017, 15:32
				 partonen
				Asterniс ищет записи разговоров в одном каталоге, в том время как FreePBX кидает по разным папкам, соответствующим дате вызова. Поэтому без лишних телодвижений записи из интерфейса Asterniс не послушаешь. А так графики симпатичные.
			 
			
					
				Записи из freePBX
				Добавлено: 30 авг 2017, 18: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, 09: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, 19: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, 17:58
				 SolarW
				Замечательный модуль!
Спасибо огромное за него разработчикам и пожелание разрабатывать его далее, добавляя необходимые пользователям функции.
Собственно к делу.
Попробовал установить, в паре мест затупил/опечатался - но вроде как взлетело.
Теперь собственно вопросы появившиеся на первый взгляд.
1. Вопрос по табличке queuelog
Создан индекс по полю id.
Я совсем не разбираюсь в БД но нет ли необходимости создать индексы для полей callid, agent?
Не ускорит ли это формирование отчета в случае поиска по данным полям?
2. Если выбрать диапазон в течении которого не было зафиксировано звонков на закладке "Принятые" встречает вот такая ошибка:
			
		
				
			 
- 2017-11-09_164343.png (17.78 КБ) 22488 просмотров
 
3. Принято несколько вызовов.
На закладке "Принятые" отображается количество... и это все.
Ни времени ожидания, ни времени разговора - пусто
			
		
				
			 
- 2017-11-09_164851.png (22.25 КБ) 22488 просмотров
 
И ежели перейти на следующую закладку с деталировкой вызовов - то там пусто, списка вызовов нет.
			
		
				
			 
- 2017-11-09_165140.png (15.94 КБ) 22488 просмотров
  
			
					
				Re: Asternic Call Center Stats Lite - модификация.
				Добавлено: 09 ноя 2017, 18:01
				 SolarW
				4. Такая же проблема с пропущенными вызовами.
В закладке "Распределение" есть информация о том, что пропущенные вызовы имеются
			
		
				
			 
- 2017-11-09_165607.png (18.45 КБ) 22500 просмотров
 
а в "Пропущенные"
и в деталировке
			
		
				
			 
- 2017-11-09_170034.png (18.46 КБ) 22500 просмотров
 
опять же по нулям...
При этом в деталировке некий непонятный мусор за 1970-й год присутствует.
Все это устанавливалось на предпоследний FreePBX Distro (CentOS 6.5, FreePBX 13, Asterisk 14.x)
 
			
					
				Re: Записи из FreePBX
				Добавлено: 09 ноя 2017, 18: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, 18:17
				 SolarW
				Похоже бОльшую часть вопросов снимаю:
Похоже для этого core reload мало - посмотрел базу данных, все пишется в одно поле разделенное пайпами.
Надо астериск попробовать перегрузить, но это чуток позже...
 
			
					
				Re: Asternic Call Center Stats Lite - модификация.
				Добавлено: 10 ноя 2017, 09:04
				 SolarW
				Перезагрузил астериск.
Почистил таблицу.
Сделал два вызова в очередь, в одном случае сам трубку положил а во втором дождался пока очередь по тайм-ауту сбросит вызов.
Данные в таблицу пишутся вроде как корректно: 
			
		
				
			 
- 2017-11-10_075940.png (8.52 КБ) 22489 просмотров
 
На закладке "Распределение" появилась информация о двух неотвеченных вызовах.
На закладках "Пропущенные" и "Проп. вызовы" по прежнему тишина.
 
			
					
				Re: Asternic Call Center Stats Lite - модификация.
				Добавлено: 10 ноя 2017, 15:29
				 SolarW
				Иллюстрация к предыдущему сообщению.
С одной стороны 19 пропущенных вызовов а с другой стороны их же ноль.
Соответственно в деталировке пропущенных тоже пусто.