... {toc} h1. Создание VOIP NAS Для создания VOIP NAS необходимо перейти во вкладку "Управление абонентами и тарифами - Оборудование - VOIP" и выбрать пункт Добавить. В открывшемся меню необходимо указать все настройки для NAS'a и сохранить настройки. !voip1.png|border=1! После этого нужно перейти во вкладку "Управление" и выполнить все пункты из Шага 1. !voip4.png|border=1! h1. Настройка параметров парсинга. Для настройки парсинга необходимо перейти во вкладку "Управление - настройки" и выбрать main.ini Данный файл появится только после того, как выполнить Шаг 1 и будет выглядеть следующим образом !voip3.png|border=1! В данный файл необходимо добавить следующие строчки и сохранить: {code} 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" {code} После внесения изменений файл должен выглядеть так: !voip5.png|border=1!
|
h1. Описание возможных параметров
|
{note}
|
{note}{*}Счет полей идет с ноля\!*
|
Например, имеем следующую CDR:
|
{code}71110000001;72220000002;2018-02-12 10:00:00;2018-02-12 10:04:08;248;248;subscribers;world{code}
|
{code} 71110000001;72220000002;2018-02-12 10:00:00;2018-02-12 10:04:08;248;248;subscribers;world {code}
|
Номер источника 71110000001, номер назначения 72220000002, время начала звонка "2018-02-12 10:00:00", время завершения "2018-02-12 10:04:08". В main.ini это будет выглядеть следующим образом: {code}
|
... 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
|
{code}{note}
|
{note}
|
cdr_delimiter=; -- Разделитель cdr файла
|
{note} * Разделитель должен быть "печатаемым" символом. Это значит, что символ пробела " " или табуляции "\t" нельзя использовать в качестве разделителя * Это ограничение связано с тем, что файл конфигурации обрабатывается библиотекой [ConfigParser|https://docs.python.org/2.7/library/configparser.html], она удаляет проблемы из начала и конца текста, текст только из пробелов удалит полностью {note}
|
cdr_src_orig=1 \--Кто набирал номер cdr_dst_orig=2 -- Куда набирал(номер)
|
... cdr_duration=5 -- длительность звонка полная cdr_bill_sec=6 -- длительность разговора. {info} Если не указано поле для bill_sec, но есть дата-время начала и конца звонка, то длительность будет рассчитана как разница между ними (e_time - s_time) {info} 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"
|
{info}* Формат s_time задается в cdr_date_format, с ограничением на порядок: s_datetime_date, пробел, s_datetime_time * cdr_delimiter указывается без кавычек (*';'* - неправильно, *;* - правильно), как в примерах выше{info}
|
|
{info} * Формат s_time задается в cdr_date_format, с ограничением на порядок: s_datetime_date, пробел, s_datetime_time * cdr_delimiter указывается без кавычек (*';'* - неправильно, *;* - правильно), как в примерах выше {info}
|
h1. Логика работы поля 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). Пример параметра в файле: {code} suid_fields=0,s_time,e_time,src_orig,dst_orig {code} h1. Отладка Отладка описана в [статье|FAQ по ошибкам телефонии#Ошибки обработки cdr].
|