Как можно получить подробную статистику всех звонков в Asterisk?

Здравствуйте!

Во FreePBX 16 я хочу собирать статистику по всем входящим и исходящим звонкам для дальнейшей обработки. В данный момент изучаю переменные и их применимость в различных контекстах. В файле extensions_override_freepbx.conf я добавил следующее в [from-internal]: exten => h,n,ExecIf(($["${DIALSTATUS}"!=""])?System(echo ....>> файл.

Однако, в этом случае все попадает в этот файл без фильтрации. В [ext-queues] я обнаружил, что очень мало звонков и предполагаю, что не все звонки записываются. 

Есть ли у кого-то опыт выполнения подобной задачи? Может кто-то посоветует более эффективный способ реализации?
  • 9 февраля 2024 г. 15:39
Ответы на вопрос 1
Для сбора подробной статистики всех звонков в Asterisk, можно использовать следующие методы:

1. CDR (Call Detail Records)
Asterisk хранит детализированную информацию о каждом звонке в CDR. Данные CDR могут быть записаны в различные форматы хранения данных, включая прямую запись в базу данных (например, MySQL, PostgreSQL). FreePBX предоставляет удобный интерфейс для просмотра и экспорта CDR-записей.

Чтобы настроить CDR, вам необходимо проверить конфигурационные файлы (`cdr.conf`, `cdr_adaptive_odbc.conf`, если используется ODBC) и, если необходимо, настроить их для своих задач.

2. CEL (Channel Event Logging)
Если вам нужен более глубокий уровень ведения журналов, чем просто сведения о вызове, используйте CEL. CEL регистрирует события, происходящие в канале, такие как начало и завершение вызова, ответ, перевод звонка и многие другие. Конфигурация CEL производится в файле `cel.conf`. Это позволит вам записать специфические события в базу данных.

3. АМИ (Asterisk Manager Interface)
АМИ позволяет вам получать статистику вызовов в реальном времени через сетевой интерфейс. Вы можете слушать определенные события и записывать их в ваши системы мониторинга.

4. AGI (Asterisk Gateway Interface)
Используя AGI, вы можете запускать внешние скрипты и программы и передавать им данные о вызовах, что позволяет собирать и обрабатывать статистику в зависимости от ваших потребностей. AGI можно использовать для очень детализированной обработки информации о вызове.

5. Использование системных логов
Вы можете перехватывать вывод в системные логи, настроив правильные значения в `logger.conf`, и затем парсить эти логи для извлечения необходимой информации.

Перед тем как вносить изменения в файлы конфигурации или использовать override-файлы FreePBX, стоит помнить, что FreePBX может перезаписывать эти настройки при обновлениях или изменениях через GUI. Лучше всего использовать предусмотренные FreePBX способы кастомизации, такие как использование кастомных контекстов через файл `extensions_custom.conf`.

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

Кроме того, если у вас есть конкретные требования к логированию звонков, например, отслеживание только определенных типов звонков или разграничение статистики по отделам, значимым будет подход внедрения системы для отслеживания и анализа этих данных, например, интеграция с системами вроде ELK stack (Elasticsearch, Logstash, Kibana), Grafana или создание вашего собственного решения для анализа и визуализации данных из CDR/CEL.
Похожие вопросы