Вывод пользователя из группового номера
SVC - Вывод пользователя из группового номера.
В случае, когда пользователь участвует в групповом номере и приходит много звонков, нет возможности совершить исходящий звонок, так как сразу после завершения текущего разговора приходит следующий звонок. Для решения такой задачи нужно вывести пользователя из группового номера.
1) Попросить администратора убрать пользователя из группового номер
Но это не самый лучший вариант!
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 оператора, открывшего создаваемый пункт меню
Создаем служебный сценарий phone_buttons. На старт данного сценария передается [user_guid]. Сохраняем его в переменную текстовую Userid.
Далее в компоненте "Присвоение" служебной переменной "(сл) Возвращаемое значение 1(строка)" присваиваем выражение, где по ссылкам будет запускаться служебный сценарий "Управление групповым номером 8888" и в качестве параметра будет передаваться "1" или "0", в зависимости выбранной ссылки.
После перезапуска клиентского приложения, в разделе "Внешние модули", появиться созданный пункт меню "Управление номером".
Теперь рассмотрим сценарий Управление групповым номером 8888, в котором происходит добавление или удаления пользователя из группового номера
Если переданный параметр был "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'
В конце сценария перезапускаем сервер состояния с помощью компонента "Статус объекта", для того чтобы все изменения вступили в силу.
!!!Внимание!!! В сценариях необходимо указать свой адрес сервера, порт и групповой номер.