Opened 8 years ago

Closed 8 years ago

Last modified 7 years ago

#276 closed задача (fixed)

Критерии поиска конференций в CDR

Reported by: alx Owned by: dimag
Priority: major Milestone: 2 очередь
Component: ПО MC04-Dispatcher. Пульт диспетчера/техника Keywords: database
Cc:

Description

Сейчас при фильтрации конференций по времени в качестве времени начала конференции используется время ее создания.

Возможно, это не совсем правильно, ибо конференция может быть создана по фактц прихода диспетчера на работу и его входа в систему, после чего в конференции часами ничего не происходит. Предлагается подумать, не будет ли разумнее и правильнее использовать при поиске в качестве времени начала конференции не время ее создания, а время начала записи (то есть момент подключения второго участника).

Change History (27)

comment:1 by dimag, 8 years ago

Александр твоё мнение.

comment:2 by san, 8 years ago

Согласен что разумно использовать в качестве времени начала конференции в поиске время начала записи.
Алексей, каким образом это реализовать?
Добавим ещё один столбец в sql таблицу, в котором будет отмечатся время начала записи?

comment:3 by dimag, 8 years ago

Я могу анализировать CDR файлы и просто отбрасывать неподходящие записи.
Конечно это не так быстро как SQL запрос, но при числе записей до 200-300 это не будет заметно.
Нужно проанализировать поля join_time и leave_time.
<cdr>

<conference>

...
<members>

<member type="recording_node">

<join_time type="UNIX-epoch">1470301070</join_time>
<leave_time type="UNIX-epoch">1470301085</leave_time>

in reply to:  2 comment:4 by alx, 8 years ago

Replying to san:

Согласен что разумно использовать в качестве времени начала конференции в поиске время начала записи.
Алексей, каким образом это реализовать?
Добавим ещё один столбец в sql таблицу, в котором будет отмечатся время начала записи?

Именно так.

in reply to:  3 comment:5 by alx, 8 years ago

Replying to dimag:

Конечно это не так быстро как SQL запрос, но при числе записей до 200-300 это не будет заметно.

А при числе 200-300 тысяч - будет...

Я думаю, не надо извращений, если уж делать - то делать хорошо и правильно.

comment:6 by dimag, 8 years ago

Keywords: audio added

Где этот столбец в таблице, пока нет никаких изменений.

in reply to:  6 ; comment:7 by alx, 8 years ago

Replying to dimag:

Где этот столбец в таблице, пока нет никаких изменений.

Пока нет, я жду решения от Александра. Если он скажет, что согласен, и начинаем действовать - я добавлю столбец в таблицу.

И зачем тут ключевое слово "audio"? :) По-моему эта задача со звуком никак не связана... :)

comment:8 by dimag, 8 years ago

Keywords: database added; audio removed

Тогда database?

in reply to:  7 comment:9 by san, 8 years ago

Replying to alx:

Где этот столбец в таблице, пока нет никаких изменений.

Пока нет, я жду решения от Александра. Если он скажет, что согласен, и начинаем действовать - я добавлю столбец в таблицу.

Согласен)

comment:10 by san, 8 years ago

Дима, а ты не забудь что пргорамма должна успешно искать записи в базе с новым столбцом и без него (для совместимости со старой базой)

comment:11 by alx, 8 years ago

Owner: changed from san to alx
Status: newassigned

Тогда забираю тикет себе.

comment:12 by dimag, 8 years ago

Можно так сделать. Тогда для старой версии БД, я буду использовать текущий алгоритм, для новой версии буду использовать новые колонки.

comment:13 by alx, 8 years ago

Owner: changed from alx to dimag

Передаю тикет Дмитрию.

Сейчас mod_conference_cdr_mysql при старте добавляет в таблицу cdr столбец startrecord (если его нет), после чего начинает работу, одновременно в фоновом режиме просматривает xml и апдейтит startrecord во всех записях, где есть запись.

comment:14 by alx, 8 years ago

Owner: changed from dimag to alx

Я поторопился с передачей тикета. Столбец-то в таблицу добавляется, а вот дальше при добавлении новых записей правильное значение в нем не устанавливается. Забираю тикет на доработку.

comment:15 by alx, 8 years ago

Owner: changed from alx to dimag

Возвращаю тикет Диме.

comment:16 by dimag, 8 years ago

Resolution: fixed
Status: assignedclosed

in reply to:  10 comment:17 by dimag, 8 years ago

Replying to san:

Дима, а ты не забудь что пргорамма должна успешно искать записи в базе с новым столбцом и без него (для совместимости со старой базой)

Не сделанно

comment:18 by dimag, 8 years ago

Resolution: fixed
Status: closedreopened

comment:19 by dimag, 8 years ago

Resolution: fixed
Status: reopenedclosed

r479
Теперь при неудаче запроса к базе данных с новым столбцом, используется старая версия запроса к БД.

comment:20 by alx, 8 years ago

Resolution: fixed
Status: closedreopened

В условии поиска записей переговоров используется время создания конференции, а не время начала записи. Таким образом, изложенная в описании тикета задача не выполнена.

comment:21 by san, 8 years ago

Дмитрий, как же так?

comment:22 by dimag, 8 years ago

Но возвращается время начала записи в поле startrecord.
Причина в том, что для SQL запроса, ограничения после WHERE я использовал рекомендованный запрос, который был мне выслан в одном из тикетов, и там стояло время создания конференции, так что я использовал это поле в своём запросе.

comment:23 by dimag, 8 years ago

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

WHERE UNIX_TIMESTAMP(endtime) >= 1473685200
AND UNIX_TIMESTAMP(starttime) <= 1473690659
AND has_record = 1

а надо было
Предлагаю изменить условие запроса следующим образом:

WHERE UNIX_TIMESTAMP(endtime) >= 1473685200
AND UNIX_TIMESTAMP(startrecord) <= 1473690659
AND has_record = 1

in reply to:  23 ; comment:24 by alx, 8 years ago

Replying to dimag:

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

....

а надо было

....

Если надо было делать не так, как я предложил, а по-другому, то почему же Вы сделали как предложил я, а не так, как было надо?

Version 0, edited 8 years ago by alx (next)

comment:25 by dimag, 8 years ago

Resolution: fixed
Status: reopenedclosed

r496
Изменил SQL запрос вместо, starttime использую startrecord.

in reply to:  24 comment:26 by san, 8 years ago

Replying to alx:

Если Вы говорите, что надо было делать не так, как я предложил, а по-другому, то почему же Вы сделали, как я предложил, а не так, как было надо?

Кроме этого, если посмотреть на изменения внесённые в r439(на которые жалуется Дмитрий), видно что и до этих изменений поиск был по starttime вместо startrecord.

comment:27 by san, 7 years ago

Milestone: Текущее2 очередь

Milestone renamed

Note: See TracTickets for help on using tickets.