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.
| enable | yes | Включити лог CDR. За замовчуванням увімкнено. |
| unanswered | no | Зберігати чи ні інформацію про невідповідні дзвінки. Не стосується зовнішніх дзвінків. Про них зберігається повна інформація, незалежно від значення цієї опції. |
| endbeforehexten | no | Закрити та зберегти запис CDR до виконання розширення 'h' (hangup). Якщо значення - 'no', закриття CDR відбудеться лише після завершення всіх кроків діалплану. Якщо - 'yes', при завершенні виклику, незалежно від того, продовжується виконання діалплану в контексті чи ні |
| започаткованідругі | no | За замовчуванням 'billsec' обчислюється просто як різниця 'end' мінус 'answer' в секундах. Увімкнення опції initiatedseconds=yes, вкаже Asterisk використовувати точні значення до мікросекунд |
| batch | no | Записувати групою CDR замість запису кожного дзвінка окремо. Знижує навантаження на Asterisk. Залежить від наведених нижче опцій. |
| size | 100 | Кількість рядків CDR у буфері, при досягненні якого, буде зроблено запис. |
| time | 300 | Межа часу зберігання даних у буфері. Запис буде зроблено незалежно від порога рядків у буфері, заданого параметром size. |
| scheduleronly | no | Установка, яка CDR batch processing повинна бути спричинена spawning a new thread, або в контексті CDR batch scheduler. Default value is no, і we recommend не changing it. |
| safeshutdown | yes | Блокувати зупинку Asterisk, поки буфер не очищений (дані збережені). Запобігає втраті даних, прикоректному вимкненні Asterisk. |
Модулі баз даних надають різні бакенди для запису CDR. Усі вони потребують специфічних налаштувань.
cdr_adaptive_odbc
приклад:
Щоб дані змінної useragent були занесені через cdr_adaptive_odbc, необхідно створити стовпець useragent в БД.
У файлі конфігурації cdr_adaptive_odbc можна створити безліч таблиць. Ім'я секції може бути будь-яким, модуль не використовує його. Ось приклад простої конфігурації таблиці:
| connection | asterisk | База даних. Параметри з'єднання настроюються в Asterisk: res_odbc.conf. Обов'язковий параметр. |
| table | asterisk_cdr | Ім'я таблиці БД. Обов'язкове поле. |
| usegmtime | no | Використовувати час GMT замість локального часу. За промовчанням -'no'. |
На додаток до перерахованих вище опцій cdr_adaptive_odbc.conf, можна задати ще кілька.
Наприклад:
Також можна відфільтрувати певний вміст.
Наприклад:
І нарешті, можна додати статичні дані, додатково до вступників з CDR.
Наприклад:
Для роботи не вимагає конфігурації, проте є кілька параметрів:
| usegmtime | no | Зберігати час GMTзамість локального. За замовчуванням – no. |
| loguniqueid | no | Зберігати uniqueid змінну CDR. За замовчуванням - no |
| loguserfield | no | Зберігати userfield CDR змінну. За замовчуванням – 'no'. |
| accountlogs | yes | Створювати окремий 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: