Поиск по этому блогу

28.02.2012

Выгрузка CDR из маршрутизатора

Для выгрузки CDR на сервер биллинга не всегда подходит использование стандартного syslog-а.
В IOS предусмотрено использование внешнего или съемного хранилища:
router(config)#gw-accounting file
router(config-gw-accounting-file)#primary ?
ftp ftp mode of file transfer
ifs Local file system, i.e.,flash/ mem slot device name such as flash: slot0:

Такой метод называется File Accounting
Метод File Accounting обеспечивает сбор CDR записей в файлы CSV формата (поля разделяются запятыми) и запись этих файлов на внутреннюю флэш память или на внешний FTP сервер. CDR записи формируются для каждой ветви вызова, выполняемого через голосовые шлюзы Cisco. Для CDR записей в CSV формате применяются следующие правила:
• Каждая CDR запись имеет свой номер, который находится в начале записи. Поля, не содержащие данных, включаются как пустые поля.
• Двенадцать полей являются общими и используются для сбора функционально-зависимой информации. Для основного вызова CDR запись генерируется с базовой информацией о вызове в функциональной части полей. Поля являются статическими относительно своих позиций, однако, назначение VSA* полей определяется типом функции.
• CDR записи генерируются для каждой используемой функции. Например, если при выполнении вызова был выполнена передача вызова, то будут сгенерированы 2-е CDR записи: - CDR запись для основного этапа вызова; - CDR запись для этапа передачи вызова.
*VSA - vendor-specific attributes – параметры, определяемые производителем.

При настройке этого метода получения CDR информации определяются основное и дополнительное устройства для хранения информации. В случае если передача на основное устройство по какой-то причине прерывается, шлюз пытается восстановить связь с основным устройством заданное число раз, и если это не удается, то переключается на дополнительное устройство. Пользователь может затем вручную переключить вывод CDR на основное устройство при восстановления его работы. В случае, когда и дополнительное устройство прерывают свою работу, процесс учета вызовов останавливается и система фиксирует ошибку. При этом новые CDR записи будут потеряны до тех пор, пока одно из устройств записи не восстановит работоспособности и вы вручную не сделаете перезагрузку.
Шлюз временно хранит информацию о выполненных вызовах в буфере памяти перед тем, как она будет записана в заданный файл. Информация добавляется в CDR файл после истечения заданного временного периода или когда буфер памяти переполняется. Шлюз закрывает CDR файл и создает новый после истечения заданного временного интервала или этот процесс может быть инициирован вручную. Другие опции позволяют выбрать специфические параметры, которые будут фиксироваться в CDR записях.
CDR записи могут генерироваться в одном из следующих форматов:
• Подробный формат;
• Компактный формат;
• Определяемый пользователем формат.

В минимальной конфигурации это выглядит примерно так:
gw-accounting syslog
gw-accounting file
primary ftp 1.2.3.4/voip-cdr.txt username cdr password cdr
secondary ftp 4.3.2.1/voip-cdr.txt username cdr password cdr
maximum cdrflush-timer 15
cdr-format compact

Хотя и выбран компактный формат для файлов, но не обольщайтесь.
По документации в этом формате выгружаются всего 23 поля (0-22), а их там больше сотни!
Имеется также возможность подстроить выдачу CDR полей под собственные потребности (создать пользовательский формат). Для этого необходимо создать шаблон, который представляет собой текстовый файл, с перечисленными в нем именами требуемых полей. Только эти CDR поля будут записываться в CDR файл.
Данные из маршрутизатора можно выгрузить и принудительно:
router#file-acct flush ?
with-close File accounting flush pending accounting to file,and close file
without-close File accounting flush pending accounting to file

file-acct flush with-close - Сбрасывает данные из буфера в файл с закрытием файла.

Обработка файла и значение полей - это уже отдельная тема