Настройка парсинга CDR

Skip to end of metadata
Go to start of metadata

Создание VOIP NAS

Для создания VOIP NAS необходимо перейти во вкладку "Управление абонентами и тарифами - Оборудование - VOIP" и выбрать пункт Добавить.
В открывшемся меню необходимо указать все настройки для NAS'a и сохранить настройки.

После этого нужно перейти во вкладку "Управление" и выполнить все пункты из Шага 1.

Настройка параметров парсинга.

Для настройки парсинга необходимо перейти во вкладку "Управление - настройки" и выбрать main.ini
Данный файл появится только после того, как выполнить Шаг 1 и будет выглядеть следующим образом

В данный файл необходимо добавить следующие строчки и сохранить:

custom_cdr_parser=1
cdr_delimiter=;
cdr_src_orig=0
cdr_dst_orig=1
cdr_s_time=2
cdr_e_time=3
cdr_duration=4
cdr_bill_sec=5
cdr_dst_chan=6
cdr_src_chan=7
cdr_suid=8
cdr_date_format=%Y-%m-%d %H:%M:%S

После внесения изменений файл должен выглядеть так:

Описание возможных параметров

Счет полей идет с ноля!
Например, имеем следующую CDR:
71110000001;72220000002;2018-02-12 10:00:00;2018-02-12 10:04:08;248;248;subscribers;world

Номер источника 71110000001, номер назначения 72220000002, время начала звонка "2018-02-12 10:00:00", время завершения "2018-02-12 10:04:08". В main.ini это будет выглядеть следующим образом:

cdr_src_orig=0 -- 71110000001
cdr_dst_orig=1 -- 72220000002
cdr_s_time=2 -- 2018-02-12 10:00:00
cdr_e_time=3 -- 2018-02-12 10:04:08
  • cdr_delimiter=; – Разделитель cdr файла
    • Разделитель должен быть "печатаемым" символом. Это значит, что символ пробела " " или табуляции "\t" нельзя использовать в качестве разделителя
    • Это ограничение связано с тем, что файл конфигурации обрабатывается библиотекой ConfigParser, она удаляет проблемы из начала и конца текста, текст только из пробелов удалит полностью
  • cdr_src_orig=1 --Кто набирал номер
    В случае, если код города и номер приходят в разных полях и нужно настроить парсинг для src номера по двум полям - можно использовать следующие настройки:
    cdr_src_area - поле для кода города
    cdr_src_body - поле для номера без учета кода города.
    При этом поле cdr_src_orig должно отсутствовать в файле main.ini
  • cdr_dst_orig=2 – Куда набирал(номер)
    В случае, если код города и номер приходят в разных полях и нужно настроить парсинг для dst номера по двум полям - можно использовать следующие настройки:
    cdr_dst_area - поле для кода города
    cdr_dst_body - поле для номера без учета кода города.
    При этом поле cdr_dst_orig должно отсутствовать в файле main.ini
  • cdr_duration=5 – длительность звонка полная
    cdr_bill_sec=6 – длительность разговора.
    Если не указано поле для bill_sec, но есть дата-время начала и конца звонка, то длительность будет рассчитана как разница между ними (e_time - s_time)
  • cdr_nas_ip=7 – nas ip, необязательное поле, NAS может определяться по директории в которую загружены CDR
  • cdr_suid=8 – уникальный id сессии/звонка
  • cdr_dst_chan=9 – Оператор(канал) кому ушел звонок(текстовая метка, например MEGAFON)
  • cdr_src_chan=10 --Оператор(канал) откуда пришел звонок(текстовая метка, например ROSTELEKOM)
  • cdr_s_time=3 – Время начала звонка
  • cdr_e_time=4 – Время конца звонка
  • cdr_date_format=%Y-%m-%d %H:%M:%S
  • cdr_s_datetime_date=17 - дата начала звонка, если есть только s_time, дата и время начала звонка находятся в разных полях
  • cdr_s_datetime_time=18 - время начала звонка, если есть только s_time, дата и время начала звонка находятся в разных полях
  • cdr_duration_time=19 - если продолжительность звонка передаётся в формате "%H:%M:%S"
  • cdr_add_chan_prefix=1 - если включена эта опция - к транкам dst_chan и src_chan будет добавляться префикс в виде id этого nas'а по формату <nas_id>src_chan и <nas_id>dst_chan, например dst_chan=ROSTELECOM, NAS_ID=1113, тогда в базу попадет значение 1113ROSTELECOM
    • Формат s_time задается в cdr_date_format, с ограничением на порядок: s_datetime_date, пробел, s_datetime_time
    • cdr_delimiter указывается без кавычек (';' - неправильно, ; - правильно), как в примерах выше

Логика работы поля cdr_suid

1) SUID - уникальный идентификатор сеанса связи
2) Если в cdr не передан SUID, то он будет сгенерирован как MD5 от полей 'src_orig', 'dst_orig', 'bill_sec', 'e_time'
3) Есть возможность указать свой список полей для генерации SUID. Для этого необходимо добавить в main.ini параметр suid_fields и далее значения через запятую. Передаваться может как имя поля (например s_time), т.к. и порядковый номер поля из cdr(отсчет идет с 0). Пример параметра в файле:

suid_fields=0,s_time,e_time,src_orig,dst_orig

Отладка

Отладка описана в статье.

Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.