jellfish
29.12.2005, 13:13
Есть вот такие строки в CDR. Не понимаю как их считать и что означает E запись. Просто окончание конференции из 1 человека (рут A028005 - 1ая S запись)


S 003 00 102 A028005 12/22 11:45:38 00:00:34.0 A9410838
& 000 000
& 000

S 004 00 102 A028013 12/22 11:46:00 00:00:12.0 A9419550
& 000 000
& 000

E 005 00 CF03015 A028005 12/22 11:46:12 00:00:00.0
& 000 000
& 000

Вот еще пример:


S 060 00 127 A028015 12/23 11:35:50 00:00:56.0 A9564626
& 000 000
& 000

S 061 00 127 T028011 12/23 11:36:36 00:00:10.0 A956462
& 000 000
& 000

E 079 00 CF09415 T028011 12/23 11:37:57 00:01:10.0
& 000 000
& 000

E 118 00 CF09415 A028015 12/23 11:41:07 00:04:20.0
& 000 000
& 000

Gluker
29.12.2005, 21:30
К продолжительности разговоров S записей надо добавить продолжительности из E. Скрещивать по терминатору.

jellfish
29.12.2005, 21:38
Да тут пока дождешься... Так и сделал - беру все данные из S только время суммирую...

А что значит "скрещивать по терминатору"?

А вообще покритикуйте (знаю что вы уже с этим маялись - читал топик отсюда)

При приходе записи E делаю поиск по логу с таким же рутом ( допустим A028004) причем чтобы 1-й рут E записи равнялся 2 руту S (ну всмысле первый в CDR не помню его название) Это обычно трансфер.

Если не нашли то ищем по 2 руту E = 2 руту S. (Это обычно конференция как пример выше)

S запись ищем в интервале 24 часа от даты E.

Вот SQL-и для 1-ого и 2-ого поисков:


Select Top 1 @S_Time = [Time], @S_Outer_Number = Outer_Number, @S_Ph_Number = Ph_Number, @S_In_Stream_Type = In_Stream_Type, @S_In_Stream_Number = In_Stream_Number, @S_In_Stream_Code = In_Stream_Code, @S_Out_Stream_Type = Out_Stream_Type, @S_Out_Stream_Number = Out_Stream_Number, @S_Out_Stream_Code = Out_Stream_Code, @S_Dt = Dt
From Data
Where Dt Between DateAdd(Day, -1, @Dt) and @Dt
And Out_Stream_Type = @In_Stream_Type
And Out_Stream_Number = @In_Stream_Number
And Out_Stream_Code = @In_Stream_Code
And [Type] = 'S'
Order By Dt Desc


Select Top 1 @S_Time = [Time], @S_Outer_Number = Outer_Number, @S_Ph_Number = Ph_Number, @S_In_Stream_Type = In_Stream_Type, @S_In_Stream_Number = In_Stream_Number, @S_In_Stream_Code = In_Stream_Code, @S_Out_Stream_Type = Out_Stream_Type, @S_Out_Stream_Number = Out_Stream_Number, @S_Out_Stream_Code = Out_Stream_Code, @S_Dt = Dt
From Data
Where Dt Between DateAdd(Day, -1, @Dt) and @Dt
And Out_Stream_Type = @Out_Stream_Type
And Out_Stream_Number = @Out_Stream_Number
And Out_Stream_Code = @Out_Stream_Code
And [Type] = 'S'
Order By Dt Desc

Gluker
30.12.2005, 10:25
А что значит "скрещивать по терминатору"?
S 003 00 102 A028005 12/22 11:45:38 00:00:34.0 A9410838
102 - оригинатор
A028005 - терминатор

Tema
30.01.2009, 16:32
jellfish пишет
E 118 00 CF09415 A028015 12/23 11:41:07 00:04:20.0
& 000 000
& 000

Как избавиться от записей такого вида? Один особо "умный" тарификатор считает CFxxxxx транком...