Приложение 1.

Алгоритм преобразования полей CDR AVAYA (Definity)

 

 

Используется формат CDR TSV106, описанный в документе «AVAYA CDR SYSTEM PARAMETERS.doc». (Если вы используете формат TSV87, то из последующего рассмотрения исключается пункт 4) алгоритма).

Поля этого формата не вполне соответствуют полям, перечисленным выше (см. "Особенности обработки в TarifSV" в документе «О программе TSVlog_25.doc»). Поэтому, первоначально программой TSVlog осуществляется приведение значений в этих полях к унифицированной форме.

 

Пример такой CDR сходящий вызов, осуществленный абонентом посредством набора авторизационного кода «88888» и кода доступа «9» (выхода «на город») ):

 

30.03.2011  11:50:58  <- «метка времени» прихода CDR на TSVserver (не обязательная). Ставится, при необходимости, программой TSVserver.

 

300311 1150 00724         7010034            3443                 9500299 7         1    9       88888

Дата              время       длит.          Вход.                     Исх.                                          АОН (CLID)                                           набранный номер    |       vdn                 frl     код доступа                  |   

ДДММГГ    ЧЧММ   ЧММСС    маршрут           маршрут                                                                                                                                    тип вызова                                                                      код

                                                             и № СЛ              и № СЛ                                                                                                                                 (код состояния)                                                         авторизации

 

Программа TSVlog обрабатывает эту запись в соответствии со следующим алгоритмом унификации полей:

 

1)      Запоминается значение даты и времени прихода CDR (из метки времени, если она есть).

2)      Из CDR определяются дата (поле «1: date  - 6») и время (поле «3: time  - 4») окончания вызова. По определенному алгоритму эти значения сравниваются с данными, полученными из метки времени. Если метка времени идентифицируется, как принадлежащая к данной CDR, то дата и время окончания вызова берутся из нее.

3)      Запоминается длительность вызова (поле «5: sec-dur   - 5») - DURATION.

4)      Проверяется наличие данных в поле «25: auth-code   - 13» (код авторизации). Если поле не пустое, то это значение  (здесь и далее из считанных данных убираются лидирующие символы пробела) запоминается и в дальнейшем используется в шаблонах конвертации в качестве CLID1.

5)      Проверяется наличие данных в поле «13: clg-num/in-tac   - 15» (АОН). Если поле не пустое, то это значение запоминается и в дальнейшем используется в шаблонах конвертации в качестве CLID2.

6)      Если CLID1 =  пусто, то приравниваем CLID1 =  CLID2;

7)      Значение поля CDR «15: dialed-num   - 23» запоминается и в дальнейшем используется в шаблонах конвертации в качестве DIGITS2.

8)      Проверяется наличие данных в поле «19: vdn    - 7   ». Если поле не пустое, то это значение запоминается и в дальнейшем используется в шаблонах конвертации в качестве DIGITS1.

9)      Проверяется наличие данных в поле «7: in-trk-code - 4» (входящий маршрут). Если поле не пустое, то это значение вместе данными из поля «8: in-crt-id  - 3» (№ входящей соединительной линии) запоминается и в дальнейшем используется в шаблонах конвертации в качестве ORIGID. При этом, для идентификации того, что данные в ORIGID содержат информацию именно из полей «7: in-trk-code - 4»  и «8: in-crt-id  - 3», в качестве первого символа вставляется T (от англ. trunk-group, группа СЛ).Т.о., например, значение 7011010 превратится в T7011010.

10)  Проверяется ранее определенное значение ORIGID. Если оно пустое, то оно заполняется данными из DIGITS1. Если же и оно пусто, то значение ORIGID заполняется из CLID1, а само значение CLID1 заменяется на CLID2. Если же и исходное CLID1 пусто, то значение ORIGID заполняется зарезервированным в TSVlog значением “NULL”.

11)  Проверяется наличие данных в поле «10: code-used   - 4   » (исходящий маршрут). Если поле не пустое, то это значение вместе данными из поля «11: out-crt-id       - 3» (№ исходящей соединительной линии) запоминается и в дальнейшем используется в шаблонах конвертации в качестве TERID. При этом, в качестве первого символа вставляется T.     Т.о., например, значение 7010034 превратится в T7010034.

12)  Если DIGITS1 = пусто, то приравниваем DIGITS1= DIGITS2.

13)  Запоминаются значения «21: frl     - 1» и кода состояния (типа вызова) «17: cond-code   - 1».

 

Таким образом, например, данные из приведенной выше CDR будут первично преобразованы следующим образом:

 

DATE

TIME

DURATION

ORIGID

CLID1

DIGITS1

TERID

CLID2

DIGITS2

FRL

CODE

30.03.2011

11:50:58 

00724

88888

3443

9500299

T7010034

3443

9500299

1

7

 

 

 

Еще один пример первичного преобразования CDR (входящий вызов) в формате TSV87:

 

16.02.2010  15:03:44

160210 1503 00001 7010008            984959511397                 6859631 G 6859631 0

 

DATE

TIME

DURATION

ORIGID

CLID1

DIGITS1

TERID

CLID2

DIGITS2

FRL

CODE

16.02.2010

15:03:44

00001

T7010008

984959511397

6859631

 

984959511397

6859631

0

G