Определение момента переключения на сотрудника во время перевода звонка

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

Наверх


Введение

Представим ситуацию, когда абонент А просит оператора Б переключить его на другого сотрудника В. Например, клиент, разговаривая с менеджером по продажам, хочет обсудить технический вопрос с инженерами технической поддержки. Менеджер по продажам может переключить абонента сразу напрямую (выполнить Transfer-переключение, неконсультативный перевод) или предварительно предупредить инженера о переводе (консультативный перевод). В каждом из этих случаев стоит задача воспроизвести в коммутацию сообщение "Вы переключены на сотрудника", как только установилось успешное соединение.

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


Реализация сценария

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

Основная идея алгоритма - запустить служебный сценарий, после того как сотрудник В возьмет трубку. Этот служебный сценарий в асинхронном режиме проверяет состояние переключения и после переключения клиента А на сотрудника В запускает воспроизведение файла в коммутацию. Все номера линий участвующие в переключении собираются в IVR сценарии переключения и передаются служебному сценарию на вход.


Модификация IVR сценария переключения

Модификация сценария заключается в сборе данных о линиях, участвующих в переводе звонка и запуске служебного сценария. Модифицированный сценарий выглядит следующим образом:


Определение момент переключения-002.png


1. Правка входного каскада.


Компонент "Старт 1". Во время Sip-transfer переключения получает номер, на который выполнен перевод звонка. Во время обычного переключения на вход ничего не передается.

  • Параметр запуска - переменная "Номер" (локальная)


Компонент "Режим Flash". Присваивает служебной переменной "(сл) Режим Flash" - число 1. Таким образом, если оператор Б положит трубку во время дозвона до сотрудника В, клиент А заменит его и самостоятельно будет ожидать соединения.


Компонент "Параметр запуска пусто?". Определяет передался ли номер на вход сценария во время SIP-transfer переключения.

  • Аргумент 1 - переменная "Номер"
  • Аргумент 2 - пустая строка
  • Тип сравнения - "="
  • Переход, правда - компонент "НОМЕР=CallerID".
  • Переход, ложь - компонент "Пауза 1". Таким образом, номер отправляется сразу в набор.


Компоненты "Номер=CallerID", "Номер пусто?" и все компоненты блока сборки номера (выделен зеленым) не изменяются.

Обратите внимание, что ветка по таймауту компонента "+1 цифра" в сценарии переведена на компонент "Пауза 1".


2. Компонент "Определение линий". Сохраняет номер линии абонента А (переключаемого, линия буфера) и линии пользователя Б (переключающего) в соответствующие переменные.

  • Переменной "ЛинияБуфера" (локальная) присваивается значение функции "Номер линии, ожидающей во Flash-буфере".
  • Переменной "ЛинияПользователя" (локальная) присваивается значение функции "Номер линии"


3. Запуск служебного сценария. Блок определяет линию сотрудника В, записывает ее в переменную, а затем передает все три найденные линии (А, Б, В) на вход служебного сценария.

В зависимости от типа набранного номера отрабатывают те или иные компоненты. Для внешнего номера:

Компонент "ВНЕШНИЕ". Если переключают на внешний номер, то необходимо сохранить выбранную линию в переменную.

  • Номер - переменная "Номер".
  • Тип вызова - Обычный
  • Направления - выберите направления для вызова
  • Идентификатор выбранной линии - переменная "ЛинияПереключения" (локальная)
  • Коммутировать сразу - Нет, прослушивать медиа-поток".


Компонент "Линия переключения". Определяет номер линии по ее идентификатору и сохраняет его в ту же переменную.

  • Действие - Определить
  • Тип объекта - Линия
  • Ключ линии - переменная "ЛинияПереключения"
  • Функция - Номер линии
  • Значение в переменную - переменная "ЛинияПереключения"


Для внутреннего номера:

Компонент "ВНУТРЕННИЕ". Остается без изменения.

  • Назначение - Внутрь
  • Номер - переменная "Номер"
  • Тип вызова - Обычный


Компонент "Пауза 200мс". Необходим для корректной отработки переключения и записи всех значений в базу данных.

  • Время задержки, мс - 200


Компонент "Линия переключения (2)". По номеру активной линии, определяет номер скоммутированной линии. Активной линией будет линия пользователя Б, если он ожидал соединения сотрудника В и тот взял трубку. Если пользователь Б, бросил трубку, то активной линией будет линия клиента А.

  • Действие - Определить
  • Тип объекта - Линия
  • Ключ линии - функция "Номер линии"
  • Функция - Номер скоммутированной линии/конференции
  • Значение в переменную - переменная ЛинияПереключения


Компонент "XML". Для передачи трех значений в служебный сценарий, компонент объединяет их в единую XML структуру. Такой прием часто используется для передачи нескольких значений в качестве одного параметра запуска.

  • Переменной "XML" (строковая) присваивается выражение
