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

Материал из Oktell
Перейти к: навигация, поиск
(SVC - Вывод пользователя из группового номера.)
м
 
(не показано 9 промежуточных версии этого же участника)
Строка 1: Строка 1:
==SVC - Вывод пользователя из группового номера.==
+
[[Практики|Наверх]]
  
 
В случае, когда пользователь участвует в групповом номере и приходит много звонков, нет возможности совершить исходящий звонок, так как сразу после завершения текущего разговора приходит следующий звонок. Для решения такой задачи нужно вывести пользователя из группового номера.
 
В случае, когда пользователь участвует в групповом номере и приходит много звонков, нет возможности совершить исходящий звонок, так как сразу после завершения текущего разговора приходит следующий звонок. Для решения такой задачи нужно вывести пользователя из группового номера.
Строка 5: Строка 5:
 
1) Попросить администратора убрать пользователя из группового номер
 
1) Попросить администратора убрать пользователя из группового номер
  
[[Файл:Otput_memberof_the_group.PNG‎]]
+
[[Файл:Otput_memberof_the_group.PNG‎|center]]
  
 
Но это не самый лучший вариант!
 
Но это не самый лучший вариант!
  
2) Воспользоваться возможностью [[Серверный_интерфейс|web интерфейсом Oktell'a.]]
+
2) Воспользоваться возможностью [[Серверный HTTP интерфейс|web интерфейсом Oktell'a.]]
 
Для этого перейдем в раздел Администрирование\ Внешние модули\Разделы меню
 
Для этого перейдем в раздел Администрирование\ Внешние модули\Разделы меню
 
Нажимаем "Добавить" и в качестве "Адреса страницы веб-сервиса" укажем следующий адрес:
 
Нажимаем "Добавить" и в качестве "Адреса страницы веб-сервиса" укажем следующий адрес:
Строка 17: Строка 17:
 
  '''phone_buttons - название служебного сценария.'''
 
  '''phone_buttons - название служебного сценария.'''
 
  '''[user_guid] - id оператора, открывшего создаваемый пункт меню'''
 
  '''[user_guid] - id оператора, открывшего создаваемый пункт меню'''
[[Файл:Otput_memberof_the_group_1.PNG‎]]
+
[[Файл:Otput_memberof_the_group_1.PNG‎|center]]
  
 
Создаем служебный сценарий phone_buttons.
 
Создаем служебный сценарий phone_buttons.
 
На старт данного сценария передается '''[user_guid]'''. Сохраняем его в переменную текстовую  '''Userid'''.
 
На старт данного сценария передается '''[user_guid]'''. Сохраняем его в переменную текстовую  '''Userid'''.
  
[[Файл:Otput_memberof_the_group_2.PNG‎]]
+
[[Файл:Otput_memberof_the_group_2.PNG‎|center]]
  
 
Далее в компоненте "Присвоение" служебной переменной "(сл) Возвращаемое значение 1(строка)" присваиваем выражение, где по ссылкам будет запускаться служебный сценарий '''"Управление групповым номером 8888"''' и в качестве параметра будет передаваться '''"1"''' или '''"0"''', в зависимости выбранной ссылки.
 
Далее в компоненте "Присвоение" служебной переменной "(сл) Возвращаемое значение 1(строка)" присваиваем выражение, где по ссылкам будет запускаться служебный сценарий '''"Управление групповым номером 8888"''' и в качестве параметра будет передаваться '''"1"''' или '''"0"''', в зависимости выбранной ссылки.
Строка 28: Строка 28:
 
После перезапуска клиентского приложения, в разделе '''"Внешние модули"''', появиться созданный пункт меню "Управление номером".
 
После перезапуска клиентского приложения, в разделе '''"Внешние модули"''', появиться созданный пункт меню "Управление номером".
  
[[Файл:Otput_memberof_the_group_3.PNG‎]]
+
[[Файл:Otput_memberof_the_group_3.PNG‎|center]]
  
 
Теперь рассмотрим сценарий '''"Управление групповым номером 8888"''', в котором происходит добавление или удаления пользователя из группового номера
 
Теперь рассмотрим сценарий '''"Управление групповым номером 8888"''', в котором происходит добавление или удаления пользователя из группового номера
  
[[Файл:Otput_memberof_the_group_4.PNG‎]]
+
[[Файл:Otput_memberof_the_group_4.PNG|center]]
  
 
Если переданный параметр был  "1", то прежде чем добавлять пользователя в групповой номер, проверяем нет ли уже его там. Если нет, то добавляем пользователя в групповой номер с помощью SQL запроса:
 
Если переданный параметр был  "1", то прежде чем добавлять пользователя в групповой номер, проверяем нет ли уже его там. Если нет, то добавляем пользователя в групповой номер с помощью SQL запроса:
Строка 60: Строка 60:
 
В конце сценария перезапускаем сервер состояния с помощью компонента "Статус объекта", для того чтобы все изменения вступили в силу.
 
В конце сценария перезапускаем сервер состояния с помощью компонента "Статус объекта", для того чтобы все изменения вступили в силу.
  
'''!!!Внимание!!! В сценариях необходимо указать свой адрес сервера, порт и групповой номер.'''
+
<span style="color:red;">Внимание!!! В сценариях необходимо указать свой адрес сервера, порт и групповой номер.'''  
 +
 
 +
[[Media:Сценарии.zip‎|Сценарии.zip]]

Текущая версия на 10:49, 31 марта 2023

Наверх

В случае, когда пользователь участвует в групповом номере и приходит много звонков, нет возможности совершить исходящий звонок, так как сразу после завершения текущего разговора приходит следующий звонок. Для решения такой задачи нужно вывести пользователя из группового номера.

1) Попросить администратора убрать пользователя из группового номер

Otput memberof the group.PNG

Но это не самый лучший вариант!

2) Воспользоваться возможностью web интерфейсом Oktell'a. Для этого перейдем в раздел Администрирование\ Внешние модули\Разделы меню Нажимаем "Добавить" и в качестве "Адреса страницы веб-сервиса" укажем следующий адрес:

http://192.168.0.20:4055/execsvcscriptplain?name=phone_buttons&startparam1=[user_guid]&async=0&timeout=10

Где:

phone_buttons - название служебного сценария.
[user_guid] - id оператора, открывшего создаваемый пункт меню
Otput memberof the group 1.PNG

Создаем служебный сценарий phone_buttons. На старт данного сценария передается [user_guid]. Сохраняем его в переменную текстовую Userid.

Otput memberof the group 2.PNG

Далее в компоненте "Присвоение" служебной переменной "(сл) Возвращаемое значение 1(строка)" присваиваем выражение, где по ссылкам будет запускаться служебный сценарий "Управление групповым номером 8888" и в качестве параметра будет передаваться "1" или "0", в зависимости выбранной ссылки.

После перезапуска клиентского приложения, в разделе "Внешние модули", появиться созданный пункт меню "Управление номером".

Otput memberof the group 3.PNG

Теперь рассмотрим сценарий "Управление групповым номером 8888", в котором происходит добавление или удаления пользователя из группового номера

Otput memberof the group 4.PNG

Если переданный параметр был "1", то прежде чем добавлять пользователя в групповой номер, проверяем нет ли уже его там. Если нет, то добавляем пользователя в групповой номер с помощью SQL запроса:

declare @id uniqueidentifier
select @id=ExtraId from A_NumberPlanAction npa
inner join A_NumberPlan np on np.Id=npa.NumID and np.Prefix='8888'
insert into A_RuleRecords(ID, InnerAddressType, StartTime, FinishTime, RuleId, ReactId, Account)
values(NewId(), @objtype, 0, 90, @id, @idobject, )

Если переданный параметр был "0", то удаляем пользователя из группового номера с помощью SQL запроса:

declare @id uniqueidentifier
select @id=ExtraId from A_NumberPlanAction npa
inner join A_NumberPlan np on np.Id=npa.NumID and np.Prefix='8888'
delete from A_RuleRecords
where InnerAddressType=@objtype and ReactId=@idobject and RuleId=@id


И что бы сбросить с него очередь, меняем его статус на "Отсутствует" с помощью запроса:

'http://192.168.0.20:4055/wp_setuserstate?user='+[Userid]+'&userstateid=3'

а потом на "На месте" с помощью запроса:

'http://192.168.0.20:4055/wp_setuserstate?user='+[Userid]+'&userstateid=1'

В конце сценария перезапускаем сервер состояния с помощью компонента "Статус объекта", для того чтобы все изменения вступили в силу.

Внимание!!! В сценариях необходимо указать свой адрес сервера, порт и групповой номер.

Сценарии.zip