Коллектор HMED-C занимается сбором и парсингом CDR для последующей передачи их на обработку в ядро предбиллинга.
...
Настройка сбора CDR из файлов
Предположим, АТС настроена таким образом, что сохраняет CDR в файлах с именем в формате cdr_12345.log в директории /tmp/cdr.
...
Коллектор реагирует на событие create файловой системы, таким образом обработка файла с CDR начинается немедленно после его создания.
Настройка парсинга CDR
Code Block | ||
---|---|---|
| ||
parsers:
plain:
switch_2:
cdr_delimiter: "\n" # разделитель между CDR в файле (новая строка)
preprocessors:
# предобработчики строки перед разбором
- type: substring
begin: 1
end: -1
records:
- matcher:
# регулярное выражение для разбора CDR на поля
# 1 2 3 4 5 6 7
# trk_a station_a trk_b station_b day month year hour minute second dur status
pattern: ^(\w+) (\d+|-)[^\s]* (\w+) (\d+)[^\s]* (\d{2}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) (\d+) (\d+)$
fields:
map:
# соответствие полей CDR и строки, разобранной регулярным выражением
# первое поле $g1, второе $g2 и т.д.
trunk_a: $g1
station_a: $g2
trunk_b: $g3
station_b: $g4
call_datetime: $g5
duration_sec: int($g6) # приведение к целому числу
termination_code: $g7 |