Для сбора подробной статистики всех звонков в 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.