'<bufferLine>'+[ЛинияБуфера]+'</bufferLine>'+endline+
'<switchingLine>'+[ЛинияПереключения]+'</switchingLine>'+endline+
'<userLine>'+[ЛинияПользователя]+'</userLine>'

ВНИМАНИЕ: Можно и не использовать объединение переменных в XML, а передавать их как сессионные, однако удостоверьтесь, что у вас уже не используется одноименные переменные в других пересекающихся сценариях.


Компонент "Ув1". Отладочное уведомления для вывода XML структуры.

  • Отладочный режим - Да
  • Текст - переменная "XML"
  • Адресат - выберите администрирующего пользователя.


Компонент "Запуск сценария". Запускает асинхронный сценарий, который будет проверять соединение линии клиента А и сотрудника В.

  • Тип запуска - Асинхронный служебный
  • Режим выбора сценария - Из списка
  • Сценарий - Определение момента переключения (служебный)
  • Параметр запуска - переменная "XML"


Служебный сценарий определения момента переключения

Служебный сценарий мониторит состояние линии А и определяет итог переключения. Сценарий выглядит следующим образом:


Определение момент переключения-001.png


Компонент "Старт 1". Получает переданную XML-структуру на вход сценария и записывает ее в переменную XML.

  • Параметр запуска - переменная "XML" (локальная)

Компонент "Ув XML". Отладочное уведомление для вывода полученной XML.

  • Отладочный режим - Да
  • Текст - переменная "XML"
  • Адресат - выберите администрирующего пользователя.


Компонент "Линия буфера". Выделяет линию буфера (клиента А) из XML-структуры.

  • Документ - переменная "XML"
  • Алгоритм - Язык OQuery для HTML
  • Поисковый запрос - строка bufferLine
  • Функция - Содержимое
  • Номер элемента - 0
  • Результат в переменную - переменная "ЛинияБуфера" (локальная)


Компонент "Линия переключения". Выделяет линию сотрудника В, на которого переключают звонок, из XML-структуры.

  • Документ - переменная "XML"
  • Алгоритм - Язык OQuery для HTML
  • Поисковый запрос - строка switchingLine
  • Функция - Содержимое
  • Номер элемента - 0
  • Результат в переменную - переменная "ЛинияПереключения" (локальная)


Компонент "Линия пользователя". Выделяет линию переключающего сотрудника Б из XML-структуры.

  • Документ - переменная "XML"
  • Алгоритм - Язык OQuery для HTML
  • Поисковый запрос - строка userLine
  • Функция - Содержимое
  • Номер элемента - 0
  • Результат в переменную - переменная "ЛинияПользователя" (локальная)


Компонент "Трансфер?". Определяет произошло ли трансфер-переключение. Если это так, то линия буфера будет пустая, вследствие того, что она была активной и содержится в переменной "ЛинияПользователя".

  • Аргумент 1 - переменная "ЛинияБуфера"
  • Аргумент 2 - пустая строка
  • Тип сравнения - "="


Если произошло обычное переключение, отрабатывают следующие компоненты.


Компонент "Скоммутированная с буфером". Определяет номер скоммутированной линии с линией буфера (клиента А). В зависимости от того, какую линию вернет компонент, будет решаться соединилась ли линия буфера с пользователем В или вернулась обратно.

  • Действие - Определить
  • Тип объекта - Линия
  • Ключ линии - переменная "ЛинияБуфера"
  • Функция - Номер скоммутированной линии/конференции
  • Значение в переменную - переменная "СкоммутированнаяСБуфером" (локальная)


Компонент "Ув1". Отладочное уведомление для вывода номеров участвующих линий, а также линии, которая скоммутирована с буфером.

  • Отладочный режим - Да
  • Текст - выражение
'[ЛинияБуфера] '+[ЛинияБуфера]+endline+
'[ЛинияПереключения] '+[ЛинияПереключения]+endline+
'[ЛинияПользователя] '+[ЛинияПользователя]+endline+endline+
'[СкоммутированнаяСБуфером] '+[СкоммутированнаяСБуфером]
  • Адресат - выберите администрирующего пользователя.

Компонент "Буфер не скоммутирован?".

Компонент "IdChain".

Компонент "Ув2".

Компонент "Обрыв внешней линии".

Компонент "Линия повесила трубку".

Компонент "Пока линия не скоммутирована".

Компонент "Буфер переключился?".

Компонент "Линия скоммутированы".

Компонент "Воспроизведение файла".

Компонент "Линия вернулась?".

Компонент "Возврат буфера".

Компонент "500мс".


SIP-трансфер переключение

Компонент "Трансфер".

Компонент "Скоммутированная с буфером 2".

Компонент "Произошло соединение?".

Компонент "Линии соединены".

Компонент "Воспроизведение файла 2".

Компонент "Пауза 2".

Компонент "Линия не соединилась".

Компонент "Неизвестная ситуация".

Компонент "IdChain".

Компонент "Ув3".

Компонент "Линия повесила трубку?".

Компонент "Линия оборвалась".

Компонент "Пауза 500мс".


==Назначение сценария переключения==