Суммарное время нахождения абонента во Flash-буфере

Материал из Oktell
Перейти к: навигация, поиск

Наверх

Когда оператор осуществляет консультативный перевод, абонент временно попадает во флеш-буфер. В статистику коммутаций [oktell]..[a_stat_connections_1x1] при этом информация о времени ожидания абонента не записывается, однако есть информация о времени начала коммутации (TimeStart) и времени конца (TimeStop). Время ожидания можно получить, если вычесть из времени начала следующей коммутации время конца предыдущей. Идентификатор следующей коммутации в цепочке хранится в поле IdNext. Пример цепочки коммутаций, в которой были переводы показан на рисунке.


Нахождение абонента во flash буфере.png


Следующий запрос реализует вышеописанную логику. В запросе также учитывается случай, когда после переключения в IVR сценарии, он продолжает выполнять некоторые действия (SQL, Web-запросы) и время его окончания больше, чем время начала коммутации с сотрудником. Поэтому в запросе поставлено ограничение на отрицательные значения, поскольку они не имеют отношения ко Flash-буферу.


select @duration = sum(case when diff<0 then 0 else diff end) 
from (
select  a.TimeStop, b.TimeStart, datediff(ss,  a.TimeStop, b.TimeStart) 'diff'  from 
(select * from A_Stat_Connections_1x1
where idchain = @idchain)a 
left join 
(select * from A_Stat_Connections_1x1
where idchain = @idchain)b
on a.IdNext=b.Id)aaa

где

  • @idchain - идентификатор цепочки коммутаций
  • @duration - рассчитанное время ожидания