Определение имени и номера пользователя после соединения — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
Строка 17: Строка 17:
  
 
Компонент "'''Номер линии'''". Определяет номер линии внешнего абонента.
 
Компонент "'''Номер линии'''". Определяет номер линии внешнего абонента.
* переменной "номер линии" (строковая)  
+
* переменной "'''номер линии'''" (строковая) присваиваем значение функции "'''Номер линии'''"
  
Компонент "'''Номер скоммутированной линии'''"
+
Компонент "'''Номер скоммутированной линии'''". Определяет линию сотрудника, с которым произошло соединение.
 +
* Действие - Определить
 +
* Тип объекта - Линия
 +
* Ключ линии - переменная "номер линия"
 +
* Функция - Номер скоммутированной линии/конференции
 +
* Значение в переменную - переменная "номер скоммутированной линии" (строковая)
  
Компонент "'''ID пользователя'''"
+
Компонент "'''ID пользователя'''". Определяет ID сотрудника по номеру линии.
 +
* Действие - Определить
 +
* Тип объекта - Линия
 +
* Ключ линии - переменная "номер скоммутированной линии"
 +
* Функция - Идентификатор пользователя
 +
* Значение в переменную - переменнная "идентификатор пользователя" (строковая)
  
Компонент "'''Внутренний номер'''"
+
Компонент "'''Внутренний номер'''". Определяет внутренний номер сотрудника по ID пользователя.
 +
* Действие - Определить
 +
* Тип объекта - Пользователь
 +
* Ключ пользователя - переменная "идентификатор пользователя"
 +
* Функция - Внутренний номер
 +
* Значение в переменную - переменная "внутренний номер" (строковая)
  
Компонент "'''Имя пользователя'''"
+
Компонент "'''Имя пользователя'''". Определяет имя пользователя по его ID.
 +
* Действие - Определить
 +
* Тип объекта - Пользователь
 +
* Ключ пользователя - идентификатор пользователя
 +
* Функция - Имя пользователя
 +
* Значение в переменную - переменная "имя пользователя" (строковая)
  
Компонент "Вывод данных"
+
Компонент "Вывод данных". Выводит все найденные значения на экран.
  
'''Шаг 1.''' '''Пауза.''' После соединения необходимо поставить '''паузу''' (в примере '''200 мс'''), чтобы данное соединение записалось в базу данных.
 
 
'''Шаг 2.''' '''Определяем номер линии абонента''' Реализуется с помощью компонента присвоения и функции "'''Id цепочки коммутаций'''"
 
 
 
[[Файл:Определение имени пользователя 001.PNG | center]]
 
 
 
'''Шаг 3.''' '''Выполнение SQL-запроса'''. Выполняется запрос в таблицу соединения на предмет нахождения '''самого последнего соединения''' в данной цепочке коммутации. Затем, с помощью связи таблиц внутреннего номерного плана и таблицы имен пользователей, находится внутренний номер сотрудника.
 
 
 
select @prefix=prefix,@name=np.name from
 
(
 
  select np.prefix, u.name from A_RuleRecords rr 
 
inner join
 
A_NumberPlanAction as npa
 
on rr.ruleid = npa.extraid and npa.numtype=0
 
inner join
 
A_NumberPlan as np
 
on np.id=npa.numid
 
inner join
 
A_Users as u
 
on rr.reactid = u.id
 
) np
 
where np.Prefix in
 
(
 
select cn.Prefix from
 
(
 
select np.Prefix, count(np.Name) countname from
 
(
 
select np.prefix, u.name from A_RuleRecords rr
 
inner join
 
A_NumberPlanAction as npa
 
on rr.ruleid = npa.extraid and npa.numtype=0
 
inner join
 
A_NumberPlan as np
 
on np.id=npa.numid
 
inner join
 
A_Users as u
 
on rr.reactid = u.id
 
) np
 
group by np.Prefix
 
) cn where cn.countname = 1
 
)
 
and np.Name in
 
(
 
select top 1 bstr
 
from (
 
select top 1000 timeanswer, bstr
 
from a_stat_connections_1x1
 
where idchain= @idchain
 
order by timeanswer desc
 
)a
 
)
 
 
Выходные переменные: '''@name''' - имя пользователя, '''@prefix''' - внутренний номер пользователя.
 
  
  

Версия 11:04, 30 октября 2014

Наверх

Цель: Определить имя и внутренний номер соединившегося сотрудника при переключении абонента на групповой номер.

Рассмотрим следующую часть сценария. Пусть происходит переключение на групповой номер, происходит вызов группового номера, и абонент соединяется с одним из пользователей Oktell. Сценарий выглядит следующим образом:



Компонент "На группу". Переключает абонента на групповой номер 105.

  • Назначение - внутрь
  • Номер - 105

Компонент "Пауза 200мс". Обеспечивает запись информации о соединении в базу данных.

  • Время задержки - 200

Компонент "Номер линии". Определяет номер линии внешнего абонента.

  • переменной "номер линии" (строковая) присваиваем значение функции "Номер линии"

Компонент "Номер скоммутированной линии". Определяет линию сотрудника, с которым произошло соединение.

  • Действие - Определить
  • Тип объекта - Линия
  • Ключ линии - переменная "номер линия"
  • Функция - Номер скоммутированной линии/конференции
  • Значение в переменную - переменная "номер скоммутированной линии" (строковая)

Компонент "ID пользователя". Определяет ID сотрудника по номеру линии.

  • Действие - Определить
  • Тип объекта - Линия
  • Ключ линии - переменная "номер скоммутированной линии"
  • Функция - Идентификатор пользователя
  • Значение в переменную - переменнная "идентификатор пользователя" (строковая)

Компонент "Внутренний номер". Определяет внутренний номер сотрудника по ID пользователя.

  • Действие - Определить
  • Тип объекта - Пользователь
  • Ключ пользователя - переменная "идентификатор пользователя"
  • Функция - Внутренний номер
  • Значение в переменную - переменная "внутренний номер" (строковая)

Компонент "Имя пользователя". Определяет имя пользователя по его ID.

  • Действие - Определить
  • Тип объекта - Пользователь
  • Ключ пользователя - идентификатор пользователя
  • Функция - Имя пользователя
  • Значение в переменную - переменная "имя пользователя" (строковая)

Компонент "Вывод данных". Выводит все найденные значения на экран.


Определение имени пользователя 002.PNG


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