Call Detail Records
CDR: Описание полей
Примерная схема таблицы CDR
Нажмите, чтобы отобразить
Нажмите, чтобы скрыть
datetime zero ‘0000-00-00’ error (STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE)
datetime zero ‘0000-00-00’ true
Также можно добавить собственные поля:
Приложения и функции CDR
cdr.conf
backends
cdr_adaptive_odbc
пример:
Чтобы данные переменной useragent были занесены через cdr_adaptive_odbc, надо создать столбец useragent в БД.
В файле конфигурации cdr_adaptive_odbc можно создать множество таблиц. Имя секции может быть любым, модуль не использует его. Вот пример простой конфигурации таблицы:
В дополнение к вышеперечисленным опциям cdr_adaptive_odbc.conf, можно задать ещё несколько.
Например:
Также, можно отфильтровать определенное содержимое.
Например:
Например:
cdr_csv
Для работы не требует конфигурации, тем не менее есть несколько параметров:
cdr_custom
Данный модуль используется для создания пользовательского (custom) CSV файла.
Конфигурационный файл модуля cdr_custom.conf.
Единственная секция [mappings] может быть использована в этом файле. Шаблон задается с помощью функций диалплана Asterisk.
В следующем примере cdr_custom создает файл /var/log/asterisk/cdr-custom/Master.csv. Шаблон использует функции function ‘CDR'() для извлечения значений и function ‘CSV_QUOTE'() обеспечивающую правильное форматирование CSV файла ($
cdr_manager
Первая секция [general] содержит единственную опцию enabled, по умолчанию = no.
Следующая секция cdr_manager.conf это [mappings]. Здесь назначается пользовательская CDR переменная передаваемая менеджеру Asterisk.
пример:
В данной конфигурации заданные переменные появятся как события в интерфейсе менеджера.
Источником событий станет следующий диалплан:
Следующая команда инициирует вызов:
В итоге, следующее событие отобразится в Asterisk Call ManagerFinally:
Asterisk-cdr-viewer
Веб интерфейс статистики вызовов Asterisk (Call Detail Recordings). Используется, также, в модуле статистики FreePBX. Прекрасное приложение, для просмотра статистики и прослушивания записей.
Установка Asterisk Cdr Veiwer
Страница программы на Google Code или На Github
Скачайте исходный код в директорию веб сервера:
Скопируйте конфиг в директорию настроек веб вервера:
Настройте алиас acdr для директории asterisk-cdr-veiwer:
Если аутентификация не требуется, можно пропустить этот пункт.
Вернитесь в директорию программы:
При помощи команды htpasswd задайте имя пользователя и пароль для аутентификации в интерфейсе.
config.inc.php
Настройка подключения к базе данных и настройки веб интерфейса производятся в файле /var/www/asterisk-cdr-viewer/include/config.inc.php
Откройте интерфейс в вашем любимом браузере:
http://your_ip/acdr/index.php
Asterisk CDR MySQL
Создание таблицы MySQL для данных и конфигурация Asterisk.
Создайте файл, например:
И скопируйте структуру таблицы БД:
Создайте базу данных:
Создайте таблицу cdr при помощи файла asteriskcdrdb:
Настройка Asterisk cdr_mysql.conf
Нативный драйвер MySQL в Asterisk. Также вы можете использовать ODBC. или adaptive ODBC.
Отредактируйте файл /etc/asterisk/cdr_mysql.conf в соответствии с заданным логином и паролем бд.
Убедитесь что модули cdr_mysql загружены:
Настройка записи разговоров
Чтобы ссылки на файлы отображались в интерфейсе, укажите директорию записи и формат файла в конфиге config.inc.php
В диалплане Asterisk, запись производится при помощи команды MixMonitor
Проверка. Выберете 5 последних строк из таблицы cdr:
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
База Asteriskcdrdb и как с ней работать?
Разбираемся со статистикой
Базовый курс по Asterisk
Мы собрали концентрат всех must have знаний в одном месте, которые позволят тебе сделать шаг вперед на пути к экспертному владению Asterisk
В Asterisk для этого создана база данных asteriskcdrdb, в которой существует таблица cdr. Давайте рассмотрим как пользоваться данной таблицей и ее структуру.
После успешного подключения, необходимо выбрать для работы базу данных asteriskcdrdb:
Давайте убедимся, что у нас есть таблица cdr. Выполним это, как указано ниже:
На данном этапе мы убедились, что у нас есть база данных asteriskcdrdb, в которой находится таблица cdr. Давайте попробуем посмотреть входящие звонки из города за сегодня (дата написания статьи 18 марта 2016 года), в период с 12:00 до 12:10, т.е за 10 минут:
| Столбец | Пример значения | Описание |
|---|---|---|
| calldate | 2016-03-18 12:00:36 | Дата и время звонка |
| clid | «Oleg Ivanov» | В данное поле попадает полное CallerID (CLID, CID), которое состоит из имени и номера звонящего. Это доступно только для считывания. |
| src | 84991111111 | Номер звонящего в конструкции CallerID (CNUM). Это доступно только для считывания. |
| dst | 113 | Номер назначения для звонка. Это доступно только для считывания. |
| dcontext | CustomContext1 | Контекст для обработки. Это доступно только для считывания. |
| channel | SIP/0002B2356854-a34bh3ef | Канал, через который поступил звонок |
| dstchannel | SIP/0004F6675969-97836bb0 | Канал, через который ушел исходящий звонок |
| lastapp | Dial, Busy, Congestion | Приложение, которое последним отработало этот вызов перед попаданием в таблицу cdr |
| lastdata | SIP/0004F6675969,30,tT | Аргумент, который был передан приложению, которое отработало вызов последним (lastapp) |
| duration | 75 | Количество секунд от начала (отметка start) до окончания вызова (отметка end) |
| billsec | 67 | Количество секунд от ответа (отметка answer) до окончания вызова (отметка end). Данное значение всегда меньше значения duration, и отражает длительность самого разговора, что важно для подсчета стоимости. |
| disposition | ANSWERED, BUSY, NO ANSWER, FAILED | Результат звонка |
| amaflags | OMIT, BILLING, DOCUMENTATION, Unknown | Метка Automatic Message Accounting (AMA) – автоматический учет стоимости вызова. |
| accountcode | 23232 | Идентификатор аккаунта. Данное значение пустое по умолчанию, и определяется параметрами конкретного пользователя. |
| uniqueid | 1458291693.157169 | Уникальный идентификатор звонка |
| userfield | — | Пользовательское поле. Здесь можно передавать что угодно, добавляя данные в этот столбец при работе с вызовом внутри контекста обработки. |
| did | 4996491913 | DID (Direct Inward Dialing). На основании DID вызова на Asterisk осуществляется его маршрутизация (это значение приходит от провайдера). |
| recordingfile | external-113-84991111111-20160318-115933-1458291573.157155.wav | Имя файла, содержащего запись разговора. В данном имени можно проследить путь к файлу в файловой структуре сервера. |
| cnum | 84991111111 | Номер звонящего в структуре CallerID. |
| cnam | Oleg Ivanov | Имя звонящего в структуре CallerID. |
Теперь, когда вы понимаете принцип формирования запросов к базе данных и ее структуру, вы можете без труда формировать собственные отчеты. Например, ежедневный отчет о количестве входящих звонков за текущий день на почту. Это реализуется средствами php скрипта и добавления расписания через cron. Поговорим об этом в следующей статье
Базовый курс по Asterisk
Мы собрали концентрат всех must have знаний в одном месте, которые позволят тебе сделать шаг вперед на пути к экспертному владению Asterisk
Обзор утилиты Asterisk CDR Viewer
Asterisk CDR Viewer — программная утилита, предоставляющая веб-интерфейс для детализированного просмотра и создания отчетов по звонкам, работающий на основе PBX Asterisk. Asterisk CDR Viewer поддерживает практически все версии Asterisk, начиная с 1.8. Asterisk CDR Viewer предоставляет пользователю удобный интерфейс, позволяя делать выборки по различным параметрам, среди которых: По дате; По названию транка; По источнику; По […]
Asterisk CDR Viewer — программная утилита, предоставляющая веб-интерфейс для детализированного просмотра и создания отчетов по звонкам, работающий на основе PBX Asterisk. Asterisk CDR Viewer поддерживает практически все версии Asterisk, начиная с 1.8.
Asterisk CDR Viewer предоставляет пользователю удобный интерфейс, позволяя делать выборки по различным параметрам, среди которых:
Также данная утилита позволяет создавать отчеты в различных форматах, среди которых CDR, CSV, также присутствует возможность формирования отчетов в виде графиков, вывод статистики по отвеченным вызовам и процентное соотношение отвеченных звонков к их общему количеству. Имеется возможность добавления функционала по созданию отчетов за счет плагинов.
Asterisk CDR Viewer является очень легковесным ПО, для его работы требуется лишь наличие веб-сервера, библиотек PHP и БД MySQL для взаимодействия с Asterisk.
В данной статье мы рассмотрим пример установки Asterisk CDR Viewer в связке с веб-сервером Apache и БД MySQL на дистрибутив CentOS 7.
Установка Apache
Подключим репозиторий epel-release и произведем установку веб-сервера Apache:
yum install epel-release
Добавляем apache в автозагрузку и запускаем его:
systemctl enable httpd
systemctl start httpd
Проверяем, что сервер запустился и работает:
Затем в файрволле разрешим подключения к apache:
firewall-cmd —zone=public —permanent —add-service=http
firewall-cmd —zone=public —permanent —add-service=https
Проверим работу Apache, перейдя в веб-браузере по адресу сервера, на который мы производили установку:

Установка PHP
Т.к. для работы Asterisk CDR Viewer требуются библиотеки php, произведем их установку на нашу систему:
Выполним перезапуск Apache:
systemctl restart httpd
Создадим файл в директории виртуального хоста для того чтобы протестировать работу php:
со следующим содержимым:
Назначим права на его выполнение пользователю Apache:
chown apache. /var/www/html/php/index.php
Заходим по адресу http://*адрес_сервера*/php и при успешной настройке должны увидеть следующую страницу:
Установка и настройка MySQL
Установим СуБД из репозиториев:
Добавим ее в автозапуск:
systemctl enable mariadb.service
systemctl start mariadb
Проверяем успешный запуск:
>tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 22276/mysqld
Затем создадим БД, в которой Asterisk будет хранить записи разговоров. Установка самого Asterisk описана в данной статье.
создадим базу для хранения записей разговоров:
>CREATE DATABASE asteriskcdrdb;
создадим пользователя asteriskcdr и назначим ему права доступа к только что созданной БД:
>GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskcdr@localhost IDENTIFIED BY ‘passwd’;
На данном этапе все компоненты для функционирования утилиты Asterisk CDR-Viewer подготовлены, можно переходить непосредственно к ее установке.
Установка и настройка Asterisk CDR-Viewer
После того, как все инструменты для CDR-Viewer подготовлены, его установка не представляет каких-либо сложностей.
Достаточно клонировать исходные коды утилиты из svn-репозитория в каталог /var/www/html.
svn checkout http://asterisk-cdr-viewer.googlecode.com/svn/trunk/ asterisk-cdr-viewer
Затем необходимо скопировать файл asterisk-cdr-viewer.conf из директории asterisk-cdr-viever/contrib/httpd в каталог с конфигурацией apache /etc/httpd/conf.d
Настройка подключения CDR-Viewer к MySQL выполняется в файле asterisk-cdr-viever/include/config.inc.php
$db_type = ‘mysql’; // тип базы данных
$db_host = ‘localhost’; // адрес хоста
$db_port = ‘3306’; // порт MySQL
$db_user = ‘asterisk’; // имя пользователя для подключения к БД asteriskcdrdb
db_pass = ‘paswd’; // пароль для подключения к БД asteriskcdr:
$db_name = ‘asteriskcdrdb’; // имя базы данных для хранения голосровых записей
$db_table_name = ‘cdr’; // имя таблицы
После выполнения данных настроек можно получить доступ к веб-интерфейсу приложения, перейдя в браузере по адресу http://*адрес_сервера*/asterisk-cdr-viewer/

Статистику по принятым и не принятым вызовам можно посмотреть выбрав пункт ASR/ASD report.

Графические отчеты доступны в режиме CallGraph

Отчет по продолжительности звонков доступен в режиме Minutes Report

Asterisk: cdr.conf
Asterisk Call Detail Record engine configuration
Указывает сохранять или нет информацию о неотвеченных вызовах. Если установлено ‘yes’, то информация о вызове будет сохранена, независимо от того ответила сторона B или нет. Если установлено ‘no’, то информация о вызове сохранена не будет. Это не касается вызовов через внешние исходящие линии (транки). Эти вызовы всегда будут сохраняться, независимо от статуса. Это нормальное поведение.
Сохранять или нет информацию о вызовах отвергнутых из-за перегрузки каналов (congestion). по умолчанию ‘no’
По умолчанию ‘billsec’ вычисляется, просто как разница ‘end’ минус ‘answer’ в секундах. Включение опции initiatedseconds=yes, укажет Asterisk использовать точные значения до микросекунд. В случае если часть в микросекундах ‘end’, больше чем часть в микросекундах ‘answer’, разница округлится до секунды в большую сторону и наоборот. По умолчанию «no».
Укажите максимальное кол-во значений в буфере, прежде чем данные будут залиты в хранилище. Работает если ‘batch=yes’. По умолчанию 100.
Укажите максимальную продолжительность времени, в миллисекундах, до освобождения буфера. Будет выполнено по истечению заданного времени, несмотря на значение ‘size’. По умолчанию 300 (5 минут).
Блокировать выключение Asterisk до освобождения буфера. По умолчанию «yes».
CDR «BACKEND»
Вы можете выбрать любой из нескольких бакендов для соранения данных. Возможно, также использовать все бакенды одновременно. В конфигурационных файлах, поставляемых с Asterisk для примера, выбран только cdr-csv формат.




