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

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

Наверх

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

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