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'


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

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

Вот и все! Вопросы в комментарии.

  1. phone_buttons.scr (2 Kb) 
  2. Управление групповым номером.scr (4 Kb) 

Комментарии

208

ООО "Первый Контактный Центр"


28 марта 201211:29

Групповой номер я реализовал через IVR сценарий.

    263

    Чефонов Андрей Владимирович


    4 сентября 201214:11

    ссылочки на сценарии не открываются

      319

      Политерм-Кама


      21 января 201311:51

      Пожалуйста обновите ссылки со сценариями.

        330

        Гребенюк Евгений


        7 февраля 201315:56

        Ссылки обновлены.

          457

          ИП Нодель Андрэ Леонидович


          17 февраля 201513:51

          По ссылкам нет указанных сценариев.

            Новое сообщение

            Прикрепить файлы

            Написать