Что такое Asterisk CDR Viewer?
Надеюсь, что Вы уже знаете, что такое CDR и для чего он нужен. И (руководствуясь статьями, в т.ч. с этого сайта) уже настроили свою систему asterisk для сохранения информации о звонках в базу данных (MySQL). И теперь Вам хотелось бы не просто «залезать» в базу MySQL чем-то неудобным (типа PHP MyAdmin), а просматривать кто, куда и сколько звонил (или дать такую возможность людям, которые ничего не понимают в PHP, MySQL, Apache. ).
Так вот, Asterisk CDR Viewer — это та «фишка», которая позволит просматривать звонки в удобном виде, а также (что немаловажно) фильтровать информацию о звонках, делать выборки (и делать выводы на основании этих выборок).
Asterisk CDR Viewer может работать с различными версиями asterisk: как 1.8 (и ниже), так и 10-й, 11-й, а также с самыми новыми версиями астериска (12-й и 13-й).
Где скачать asterisk-cdr-viewer
Официальный сайт — . Учитывая, что code.google.com закрывается в 2015/2016 гг., ищите копии проекта например, на GitHub. Вы также можете скачать его прямо у нас.
Команды для скачивания asterisk-cdr-viewer с официального сайта:
cd /usr/src
wget
cd /usr/src
svn checkout asterisk-cdr-viewer
Что нужно для установки Asterisk CDR Viewer?
В первую очередь, для установки Asterisk CDR Viewer нужен web-сервер. В ОС Linux одним из наиболее популярных веб серверов является Apache. Поэтому его необходимо установить на той же машине, где будет установлен Asterisk CDR Viewer. Кроме того, требуется поддержа PHP и MySQL для PHP.
Для того, чтобы установить это всё, выполните команды (в CentOS):
yum -y install httpd php php-mysql
После чего (разумеется) не забудьте настроить автозапуск сервера apache при старте системы (или хотя бы запустить вручную демон httpd).
Установка Asterisk CDR Viewer
Распаковка файлов asterisk-cdr-viewer
В папке с загруженным tgz архивом выполните следующие команды:
tar -xzvf asterisk-cdr-viewer-latest.tgz
В случае, если Вы скачали asterisk-cdr-viewer через SVN, разархивировать ничего не нужно.
Копирование файлов asterisk-cdr-viewer
Скопируйте папку с разархивированными файлами в корень сайта apache ( по умолчанию /var/www/html/ ), а файл asterisk-cdr-viewer.conf (из папки contrib/httpd) — в папку с конфигурацией apache ( по умолчанию — /etc/httpd/conf.d/ ).
После этого измените настройки (в частности, настройки подключения к базе данных) в файле include/config.inc.php.
Настройка конфигурации asterisk-cdr-viewer
В минимальном варианте (если не требуется защищать отчет о звонках паролем и т.п.) файл с конфигурацией asterisk-cdr-viewer.conf для apache вообще копировать не обязательно. Но в этом случае папка с файлами asterisk cdr viewer должна находится в корне (или ниже корня) web-сайта apache. И обращаться можно к asterisk cdr viewer только по имени папки. Зато перезагружать сам сервис httpd не нужно: apache автоматически «подхватит» и сможет отобразить залитые в соответствующую папку файлы.
Что касается конфигурации asterisk-cdr-viewer (а точнее, той её части, которая отвечает за подключение к MySQL), то настраивается она следующим образом: в файле config.inc.php, который находится в подпапке include проекта asterisk-cdr-viewer, измените следующие строки:
На этом установка Asterisk CDR Viewer завершена. Теперь откройте сайт:
http:// /asterisk-cdr-viewer/
например:
Должен открыться веб-интерфейс. в котором можно просматривать звонки asterisk.
Расширение функциональности Asterisk CDR Viewer
Вы можете добавить функционала в пакет, ознакомившись со статьей: «Допиливаем» Asterisk CDR Viewer под себя.
CDR (Call Data Record), позволяет в MySQL базе данных вести статистику активности звонков.
На тесте настрою Asterisk CDR и Asterisk CDR Viewer в Ubuntu Server.
Предположим что Asterisk уже установлен.
Сначала установим необходимые компоненты:
Приступим к созданию базы данных в которую будут сохранятся записи о звонках.
Подключимся к MySQL:
Создадим базу данных:
Создадим пользователя asteriskcdr:
Переключимся на базу asteriskcdrdb:
И создадим таблицу:
На этом создание базы завершено, теперь перейдем к настройке конфигурационного файла /etc/asterisk/cdr_mysql.conf, стандартно все строки в нем закомментированы.
Раскомментируем и укажем параметры для подключения к mysql базе в секции [global]:
В файле конфигурации модулей /etc/asterisk/modules.conf должен быть прописан на загрузку модуль cdr_mysql.so:
Вручную из консоли asterisk его можно загрузить так:
После загрузки модуля при поступлении звонков должны заносится данные в базу, посмотрим есть ли что-то:
По сути теперь можно использовать данные из базы любым удобным способом, например дописать к какому нибудь биллингу скрипты статистики и графиков.
Мы же настроим готовый Asterisk CDR Viewer.
Скачаем файлы и переместим в директорию веб-сервера:
Русскую версию можно найти тут https://github.com/prog-it/Asterisk-CDR-Viewer-Mod
Скопируем файл с веб-конфигурацией в директорию с веб-сервером apache2:
Укажем настройки подключения к базе данных для Asterisk-CDR-viewer в файле /var/www/asterisk-cdr-viewer/include/config.inc.php
После чего уже можно будет просматривать статистику открыв в браузере http://СЕРВЕР/acdr
В версии 1.0.9 заметил опечатку в коде, из-за которой отображался белый экран а в логах была ошибка:
CDR (Call Data Record) содержит информацию о всех звонках, которые обрабатывала IPPBX(в нашем случае Asterisk) в том числе несостоявшихся. Многим администраторам, которые обслуживает телефонию CDR являются источником информации, с которого следует начинать диагностику проблемы.
В сегодняшней статье мы расскажем как записывать Asterisk CDR в базу данных MySQL и как просматривать эти самые записи с помощью Asterisk CDR Viewer.
Для настройке на сервере уже должны быть установлены MySQL,Asterisk, Apache, PHP. Мы будем производить настройки на сервере CentOS 6.6 с Asterisk 13.
Первым делом нам нужно создать базу данных и пользователя этой базы данных где будут храниться наши CDR.
Подключаемся к MySQL:
Создаем базу данных:
Даем доступ для пользователя asteriskcdr с паролем ‘ваш пароль’ к базе asteriskcdrdb только с localhost :
Подключаемся к созданной базе asteriskcdrdb:
Теперь нам нужно настроить Asterisk, чтобы он знал куда писать CDR. Переходим в файл /etc/asterisk/cdr_mysql.conf расскоментируем и вносим следующие изменения:
Переходим в консоль Asterisk и выполняем команду :
Убедимся, что модуль загружен и работает:
После этого перезагрузите Asterisk и убедимся, что вызовы записываются в базу: 1.Сделайте любой исходящий вызов, чтобы он прошел через ваш Asterisk. 2. Зайдите в MySQL. 3. Подключитесь к базе asteriskcdrdb :
4. Сделайте общий Select:
Если в выводе вы увидите свой вызов, то значит CDR пишутся корректно и все работает.
Настройка Asterisk CDR Viewer
Если настройки записи CDR в базу данных были выполнены правильно, то можно приступить к настройке Asterisk CDR Viewer.
Скачиваем asterisk-cdr-viewer-1.0.2.tgz в папку /var/www и разархивируем
Переносим файл алиаса в папку с httpd
Изменяем настройки подключения к БД для Asterisk-CDR-viewer
Нужно поменять параметры в соответствии с текущей конфигурацией вашей базы:
Посмотрим результаты вывода:
По умолчанию доступ к просмотру статистики имеют все пользователи, исправим это сделав доступ через авторизацию.
В /etc/httpd/conf.d/asterisk-cdr-viewer.conf расскоментируем все строки:
Создаем пользователя и пароль для подключение к asterisk cdr viewer:
Добавим созданного нами пользователя в /var/www/asterisk-cdr-viewer/include/config.inc.php
Теперь при попытке зайти в viewer вы увидите приглашения для ввода логина и пароля:
Настроем возможность записи разговоров:
В файле /var/www/asterisk-cdr-viewer/include/config.inc.php указаны настройки по умолчанию:
Если вы хотите можно поменять формат или директорию, если нет, то в ваш диалплан добавляем следующие строки и провряем:
На этом наша настройка закончена.
Если вы в статье нашли ошибки или несоответствия, мы будем благодарны, если вы напишите нам о них в комментариях.