Определение имени и номера пользователя после соединения — различия между версиями
Строка 1: | Строка 1: | ||
[[Практики | Наверх]] | [[Практики | Наверх]] | ||
− | '''Цель''': Определить имя и внутренний номер соединившегося сотрудника при переключении абонента на групповой номер'''. | + | '''Цель''': '''Определить имя и внутренний номер соединившегося сотрудника при переключении абонента на групповой номер'''. |
− | Рассмотрим следующую часть сценария. Пусть происходит переключение на групповой номер, происходит вызов группового номера, и абонент соединяется с одним из пользователей Oktell. | + | Рассмотрим следующую часть сценария. Пусть происходит переключение на групповой номер, происходит вызов группового номера, и абонент соединяется с одним из пользователей '''Oktell'''. |
+ | |||
+ | [[Файл:Определение имени пользователя 000 .PNG | center]] | ||
На данном этапе определить с каким именно пользователем соединился абонент стандартными средствами невозможно. Поэтому решение данной задачи будет проводится с использованием статистики соединения [a_stat_connections_1x1]. | На данном этапе определить с каким именно пользователем соединился абонент стандартными средствами невозможно. Поэтому решение данной задачи будет проводится с использованием статистики соединения [a_stat_connections_1x1]. | ||
− | Шаг 1. После соединения необходимо поставить паузу (в примере, 500 мс), чтобы данное соединение записалось в базу данных. | + | '''Шаг 1.''' '''Пауза.''' После соединения необходимо поставить паузу (в примере, 500 мс), чтобы данное соединение записалось в базу данных. |
+ | |||
+ | '''Шаг 2.''' '''Получение id цепочки коммутации.''' Реализуется с помощью компонента присвоения и функции "Id цепочки коммутаций" | ||
+ | |||
+ | |||
+ | [[Файл:Определение имени пользователя 001 .PNG | center]] | ||
− | |||
− | Шаг 3. Выполнение SQL-запроса. Выполняется запрос в таблицу соединения на предмет нахождения самого последнего соединения в данной цепочке коммутации. Затем, с помощью связи таблиц внутреннего номерного плана и таблицы имен пользователей, находится внутренний номер сотрудника. | + | '''Шаг 3.''' '''Выполнение SQL-запроса'''. Выполняется запрос в таблицу соединения на предмет нахождения самого последнего соединения в данной цепочке коммутации. Затем, с помощью связи таблиц внутреннего номерного плана и таблицы имен пользователей, находится внутренний номер сотрудника. |
Строка 57: | Строка 63: | ||
)a | )a | ||
) | ) | ||
+ | |||
+ | Выходные переменные: '''@name''' - имя пользователя, '''@prefix''' - внутренний номер пользователя. | ||
+ | |||
+ | [[Файл:Определение имени пользователя 003 .PNG | center]] | ||
+ | |||
+ | '''Скачать сценарий''': [[Файл:Определение имени и номера пользователя.zip.zip]] |
Версия 11:46, 13 ноября 2013
Цель: Определить имя и внутренний номер соединившегося сотрудника при переключении абонента на групповой номер.
Рассмотрим следующую часть сценария. Пусть происходит переключение на групповой номер, происходит вызов группового номера, и абонент соединяется с одним из пользователей Oktell.
На данном этапе определить с каким именно пользователем соединился абонент стандартными средствами невозможно. Поэтому решение данной задачи будет проводится с использованием статистики соединения [a_stat_connections_1x1].
Шаг 1. Пауза. После соединения необходимо поставить паузу (в примере, 500 мс), чтобы данное соединение записалось в базу данных.
Шаг 2. Получение id цепочки коммутации. Реализуется с помощью компонента присвоения и функции "Id цепочки коммутаций"
Шаг 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 - внутренний номер пользователя.
Скачать сценарий: Файл:Определение имени и номера пользователя.zip.zip