Просмотр Исходного

h1. main.ini

Схема интеграции подразумевает открытие сокета для получения потока CDR от Avaya подобно Avaya Communication Manager.
Если у Вас есть файлы CDR которые не были отправлены потоком, загрузите их в папку указанную в настройках NAS и настройте регулярное выражение для корректного извлечения данных по звонкам.

{code}tmplt=tmplt/main.cfg.tmplt
ip="10.0.2.14"
cdr_path="/var/avaya/"
enabled="0"
cdr_receiver_port="9000"
regex=(?P<time>.{4})\s\d{4}\s.\s(?P<code_dial>.{3})\s(?P<in_trk_code>.{3})\s(?P<clg_num_in_tac>.{18})\s(?P<dialed_num>.{15})\s(?P<start_date>\d{6})\s.{3}\s(?P<code_used>.{3})\s.{20}\s(?P<sec_dur>.{5}){code}

* *cdr_receiver_port* - порт на котором открываем сокет для принятия потока CDR
* *regex* - регулярное выражение для извлечения данных из полученной CDR

Используя [руководство администратора Avaya Communication Manager|https://downloads.avaya.com/elmodocs2/comm_mgr/r2_1/trans/233506RU_8.pdf] Вы можете настроить данные выгружаемые в CDR и адрес на который следует отправлять данные потоком.

h2. cdr_receiver_port

Avaya может отправлять поток CDR в реальном времени сразу после завершения звонка в Avaya Communication Manager. Можно настроить отправку в двух направлениях, что сделать рекомендуется чтобы не потерять записи CDR в случае потери связи с биллингом или техничесих работ.
Потребуется настроить "CDR System Parameters" для отправки потока CDR. IP биллинга задаётся в справочнике *node-names*, в справочнике *ip-services* сопоставляется сервис отправки CDR, хоста и его порта. В *system-parameters cdr* настраивается формат CDR и сама отправка.

h3. Настройте узлы
{code}
change node-names ip Page 1 of 1
IP NODE NAMES

Name IP Address Name IP Address
default 0 .0 .0 .0 __________________ ___.___.___.___
ACM 10 .0 .3 .17 __________________ ___.___.___.___
CB5 10 .0 .2 .2 __________________ ___.___.___.___
{code}
"Name" - произвольное, "IP Address" - адрес биллинга

h3. Настройте IP Services

{code}
change ip-services Page 1 of X
IP SERVICES

Service Enabled Local Local Remote Remote
Type Node Port Node Port
CDR1 y clan10 5677 ACM 9123
CDR2 y clan10 5678 CB5 9000
{code}
Service Type должен быть CDR1 или CDR2. По-умолчанию используется порт 9000.

h3. Настройте Output Endpoint
{code}
change system-parameters cdr Page 1 of 1
CDR SYSTEM PARAMETERS

Node Number (Local PBX ID): CDR Date Format: month/day
Primary Output Format: customized Primary Output Endpoint: CDR1
Secondary Output Format: customized Secondary Output Endpoint: CDR2
{code}
В "CDR System Parameters" настройте "Primary Output Endpoint" или "Secondary Output Format", выберите соответствующий пункт настроенный в "IP Services"

h2. regex

Проверить регулярное выражение можно на сайте [regex101.com|https://regex101.com], в меню слева нужно выбрать в пункте "FLAVOR": Python. В строку Regular Expression напишите Ваше регулярное выражение, в строку Test String - запись CDR:

!avaya_regex101.png|border=0,width=900!

Регулярное выражение из примера:
{code}(?P<time>.{4})\s\d{4}\s.\s(?P<code_dial>.{3})\s(?P<in_trk_code>.{3})\s(?P<clg_num_in_tac>.{18})\s(?P<dialed_num>.{15})\s(?P<start_date>\d{6})\s.{3}\s(?P<code_used>.{3})\s.{20}\s(?P<sec_dur>.{5}){code}

CDR из примера:
{code}0805 0023 9 8 Out 79120000321 71110000001 010919 Our 018 009 2 00221{code}

Переменные:
* *time* - начало вызова, например 0805 - 8 часов 5 минут
* *code_dial* - используется для AMA-Flags
* *in_trk_code* - код доступа к входящей транковой группе, используем как транк назначения (dst_chan)
* *clg_num_in_tac* - номер с которого пришел звонок (используем как src_orig)
* *dialed_num* - номер на который совершен звонок (используем как dst_orig)
* *start_date* - дата звонка, например 010919 - первое сентября 2019 года
* *code_used* - используем в качестве транка источника (src_chan)
* *sec_dur* - длительность вызова, например 00221 - две минуты и 21 секунда