Денис Пестрецов
25.10.2019
1696

Обзор возможностей файла cdr.conf

В данной статье проведём обзор возможностей файла cdr.conf Основная информация CDR или Call Detail Record — особая часть Asterisk, которая предоставляет возможность получать данные о статистике звонков в системе. Подробности о том, как получить данную статистику и о работе с ней можно найти в статье Статистика звонков CDR в FreePBX-13. cdr.conf — основной файл, который […]

Файл cdr.conf

В данной статье проведём обзор возможностей файла cdr.conf

Основная информация

CDR или Call Detail Record — особая часть Asterisk, которая предоставляет возможность получать данные о статистике звонков в системе. Подробности о том, как получить данную статистику и о работе с ней можно найти в статье Статистика звонков CDR в FreePBX-13.

cdr.conf — основной файл, который необходим для настройки CDR. В этой статье мы рассмотрим, какие параметры возможно настроить в данном файле.

Раздел [general]

Данный раздел, обычно, является первым в файле и отвечает за главные настройки. Начинается он с ключевой строки: [general].

Одним из ключевых настроек данного раздела является параметр enable.

enable = yes/no — определяет, будут ли вызовы записываться в CDR. Соответственно, если параметр выставлен в no, то вызовы записываться не будут и в статистику (к примеру, в CDR Reports) не попадут. Значение по умолчанию: Yes.

Для применения изменённых параметров в файле cdr.conf, необходимо выполнить в консоли Asterisk команду core reload.
Применение изменений
Применение изменений

Подробнее об этой и других командах можно прочесть в статье Справочник команд.

unanswered = yes/no — определяет, будут ли записываться неотвеченные вызовы в CDR. Если параметр выставлен в no, то вызовы записаны не будут. Это т параметр не распространяется на внешние исходящие вызовы, совершенные через транки. Такие вызовы всё равно будут записаны. Значение по умолчанию: No.

congestion = yes/no — определяет, будут ли записываться вызовы в CDR, завершённые состоянием перегрузки каналов (congestion). По факту, возникновение такого состояния также может быть обусловлено техническими проблемами со стороны оператора. Поэтому, включение его может оказаться достаточно полезным для дебага. Значение по умолчанию: No.

batch = yes/no — включение данного параметра позволяет записывать данные о вызовах предварительно в буфер обмена. После заполнения буфера до определённого размера (смотреть параметр size) или при достижении заданного времени очищения буфера (смотреть параметр time), данные группой будут записаны в базу. Значение по умолчанию: No.

Использование данного параметра хоть и снижает нагрузку на сервер, но при возникновении ошибки и внезапной остановке Asterisk (к примеру отключение электричества или команда kill -9), могут быть потеряны. Так что данный способ не рекомендуется использовать, если потеря записей в CDR критична.

size = N — используется только при batch = yes. Определяет размер буфера обмена. В качестве N указывает количество записей CDR, хранимых в буфере до записи в базу. По умолчанию N = 100.

time = N — используется только при batch = yes. Определяет время, через которое данные из буфера обмена будут записаны в базу (даже если при этом количество записей не дошло до значения, указанного в параметре size). Время указывается в секундах. По умолчанию N = 300 (5 минут).

scheduleronly = yes/no — данный параметр отвечает за использование планировщика передачи пакетов, встроенного в Asterisk. Если установлен в значение «No», то передача пакетов производится внутри одного потока планировщика. Если установлен в значение «Yes», то каждая передача пакета производится в отдельном потоке. Рекомендуется установка в «Yes», при передаче множества маленьких пакетов (размер которых, к примеру, не превышает 10 записей). Значение по умолчанию: No.

endbeforehexten = yes/no. Обычно запись в CDR производится после выполнения всех расширений. В случае если этот параметр выставлен в «Yes» — запись в CDR производится перед выполнением обработчиков «h» и «hangup». При этом значения CDR, такие как «end» и «billsec» могут быть получены внутри данного расширения. Значение по умолчанию: No.

initiatedseconds = yes/no. По умолчанию, поле billsec вычисляется как разность между временем окончания разговора и временем ответа, в секундах (то есть разность считается по уже округлённым значениям до секунд). Внутри, в Asterisk, время хранится как в секундах, так и в микросекундах. Если выставить данный параметр в «yes», то Asterisk будет использовать более точные вычисления billsec: кроме обычной разности, если количество микросекунд на момент конца разговора (end) окажется больше, чем количество микросекунд в начале ответа (answer), то значение billsec увеличится на 1. При этом целая часть вычитается по общим правилам. Значение по умолчанию: No.

safeshutdown = yes/no — когда включён данный параметр, перед завершением работы Asterisk сперва будут выгружены все записи CDR, содержащиеся в буфере обмена. Значение по умолчанию: Yes.

Если параметр safeshutdown установлен в No, то сохранение данных буфера обмена не гарантируется.

CDR «BACKEND»

Также в файле cdr.conf описывается, так называемый бэкэнд — сохранение данных в других форматах. Список поддерживаемых бэкэндов достаточно широк: csv, custom, manager, odbc, pgsql, radius, sqlite, tds. Также поддерживается mysql, как Asterisk-дополнение. Существует возможность также создавать свой бэкэнд, путём создания нового модуля в директории cdr. Также отметим, что можно использовать более одного бэкэнда. В этом случае, для каждого бэкэнда будет сгенерировано своё событие.

Некоторые из бэкэндов не устанавливаются по умолчанию, при установке Asterisk. Поэтому, если видите, что чего-то не хватает — можно доставить его, выполнив команду make menuselect и выбрав необходимый.

Выбор модуля
Выбор модуля
В случае если модуль отмечен символами ХХХ, то это означает, что он недоступен для установки.

Подробности о команде make menuselect, равно как и об установке Asterisk можно найти в статье: Установка Asterisk: пошаговая инструкция.

Чтобы узнать, какие сейчас бэкэнды установлены в Asterisk, следует в CLI выполнить команду:

cdr show status

Данная команда выведет также информацию о текущих настройках CDR, которые были сделаны в разделе general.

Текущие настройки CDR
Текущие настройки CDR

В приведённом примере из бэкэндов включён только Adaptive ODBC.

На этом обзор возможностей файла cdr.conf завершён.

Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments

Остались вопросы?

Я - Кондрашин Игорь, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

10 доводов в пользу Asterisk

Распространяется бесплатно.

Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.

Безопасен в использовании.

Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.

Надежен в эксплуатации.

Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.

Гибкий в настройке.

Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.