четверг, 18 августа 2011 г.

Call-центр\IP PBX Oktell: Отобразить карточку диалога после ручного набора

IP PBX Oktell

Задача:
Оператор набирает номер в ручном режиме. Необходимо после разговора заполнить данные формы.

И так приступаем к реализации...
Нужно определять после какого конкретного звонка отображать карточку. Я решил ввести префикс, например *
Соответственно в сценарии маршрутизации внутренних звонков будем этот префикс анализировать.


Если есть префикс *, то удаляем его. И переключаем на внешнюю линию. Если переключение произошло, то определяем ID оператора (человека который набирает номер) и делаем запись в таблицу (структура таблицы чуть ниже). Далее дезактивируем и активируем задачу ( для чего и что за задачу-чуть ниже). 


Создаем таблицу абонентов в разделе Call-центр.





Сохраняем.

Создаем еще одну таблицу, которая будет заполняться выборкой из таблицы User_tab_clients.
Т.е. выбираем все записи у кого поле status не равен 1

"Прикрепленная таблица БД" нужна для того, что бы в сценарии диалога использовать переменные типа "Поле таблицы"


Назначаем ID как "Идентификатор",  phone как "Телефон"


Сохраняем.

Создаем сценарий диалога. В нем получаем имя оператора. Делаем запись в нашу таблицу. И присваиваем служебной переменной "Результат звонка" значение 2. Подробнее тут




Форма диалога выглядит так:



Используемые переменные: 

Сохраняем сценарий.

Создаем задачу.

Тип: С запросом у оператора


Выбираем всех операторов, независимо от того, будут ли они участвовать задаче.
Выбираем вариант обхода операторов "Пользовательская процедура" ( о не чуть ниже)


В качестве таблицы абонентов выбираем вторую нашу таблицу. И ставим галочку "Синхронизировать со списком при каждой активации". Как раз для этого делали дезактивацию и активацию  в сценарии маршрутизации внутренних звонков.


Выбираем наш сценарий, как сценарий запроса на дозвон.


Сохраняем и активируем задачу.


Теперь запускаем SQL Server Management Studio Express. Выполняем запрос:

SELECT [Id]
            ,[Name]

FROM [oktell_settings].[dbo].[A_TaskManager_Tasks]


В получившейся таблице находим нашу задачу и копируем ее ID.

Далее ищем хранимую процедуру A_TaskManager_OperatorsAll_Get_Custom в баз oktell и модифицируем ее.



Текст запроса:

--Задача "Карточка после ручного звонка"

if (@idtask = '42479030-427C-4F7F-9262-87512F5567AD')
    begin
      select Operator_id as Id from User_tab_clients
      where Id = @idabonent
      return   
end
--Дефолтные величины
Select Id
FROM A_Users u
Inner join A_UserParams up on u.Id = up.Iduser
Where IsOperator = 1
end



Где вместо "42479030-427C-4F7F-9262-87512F5567AD" пишем ID вашей задачи.

Нажимаем "Выполнить"

Теперь набираем номер, в нашем случае *89274365636 ( номер вымышлен)


Поговорили. Теперь нажимаем "Завершить"  и у нас всплывает наша карточка.


Выбираем целевой или не целевой и нажимаем "Далее"
Вот и всё. Жду вопросов.

Комментариев нет: