Asterisk CDR - Статистика дзвінків

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.

Option Value/Example Notes
enableyesВключити лог CDR. За замовчуванням увімкнено.
unanswerednoЗберігати чи ні інформацію про невідповідні дзвінки. Не стосується зовнішніх дзвінків. Про них зберігається повна інформація, незалежно від значення цієї опції.
endbeforehextennoЗакрити та зберегти запис CDR до виконання розширення 'h' (hangup). Якщо значення - 'no', закриття CDR відбудеться лише після завершення всіх кроків діалплану. Якщо - 'yes', при завершенні виклику, незалежно від того, продовжується виконання діалплану в контексті чи ні
започаткованідругіnoЗа замовчуванням 'billsec' обчислюється просто як різниця 'end' мінус 'answer' в секундах. Увімкнення опції initiatedseconds=yes, вкаже Asterisk використовувати точні значення до мікросекунд
batchnoЗаписувати групою CDR замість запису кожного дзвінка окремо. Знижує навантаження на Asterisk. Залежить від наведених нижче опцій.
size100Кількість рядків CDR у буфері, при досягненні якого, буде зроблено запис.
time300Межа часу зберігання даних у буфері. Запис буде зроблено незалежно від порога рядків у буфері, заданого параметром size.
scheduleronlynoУстановка, яка CDR batch processing повинна бути спричинена spawning a new thread, або в контексті CDR batch scheduler. Default value is no, і we recommend не changing it.
safeshutdownyesБлокувати зупинку Asterisk, поки буфер не очищений (дані збережені). Запобігає втраті даних, прикоректному вимкненні Asterisk.

Модулі баз даних надають різні бакенди для запису CDR. Усі вони потребують специфічних налаштувань.

cdr_adaptive_odbc

приклад:

Щоб дані змінної useragent були занесені через cdr_adaptive_odbc, необхідно створити стовпець useragent в БД.

У файлі конфігурації cdr_adaptive_odbc можна створити безліч таблиць. Ім'я секції може бути будь-яким, модуль не використовує його. Ось приклад простої конфігурації таблиці:

Option Value/Example Notes
connectionasteriskБаза даних. Параметри з'єднання настроюються в Asterisk: res_odbc.conf. Обов'язковий параметр.
tableasterisk_cdrІм'я таблиці БД. Обов'язкове поле.
usegmtimenoВикористовувати час GMT замість локального часу. За промовчанням -'no'.

На додаток до перерахованих вище опцій cdr_adaptive_odbc.conf, можна задати ще кілька.

Наприклад:

Також можна відфільтрувати певний вміст.

Наприклад:

І нарешті, можна додати статичні дані, додатково до вступників з CDR.

Наприклад:

Для роботи не вимагає конфігурації, проте є кілька параметрів:

Option default Notes
usegmtimenoЗберігати час GMTзамість локального. За замовчуванням – no.
loguniqueidnoЗберігати uniqueid змінну CDR. За замовчуванням - no
loguserfieldnoЗберігати userfield CDR змінну. За замовчуванням – 'no'.
accountlogsyesСтворювати окремий csv файл для кожної змінної облікового записуcode. За промовчанням - yes.
cdr_custom

Даний модуль використовується для створення користувача (custom) CSV файлу. Конфігураційний файл модуля cdr_custom.conf. Єдина секція [mappings] може бути використана у цьому файлі. Шаблон задається за допомогою функцій діалплану Asterisk.

У цьому прикладі cdr_custom створює файл /var/log/asterisk/cdr-custom/Master.csv. Шаблон використовує функції 'CDR'() для вилучення значень і function 'CSV_QUOTE'(), що забезпечує правильне форматування CSV файлу ($)>).

cdr_manager

Перша секція [general] містить єдину опцію enabled за замовчуванням = no.

Наступна секція cdr_manager.conf - це [mappings]. Тут призначається користувальницька CDR змінна передана менеджеру Asterisk.

приклад :

У цій конфігурації задані змінні з'являться як інтерфейс менеджера. Джерелом подій стане наступний діалплан:

Наступна команда ініціює виклик:

У результаті наступна подія відобразиться в Asterisk Call ManagerFinally: