Asterisk: cdr.conf
cdr.conf - Общие (глобальные) настройки детализированного отчета о звонках и выбора бэкендов.
Asterisk Call Detail Record engine configuration
CDR или Детализированный Отчет Вызовов - сервис обеспечивающий сохранение информации о совершенных вызовах. Информация может быть записана в базы данных, файлы и другие формы хранения данных. Используется для биллинга, предотвращения мошенничества, Системы Оперативно Розыскных Мероприятий (СОРМ), оценки качества обслуживания и тд
[general]
Использовать или нет сохранение CDR. Если установлено 'no', перекрывает любые параметры загрузки CDR модулей. По умолчанию 'yes
enable=yes
Указывает сохранять или нет информацию о неотвеченных вызовах. Если установлено 'yes', то информация о вызове будет сохранена, независимо от того ответила сторона B или нет. Если установлено 'no', то информация о вызове сохранена не будет. Это не касается вызовов через внешние исходящие линии (транки). Эти вызовы всегда будут сохраняться, независимо от статуса. Это нормальное поведение.
unanswered = no
Сохранять или нет информацию о вызовах отвергнутых из-за перегрузки каналов (congestion). по умолчанию 'no'
congestion = no
Обычно запись не сохраняется пока все расширения канала не будут выполнены. Включение данной опции позволит закрыть CDR до выполнения расширения 'h', и момента когда положили трубку. Однако параметры CDR - 'end' и 'billsec' будут заданы на момент выполнения расширения 'h' (требует уточнения) По умолчанию 'no'.
endbeforehexten=no
По умолчанию 'billsec' вычисляется, просто как разница 'end' минус 'answer' в секундах. Включение опции initiatedseconds=yes, укажет Asterisk использовать точные значения до микросекунд. В случае если часть в микросекундах 'end', больше чем часть в микросекундах 'answer', разница округлится до секунды в большую сторону и наоборот. По умолчанию «no».
initiatedseconds=no
Групповой режим CDR сохраняет данные в буфер, чтобы потом залить в хранилище группой, что уменьшает нагрузку на сервер. Но может привести к потере данных при внезапной перезагрузке. По умолчанию «no».
batch=no
Укажите максимальное кол-во значений в буфере, прежде чем данные будут залиты в хранилище. Работает если 'batch=yes'. По умолчанию 100.
size=100
Укажите максимальную продолжительность времени, в миллисекундах, до освобождения буфера. Будет выполнено по истечению заданного времени, несмотря на значение 'size'. По умолчанию 300 (5 минут).
time=300
Постить все в едином потоке планировщика Asterisk (scheduleronly=yes) или для каждой партии создавать новый поток (scheduleronly=no). Для небольших партий (до size=10) используйте только планировщик. Для больших новые потоки - scheduleronly=no. По умолчанию 'no'.
scheduleronly=no
Блокировать выключение Asterisk до освобождения буфера. По умолчанию «yes».
safeshutdown=yes
CDR "BACKEND"
Вы можете выбрать любой из нескольких бакендов для соранения данных. Возможно, также использовать все бакенды одновременно. В конфигурационных файлах, поставляемых с Asterisk для примера, выбран только cdr-csv формат.
Бакенды:
- cdr_custom.conf - Настройка полей и схемы для файла csv CDR/
- cdr_odbc.conf - Соединение черед ODBC драйвер.
- cdr_pgsql.conf - Соединения с PostrgreSQL.
- cdr_sqlite3_custom.conf - Соединение с sqlite3.
- cdr_tds.conf - Соединение с Microsoft SQL при помощи библиотеки FreeTDS.
- cdr_mysql.conf - Нативное соединение с БД MySQL.
- cdr_syslog.conf - Лог при помощи службы журналирования linux.
- radius настраивается в этом же файле (cdr.conf) - Сохранение данных через radius-server
Вспомогательные модули, кастомизация полей:
- cdr_manager.conf - Настройки отображения событий Asterisk Call Manager в CDR.
- cdr_adaptive_odbc.conf - Добвить собственные поля в CDR
Для компиляции модулей, требуется чтобы их зависимости были установлены до выполнения команды configure. Воспользуйтесь командой make menuselect и в разделе «Call Detail Recording» убедитесь, что требуемые вам модули имеют свои зависимости и будут скомпилированы. В приведенном ниже примере видно, что для cdr_pgsql условия не выполнены, и модуль не может быть установлен.
************************************************** Asterisk Module and Build Option Selection ************************************************** Press 'h' for help. --- Core --- [*] cdr_adaptive_odbc [*] cdr_custom [*] cdr_manager [*] cdr_syslog --- Extended --- [*] cdr_csv [*] cdr_odbc XXX cdr_pgsql XXX cdr_radius [*] cdr_sqlite3_custom XXX cdr_tds --- Deprecated --- XXX cdr_sqlite
Модуль cdr_mysql поставляется как «Add-ons» согласно требованиям лицензии, к тому же объявлен устаревшим и вместо него рекомендуется использовать cdr_odbc, что однако не мешает им пользоваться при надобности или из лени.
************************************************** Asterisk Module and Build Option Selection ************************************************** --- Extended --- XXX chan_mobile [*] chan_ooh323 [*] format_mp3 [*] res_config_mysql --- Deprecated --- [ ] app_mysql [*] cdr_mysql
Кроме общих (глобальных) настроек в файле cdr.conf конфигурируются сохранение записей CDR в csv и radius:
[csv] usegmtime=yes ; лог дата/время in GMT. по умолчанию "no" loguniqueid=yes ; лог uniqueid. по умолчанию "no" loguserfield=yes ; лог user field. по умолчанию "no" accountlogs=yes ; create separate log file for each account code. Default is "yes" newcdrcolumns=yes ; Enable logging of post-1.8 CDR columns (peeraccount, linkedid, sequence). ; Default is "no". [radius] usegmtime=yes ;log date/time in GMT loguniqueid=yes ;log uniqueid loguserfield=yes ;log user field ;Set this to the location of the radiusclient-ng configuration file ;The default is /etc/radiusclient-ng/radiusclient.conf radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf