Приложение 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 |